Criando uma calculadora com o KDevelop

Este artigo é a versão em C++ de um simples programa de cálculo em linha de comando. Esta calculadora será capaz de efetuar as quatro operações básicas, mais a exponenciação e extração da raiz quadrada por meio de algoritmos.
Será usado neste artigo o IDE KDevelop 3.0.

[ Hits: 38.030 ]

Por: ronaldo em 25/01/2005


Desenvolvendo o algoritmo



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.

Página anterior     Próxima página

Páginas do artigo
   1. Iniciando um novo projeto
   2. Desenvolvendo o algoritmo
   3. Visualizando o código-fonte final
   4. Conclusão
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Bibliotecas estáticas c/c++

Introdução as Bibliotecas do C/C++

Inteiros e Strings na linguagem C

Mais sobre recursividade em C/C++

O ? Alternativo em C/C++

  
Comentários
[1] Comentário enviado por removido em 25/01/2005 - 11:48h

Excelente exemplo de como se programa!!!
Com pequenos trabalhos assim desperta-se muitas futuras vocações em progamadores que dão os primeiros passos...
;-))

[2] Comentário enviado por ice em 26/01/2005 - 22:40h

Muito bom pros iniciantes que estão aprendendo a programar

[3] Comentário enviado por Ti_j@der em 30/01/2005 - 15:12h

Muito bom....assim q tiver um tempo vou testar....ok

[4] Comentário enviado por dadowolf em 23/04/2005 - 02:02h

Muito bom, principalmente porque estou migrando do Delhi para o Linux e quero aprender um pouco de C. Excelente Parabens!

[5] Comentário enviado por goiabis em 12/07/2006 - 20:37h

já vou testar esse


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts