Menu
Coddy logo textTech

Итоги: Безопасное деление

Часть раздела Логика и управление потоком путешествия по C++ на Coddy — урок 53 из 56.

challenge icon

Задание

Легко

Создайте программу, которая реализует безопасное деление с использованием комплексной обработки исключений. Эта задача проверит вашу способность сочетать проектирование функций с управлением исключениями для корректной обработки ошибок деления на ноль.

Будут предоставлены следующие входные данные:

  • Число типа double numerator, представляющее делимое
  • Число типа double denominator, представляющее делитель

Ваша программа должна:

  1. Создать функцию с именем safeDivide, которая принимает два параметра типа double (numerator и denominator)
  2. Внутри функции проверить, равен ли знаменатель нулю
  3. Если знаменатель равен нулю, выполнить throw строки "Division by zero error"
  4. Если знаменатель не равен нулю, вычислить результат деления и вернуть его как double
  5. В функции main вызвать safeDivide внутри блока try с входными значениями
  6. Использовать блок catch для обработки выброшенного строкового исключения
  7. Вывести соответствующее сообщение в зависимости от того, успешно ли прошло деление или произошла ошибка

Используйте следующий точный формат вывода:

Для успешного деления:

Result: [division_result]

Для ошибки деления на ноль:

Error: Division by zero error

Помните, что если знаменатель равен нулю, ваша функция должна немедленно выполнить throw исключения перед попыткой деления. Блок catch должен указывать тип const char* для обработки выброшенного строкового литерала. Когда выбрасывается исключение, программа переходит непосредственно от оператора throw к соответствующему блоку catch, предотвращая выполнение деления на ноль и позволяя вашей программе корректно обработать ошибку вместо аварийного завершения.

Попробуйте сами

#include <iostream>
using namespace std;

int main() {
    // Чтение входных данных
    double numerator, denominator;
    cin >> numerator >> denominator;
    
    // TODO: Напишите свой код здесь
    // Создайте функцию safeDivide выше main()
    // Используйте блок try-catch для обработки исключений
    
    return 0;
}

Все уроки раздела Логика и управление потоком