Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
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






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

×