Podsumowanie — bezpieczne dzielenie
Część sekcji Logika i przepływ programu ścieżki C++ w Coddy. Lekcja 53 z 56.
Wyzwanie
ŁatwyUtwórz program, który implementuje bezpieczne dzielenie z użyciem kompleksowej obsługi wyjątków. To wyzwanie sprawdzi Twoją umiejętność łączenia projektowania funkcji z obsługą wyjątków, aby prawidłowo obsługiwać błędy dzielenia przez zero.
Podane zostaną następujące dane wejściowe:
- Liczba typu double
numerator, która reprezentuje liczbę do podzielenia - Liczba typu double
denominator, która reprezentuje liczbę, przez którą należy dzielić
Twój program powinien:
- Utworzyć funkcję o nazwie
safeDivide, która przyjmuje dwa parametry typu double (numeratoridenominator) - Wewnątrz funkcji sprawdzić, czy
denominatorjest równe zero - Jeśli
denominatorwynosi zero, użyćthrow, aby zgłosić ciąg znaków"Division by zero error" - Jeśli
denominatornie wynosi zero, obliczyć wynik dzielenia i zwrócić go jako wartość typu double - W funkcji głównej wywołać
safeDividewewnątrz blokutry, używając wartości wejściowych - Użyć bloku
catch, aby obsłużyć wyjątek z rzuconym ciągiem znaków - Wypisać odpowiedni komunikat w zależności od tego, czy dzielenie się powiedzie, czy nie
Użyj dokładnie następującego formatu wyjściowego:
W przypadku udanego dzielenia:
Result: [division_result]W przypadku błędu dzielenia przez zero:
Error: Division by zero errorPamiętaj, że gdy denominator wynosi zero, Twoja funkcja powinna natychmiast zgłosić wyjątek za pomocą throw, zanim spróbuje wykonać dzielenie. Blok catch powinien określać typ const char*, aby obsłużyć rzucony literał ciągu znaków. Gdy wyjątek zostanie zgłoszony, program przejdzie bezpośrednio od instrukcji throw do pasującego bloku catch, zapobiegając dzieleniu przez zero i pozwalając programowi prawidłowo obsłużyć błąd zamiast ulec awarii.
Spróbuj swoich sił
#include <iostream>
using namespace std;
int main() {
// Wczytaj dane wejściowe
double numerator, denominator;
cin >> numerator >> denominator;
// TODO: Napisz tutaj swój kod
// Utwórz funkcję safeDivide powyżej main()
// Użyj bloku try-catch do obsługi wyjątków
return 0;
}Wszystkie lekcje w sekcji Logika i przepływ programu
1Wskaźniki i pamięć
Czym jest wskaźnik?Operator pobrania adresuOperator dereferencjiWskaźniki zeroweWskaźniki i tabliceDynamiczne zarządzanie pamięcią za pomocą „new”Zwalnianie pamięci za pomocą „delete”Podsumowanie — ćwiczenia ze wskaźnikami2Wektory (tablice dynamiczne)
Wprowadzenie do std::vectorTworzenie wektoraDodawanie elementówDostęp do elementówRozmiar wektoraIterowanie za pomocą pętli forPętla for oparta na zakresieUsuwanie elementówPodsumowanie — operacje na wektorach5Projekt: Narzędzie do zarządzania zapasami
Konfiguracja projektuDodawanie i aktualizowanie produktów8Podstawy obsługi błędów
Wprowadzenie do wyjątkówBloki „try” i „catch”Słowo kluczowe „throw”Różne typy wyjątkówObsługa wszystkich wyjątkówPodsumowanie — bezpieczne dzielenie3Projekt: narzędzie do listy zadań
Przegląd projektuDodawanie zadaniaPoćwicz samodzielnie: Kompilator C++ online