TURBO PASCAL |
Новости
|
Тексты программ
Программа определения дня недели
{Эта программа вводит дату в формате ДЦ ММ ГГГГ к выводит на экран соответствующий этой дате день недели. Описание программы см. п. 2. 7.1.} var IsCorrectDate: Boolean; {Признак правильной даты} d,m,y : Integer; {Вводимая дата - день, месяц и год} {---------------} Procedure InputDate (var d,m,y : Integer; var correctly : Boolean); {Вводит в переменные d, m и у очередную дату и проверяет ее. Если дата правильная, устанавливает correctly=true, иначе correctly= false } begin {InputDate} Write ( 'Введите дату в формате ДД ММ ГГГГ: '); ReadLn(d,m,y) ; correctly := (d>=l) and (d<=31) and (m>=l) and (m<=12) and (y>=1582) and (y<=4903) end; {InputDate} {----------------} Procedure WriteDay (d,m,y : Integer) ; const Days_of_week : array [0..6] of String [11] = ( ' воскресенье ' , ' понедельник ' , ' вторник ' , ' среда ' , ' четверг ' , ' пятница ' , ' суббота ' ) ; var с, w : Integer; begin if m < 3 then begin {Месяц январь или февраль} m := m + 10; у := у - 1 end else m := m - 2; {Остальные месяцы} с := у 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; WriteLn (Days_of_week [w] ) end; {------------} begin repeat InputDate (d,m,y, IsCorrectDate) ; if IsCorrectDate then WriteDay (d,m, у ) until not IsCorrectDate end.
|
(с)Все права защищены По всем интересующим вопросам прошу писать на электронный адрес |