Fala galera da programação, tudo beleza?
Hoje vamos montar nossas calculadoras! Acredito que seja um dos exercícios mais realizados entre os iniciantes. O desafio será encapsular as operações aritméticas em funções.
Vamos aos códigos!
/****************************************************************************** Criado pelo Professor Giovani Da Cruz https://giovanidacruz.com.br *******************************************************************************/ #include <iostream> // Função para realizar a adição float adicao(float num1, float num2) { return num1 + num2; } // Função para realizar a subtração float subtracao(float num1, float num2) { return num1 - num2; } // Função para realizar a multiplicação float multiplicacao(float num1, float num2) { return num1 * num2; } // Função para realizar a divisão float divisao(float num1, float num2) { if (num2 != 0) return num1 / num2; else { std::cout << "Erro: Divisão por zero!" << std::endl; return 0; } } int main() { float num1, num2; char operacao; std::cout << "Digite o primeiro número: "; std::cin >> num1; std::cout << "Digite o segundo número: "; std::cin >> num2; std::cout << "Escolha a operação (+, -, *, /): "; std::cin >> operacao; switch (operacao) { case '+': std::cout << "Resultado: " << adicao(num1, num2) << std::endl; break; case '-': std::cout << "Resultado: " << subtracao(num1, num2) << std::endl; break; case '*': std::cout << "Resultado: " << multiplicacao(num1, num2) << std::endl; break; case '/': std::cout << "Resultado: " << divisao(num1, num2) << std::endl; break; default: std::cout << "Operação inválida!" << std::endl; } return 0; }
Este programa solicita ao usuário dois números e a operação desejada (+, -, *, /). Em seguida, chama a função correspondente para realizar a operação selecionada e exibe o resultado. Note que a função de divisão verifica se o divisor é zero para evitar uma divisão por zero.
A estratégia utilizada neste código é criar quatro funções separadas, uma para cada operação matemática básica: adição, subtração, multiplicação e divisão. Cada uma dessas funções aceita dois números como entrada e retorna o resultado da operação correspondente.
Na função principal, o programa solicita ao usuário que insira dois números e a operação desejada. Em seguida, ele usa uma instrução switch
para determinar qual função chamar com base na operação selecionada pelo usuário. Depois de executar a operação, o programa exibe o resultado.
Essa abordagem de dividir o código em funções separadas para cada operação matemática facilita a leitura, manutenção e reutilização do código. Além disso, ao separar as operações em funções, o código fica mais organizado e modular.
/****************************************************************************** Criado pelo Professor Giovani Da Cruz https://giovanidacruz.com.br *******************************************************************************/ #include <stdio.h> // Função para realizar a adição float adicao(float num1, float num2) { return num1 + num2; } // Função para realizar a subtração float subtracao(float num1, float num2) { return num1 - num2; } // Função para realizar a multiplicação float multiplicacao(float num1, float num2) { return num1 * num2; } // Função para realizar a divisão float divisao(float num1, float num2) { if (num2 != 0) return num1 / num2; else { printf("Erro: Divisão por zero!\n"); return 0; } } int main() { float num1, num2; char operacao; printf("Digite o primeiro número: "); scanf("%f", &num1); printf("Digite o segundo número: "); scanf("%f", &num2); printf("Escolha a operação (+, -, *, /): "); scanf(" %c", &operacao); switch (operacao) { case '+': printf("Resultado: %.2f\n", adicao(num1, num2)); break; case '-': printf("Resultado: %.2f\n", subtracao(num1, num2)); break; case '*': printf("Resultado: %.2f\n", multiplicacao(num1, num2)); break; case '/': printf("Resultado: %.2f\n", divisao(num1, num2)); break; default: printf("Operação inválida!\n"); } return 0; }
Esta versão em C segue a mesma lógica do programa em C++, mas utilizando a sintaxe da linguagem C.
(****************************************************************************** Criado pelo Professor Giovani Da Cruz https://giovanidacruz.com.br *******************************************************************************) program Calculadora; // Função para realizar a adição function adicao(num1, num2: real): real; begin adicao := num1 + num2; end; // Função para realizar a subtração function subtracao(num1, num2: real): real; begin subtracao := num1 - num2; end; // Função para realizar a multiplicação function multiplicacao(num1, num2: real): real; begin multiplicacao := num1 * num2; end; // Função para realizar a divisão function divisao(num1, num2: real): real; begin if num2 <> 0 then divisao := num1 / num2 else begin writeln('Erro: Divisão por zero!'); divisao := 0; end; end; var num1, num2: real; operacao: char; resultado: real; begin write('Digite o primeiro número: '); readln(num1); write('Digite o segundo número: '); readln(num2); write('Escolha a operação (+, -, *, /): '); readln(operacao); case operacao of '+': resultado := adicao(num1, num2); '-': resultado := subtracao(num1, num2); '*': resultado := multiplicacao(num1, num2); '/': resultado := divisao(num1, num2); else writeln('Operação inválida!'); exit; end; writeln('Resultado: ', resultado:0:2); end.
Explicação:
real
(números de ponto flutuante) e retorna um resultado do mesmo tipo.begin...end
):
num1
, num2
e operacao
, todas do tipo real
.resultado
também é uma variável do tipo real
, usada para armazenar o resultado da operação.write
e readln
, o programa solicita ao usuário que insira dois números e a operação desejada.num1
, num2
e operacao
.case of
, o programa determina qual função chamar com base na operação selecionada pelo usuário.resultado
.writeln
.:0:2
especifica que o número será exibido sem casas decimais e com duas casas decimais, garantindo que o resultado seja apresentado corretamente.Essa implementação em Pascal segue a mesma lógica das versões em C e C++, mas com as características próprias da linguagem Pascal.
''' Criado pelo Professor Giovani Da Cruz https://giovanidacruz.com.br ''' # Função para realizar a adição def adicao(num1, num2): return num1 + num2 # Função para realizar a subtração def subtracao(num1, num2): return num1 - num2 # Função para realizar a multiplicação def multiplicacao(num1, num2): return num1 * num2 # Função para realizar a divisão def divisao(num1, num2): if num2 != 0: return num1 / num2 else: print("Erro: Divisão por zero!") return 0 num1 = float(input("Digite o primeiro número: ")) num2 = float(input("Digite o segundo número: ")) operacao = input("Escolha a operação (+, -, *, /): ") if operacao == '+': print("Resultado:", adicao(num1, num2)) elif operacao == '-': print("Resultado:", subtracao(num1, num2)) elif operacao == '*': print("Resultado:", multiplicacao(num1, num2)) elif operacao == '/': print("Resultado:", divisao(num1, num2)) else: print("Operação inválida!")
Neste código Python:
num1
e num2
e retorna o resultado da operação correspondente.
/****************************************************************************** Criado pelo Professor Giovani Da Cruz https://giovanidacruz.com.br *******************************************************************************/ using System; class Calculadora { // Função para realizar a adição static float Adicao(float num1, float num2) { return num1 + num2; } // Função para realizar a subtração static float Subtracao(float num1, float num2) { return num1 - num2; } // Função para realizar a multiplicação static float Multiplicacao(float num1, float num2) { return num1 * num2; } // Função para realizar a divisão static float Divisao(float num1, float num2) { if (num2 != 0) return num1 / num2; else { Console.WriteLine("Erro: Divisão por zero!"); return 0; } } static void Main(string[] args) { float num1, num2; char operacao; Console.Write("Digite o primeiro número: "); num1 = float.Parse(Console.ReadLine()); Console.Write("Digite o segundo número: "); num2 = float.Parse(Console.ReadLine()); Console.Write("Escolha a operação (+, -, *, /): "); operacao = char.Parse(Console.ReadLine()); switch (operacao) { case '+': Console.WriteLine("Resultado: " + Adicao(num1, num2)); break; case '-': Console.WriteLine("Resultado: " + Subtracao(num1, num2)); break; case '*': Console.WriteLine("Resultado: " + Multiplicacao(num1, num2)); break; case '/': Console.WriteLine("Resultado: " + Divisao(num1, num2)); break; default: Console.WriteLine("Operação inválida!"); break; } } }
Neste código em C#:
num1
e num2
e retorna o resultado da operação correspondente.
/****************************************************************************** Criado pelo Professor Giovani Da Cruz https://giovanidacruz.com.br *******************************************************************************/ import java.util.Scanner; public class Calculadora { // Método para realizar a adição public static double adicao(double num1, double num2) { return num1 + num2; } // Método para realizar a subtração public static double subtracao(double num1, double num2) { return num1 - num2; } // Método para realizar a multiplicação public static double multiplicacao(double num1, double num2) { return num1 * num2; } // Método para realizar a divisão public static double divisao(double num1, double num2) { if (num2 != 0) return num1 / num2; else { System.out.println("Erro: Divisão por zero!"); return 0; } } public static void main(String[] args) { Scanner scanner = new Scanner(System.in); double num1, num2; char operacao; System.out.print("Digite o primeiro número: "); num1 = scanner.nextDouble(); System.out.print("Digite o segundo número: "); num2 = scanner.nextDouble(); System.out.print("Escolha a operação (+, -, *, /): "); operacao = scanner.next().charAt(0); switch (operacao) { case '+': System.out.println("Resultado: " + adicao(num1, num2)); break; case '-': System.out.println("Resultado: " + subtracao(num1, num2)); break; case '*': System.out.println("Resultado: " + multiplicacao(num1, num2)); break; case '/': System.out.println("Resultado: " + divisao(num1, num2)); break; default: System.out.println("Operação inválida!"); } } }
Neste código Java:
Calculadora
.num1
e num2
e retorna o resultado da operação correspondente.main
, o programa solicita ao usuário que insira dois números e a operação desejada.
/****************************************************************************** Criado pelo Professor Giovani Da Cruz https://giovanidacruz.com.br *******************************************************************************/ use std::io; // Função para realizar a adição fn adicao(num1: f64, num2: f64) -> f64 { num1 + num2 } // Função para realizar a subtração fn subtracao(num1: f64, num2: f64) -> f64 { num1 - num2 } // Função para realizar a multiplicação fn multiplicacao(num1: f64, num2: f64) -> f64 { num1 * num2 } // Função para realizar a divisão fn divisao(num1: f64, num2: f64) -> f64 { if num2 != 0.0 { num1 / num2 } else { println!("Erro: Divisão por zero!"); 0.0 } } fn main() { let mut num1 = String::new(); let mut num2 = String::new(); let mut operacao = String::new(); println!("Digite o primeiro número: "); io::stdin().read_line(&mut num1).expect("Falha ao ler entrada."); let num1: f64 = num1.trim().parse().expect("Erro ao converter número."); println!("Digite o segundo número: "); io::stdin().read_line(&mut num2).expect("Falha ao ler entrada."); let num2: f64 = num2.trim().parse().expect("Erro ao converter número."); println!("Escolha a operação (+, -, *, /): "); io::stdin().read_line(&mut operacao).expect("Falha ao ler entrada."); let operacao: char = operacao.trim().chars().next().expect("Nenhuma operação fornecida."); let resultado = match operacao { '+' => adicao(num1, num2), '-' => subtracao(num1, num2), '*' => multiplicacao(num1, num2), '/' => divisao(num1, num2), _ => { println!("Operação inválida!"); 0.0 } }; println!("Resultado: {}", resultado); }
Neste código Rust:
num1
e num2
e retorna o resultado da operação correspondente.main
, o programa solicita ao usuário que insira dois números e a operação desejada.
Nesta atividade, exploramos a criação de uma calculadora simples que realiza as quatro operações básicas (adição, subtração, multiplicação e divisão) com dois números inseridos pelo usuário. Utilizamos funções para organizar o código em blocos reutilizáveis, permitindo uma melhor modularidade e manutenção do programa.
Além disso, praticamos a solicitação e leitura de dados do usuário, a seleção de ramo para executar diferentes blocos de código com base na entrada do usuário e a manipulação de erros, como divisão por zero.
Esse exercício foi uma ótima oportunidade para consolidar conceitos fundamentais de programação, como lógica de programação, manipulação de funções e interação com o usuário. Essas habilidades são essenciais para construir programas mais complexos e resolver uma variedade de problemas de maneira eficiente.
Beleza pessoal? Espero que tenham gostado.
Dúvidas ou sugestões de outras linguagens? Deixe o seu comentário!
Um abraço e até o próximo post. Valeu!
#CalculadoraBasica
#ProgramacaoInterativa
#FuncoesEmAcao
#GiovaniDaCruz
Fala galera da programação, tudo beleza? 📅💻 Explore a manipulação de datas e descubra como calcular o dia anterior em várias linguagens de programação! Aprenda algoritmos, lógica condicional e muito mais neste desafio divertido. Considerações Para facilitar, considerar que os anos bissextos são aqueles divisíveis por 4. Assim o mês 2 (fevereiro) possui 28 […]
Fala galera da programação, tudo beleza? Vamos a um novo exercício de algoritmos com desvio condicional. Desafie suas habilidades de programação com este exercício simples de cálculo de estacionamento em diversas linguagens! 🚗💻 Aprenda e pratique condicionais, entrada/saída e sintaxe em várias linguagens. Dicas para o exercício Lembrar que pode ser informado 0 no tempo […]
Fala galera da programação, tudo beleza? 💻 Novo exercício na área para aprimorar a nossa lógica de programação. Dica do exercício: Para simplificar o problema, converta cada par de valores em um único valor em minutos. 🕒 O que podemos aprender neste exercício? Neste exercício, podemos aprender várias coisas: Manipulação de Entrada/Saída: Aprendemos como […]
Fala galera da programação, tudo beleza? Novo algoritmo na área com o tema desvio condicional. Hoje vamos explorar uma variedade de linguagens de programação! 🚀 Comparando diferentes abordagens para resolver um problema simples: determinar se um número é zero, positivo ou negativo. Da sintaxe às estruturas condicionais, mergulhamos na essência de cada linguagem. O […]
Fala galera da programação, tudo beleza? Hoje vamos descubra como este simples exercício de programação em várias linguagens pode fortalecer suas habilidades de codificação! 🚀 Aprenda a calcular médias de notas e determinar a aprovação ou reprovação de alunos em C++, C, Pascal, Python, C#, Java, Rust e Go. O que podemos aprender neste […]
Fala galera da programação, tudo beleza? O exercício pede para verificar se o número lido possui determinada característica. Ela é conhecida como “Número Kaprekar”. Um número de Kaprekar é um inteiro positivo cuja representação em quadrados de seus dígitos pode ser dividida em duas partes que somam o número original quando somadas. O exemplo […]
Fala galera da programação, tudo beleza? Hoje um novo exercício de calculadora para aprimorar nossa lógica de programação. Dicas do exercício Em duas situações, o programa não deverá efetuar o cálculo: Se o operador informado pelo usuário for inválido mostrar a mensagem “Operador inválido” e encerrar a execução do programa. Se o segundo operando […]
Fala galera da programação, tudo beleza? Lá vamos nós a mais um interessante exercício. Dados do Exercício Formulas Para Homens: ( 72.7 * altura ) – 58 Para Mulheres: ( 62.1 * altura) – 44.7 Mais dicas A altura da pessoa é um valor real. O sexo da pessoa deverá ser identificado através […]
Fala galera da programação, tudo beleza? Vamos a um novo exercício para aprimorarmos nossas habilidades. Aqui existem dados importantes para podermos realizar a tarefa. Dados do exercício Tabela de códigos: código = 1: multiplicar os três valores código = 2: somar os três valores código = 3: subtrair os três valores código = 4: […]
Fala galera da programação, tudo beleza? Quer aprimorar suas habilidades com estruturas condicionais? Explore este desafio de aprendizado de if-else. O que podemos aprender neste exercício? Neste exercício, aprendemos a: Solicitar entrada do usuário: Aprendemos a solicitar entrada do usuário para obter informações necessárias para o programa, como a idade do nadador. Isso é útil […]