Задание 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.
В этой программе мы сначала инициализируем массив с количеством дней в каждом месяце. Затем запрашиваем у пользователя ввод дня и месяца, проверяем корректность введенных данных и, если все в порядке, вычисляем общее количество дней с начала года, суммируя дни предыдущих месяцев и добавляя дни текущего месяца. В конце выводим результат на экран.