Загрузка данных


Конечно! Мы можем переписать код без использования <stdexcept> и исключений. Вместо этого будем использовать простую проверку и вывод сообщений об ошибках в консоль. Вот обновлённый код:

#include <iostream>

std::string getDayOfWeek(int day, int month) {
    // Проверяем корректность месяца
    if (month < 1 || month > 12) {
        return "Ошибка: неверный месяц. Месяц должен быть от 1 до 12.";
    }

    // Количество дней в каждом месяце
    int daysInMonth[] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};

    // Проверяем корректность дня
    if (day < 1 || day > daysInMonth[month]) {
        return "Ошибка: неверный день. Проверьте количество дней в месяце.";
    }

    // Определяем день недели по простому алгоритму
    int totalDays = day;
    for (int m = 1; m < month; m++) {
        totalDays += daysInMonth[m];
    }
    
    // Простой алгоритм: делим общее количество дней на 7
    // Допустим, что 1 января 2023 - это воскресенье (день 0)
    int dayOfWeek = totalDays % 7;

    // Массив с названиями дней недели
    std::string days[] = {"Воскресенье", "Понедельник", "Вторник", "Среда", "Четверг", "Пятница", "Суббота"};

    return days[dayOfWeek];
}

int main() {
    int day, month;

    std::cout << "Введите день и месяц: ";
    std::cin >> day >> month;

    std::string result = getDayOfWeek(day, month);
    
    // Если результат - сообщение об ошибке, выводим его
    if (result.find("Ошибка") != std::string::npos) {
        std::cout << result << std::endl;
    } else {
        std::cout << "День недели: " << result << std::endl;
    }

    return 0;
}


▎Объяснение изменений:

1. Удаление <stdexcept>: Мы убрали библиотеку, так как теперь не используем исключения.
2. Возврат строк с сообщениями об ошибках: Вместо выброса исключений функция getDayOfWeek теперь возвращает строку с сообщением об ошибке, если входные данные неверны.
3. Проверка результата: В функции main() мы проверяем, содержит ли результат слово "Ошибка". Если да, то выводим сообщение об ошибке; если нет — выводим день недели.

Таким образом, код остаётся простым и понятным для начинающих программистов.