Récapitulatif - Division sécurisée
Fait partie de la section Logique et Flux du Journey C++ de Coddy — leçon 53 sur 56.
Défi
FacileCré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
numeratorreprésentant le nombre à diviser - Un double
denominatorreprésentant le nombre par lequel diviser
Votre programme doit :
- Créer une fonction nommée
safeDividequi prend deux paramètres de type double (numerator et denominator) - À l'intérieur de la fonction, vérifier si le dénominateur est égal à zéro
- Si le dénominateur est zéro,
throwla chaîne"Division by zero error" - Si le dénominateur n'est pas zéro, calculer le résultat de la division et le retourner sous forme de double
- Dans la fonction principale, appeler
safeDivideà l'intérieur d'un bloctryavec les valeurs d'entrée - Utiliser un bloc
catchpour gérer l'exception de chaîne de caractères lancée - 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 errorN'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
1Pointeurs et mémoire
Qu'est-ce qu'un pointeur ?Opérateur d'adresseOpérateur de déréférencementPointeurs nulsPointeurs et tableauxMémoire dynamique avec 'new'Libérer la mémoire avec 'delete'Récapitulatif - Pratique des pointeurs2Vecteurs (Tableaux dynamiques)
Introduction à std::vectorCréer un vecteurAjouter des élémentsAccéder aux élémentsTaille d'un vecteurItérer avec une boucle ForBoucle For basée sur l'intervalleSupprimer des élémentsRécapitulatif - Opérations sur les vecteurs5Projet : Outil d'inventaire
Configuration du projetAjout et mise à jour d'articles8Gestion de base des erreurs
Introduction aux exceptionsLes blocs 'try' et 'catch'Le mot-clé 'throw'Les différents types d'exceptionsLe gestionnaire d'exceptions génériqueRécapitulatif - Division sécurisée3Projet : Outil de liste de tâches
Présentation du projetAjouter une tâche