Ir ao conteúdo
  • Cadastre-se
heltonpinotti

Erro estranho num programa de Pilhas no PascalZIm

Recommended Posts

Apresentarei o código completo e depois o erro:

______________________________________________________________

Program pilha_estatica;

const

MAX = 10;

type

dado = char;

indice = 0..MAX;

pilha = record

topo: indice;

vetor : array [1..MAX] of dado;

end;

var

p: pilha;

opcao: indice;

procedure inicializar (var p: pilha);

Begin

p.topo:=0;

End;

function cheia (p: pilha): boolean;

begin

cheia:=(p.topo = MAX);

end;

function vazia (p: pilha):boolean;

begin

vazia:= (p.topo = 0);

end;

procedure leitura (var z:dado);

begin

Writeln ('Digite um elemento');

Readln (z);

end;

procedure inserir (var p: pilha);

var

aux:dado;

begin

if (cheia(p)) then

writeln ('Pilha Cheia')

else

begin

leitura(aux);

p.topo:= p.topo + 1;

p.vetor [p.topo] := aux;

end;

end;

procedure excluir (var p: pilha);

begin

If (vazia(p)) then

writeln ('Pilha Vazia!')

else

p.topo := p.topo - 1;

end;

procedure mostrar (p: pilha);

var

i: byte;

begin

if (vazia(p)) then

writeln ('Pilha Vazia!')

else

For i:= p.topo downto 1 do

Writeln (p.vetor);

end;

procedure menu ;

begin

Writeln ('1 - Inserir');

Writeln ('2 - Excluir');

Writeln ('3 - Mostrar');

Writeln ('4 - Sair');

end;

Begin

inicializar (p);

opcao:=0;

While (opcao <> 4) do

begin

clrscr;

menu;

Writeln ('Digite uma opcao');

Readln (opcao);

case opcao of

1 : inserir (p);

2 : excluir (p);

3 : mostrar (p);

end;

Writeln ('Tecle algo para continuar...');

Readkey;

end;

End.

___________________________________________________

Então, o erro é do seguinte trecho:

Program pilha_estatica;

const

MAX = 10;

type

dado = char;

indice = 0..MAX;

pilha = record

topo: indice;

vetor : array [1..MAX] of dado;

end;

var

p: pilha;

opcao: indice;

Obs: Não coloquei o "uses crt" pois se eu colocar dá erro, creio que no PascalZIm não há necessidade de tal comando.

Nesse "trecho" citado, aparece um erro na linha do " indice = 0..MAX; " dizendo que há :

Erro sintático na linha 8...

"0" não esperado

Não sei o que acontece, pois está idêntico com a apostila. Então pensei que o Pascal Zim, poderia não aceitar esse TYPE.

Então retirei-os e fiz assim:

Program pilha_estatica;

const

MAX = 10;

type

dado = char;

pilha = record

topo: integer;

vetor : array [1..MAX] of dado;

end;

var

p: pilha;

opcao: integer;

Ou seja, eliminei o indice e coloquei INTEGER .

Aí dá certo, porém, surge um novo erro na procedure inserir na linha :

p.vetor [p.topo] := aux;

O erro é o seguinte :

Erro semântico na linha 49...

O identificador DADO não é um vetor!

E agora? O que fazer? Onde está o erro?

Se algúem puder ajudar, ficaria muito agradecido.

Obrigado...

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×