Criando uma Calculadora Simples Usando C

CBeginner
Pratique Agora

Introdução

Neste projeto, aprenderemos como criar uma calculadora simples usando a linguagem de programação C. A calculadora será capaz de realizar operações aritméticas básicas, como adição, subtração, multiplicação e divisão. Também implementaremos verificações para garantir que a entrada do usuário seja válida e lidaremos com casos em que a entrada leva a um comportamento indefinido.

👀 Pré-visualização

$ ./Calculator
32+11
=43.000000

$ ./Calculator
41-34.9
=6.100000

$ ./Calculator
10/2
=5.000000

$ ./Calculator
2*4
=8.000000

$ ./Calculator
10%3
=1

🎯 Tarefas

Neste projeto, você aprenderá:

  • Como obter a entrada do usuário em C usando scanf()
  • Como verificar o formato da expressão aritmética de entrada
  • Como realizar cálculos aritméticos com base na entrada do usuário
  • Como lidar com erros de divisão por zero
  • Como implementar o operador de resto apenas para operandos inteiros

🏆 Conquistas

Após concluir este projeto, você será capaz de:

  • Entender como obter a entrada do usuário em C
  • Implementar diferentes operações aritméticas em C
  • Realizar verificação de erros e lidar com entradas inválidas
  • Compilar e executar programas C usando o compilador gcc
Este é um Lab Guiado, que fornece instruções passo a passo para ajudá-lo a aprender e praticar. Siga as instruções cuidadosamente para completar cada etapa e ganhar experiência prática. Dados históricos mostram que este é um laboratório de nível iniciante com uma taxa de conclusão de 87%. Recebeu uma taxa de avaliações positivas de 100% dos estudantes.

Obter Entrada do Usuário

Obter a entrada do usuário é muito simples, você pode usar as funções de entrada e saída formatadas da linguagem C printf() e scanf().

Aqui está o código do programa responsável por ler a entrada do usuário:

#include<stdio.h>
int main()
{
   double number1=0.0;     // Define the first operand
   double number2=0.0;     // Define the second operand
   char operation=0;       // operation should be '+' '-' '*' '/' or '%'

   printf("\nEnter the calculation\n");
   scanf("%lf%c%lf",&number1,&operation,&number2);

   return 0;
}
✨ Verificar Solução e Praticar

Verificando o Formato e Realizando Cálculos

A próxima funcionalidade que nosso programa precisa implementar é verificar o formato da expressão aritmética de entrada.

A verificação mais básica é determinar se a operação especificada na expressão de entrada é válida. As operações válidas são +, -, *, /, %, então precisamos verificar se a operação de entrada pertence a este conjunto.

Além disso, é importante notar que quando a operação é / ou %, o segundo operando não pode ser 0. Se for 0, a operação é inválida.

A lógica para essas verificações pode ser implementada usando instruções if. Alternativamente, uma instrução switch fornece uma maneira melhor e mais concisa de lidar com isso. É mais fácil de entender e menos verboso em comparação com uma série de instruções if.

switch(operation)
{
    case '+':
        printf("=%lf\n",number1+number2);
        break;

    case '-':
        printf("=%lf\n",number1-number2);
        break;

    case '*':
        printf("=%lf\n",number1*number2);
        break;

    case '/':
        if(number2==0)
            printf("\n\n\aDivision by zero error!\n");
        else
            printf("=%lf\n",number1/number2);
        break;

    case '%':
        if((long)number2==0)
            printf("\n\n\aDivision by zero error!\n");
        else
            printf("=%ld\n",(long)number1%(long)number2);
        break;

    default:
        printf("\n\n\aInvalid operation!\n");
        break;
}

O operador de resto % não é significativo para os tipos float ou double, pois eles podem representar resultados precisos. O operador % é significativo apenas quando aplicado a tipos inteiros. Portanto, antes de aplicar este operador, os operandos precisam ser convertidos em inteiros. Quando o operador é %, o segundo operando é convertido em um inteiro. Portanto, não é suficiente apenas verificar se o segundo operando é 0, mas também se o valor de number2 é 0. quando convertido para um long. Por exemplo, 0.5 não é 0, mas quando convertido em um inteiro, torna-se 0.

✨ Verificar Solução e Praticar

Compilando e Executando Arquivos

Após escrever o arquivo do programa, você pode compilar o arquivo fonte para obter um arquivo executável. O comando para compilar é o seguinte:

gcc -o Calculator Calculator.c

Nota: O formato do comando gcc acima é gcc -o nome_do_arquivo_de_saida nome_do_arquivo_fonte.c. Se nenhum "nome_do_arquivo_de_saida" for fornecido, o nome do arquivo de saída padrão é a.out.

Neste ponto, você notará um novo arquivo chamado Calculator no diretório. Este é o arquivo executável que obtivemos após compilar e vincular o arquivo fonte. Para executá-lo, use o comando ./Calculator.

./Calculator
$ ./Calculator
32+11
=43.000000

$ ./Calculator
41-34.9
=6.100000

$ ./Calculator
10/2
=5.000000

$ ./Calculator
2*4
=8.000000

$ ./Calculator
10%3
=1
✨ Verificar Solução e Praticar

Resumo

Neste projeto, usamos a linguagem C para criar uma calculadora simples. Atualmente, a calculadora tem funcionalidade limitada e só pode suportar cálculos básicos com dois operandos. Os alunos podem continuar a expandir esta calculadora, como adicionar suporte para múltiplos operandos ou introduzir mecanismos de precedência de operadores.