Escreva um código em C 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:
  1. Ler os valores A e B que o usuário vai inserir.
  2. Chamar a função de menu para obter a opção de operação que o usuário deseja.
  3. 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:
  1. Declarar duas variáveis para armazenar os números A e B.
  2. Ler esses valores usando scanf.
  3. Chamar a função menu() para obter a operação.
  4. Usar uma estrutura switch para determinar qual operação executar com base na escolha do usuário.
  5. 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:
  1. O programa começa na função main(), onde solicita que o usuário digite dois números, A e B.
  2. 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.
  3. Com a opção escolhida, o switch na função main() 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.
  4. 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.

Exercícios relacionados