По введенной дате вычислить день, который был девять дней назад - Pascal ABC
Формулировка задачи:
по введенной дате вычеслить день, который был девять дней назад. при этом учитывать что если год кратен четырем,то в этом году в феврале 20 дней.
Решение задачи: «По введенной дате вычислить день, который был девять дней назад»
textual
Листинг программы
uses CRT; procedure GetDay(var d, m, y: integer);var correct: byte; begin correct:=1; repeat writeLn('Введите дату.'); write('День - '); readLn(d); write('Месяц - '); readLn(m); write('Год - '); readLn(y); if y<=4903 then if y>=1000 then correct:=0; until correct=0 end; procedure CountDay(d,m,y:integer); var week:array [0..6] of string[11];c,w,w1:integer; begin week[0] := 'воскресенье'; week[1] := 'понедельник'; week[2] := 'вторник'; week[3] := 'среда'; week[4] := 'четверг'; week[5] := 'пятница'; week[6] := 'суббота'; if m<3 then begin m:=m+10; y:=y-1 end else m:=m-2; c:=y div 100; y:=y mod 100; w:=abs(trunc(2.6*m-0.2)+d+y div 4+y+c div 4-2*c)mod 7; //текущая дата w1:=abs(trunc(2.6*m-0.2)+d+y div 4+y+c div 9-2*c)mod 7; //дата которая была 9 дней назад writeLn('Cоответствует день недели - ', week[w]); writeln('9 дней назад был(а) - ', week[w1]); end; var d,y,m: integer; begin ClrScr; GetDay(d,m,y);CountDay(d,m,y); end.
Объяснение кода листинга программы
- Программа использует процедуру
GetDay
, чтобы запросить у пользователя ввод даты в формате день, месяц, год. - Введенные значения сохраняются в переменных
d
,m
иy
. - Процедура
CountDay
использует массивweek
, чтобы определить день недели для введенной даты. - Если месяц меньше 3, то программа корректирует его значение, добавляя 10 к нему и вычитая 1 из года.
- Программа вычисляет день недели для текущей даты и для даты, которая была 9 дней назад, используя формулу
w1 := abs(trunc(2.6*m-0.2)+d+y div 4+y+c div 9-2*c)mod 7
. - Выводит на экран день недели для текущей даты и день недели для даты, которая была 9 дней назад.
- В основной части программы вызываются функции
GetDay
иCountDay
, чтобы получить введенную дату и вычислить день недели для этой даты и для даты, которая была 9 дней назад. - Программа завершается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д