Ir ao conteúdo

Salvar o resultado na calculadora


Visitante: na.vicente

Posts recomendados

Visitante: na.vicente
 
Postado

Eu preciso fazer uma calculadora que faça algumas operaçoes e salve o resultado obtido para ser usado com um dos operandos da outra conta. Como se faz isso? Eu tentei aqui, mas ou dá erro, ou fica mudando o valor da variável.

Por exemplo, se faço 5+3=8, quando eu for fazer uma subtraçao,por exemplo, eu vou perder esse valor 8.

Como faço para isso não acontecer? :confused::confused::confused:

  • Membro VIP
Postado
Eu preciso fazer uma calculadora que faça algumas operaçoes e salve o resultado obtido para ser usado com um dos operandos da outra conta. Como se faz isso? Eu tentei aqui, mas ou dá erro, ou fica mudando o valor da variável.

Por exemplo, se faço 5+3=8, quando eu for fazer uma subtraçao,por exemplo, eu vou perder esse valor 8.

Como faço para isso não acontecer? :confused::confused::confused:

Olá.

Poste seu código para darmos uma analisada..

No aguardo.

Abraços

Visitante: na.vicente
 
Postado

Acho que consegui, tá assim. Será que você pode ver se tá certo?


uses crt;
var
numero1,numero2:real;
comando:char;
begin
clrscr;
writeln('MENU ');
writeln();
writeln('Instrucoes: ');
writeln();
writeln('1 - Entre com o primeiro numero.');
writeln();
writeln('2 - Entre com o comando que deseja realizar. Cada comando é representado por um caratere: ');
writeln();
writeln('SOMA = + ;');
writeln('SUBTRACAO = - ;');
writeln('MULTIPLICACAO = * ;');
writeln('DIVISAO = / ;');
writeln('INVERSAO = i ;');
writeln('POTENCIA = p ;');
writeln('RAIZ = r ;');
writeln('SIM = s ;');
writeln('NAO = n ;');
writeln();
writeln('3 - Entre o segundo numero.');
writeln();
writeln('Obs: Numeros com virgula devem ser separados com um ponto ao invés de virgula.');
writeln();
writeln();
writeln('Aperte ENTER para sair do menu.');
readln();
clrscr;
repeat
writeln('Digite o primeiro numero: ');
readln(numero1);
repeat
writeln('Escolha a operacao que deseja realizar:');
readln(comando);
case comando of
'+':
begin
writeln('Digite o segundo numero deseja somar: ');
readln(numero2);
numero1:=numero1+numero2;
writeln('O resultado foi: ',numero1:4:4);
end;
'-':
begin
writeln('Digite o segundo numero que deseja subtrair: ');
readln(numero2);
numero1:=numero1-numero2;
writeln('O resultado foi: ',numero1:4:4);
end;
'*':
begin
writeln('Digite o segundo numero que deseja multiplicar: ');
readln(numero2);
numero1:=numero1*numero2;
writeln('O resultado foi: ',numero1:4:4);
end;
'/':
begin
writeln('Digite o denominador da divisao dividir: ');
readln(numero2);
repeat
if (numero2=0) then
begin
writeln('Nao existe divisao por zero.');
writeln('Digite outro numero para o denominador: ');
readln(numero2);
end;
until (numero2<>0);
if (numero2<>0) then
begin
numero1:=numero1/numero2;
writeln('O resultado foi: ',numero1:4:4);
end;
end;
'i':
begin
repeat
if (numero1=0) then
begin
writeln('Nao é possivel inverter o numero zero.');
writeln('Digite outro valor para ser invertido: ');
readln(numero1);
end;
until (numero1<>0);
if (numero1<>0) then
begin
numero1:=1/numero1;
writeln('O resultado foi: ',numero1:4:4);
end;
end;
'p':
begin
writeln('Digite o expoente da potencia: ');
readln(numero2);
repeat
if ((numero1=0) and (numero2=0)) then
begin
writeln('O numero 0 elevado a 0 é uma indeterminacao.');
writeln('Escreva outros numeros para a base e para o expoente:');
readln(numero1);
readln(numero2);
end;
if (numero1<0) then
begin
writeln('Nao é possivel realizar essa operacao. Digite um numero positivo para base: ');
readln(numero1);
end;
until (numero1>=0);
if ((numero1=0) and (numero2<>0)) then
begin
writeln('O resultado foi: 0');
end;
if ((numero1>0) and (numero2>0)) then
begin
numero1:=exp(ln(numero1)*numero2);
writeln('O resultado foi: ',numero1:4:4);
end;
if ((numero1>0) and (numero2=0)) then
begin
writeln('O resultado foi: 1');
end;
if ((numero1>0) and (numero2<0)) then
begin
numero1:=1/exp(ln(numero1)*(-numero2));
writeln('O resultado foi: ',numero1:4:4);
end;
end;
'r':
begin
repeat
if (numero1<0) then
begin
writeln('Nao existe uma raiz real para um numero negativo.');
writeln('Digite outro valor para a raiz quadrada: ');
readln(numero1);
end;
until numero1>=0;
if (numero1>=0) then
begin
numero1:=sqrt(numero1);
writeln('O resultado foi: ',numero1:4:4);
end;
end;
else
begin
writeln('Comando invalido!');
end;
end;
writeln('Digite ENTER para limpar a tela.');
readln();
clrscr;
repeat
writeln('Deseja usar esse resultado como um dos operandos da outra operacao?');
readln(comando);
if ((comando<>'s') and (comando<>'n')) then
begin
writeln('Entrada invalida. Digite novamente: ');
readln(comando);
end;
until ((comando='s') or (comando='n'));
until comando='n';
repeat
writeln('Deseja continuar usando a calculadora?');
readln(comando);
if ((comando<>'s') and (comando<>'n')) then
begin
writeln('Entrada invalida. Digite novamente: ');
end;
until ((comando='s') or (comando='n'));
until comando='n';
clrscr;
writeln('Obrigada por utilizar o programa Calculadora Simples.');
writeln('Digite ENTER para fechar o programa.');
readln();
clrscr;
end.
program calc_teste;

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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

×
×
  • Criar novo...

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!