控制台纯文本计算器,用PASCAL编写,有bug。

控制台纯文本计算器,用PASCAL编写,有bug。,pascal,Pascal,我必须为大学的工作制作一个计算器。在我的程序中,我使用了repeat-clrsc;使用完计算器后,始终清洁屏幕。我定义使用CLRSC直到选项=9,并显示这个错误:Syntax error;期待,但直到找到。我在我的计划中确定了9个选项。我已经花了好几个小时试图解决这个问题,但我没能成功。请有人帮帮我 对不起,我的英语很差,我不是以英语为母语的人 该方案: program CALCULADORA; uses crt; var var1, var2, resultado, salvo:

我必须为大学的工作制作一个计算器。在我的程序中,我使用了repeat-clrsc;使用完计算器后,始终清洁屏幕。我定义使用CLRSC直到选项=9,并显示这个错误:Syntax error;期待,但直到找到。我在我的计划中确定了9个选项。我已经花了好几个小时试图解决这个问题,但我没能成功。请有人帮帮我

对不起,我的英语很差,我不是以英语为母语的人

该方案:

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.

你需要结束;在之前直到。终点属于if。根据你的逻辑,你需要结束;已经在case之前。

代码的执行不会导致语法错误

我已经通读了你的部分代码,直到案例1。 这里已经很晚了,所以我不能花太多时间把你的指导词翻译成英语,所以我猜Opcao是某种选择索引

你的错误是没有一个

readln(opcao); 
当memoria为false时,默认情况下为false。 因此,您的代码不断循环并读取

我怀疑您的变量salvo没有指定给您想要的值,也请检查一下。到目前为止,我可以对代码的其余部分进行注释,您应该能够看到是否发生了类似的错误

更新: Opcao案例6,将第二个ifresp='S'更改为'if' resp='N'然后' 以if memoria=true开头的块,然后

如果memoria=true,则 开始 书面备忘录,齐射:3:4; 书面语; 终止 写着“Opcao desejada:”; readlnopcao; 书面语

记忆:=真实;在第1号Opcao案例结束时,将其更改 进入'readln;'

确保所有记忆:=真实;具有salvo:=resultado;。我相信 你想让计算器记住结果

我通读了你剩下的密码。 您的代码在某些地方极为重复和冗余。 请尽量不要复制和粘贴您自己的代码。 如果需要重复代码,请将其重新写入适当的功能或程序中

例如,每种情况下的代码,无论内存是真是假,无论用户选择的内存,程序执行的功能完全相同,但变量可能不同。试着把它重写成一个过程,或者在选择之后简单地组合它们,而不是写三次

以opcao案例1为例,我将在整个程序开始时定义一个过程ask

procedure ask;
begin
  writeln('Digite a primeira variavel: ');
  readln(var1);
  writeln;
  writeln('Digite a segunda variavel: ');
  readln(var2);
end;

procedure write_memory;
begin
     memoria:=true;
     salvo:=resultado; 
end;   
那么案例1可以写成

1: begin
if ( memoria=false )
then ask
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: ');
          var1:=salvo;
          readln(var2);
     end
     else ask
end;
resultado:=var1 + var2;
if not(memoria) or (memoria and (resp='S')) then write_memory;
writeln('Resultado = ', resultado:3:4);
readln;
end;   

你能把整个代码块张贴在中间吗?您可能错过了“案例”的“结尾”-据我所知,在“else begin writeln'Nao..”之前应该是这样的-我刚刚在结尾发布了整个代码块。当我结束时,我开始写下“其他的开始…”;显示了一个错误,因为预期的是直到而不是结束。我尝试添加结束;before-until-but显示此错误消息:语法错误,until-expected-but-find。所以我觉得没有必要。我只是结束了;之前的案例和程序最终已经编译完成。但它仍然不能正常工作。这张图是这样的:1-躯体2-副臂3-产品4-分割5-反转6-效力7-放射8-记忆9-程序自动运行0,当我把我想要的选项数字化时,它会删除所有内容并再次显示出来。我该怎么办?所以,我已经更改了readln;阅读《诺普卡》;但是我不能理解没有阅读的错误;当记忆是假的。我用实际的代码块更新了我的帖子。Obs:opcao=option选择数学选项。memoria=Memory保存操作结果。salvo=save若要将结果的值保存为memorymemoria已初始化为false,则如果memoria=true,则语句将导致不读取opcao,因为只有在满足memoria条件时才会显示readlnopcao。