Escreva um código em
utilizando uma função fora do main() para simular uma calculadora. Leia dois valores (A e B) na função main(), e faça o menu de opções (+ - / *) em uma função a parte que retorna a opção desejada para o main() realizar a operação.
Passo 1
Beleza, vamos lá! O exercício pede para a gente criar um programa em C que funcione como uma calculadora. A gente vai usar duas partes principais: a função
main()
, onde vamos ler dois números (A e B), e uma função separada que vai mostrar um menu com as opções de operações matemáticas básicas: adição (+), subtração (-), multiplicação (*) e divisão (/). Essa função de menu vai retornar a opção escolhida para a função main()
poder realizar a operação correspondente. Para resolver isso, vamos precisar entender como criar funções em C, como ler entradas do usuário e como usar estruturas de controle como switch-case para escolher a operação.Passo 2
Primeiro, vamos pensar na estrutura do nosso programa. Teremos a função
main()
, que será responsável por:- Ler os valores A e B que o usuário vai inserir.
- Chamar a função de menu para obter a opção de operação que o usuário deseja.
- Realizar a operação escolhida e mostrar o resultado.
A outra função, vamos chamar de
menu()
, vai apenas exibir as opções de operação e retornar a escolha do usuário.Passo 3
Vamos começar escrevendo a função
menu()
. Nessa função, a gente vai exibir as opções de operação e capturar a escolha do usuário. Para isso, usamos printf
para mostrar as opções e scanf
para ler a escolha. Depois, retornamos essa escolha para a função main()
.char menu() {
char opcao;
printf("Escolha a operação:\n");
printf("+ para Adição\n");
printf("- para Subtração\n");
printf("* para Multiplicação\n");
printf("/ para Divisão\n");
printf("Sua opção: ");
scanf(" %c", &opcao);
return opcao;
}
Aqui, a função
menu()
retorna um caractere que representa a operação escolhida.Passo 4
Agora, na função
main()
, vamos precisar:- Declarar duas variáveis para armazenar os números A e B.
- Ler esses valores usando
scanf
. - Chamar a função
menu()
para obter a operação. - Usar uma estrutura
switch
para determinar qual operação executar com base na escolha do usuário. - Calcular o resultado e exibir para o usuário.
Vamos passo a passo:
#include <stdio.h>
// Declaração da função menu
char menu();
int main() {
float A, B, resultado;
char opcao;
// Leitura dos valores A e B
printf("Digite o primeiro número (A): ");
scanf("%f", &A);
printf("Digite o segundo número (B): ");
scanf("%f", &B);
// Chama a função menu para obter a opção
opcao = menu();
// Realiza a operação com base na opção escolhida
switch(opcao) {
case '+':
resultado = A + B;
printf("Resultado: %.2f + %.2f = %.2f\n", A, B, resultado);
break;
case '-':
resultado = A - B;
printf("Resultado: %.2f - %.2f = %.2f\n", A, B, resultado);
break;
case '*':
resultado = A * B;
printf("Resultado: %.2f * %.2f = %.2f\n", A, B, resultado);
break;
case '/':
if(B != 0){
resultado = A / B;
printf("Resultado: %.2f / %.2f = %.2f\n", A, B, resultado);
} else {
printf("Erro: Divisão por zero não é permitida.\n");
}
break;
default:
printf("Opção inválida!\n");
}
return 0;
}
Vamos entender algumas partes importantes:
- Declaração de Variáveis: Estamos usando
float
para permitir números com casas decimais. - Leitura dos Valores: Usamos
scanf
para ler os números inseridos pelo usuário. - Estrutura
switch
: Ela verifica qual opção o usuário escolheu e executa o caso correspondente. Se a opção for inválida, informa o usuário. - Tratamento de Erro na Divisão: Verificamos se B é diferente de zero antes de dividir, para evitar erro de divisão por zero.
Resposta
Aqui está o código completo que simula uma calculadora em C usando uma função fora do
main()
para o menu de operações:#include <stdio.h>
// Declaração da função menu
char menu();
int main() {
float A, B, resultado;
char opcao;
// Leitura dos valores A e B
printf("Digite o primeiro número (A): ");
scanf("%f", &A);
printf("Digite o segundo número (B): ");
scanf("%f", &B);
// Chama a função menu para obter a opção
opcao = menu();
// Realiza a operação com base na opção escolhida
switch(opcao) {
case '+':
resultado = A + B;
printf("Resultado: %.2f + %.2f = %.2f\n", A, B, resultado);
break;
case '-':
resultado = A - B;
printf("Resultado: %.2f - %.2f = %.2f\n", A, B, resultado);
break;
case '*':
resultado = A * B;
printf("Resultado: %.2f * %.2f = %.2f\n", A, B, resultado);
break;
case '/':
if(B != 0){
resultado = A / B;
printf("Resultado: %.2f / %.2f = %.2f\n", A, B, resultado);
} else {
printf("Erro: Divisão por zero não é permitida.\n");
}
break;
default:
printf("Opção inválida!\n");
}
return 0;
}
char menu() {
char opcao;
printf("Escolha a operação:\n");
printf("+ para Adição\n");
printf("- para Subtração\n");
printf("* para Multiplicação\n");
printf("/ para Divisão\n");
printf("Sua opção: ");
scanf(" %c", &opcao);
return opcao;
}
Como funciona o programa:
- O programa começa na função
main()
, onde solicita que o usuário digite dois números, A e B. - Em seguida, chama a função
menu()
, que apresenta um menu de opções de operações matemáticas e retorna a escolha do usuário. - Com a opção escolhida, o
switch
na funçãomain()
executa a operação correspondente:- Adição (
+
): Soma A e B. - Subtração (
-
): Subtrai B de A. - Multiplicação (
*
): Multiplica A por B. - Divisão (
/
): Divide A por B, com verificação para não dividir por zero.
- Adição (
- O resultado da operação é então exibido na tela.
Esse código é básico e cumpre a proposta de simular uma calculadora simples, utilizando funções para organizar melhor o programa.