Menu
Coddy logo textTech

Podsumowanie — bezpieczne dzielenie

Część sekcji Logika i przepływ programu ścieżki C++ w Coddy. Lekcja 53 z 56.

challenge icon

Wyzwanie

Łatwy

Utwó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:

  1. Utworzyć funkcję o nazwie safeDivide, która przyjmuje dwa parametry typu double (numerator i denominator)
  2. Wewnątrz funkcji sprawdzić, czy denominator jest równe zero
  3. Jeśli denominator wynosi zero, użyć throw, aby zgłosić ciąg znaków "Division by zero error"
  4. Jeśli denominator nie wynosi zero, obliczyć wynik dzielenia i zwrócić go jako wartość typu double
  5. W funkcji głównej wywołać safeDivide wewnątrz bloku try, używając wartości wejściowych
  6. Użyć bloku catch, aby obsłużyć wyjątek z rzuconym ciągiem znaków
  7. 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 error

Pamię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

Poćwicz samodzielnie: Kompilator C++ online