Nossa calculadora deverá fazer o seguinte:
- mostrar todas operações válidas;
- pedir para se digitar uma expressão, seguindo a sintaxe: número operador número;
- ler dos dados digitados armazenando-os nas respectivas variáveis;
- calcular o resultado conforme a operação desejada.
Sendo assim começaremos definindo as variáveis que farão parte do
projeto. Por enquanto já é possível notar que haverá a necessidade
de criar três variáveis para armazenar e manipular os dados do
programa, criaremos então duas variáveis numéricas e uma do tipo
char para armazenar o operador desejado. Nosso programa deve estar assim:
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <iostream> //bibliotecas
#include <cstdlib>
using namespace std;
int main(int argc, char *argv[ ]) //nossa função principal
{
float x, y, z; //declaração de variáveis
char op; //declaração de variáveis
cout << "\t\t\t\t\tCalc v0.1\n\n";
cout << "\tOperadores válidos:\n";
cout << "\t\tAdição: '+'\n";
cout << "\t\tSubtração: '-'\n";
cout << "\t\tMultiplicação: '*'\n";
cout << "\t\tExponenciação: 'e'\n";
cout << "\t\tRadiciação: 'r'\n\n";
cout << "Digite sua expressão: "; //imprime no vídeo
cin >> x >> op >> y; //atribui os valores digitados no teclado às variáveis
return EXIT_SUCCESS; //valor de retorno da função
}
Agora será necessário fazer com que o programa seja capaz de
discernir os operadores digitados; para isso usaremos a
instrução switch(), sua sintaxe será a seguinte:
switch(op)
{
case '+':
cout << x + y << endl;
break;
case '-':
cout << x - y << endl;
break;
case '*':
cout << x * y << endl;
break;
case '/':
cout << x / y << endl;
break;
case 'e':
z = x;
if (y == 0)
{
cout << 1 << endl;
}
else
{
while (a != y)
{
x = x * z;
a++;
}
cout << x << endl;
}
break;
case 'r':
z = 0.0001;
while ((z * z) < x )
{
z = z + 0.0001;
}
while ((z * z) > x)
{
z = z - 0.00001;
}
cout << z - 0.00001 <<endl;
break;
default:
cout << "Expressão inválida" << endl;
break;
}
Note que as operações de exponenciação e radiciação provocaram
a necessidade da criação de mais duas variáveis, deixando nossa
declaração de variáveis da seguinte maneira:
float x, y, z;
char op;
int a=1;
Um inconveniente do programa é a necessidade de executá-lo cada vez
que se quiser testar algo, para resolver a questão vamos envolver
o programa em um looping que só permitirá o seu encerramento se
o usuário responder 'n' à pergunta, isso também fará com que seja
necessário declarar mais uma variável para armazenar a resposta.
Para executar o programa digite Shift+F9.