Ir ao conteúdo

Posts recomendados

Postado

Estou resolvendo um exercício que pede para fazer um programa de fidelidade. Quando executo o programa aparece erro sintático não esperado. 

 

Program fidelidade ;
  uses
      CRT;
var

livro: integer;

Begin
writeln('Informe a quantidade de livros comprado.: ');
readln(livro);
case livro of
    0: begin
    writeln('Ele ganhará 0 pontos');
    readln;
    end;
    1: begin
    writeln('Ele ganhará 5  pontos');
    readln;
    end;
    2: begin
    writeln('Ele ganhará 15 pontos');
    end;
    3: begin
    writeln('Ele ganhará 30 pontos');
    end;
    4 ..100: begin
    writeln('Ele ganhará 60 pontos');
    end;
    
End.

 

 

  • Obrigado 1
Postado

@joaoz1404 @joaoz1404    você pode ler nas mensagens do compilador para saber como resolver ,  pois ali ele informou que tem um erro na linha 30 e que o que está errado é um ponto  colocado nessa linha , então interprete o que ele disse , que significa  :  lá na linha 30 desse código tem um ponto , que não deveria estar ali ,  e você vai pensar assim    :

 ah , esse ponto não deveria estar ali , por que ele  ( o ponto ) está no lugar  
 de um ponto_e_vírgula que finaliza o case of , mas para finalizar o código 
 precisa dele ( o ponto)  , então o que precisa é colocar um end com um 
 ponto_e_vírgula  antes desse end com um ponto .
4 ..100: begin
    writeln('Ele ganhará 60 pontos');
    end;
  end;    
End.

 

  • Obrigado 1
Postado

@joaoz1404    não  , aquele

case of // inicia o case of
        // aqui dentro as opções
end;    //  finaliza o case of

e o que finaliza o programa mesmo é o 

begin  // incia o código principal
       // aqui dentro os comando necessários
end.   // finaliza o programa

 

  • Obrigado 1
  • Membro VIP
Postado

@joaoz1404, resumidamente, o case/of tem o seu próprio end;.

 

É interessante marcar esses end, exemplo:

case livro of

  end; //case livro
end.

 

Algo como:

{$CODEPAGE UTF8} //uma forma de tentar conseguir imprimir palavras acentuadas
program fidelidade;
uses
  CRT;
var
  livro: integer;

begin
writeln('Informe a quantidade de livros comprado: ');
readln(livro);
case livro of
  0  :begin
      writeln('Ele ganhará 0 pontos');
      end;
  1  :begin
      writeln('Ele ganhará 5  pontos');
      end;
  2  :begin
      writeln('Ele ganhará 15 pontos');
      end;
  3  :begin
      writeln('Ele ganhará 30 pontos');
      end;
  4..
  100:begin
      writeln('Ele ganhará 60 pontos');
      end;
  end; //case livro
  ReadKey;
end.

 

adicionado 1 minuto depois

Se um caso do case tiver apenas uma instrução, nem precisa do begin/end. Exemplo:

 

{$CODEPAGE UTF8} //uma forma de tentar conseguir imprimir palavras acentuadas
program fidelidade;
uses
  CRT;
var
  livro: integer;

begin
writeln('Informe a quantidade de livros comprado: ');
readln(livro);
case livro of
  0  :writeln('Ele ganhará 0 pontos');
  1  :writeln('Ele ganhará 5  pontos');
  2  :writeln('Ele ganhará 15 pontos');
  3  :writeln('Ele ganhará 30 pontos');
  4..
  100:writeln('Ele ganhará 60 pontos');
  end; //case livro
  ReadKey;
end.

 

  • Curtir 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário 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 comunidades 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

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!