Язык программирования Pascal. Строки и записи. Васильев В.В - 17 стр.

UptoLike

17
begin (* days *)
days:=dn_gd(d1,d2)+dn_dt(d2)-dn_dt(d1)
end;{days}
procedure bd_dt (dn:integer; var dt:data);
(* Дата, которая наступит через dn дней после даты dt *)
var mc:integer;
function dgod(gd:year):integer;
(* Число дней в году *)
begin
if visokos(gd) then dgod:=366 else dgod:=365;
end;{dgod}
begin
(* возврат от даты dt к началу года dt.gd *)
for mc:=1 to dt.mc-1 do dn:=dn+dmes(mc,dt.gd);
dn:=dn+dt.dn;
(* нахождение года новой даты*)
while dn>dgod(dt.gd) do
begin
dn:=dn-dgod(dt.gd); inc(dt.gd)
end;
(* нахождение месяца новой даты *)
dt.mc:=1;
while dn>dmes(dt.mc,dt.gd) do
begin
dn:=dn-dmes(dt.mc,dt.gd); inc(dt.mc)
end;
(* нахождение дня новой даты *)
dt.dn:=dn
end;{bd_dt}
Begin (* Sto_let *)
Textbackground(7); Textcolor(blue); Clrscr;
n:=1; s:=0;
write('Сколько людей в семье: '); readln(n_max);
writeln('* Введите дату рождения ',n,'-го члена семьи *');
write('День : '); readln(dm.dn);
write('Месяц: '); readln(dm.mc);
write('Год : '); readln(dm.gd);
while n<n_max do
begin
writeln('* Введите дату рождения ',n+1,'-го члена семьи *');
write('День : '); readln(dc.dn);
write('Месяц: '); readln(dc.mc);
write('Год : '); readln(dc.gd);
if pos(dc,dm)
then s:=s+days(dc,dm)
else