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
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;
}
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.
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
gccacima é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
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.



