Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program calcular;
- uses
- crt;
- var
- resultado,n:real;
- operacao:char;
- contUtil:char;
- retomResult:char;
- begin
- clrscr;
- writeln('Digite o primeiro número que deseja operar');
- readln(resultado);
- contUtil:='s';
- while contUtil='s' do
- begin
- repeat
- writeln('Digite a operação que deseja realizar');
- writeln('+ (adição) - (subtração)');
- writeln('* (multiplicação) / (divisão)');
- writeln('i (inversão) p (potenciação)');
- writeln('r (raiz quadrada)');
- readln(operacao);
- if (operacao='i') then
- begin
- repeat
- if resultado=0 then
- begin
- writeln('Entre com um número diferente de 0:');
- readln(resultado);
- resultado:=(1/resultado);
- end
- else
- begin
- resultado:=(1/resultado);
- end;
- until resultado<>0;
- end
- else if (operacao='r') then
- begin
- repeat
- if resultado<0 then
- begin
- writeln('Entre com um número maior ou igual a zero:');
- readln(resultado);
- resultado:=sqrt(resultado);
- end//procedimento de raiz quadrada com valor inaceitavel
- else
- begin
- resultado:=sqrt(resultado);
- end;
- until resultado>=0;
- end
- else if ((operacao='+') or (operacao='-') or (operacao='*') or (operacao='/') or (operacao='p')) then
- begin
- writeln('Digite o próximo número que deseja operar');
- readln(n);
- case operacao of
- '+': begin
- resultado:=(resultado+n);
- end;//adição
- '-': begin
- resultado:=(resultado-n);
- end;//subtração
- '*': begin
- resultado:=(resultado*n);
- end;
- '/': begin
- repeat
- if (n=0) then
- begin
- writeln('Quociente invalido, entre com outro número:');//garante que nao haverá divisão por 0
- readln(n);
- resultado:=(resultado/n);
- end
- else
- begin
- resultado:=(resultado/n);
- end;
- until n<>0;
- end;
- 'p': begin
- if (resultado<0) then
- begin
- resultado:=((-1)*(resultado));
- resultado:=(exp(n*ln(resultado)));
- n:=(trunc(n) mod 2);
- if n<>0 then
- begin
- resultado:=((-1)*(resultado));
- end;
- end
- else
- begin
- resultado:=(exp(n*ln(resultado)));
- end;
- end;
- end;
- end
- else
- begin
- writeln('Operação inválida entre com uma nova operação:');
- end;
- until (operacao='+') or (operacao='-') or (operacao='*') or (operacao='/') or (operacao='i') or (operacao='p') or (operacao='r');
- (*fim do cálculo dos resultados que dependem de duas variáveis*)
- writeln('O resultado da operação é ', resultado:0:2);
- (*mostra o resultado e pergunta ao usuário se ele deseja continuar utilizando o programa*)
- writeln('Deseja continuar utilizando a calculadora(s/n)?');
- readln(contUtil);
- if contUtil='s' then
- begin
- writeln('Deseja retormar o ultimo resultado ', resultado:0:2, ' para a proxima operação(s/n)?');
- readln(retomResult);
- if retomResult='n' then
- begin
- writeln ('Entre com o novo número que deseja operar:');
- readln (resultado);
- end;
- end;
- end;
- end.
Advertisement
Add Comment
Please, Sign In to add comment