我必须为大学的工作创建一个计算器。在我的程序中,我使用了重复 clrscr;使用完计算器后始终清洁屏幕。我定义使用 clrscr 直到 option=9,并显示此错误:语法错误,“;” 预期但“直到”找到。我在我的程序中建立了 9 个选项。我已经花了好几个小时试图解决这个问题,但我无法做到。请有人帮助我!
obs:对不起我的英语不好,我不是以英语为母语的人。
该程序:
program CALCULADORA;
uses crt;
var
var1, var2, resultado, salvo: real;
resp: char;
opcao: integer;
memoria: boolean;
begin
memoria := false;
repeat
clrscr;
writeln;
writeln('Escolha a operacao matematica desejada: ');
writeln;
writeln('1 - Soma');
writeln('2 - Subtracao');
writeln('3 - Produto');
writeln('4 - Divisao');
writeln('5 - Inversao');
writeln('6 - Potenciacao');
writeln('7 - Radiciacao');
writeln('8 - Limpar a Memoria');
writeln('9 - Sair do programa');
writeln;
if ( memoria=true ) then
begin
writeln('Memoria ', salvo:3:4);
writeln;
writeln('Opcao desejada: ');
readln(opcao);
writeln;
case (opcao) of
...在这一部分中,我列出了所有选项,直到第 8 个选项...
9:begin
writeln('Obrigado por usar a calculadora!');
readln;
end;
else
begin
writeln('Nao ha a opcao ', opcao);
readln;
end;
end;
until opcao9;
end;
end.
整个块代码:
program CALCULADORA;
uses crt;
var
var1, var2, resultado, salvo: real;
resp: char;
opcao: integer;
memoria: boolean;
begin
repeat
clrscr;
writeln;
writeln('Escolha a operacao matematica desejada: ');
writeln;
writeln('1 - Soma');
writeln('2 - Subtracao');
writeln('3 - Produto');
writeln('4 - Divisao');
writeln('5 - Inversao');
writeln('6 - Potenciacao');
writeln('7 - Radiciacao');
writeln('8 - Limpar a Memoria');
writeln('9 - Sair do programa');
writeln;
if ( memoria=true ) then
begin
writeln('Memoria ', salvo:3:4);
writeln;
writeln('Opcao desejada: ');
readln(opcao);
writeln;
end;
case (opcao) of
1: begin
if ( memoria=false ) then
begin
writeln('Digite a primeira variavel: ');
readln(var1);
writeln;
writeln('Digite a segunda variavel: ');
readln(var2);
writeln;
resultado:=var1+var2;
memoria:=true;
writeln('Resultado = ', resultado:3:4);
end
else
begin
writeln('Voce deseja utilizar a memoria?');
writeln('S-Sim');
writeln('N-Nao');
readln(resp);
writeln;
if ( resp='S' ) then
begin
writeln('Digite a segunda variavel: ');
readln(var2);
resultado:=salvo + var2;
writeln('Resultado = ', resultado:3:4);
end
else
begin
writeln('Digite a primeira variavel: ');
readln(var1);
writeln;
writeln('Digite a segunda variavel: ');
readln(var2);
resultado:=var1 + var2;
writeln('Resultado = ', resultado:3:4);
end;
end;
memoria:=true;
end;
2: begin
if ( memoria = false ) then
begin
writeln('Digite a primeira variavel: ');
readln(var1);
writeln;
writeln('Digite a segunda variavel: ');
readln(var2);
writeln;
resultado:=var1 - var2;
memoria:=true;
writeln('Resultado = ', resultado:3:4);
end
else
begin
writeln('Voce deseja utilizar a memoria?');
writeln('S-Sim');
writeln('N-Nao');
readln(resp);
writeln;
if ( resp='S' ) then
begin
writeln('Digite a segunda variavel: ');
readln(var2);
resultado:=salvo - var2;
writeln;
writeln('Resultado = ', resultado:3:4);
end
else
begin
writeln('Digite a primeira variavel: ');
readln(var1);
writeln;
writeln('Digite a segunda variavel: ');
readln(var2);
writeln;
resultado:=var1 - var2;
memoria:=true;
writeln('Resultado = ', resultado:3:4);
end;
end;
readln;
end;
3:begin
if (memoria = false ) then
begin
writeln('Digite a primeira variavel: ');
readln(var1);
writeln;
writeln('Digite a segunda variavel: ');
readln(var2);
writeln;
resultado:=var1*var2;
memoria:=true;
writeln('Resultado = ', resultado:3:4);
end
else
begin
writeln('Deseja utilizar a memoria?');
writeln('S-Sim');
writeln('N-Nao');
readln(resp);
if (resp='S') then
begin
writeln('Digite a segunda variavel: ');
readln(var2);
resultado:=salvo*var2;
writeln;
writeln('Resultado = ', resultado:3:4);
end
else
begin
writeln('Digite a primeira variavel: ');
readln(var1);
writeln;
writeln('Digite a segunda variavel: ');
readln(var2);
writeln;
resultado:=var1*var2;
writeln('Resultado = ', resultado:3:4);
end;
end;
readln;
end;
4:begin
if (memoria=false) then
begin
writeln('Digite a primeira variavael');
readln(var1);
writeln;
writeln('Digite a segunda variavel: ');
readln(var2);
writeln;
if (var2=0) then
begin
writeln('Zero nao pode ser denominador');
end
else
begin
resultado:= (var1)/(var2);
memoria:=true;
writeln('Resultado = ', resultado:3:4);
end;
end
else
begin
writeln('Deseja utilizar a memoria?');
writeln('S-Sim');
writeln('N-Nao');
readln(resp);
if (resp='S') then
begin
writeln('Digite a segunda variavel: ');
readln(var2);
writeln;
resultado:=(salvo)/(var2);
writeln('Resultado = ', resultado:3:4);
end
else
begin
writeln('Digite a primeira variavel: ');
readln(var1);
writeln;
writeln('Digite a segunda variavel: ');
readln(var2);
writeln;
if (var2=0) then
begin
writeln('Zero nao pode ser denominador');
end
else
begin
resultado:= (var1)/(var2);
writeln('Resultado = ', resultado:3:4);
end;
end;
end;
readln;
end;
5: begin
if (memoria=false) then
begin
writeln('Digite a variavel: ');
readln(var1);
writeln;
if (var1=0) then
begin
writeln('Zero nao pode ser denominador');
end
else
begin
resultado:=1/(var1);
memoria:=true;
writeln('Resultado = ', resultado:3:4);
end;
end
else
begin
writeln('Deseja utilizar a memoria?');
writeln('S-Sim');
writeln('N-Nao');
readln(resp);
writeln;
if (resp='S') then
begin
resultado:=1/(salvo);
writeln('Resposta = ', resultado:3:4);
end
else
begin
writeln('Digite a variavel: ');
readln(var1);
writeln;
if (var1=0) then
begin
writeln('Zero nao pode ser denominador');
end
else
begin
resultado:=1/(var1);
writeln('Resultado = ', resultado:3:4);
end;
end;
end;
readln;
end;
6: begin
if ( memoria = false ) then
begin
writeln('Digite a base ');
readln(var1);
writeln;
write('Digite o expoente ');
readln(var2);
writeln;
if ( var1=0) then
begin
if(var2=0) then
begin
writeln('Operacao impossivel');
end
else
begin
resultado:=0;
memoria:=true;
writeln('Resultado = ', resultado:3:4);
end;
end
else
if(var1<0) then
begin
if((var2>-1) and (var2<1) and (var2<>0)) then
begin
if((frac(1/var2)<>0) or ((trunc(1/var2)) mod 2 = 0)) then
begin
writeln('Operacao fora do conjunto dos numeros reais');
end
else
begin
var1:=var1*(-1);
resultado:= (-1)*exp(var2*ln(var1));
memoria:=true;
writeln('Resultado = ', resultado:3:4);
end;
end
else
if(var2=0) then
begin
resultado:= 1;
memoria:=true;
writeln('Resultado = ', resultado:3:4);
end
else
if(frac(var2)<>0) then
begin
writeln('Operacao fora do conjunto dos numeros reais')
end
else
begin
if(trunc(var2)mod(2)=0) then
begin
var1:=var1*-1;
resultado:= exp(var2*ln(var1));
memoria:=true;
writeln('Resultado = ', resultado:3:4);
end
else
begin
var1:=var1*-1;
resultado:= (-1)*exp(var2*ln(var1));
memoria:=true;
writeln('Resultado = ', resultado:3:4);
end;
end;
end
else
begin
resultado:= exp(var2*ln(var1));
memoria:=true;
writeln('Resultado = ', resultado:3:4);
end;
end
else
begin
writeln('Deseja utilizar a memoria como base?');
writeln;
writeln('S-Sim');
writeln('N-Nao');
writeln;
readln(resp);
writeln;
if(resp='S') then
begin
write('Digite a variavel Base = ');
readln(var1);
writeln;
write('Digite a variavel Expoente = ');
readln(var2);
writeln;
if(var1=0) then
begin
if(var2<=0) then
begin
writeln('Operacao impossivel');
end
else
begin
resultado:=0;
writeln('Resultado = ', resultado:3:4);
end;
end
else
if(var1<0) then
begin
if((var2>-1) and (var2<1) and (var2<>0)) then
begin
if((frac(1/var2)<>0) or ((trunc(1/var2)) mod 2 = 0)) then
writeln('Operacao fora do conjunto dos numeros reais')
else
begin
var1:=var1*(-1);
resultado:= (-1)*exp(var2*ln(var1));
writeln('Resultado = ', resultado:3:4);
end;
end
else
if(var2=0) then
begin
resultado:= 1;
writeln('Resultado = ', resultado:3:4);
end
else
if(frac(var2)<>0) then
writeln('Operacao fora do conjunto dos numeros reais')
else
begin
if(trunc(var2)mod(2)=0) then
begin
var1:=var1*-1;
resultado:= exp(var2*ln(var1));
writeln('Resultado = ', resultado:3:4);
end
else
begin
var1:=var1*-1;
resultado:= (-1)*exp(var2*ln(var1));
writeln('Resultado = ', resultado:3:4);
end;
end;
end
else
begin
resultado:= exp(var2*ln(var1));
writeln('Resultado = ', resultado:3:4);
end;
end
else
if(resp='S') then
begin
var1:=resultado;
write('Expoente = ');
readln(var2);
writeln;
if(var1=0) then
begin
if(var2<=0) then
begin
writeln('Operacao impossivel');
end
else
begin
resultado:=0;
writeln('Resultado = ', resultado:3:4);
end;
end
else
if(var1<0) then
begin
if((var2>-1) and (var2<1) and (var2<>0)) then
begin
if((frac(1/var2)<>0) or ((trunc(1/var2)) mod 2 = 0)) then
writeln('Operacao fora do conjunto dos numeros reais')
else
begin
var1:=var1*(-1);
resultado:= (-1)*exp(var2*ln(var1));
writeln('Resultado = ', resultado:3:4);
end;
end
else
if(var2=0) then
begin
resultado:=0;
writeln('Resultado = ', resultado:3:4);
end
else
if(frac(var2)<>0) then
writeln('Operacao fora do conjunto dos numeros reais')
else
begin
if(trunc(var2)mod(2)=0) then
begin
var1:=var1*-1;
resultado:= exp(var2*ln(var1));
writeln('Resultado = ', resultado:3:4);
end
else
begin
var1:=var1*-1;
resultado:= (-1)*exp(var2*ln(var1));
writeln('Resultado = ', resultado:3:4);
end;
end;
end
else
begin
resultado:= exp(var2*ln(var1));
writeln('Resultado = ', resultado:3:4);
end;
end
else
writeln('Escolha apenas uma das opcoes Sim ou Nao');
end;
readln;
end;
7: begin
if(memoria=false) then
begin
write('Digite o Radicando = ');
readln(var1);
writeln;
write('Digite o Radical = ');
readln(var2);
writeln;
if(var2=0) then
writeln('Radical nao pode ser zero')
else
begin
if(var1=0) then
begin
resultado:=0;
memoria:=true;
writeln('Resultado = ', resultado:3:4);
end
else
if(var1<0) then
begin
if((var2>-1) and (var2<1)) then
begin
var2:=1/var2;
var1:=var1*(-1);
if(frac(var2)<>0) then
writeln('Operacao fora do conjunto dos numeros reais')
else
begin
if((trunc(var2) mod 2) = 0) then
begin
resultado:= exp(var2*ln(var1));
memoria:=true;
writeln('Resultado = ', resultado:3:4);
end
else
begin
resultado:= (-1)*exp(var2*ln(var1));
memoria:=true;
writeln('Resultado = ', resultado:3:4);
end;
end;
end
else
if(frac(var2)<>0) then
writeln('Operacao fora do conjunto dos numeros reais')
else
begin
if((trunc(var2) mod 2) <> 0) then
begin
var2:=1/var2;
var1:=var1*(-1);
resultado:= (-1)*exp(var2*ln(var1));
memoria:=true;
writeln('Resultado = ', resultado:3:4);
end
else
writeln('Operacao fora do conjunto dos numeros reais');
end;
end
else
begin
var2:= 1/var2;
resultado:= exp(var2*ln(var1));
memoria:=true;
writeln('Resultado = ', resultado:3:4);
end;
end;
end
else
begin
writeln('Deseja utilizar a memoria como radicando?');
writeln;
writeln('S-Sim');
writeln('N-Nao');
writeln;
write('Resposta = ');
readln(resp);
writeln;
if(resp='N') then
begin
write('Digite o variavel Radicando = ');
readln(var1);
writeln;
write('Digite a variavel Radical = ');
readln(var2);
writeln;
if(var2=0) then
begin
writeln('A variavel Radical nao pode ser zero');
end
else
begin
if(var1=0) then
begin
resultado:=0;
writeln('Resultado = ',resultado:3:4);
end
else
if(var1<0) then
begin
if((var2>-1) and (var2<1)) then
begin
var2:=1/var2;
var1:=var1*(-1);
if(frac(var2)<>0) then
writeln('Operacao fora do conjunto dos numeros reais')
else
begin
if((trunc(var2) mod 2) = 0) then
begin
resultado:= exp(var2*ln(var1));
writeln('Resultado = ', resultado:3:4);
end
else
begin
resultado:= (-1)*exp(var2*ln(var1));
writeln('Resultado = ', resultado:3:4);
end;
end;
end
else
if(frac(var2)<>0) then
writeln('Operacao fora do conjunto dos numeros reais')
else
begin
if((trunc(var2) mod 2) <> 0) then
begin
var2:=1/var2;
var1:=var1*(-1);
resultado:= (-1)*exp(var2*ln(var1));
writeln('Resultado = ', resultado:3:4);
end
else
writeln('Operacao fora do conjunto dos numeros reais');
end;
end
else
begin
var2:= 1/var2;
resultado:= exp(var2*ln(var1));
writeln('Resultado = ', resultado:3:4);
end;
end;
end
else
if(resp='S') then
begin
var1:=resultado;
write('Digite a variavel Radical = ');
readln(var2);
writeln;
if(var2=0) then
writeln('A variavel Radical nao pode ser zero')
else
begin
if(var1=0) then
begin
resultado:=0;
writeln('Resultado = ', resultado:3:4);
end
else
if(var1<0) then
begin
if((var2>-1) and (var2<1)) then
begin
var2:=1/var2;
var1:=var1*(-1);
if(frac(var2)<>0) then
writeln('Operacao fora do conjunto dos numeros reais')
else
begin
if((trunc(var2) mod 2) = 0) then
begin
resultado:= exp(var2*ln(var1));
writeln('Resultado = ', resultado:3:4);
end
else
begin
resultado:= (-1)*exp(var2*ln(var1));
writeln('Resultado = ', resultado:3:4);
end;
end;
end
else
if(frac(var2)<>0) then
writeln('Operacao fora do conjunto dos numeros reais')
else
begin
if((trunc(var2) mod 2) <> 0) then
begin
var2:=1/var2;
var1:=var1*(-1);
resultado:= (-1)*exp(var2*ln(var1));
writeln('Resultado = ', resultado:3:4);
end
else
writeln('Operacao fora do conjunto dos numeros reais');
end;
end
else
begin
var2:= 1/var2;
resultado:= exp(var2*ln(var1));
writeln('Resultado = ', resultado:3:4);
end;
end;
end
else
writeln('Escolha apenas uma das opcoes Sim ou Nao');
end;
readln;
end;
8:begin
if(memoria=false) then
begin
writeln('Nao ha memoria salva');
readln;
writeln('Escolha uma das operacoes');
readln(opcao);
end
else
begin
resultado:=0.0000;
memoria:=false;
writeln('Escolha uma das operacoes');
readln(opcao);
writeln;
end;
end;
9:begin
writeln('Obrigado por usar a calculadora!');
readln;
end;
else
begin
writeln('Nao ha a opcao ',opcao);
writeln;
writeln('Escolha uma das opcoes de 1 a 9');
readln(opcao);
end;
end;
until opcao=9;
end.