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;