Ir ao conteúdo

Calculadora no Dev C++


Mateus.Ferreira

Posts recomendados

Postado

Meu intuito e de fazer uma calculadora com as 4 operações básicas (+,-,/,*)

e pra isso fiz a implementação abaixo

#include <iomanip.h>

#include <math.h>

main()

{

float n1,n2,i,r;

cout << "Entre com os dois numeros: ";

cin >> n1;

cin >> n2;

cout << "Entre com a operacao: \n1 -> Adicao\n2 -> Subitracao\n3 -> Divisao\n4 -> Mutiplicacao\n";

cin >> i;

if(i == 1)

{

r = n1 + n2;

}

if(i == 2)

{

r = n1 - n2;

}

if(i == 3)

{

if(n2 != 0)

{

r = n1 / n2;

}

else

{

cout << "Impossivel de realizar\n";

}

}

else if(i == 4)

{

r = n1 * n2;

}

cout << "Seu resultado e: " <<r<<"\n";

system("pause");

}

Só que como todo bom aluno de matemática eu achei bom botar a exceção da divisão no caso a divisão por 0.

Mais o problema e que o programa não para no erro, ele mostra o cout assim:

"Impossível de realizar

Seu resultado e: 9.80909e-044

Pressione qualquer tecla para continuar. . ."

Eu gostaria que ele SÓ mostra-se a mensagem de erro e parrasse.

Por favor ajudem nessa implementação (NÃO e exercício passado pelo meu professor).

Postado

 float n1,n2,i,r;
cout << "Entre com os dois numeros: ";
cin >> n1;
cin >> n2;
cout << "Entre com a operacao: \n1 -> Adicao\n2 -> Subitracao\n3 -> Divisao\n4 ->
Mutiplicacao\n";
cin >> i;

Até aqui tudo bem. E se o cara digitar 5 como operação?

É uma observação besta, mas costumam colocar a multiplicação em terceiro por convenção. :lol:

if(i == 1) { ... }
if(i == 2) { ... }
if(i == 3) { ... }
if(i == 4) { ... }

Existe alguma restrição ao uso de "switch" ... "case" ... "default" neste problema?

Também ficaria bom. :D

if(i == 3) {
if(n2 != 0) r = n1 / n2; // aqui não se precisa de chaves
else cout << "Impossivel de realizar\n"; // idem
}

Se você usar "switch", basta colocar "break" para sair do comando. Senão vai com exit mesmo.

Do seu jeito eu colocaria if(n2==0) ou if (!n2) prá se zerar não executar o cálculo e sair logo de cara. Se não zerar, ele passa batido e calcula sem o "else".

Postado

Mais ou menos assim:

switch (var1) {
case valor1: comando11;
comando12;
comando13;
...
break;
case valor2: comando21;
comando22;
comando23;
...
break;
case valor3:
case valor4:
case valor5:
case valor6: comando111;
comando122;
comando133;
...
break;
default: comando991;
comando992;
comando993;
...
break;
}

Explicando:

- switch (var1) lê uma variável simples "var1" e percorre uma lista de condições e cai na condição em que se iguala. Como uma chave elétrica que se torce a cada posição para se posicionar num valor adequado.

Se var1 for igual a valor1 ele segue todos os comandos após case valor1. Até a cláusula break que faz a execução sair do bloco switch {}.

Duas observações:

1ª: Sem "break" ele passará batido e continuará direto. Uma cláusula "case" não interrompe execução. Continua pelo próximo case e adiante. Ou encontra um break, um return, um exit, um abort etc. Senão vai pelo switch () {} até o fim. Switch não é loop.

2ª Os comandos após um "case" terminam geralmente em "break" e nestes outros já citados. É como se o "case" e o "break" delimitassem um bloco no lugar de chaves {}.

Este case segue isto:

case valor1: comando11;
comando12;
comando13;
...
break;

case valor3:
case valor4:
case valor5:
case valor6: comando111;
comando122;
comando133;
...
break;

Isto acima serve para ter várias opções de escolha ao mesmo tempo. Se uma delas for escolhida, ela segue até começarem os comandos e até um break etc.

default:           comando991;
comando992;
comando993;
...
break;

E isto aqui acima é o caso-padrão ou default: cláusula "default".

Qualquer situação em que var1 não se enquadre nas opções dos "case" será direcionada para cá.

O último break é redundante se estiver no fim do switch() {}, ou seja, a chave-que-fecha vem logo a seguir.

Postado

Fica um "case" para cada operação e vocẽ pode colocar opções extras até como caso de erro, opção de saída etc.

Esse if() que você quer ficaria dentro do "case" da operação divisão.

Não um "case" só para ele. Um "case" para cada operação completa.

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

Mostrar 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

Mostrar mais  
×
×
  • Criar novo...

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

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!