Programa tem lógica,mas não compila

program calculadorabasica;
uses crt;

var n1,n2:real;
adicao:real;
subtracao:real;
multiplicacao:real;
divisao:real;

begin
clrscr;
writeln('Digite o primeiro numero:');
readln(n1);
writeln('Digite o segundo numero:');
readln(n2);
adiçao:=(n1+n2);
subtração:=(n1-n2);
divisão:=(n1/n2);
multiplicação:=(n1*n2);
if adição then
writeln(adiçao);
if subtração then
writeln(subtração);
if divisão then
writeln(divisão);
if multiplicação then
writeln(multiplicação)
readkey;
end.

Alguém pode me ajudar?

adicao e adiçao são coisas diferentes.
o mesmo se aplica às restantes, umas vezes tens c, outras ç, umas vezes tens ã, outras a.
O meu tempo de pascal foi, literalmente, no milénio passado mas duvido que possas ter variáveis com ç ou ã.

2 curtidas

@WhiteHat Uma pergunta, tem alguma razão para estudar pascal? Ou é apenas por curiosidade mesmo?

Eu programava em pascal com 19 anos,mas rodei duas vezes em programação pascal e Delphi porque eu tenho dificuldade para entender e dificuldade de aprendizado devido a síndrome de noonan,o professor de programação disse a coordenadora do curso, que eu não encaixava os códigos, por isso rodei,mas com 22 anos criei 8 programas para Linux no formato .deb .rpm e .txz(Slackware),minha mãe teve que explicar para coordenadora do curso no CEPEG,que eu sou especial e tinha dificuldade para entender,por isso eu não encaixava os códigos,mas que já estou superando,fiz os 8 programas no Linux no Lazarus(Delphi 7 para Linux).

1 curtida

Corrigi tudo praticamente,mas o multiplicacao não está indo,veja o código:

program calculadorabasica;
uses crt;

var n1,n2,adicao,subtracao,divisao,multiplicacao:real;

begin
clrscr;
writeln('Digite o primeiro numero:');
readln(n1);
writeln('Digite o segundo numero:');
readln(n2);
adicao:=(n1+n2);
subtracao:=(n1-n2);
divisao:=(n1/n2);
multiplicacao:=(n1*n2);
if adicao then
writeln(adicao)else

if subtracao then
writeln(subtracao)else

if divisao then
writeln(divisao)else

if multiplicacao then
writeln(multiplicacao)
readkey;
end.

Veja o erro da compilação:

Alguém pode me ajudar?

Achei o programa perfeito na internet,está aqui:

program calculadorabasica;
uses crt;
var
  n1,n2,resultado:real;
  operador:char;

begin
  writeln('Digite o primeiro número:');
  readln(n1);
  writeln('Digite o segundo número:');
  readln(n2);
  writeln('Digite o operador:');
  readln(operador);

  if operador='+' then
    resultado:=(n1+n2)
  else
    if operador='-' then
      resultado:=(n1-n2)
    else
      if operador='/' then
        resultado:=(n1/n2)
      else
        if operador='*' then
          resultado:=(n1*n2);
  writeln('O resultado é:',resultado:0:0);

  readkey;
end.


Dica: deixe os else if em uma mesma linha, fica mais legível:

if operador='+' then
    resultado:=(n1+n2)
else if operador='-' then
    resultado:=(n1-n2)
else if operador='/' then
    resultado:=(n1/n2)
else if operador='*' then
    resultado:=(n1*n2);

Conforme solicitado pelo usuário, tópico fechado.