Menu
Coddy logo textTech

Récapitulatif - Division sécurisée

Fait partie de la section Logique et Flux du Journey C++ de Coddy — leçon 53 sur 56.

challenge icon

Défi

Facile

Créez un programme qui implémente une division sécurisée en utilisant une gestion complète des exceptions. Ce défi testera votre capacité à combiner la conception de fonctions avec la gestion des exceptions pour traiter gracieusement les erreurs de division par zéro.

Les entrées suivantes seront fournies :

  • Un double numerator représentant le nombre à diviser
  • Un double denominator représentant le nombre par lequel diviser

Votre programme doit :

  1. Créer une fonction nommée safeDivide qui prend deux paramètres de type double (numerator et denominator)
  2. À l'intérieur de la fonction, vérifier si le dénominateur est égal à zéro
  3. Si le dénominateur est zéro, throw la chaîne "Division by zero error"
  4. Si le dénominateur n'est pas zéro, calculer le résultat de la division et le retourner sous forme de double
  5. Dans la fonction principale, appeler safeDivide à l'intérieur d'un bloc try avec les valeurs d'entrée
  6. Utiliser un bloc catch pour gérer l'exception de chaîne de caractères lancée
  7. Afficher le message approprié selon que la division réussit ou échoue

Utilisez le format de sortie exact suivant :

Pour une division réussie :

Result: [division_result]

Pour une erreur de division par zéro :

Error: Division by zero error

N'oubliez pas que lorsque le dénominateur est zéro, votre fonction doit immédiatement throw une exception avant de tenter la division. Le bloc catch doit spécifier le type const char* pour gérer le littéral de chaîne lancé. Lorsqu'une exception est lancée, le programme passera directement de l'instruction throw au bloc catch correspondant, empêchant toute division par zéro de se produire et permettant à votre programme de gérer l'erreur proprement au lieu de planter.

Essayez vous-même

#include <iostream>
using namespace std;

int main() {
    // Lire l'entrée
    double numerator, denominator;
    cin >> numerator >> denominator;
    
    // TODO: Écrivez votre code ici
    // Créez la fonction safeDivide au-dessus de main()
    // Utilisez un bloc try-catch pour gérer les exceptions
    
    return 0;
}

Toutes les leçons de Logique et Flux