Задание 1. Напишите программу, которая определяет количество дней, прошедших с начала года по заданной дате (числу и месяцу), если год не является високосным. Подсказка: для решения задачи можно использовать массив a [1..12], где каждый элемент представляет собой количество дней в соответствующем месяце. Пример на Паскале:
Информатика 10 класс Алгоритмы и программирование программа на Паскале количество дней в году не високосный год определение даты массив дней месяца информатика задание вычисление дней алгоритм на Паскале работа с массивами программирование на паскале Новый
Для решения задачи по определению количества дней, прошедших с начала года по заданной дате, мы можем воспользоваться массивом, который будет хранить количество дней в каждом месяце. Поскольку год не является високосным, количество дней в месяцах будет фиксированным. Давайте разберем шаги, необходимые для написания программы на языке Паскаль.
Шаги решения:
Создадим массив, где каждый элемент будет представлять количество дней в соответствующем месяце. Для невисокосного года массив будет выглядеть так:
Пользователь должен ввести день и месяц. Мы будем использовать переменные для хранения этих значений.
Для определения количества дней, прошедших с начала года, необходимо суммировать количество дней в месяцах, предшествующих введенному месяцу, и добавить количество дней из текущего месяца.
После выполнения расчетов выведем результат на экран.
Теперь давайте напишем саму программу на Паскале:
program DaysInYear; var day, month, totalDays: integer; daysInMonth: array[1..12] of integer; begin { Инициализация массива с количеством дней в каждом месяце } daysInMonth[1] := 31; daysInMonth[2] := 28; daysInMonth[3] := 31; daysInMonth[4] := 30; daysInMonth[5] := 31; daysInMonth[6] := 30; daysInMonth[7] := 31; daysInMonth[8] := 31; daysInMonth[9] := 30; daysInMonth[10] := 31; daysInMonth[11] := 30; daysInMonth[12] := 31; { Ввод дня и месяца } writeln('Введите день:'); readln(day); writeln('Введите месяц:'); readln(month); { Проверка на корректность введенных данных } if (month < 1) or (month > 12) or (day < 1) or (day > daysInMonth[month]) then begin writeln('Некорректная дата!'); exit; end; { Расчет количества дней с начала года } totalDays := 0; for var i := 1 to month - 1 do totalDays := totalDays + daysInMonth[i]; totalDays := totalDays + day; { Вывод результата } writeln('Количество дней, прошедших с начала года: ', totalDays); end.
В этой программе мы сначала инициализируем массив с количеством дней в каждом месяце. Затем запрашиваем у пользователя ввод дня и месяца, проверяем корректность введенных данных и, если все в порядке, вычисляем общее количество дней с начала года, суммируя дни предыдущих месяцев и добавляя дни текущего месяца. В конце выводим результат на экран.