Program zap;

Typepupil = Record

fam : string[15]; {поле фамилии}

b1,b2,b3,b4,b5 : 2..5; {поля баллов}

sb : Real {средний бал}

End;

Varklass : array[1..25] Of pupil;

p: pupl;

i,m : integer;

sbmax : real;

Begin

for i:=1 to 25 do

with klass[i] do

Begin

writeln(‘Введите фамилию и пять оценок’);

readln(fam);

readln(b1,b2,b3,b4,b5);

End;

for i:=1 to m do {вычисление среднего балла}

with klass[i] do sb:=(b1+b2+b3+b4+b5)/5;

sbmax:=0;

{ поиск максимального среднего балла}

for i:=1 to m do

if klass[i].sb>=sbmax then sbmax:=klass[i].sb;

for i:=1 to m do {печать результатов}

if klass[i].sb=sbmax

then with klass[i] do writeln(fam:20,’ - ‘, sb:6:3);

End.

Пример.Определите дату завтрашнего дня.

Чтобы определить дату завтрашнего дня, надо знать не только дату сегодняшнего дня, но и количество дней в данном месяце (так как если это последний день месяца, то завтра будет первый день следующего), кроме того, надо знать, какой год - високосный или нет.

Пусть дата вводится в формате число - месяц - год следующим образом:

1 2 1997

Опишем запись для хранения даты таким образом:

Typeyear=1500..2000;

month=1..12;

day=1..31;

data = Record

y : year;

m : month;

d : day;

End;

Заметим, что :

* если дата соответствует не последнему дню месяца, то год и месяц не изменяются, а число увеличивается на 1;

* если дата соответствует последнему дню месяца, то :

а) если месяц не декабрь, то год не изменяется, месяц увеличивается на 1, а число устанавливается в 1;

б) если месяц - декабрь, то год увеличивается на 1, а месяц и число устанавливаются в 1.

Programdatanext;

Typeyear=1500..2000;

month=1..12;

day=1..31;

data = Record

y : year;

m : month;

d : day;

End;

Var dat, next : data;

Functionleap(yy:year):boolean; {функция определяет

високосный ли год}

Begin

leap:=(yy Mod 4=0) And (yy Mod 400 <>0);

End;

FunctionDmonth(mm:month; yy : year) : day; {функция определения

количества дней данного месяца в данном году}

Begin

case mm of

1,3,5,7,8,10,12: Dmonth:=31;

4,6,9,11 : Dmonth:=30;

2 : if leap(yy) then Dmonth:=29 else Dmonth:=28;

end;

End;

procedureTomorrow(td : data; var nd : data); {опр-ние завтрашней даты}

begin {если это не последний день месяца}

if td.d<> Dmonth(td.m, td.y) then

with nd do

Begin

d:=td.d+1;

m:=td.m;

y:=td.y;

End;

else {если это последний день месяца}

if td.m=12 then {если это декабрь}

with nd do

Begin

d:=1;

m:=1;

y:=td.y+1;

End;

else {если это не декабрь}

with nd do

Begin

d:=1;

m:=td.m+1;

y:=td.y;

End;

End;

BEGIN

writeln(‘Введите сегодняшнее число, месяц и год’);

readln(dat.d, dat.m, dat.y);

Tomorrow(dat,next);

writeln(‘завтра будет’);

writeln(next.d, ‘.’, next.m, ‘.’, next.y);

END.








Дата добавления: 2015-01-15; просмотров: 796;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.008 сек.