Найти количество дней в году - Pascal
Формулировка задачи:
Здравствуйте, помогите пожалуйста с работой
Надо найти сколько дней в течение одного года и необязательно делать календарь, но используя 3D массив находим кол-во дней
Решение задачи: «Найти количество дней в году»
textual
Листинг программы
const yr: array [boolean, boolean, boolean] of byte =
//not div 100 V V div 100
(((0, 0), // not div 4, not div 400
(0, 0)), // not div 4, div 400 (impossible)
((1, 0), // div 4, not div 400
(1, 1))); // div 4, div 400
var
y: integer;
begin
repeat
write('Year: ');
readln(y);
if y < 1 then writeln('Invalid year, reenter.')
until y >= 1;
writeln('Days: ', 365 + yr[y mod 4 = 0, y mod 400 = 0, y mod 100 = 0]);
readln
end.
Объяснение кода листинга программы
const yr: array [boolean, boolean, boolean] of byte =- Это объявление константного массива
yr. Массив содержит значения типаbyteи индексируется тремя булевыми значениями.
- Это объявление константного массива
(((0, 0), (0, 0)),- Первое значение в массиве
yr. Оно представляет случай, когда год не делится на 4 и не делится на 100, что означает невисокосный год.
- Первое значение в массиве
((1, 0), (1, 1)));- Второе значение в массиве
yr. Оно представляет случай, когда год делится на 4, но не делится на 100 или делится на 400, что означает високосный год.
- Второе значение в массиве
var y: integer;- Это объявление переменной
yтипаinteger, которая будет использоваться для хранения введенного пользователем года.
- Это объявление переменной
begin- Начало основной части программы.
repeat- Начало цикла повторения, в котором пользователю предлагается ввести значение для переменной y.
write('Year: ');- Вывод пользователю приглашения ввести значение года.
readln(y);- Считывание значения, введенного пользователем, и присваивание его переменной
y.
- Считывание значения, введенного пользователем, и присваивание его переменной
if y < 1 then writeln('Invalid year, reenter.')- Проверка, является ли введенный год отрицательным. Если это так, программа выводит сообщение об ошибке.
until y >= 1;- Завершение цикла повторения, если введенный год корректен (больше или равен 1).
writeln('Days: ', 365 + yr[y mod 4 = 0, y mod 400 = 0, y mod 100 = 0]);- Вывод количества дней в году в зависимости от введенного значения. Формула
365 + yr[y mod 4 = 0, y mod 400 = 0, y mod 100 = 0]используется для определения числа дней в году. Ее значение зависит от того, делится ли год на 4, на 400 и на 100.
- Вывод количества дней в году в зависимости от введенного значения. Формула
readln- Ожидание ввода данных пользователем перед завершением программы.