Menu
Coddy logo textTech

Recapitulação - Divisão Segura

Parte da seção Lógica & Fluxo do Journey de C++ da Coddy — lição 53 de 56.

challenge icon

Desafio

Fácil

Crie um programa que implemente a divisão segura usando o tratamento abrangente de exceções. Este desafio testará sua habilidade de combinar o design de funções com o gerenciamento de exceções para lidar com erros de divisão por zero de forma graciosa.

As seguintes entradas serão fornecidas:

  • Um double numerator representando o número a ser dividido
  • Um double denominator representando o número pelo qual dividir

Seu programa deve:

  1. Criar uma função chamada safeDivide que recebe dois parâmetros double (numerador e denominador)
  2. Dentro da função, verificar se o denominador é igual a zero
  3. Se o denominador for zero, use throw para lançar a string "Division by zero error"
  4. Se o denominador não for zero, calcule o resultado da divisão e retorne-o como um double
  5. Na função principal, chame safeDivide dentro de um bloco try com os valores de entrada
  6. Use um bloco catch para tratar a exceção de string lançada
  7. Imprima a mensagem apropriada com base no sucesso ou falha da divisão

Use o seguinte formato de saída exato:

Para divisão bem-sucedida:

Result: [division_result]

Para erro de divisão por zero:

Error: Division by zero error

Lembre-se de que quando o denominador for zero, sua função deve imediatamente usar throw para lançar uma exceção antes de tentar a divisão. O bloco catch deve especificar o tipo const char* para tratar a string literal lançada. Quando uma exceção é lançada, o programa saltará diretamente da instrução throw para o bloco catch correspondente, evitando que qualquer divisão por zero ocorra e permitindo que seu programa trate o erro graciosamente em vez de travar.

Experimente você mesmo

#include <iostream>
using namespace std;

int main() {
    // Ler entrada
    double numerator, denominator;
    cin >> numerator >> denominator;
    
    // TODO: Escreva seu código aqui
    // Crie a função safeDivide acima de main()
    // Use o bloco try-catch para lidar com exceções
    
    return 0;
}

Todas as lições de Lógica & Fluxo