Иллюстрированный самоучитель по Tirbo Pascal


Вычисление дня недели - часть 4


const

Days_of_week: array [0..6] of String [11] =

('воскресенье','понедельник','вторник', 'среда','четверг','пятница','суббота');

В этом объявлении идентификатор Days_of_week описывается в разделе констант, однако справа от него указан тип данных (массив строк), как если бы описывалась переменная, а уже только после типа стоит знак равенства и заключенный в круглые скобки список элементов массива. В результате получим следующую процедуру:

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; {Вычисляем столетие} 

у := у 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;

Окончательный вариант программы приведен в прил.5.1.

 




- Начало -  - Назад -  - Вперед -