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


Биоритмы - часть 5


даты}

begin {Variant3}

end; {Variant3}

{--------------------------}

begin {Get_numbers_of_days}

if (y = y0) and (m = m0) then {Даты отличаются только днями: } 

days := d - d0

else {Даты отличаются не только днями:}

begin

days := d + Size_of_Month [m0] - d0; 

{Учитываем количество дней в текущем месяце и количество дней до конца месяца рождения}  

if (y0 mod 4=0) and (m0 = 2) then

inc(days); {Учитываем високосный год} 

if у = y0 then

Variant2 {Разница в месяцах одного и того же года} 

else

Variant3 {Даты отличаются годами} 

end 

end; {Get_numbers_of_days}

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

Procedure Variant2 ;

{Подсчет количества дней в месяцах, разделяющих обе даты }

var

mm : Integer; 

begin {Variant2}

mm : = m0 ; 

while mm < m do 

begin

days := days + Size_of_Month [mm] ; 

if (mm = 2) and (y0 mod 4=0) then

inc (days) ; 

inc (mm) 

end 

end; {Variant2}

{--------------------------}

Procedure Variant3;

{Подсчет количества дней в месяцах и годах, разделяющих обе

даты }

var

mm/ УУ : Integer; 

begin {Variant3} 

mm : = m0 + 1 ;

while mm <= 12 do {Учитываем остаток года рождения:} 

begin

days := days+Size_of_Month [mm] ;

if (mm = 2) and (y0 mod 4=0) then

inc (days) ; 

inc (mm) 

end ;

yy := y0 + 1; 

while yy < у do {Прибавляем разницу лет:} 

begin

days : = days + 365;

if yy mod 4=0 then

inc (days) ; 

inc (yy)

end;

mm : = 1 ;

while mm < m do {Прибавляем начало текущего года:} 

begin

days := days + Size_of_Month [mm] ; 

if (y mod 4=0) and (mm = 2) then

inc (days) ;

inc (mm) 

end 

end; {Variant3}

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




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



Книжный магазин