Ir ao conteúdo
  • Cadastre-se
xSADx

Pascal Erro ao compilar projeto no Pascal

Recommended Posts

Seguinte galera,estou fazendo um trabalho que preciso fazer uma calculadora com a função CASE e a calculadora deve somar,dividir,subtrair,e multiplicar dois números mas quando vou usar o comando CASE sempre da erro quem puder ajudar agradeço! Segue ai o meu projeto e o erro:

program Exercicio4_Aula5;

var numero1,numero2, resultado: Real;
  escolha: CHAR;

begin
  Writeln('Escolha a Opcao');
  Writeln('Digite S para Soma');
  Writeln('Digite M para Subtracao');
  Writeln('Digite X para Multiplicacao');
  Writeln('Digite D para Divisao');
  Readln(escolha);
  Writeln('Digite o Primeiro Numero');
  Readln(numero1);
  Writeln('Digite o Segundo Numero');
  Readln(numero2);

  CASE escolha = 'S' Of

  numero1+numero2

  end;
end.

 

E da esses erros:

Compilar projeto, Alvo: C:\Users\PC\AppData\Local\Temp\project1.exe: Código saída 1, Erros: 3
project1.lpr(22,3) Error: Constant and CASE types do not match
project1.lpr(22,3) Error: Constant Expression expected
project1.lpr(22,3) Fatal: Syntax error, ":" expected but "END" found

 

Alguém sabe como resolver?? Obrigado.

  • Obrigado 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Revise a sintaxe do comando CASE. Use o botão <> para postar o código no fórum, fica melhor.

  • Curtir 2

Compartilhar este post


Link para o post
Compartilhar em outros sites

@xSADx    seu  case está com erro de syntaxe ,  e o

numero1 + numero2

também está com erro , pois não tem uma variável para receber o resultado dessa adição ,  então seu código com algumas modificações pode ser assim  :

program Exercicio4_Aula5;
var 
  numero1,numero2, resultado : Real;
  escolha                    : CHAR;
begin
  Writeln('Escolha a Opcao');
  repeat
    Writeln('Digite S para Soma');
    Writeln('Digite M para Subtracao');
    Writeln('Digite X para Multiplicacao');
    Writeln('Digite D para Divisao');
    Readln(escolha);  
  until ((escolha='s')or(escolha='m')or(escolha='x')or(escolha='d'));
  Writeln('Digite o Primeiro Numero');
  Readln(numero1);  // para numeros negativos precisa um tratamento melhor
  Writeln('Digite o Segundo Numero');
  Readln(numero2);
  case escolha  of
    's': resultado := numero1 + numero2;
    'm': resultado := numero1 - numero2;	  
    'x': resultado := numero1 * numero2;
    'd': resultado := numero1 / numero2;
  end;
  writeln('Resultado = ',resultado:6:2);//limitando a seis digitos e duas casas decimais
end.

 

  • Curtir 2

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

×