Дан массив с ФИО студентов и с датой их рождения. Написать программу, которая выводит студентов, родившихся летом, и вывести из них старшего
Категория: Delphi/Pascal
2012-02-26 21:26:53
code: #pascal
Program zadanie_4_5; Uses crt; type daty=record i:integer; d:integer; m:integer; g:integer; end; Var f:array[1..10,1..2] of string[15]; a,b:byte; g_m:array[1..10,1..2] of integer;{mesyats i god} d:array[1..10] of integer; dd:array[1..10] of daty; kol,min,mini,p,s:integer; Begin ClrScr; f[1,1]:='Sidorov'; f[2,1]:='Petrov'; f[3,1]:='Ivanov'; f[4,1]:='Fedorov'; f[5,1]:='Znaikin'; f[6,1]:='Nosov'; f[7,1]:='Dyuzhev'; f[8,1]:='Dugaev'; f[9,1]:='Chaikin'; f[10,1]:='Palkin'; f[1,2]:='Ivan'; f[2,2]:='Dmitrii'; f[3,2]:='Aleksandr'; f[4,2]:='Aleksei'; f[5,2]:='Vadim'; f[6,2]:='Nikolai'; f[7,2]:='Irvin'; f[8,2]:='Stanislav'; f[9,2]:='Oleg'; f[10,2]:='Svyatoslav'; WriteLn('Vvedeny dannye studentovrozhdennye letom'); WriteLn('____________________________________________________________'); WriteLn('_______________ Dannyestudentov ___________'); WriteLn('| Familiya | ',' Imya | ',' Data rozhdeniya (dd.mm.gggg.) |'); WriteLn('------------------------------------------------------------'); kol:=0; for a:=1 to 10 do begin g_m[a,2]:=(random(10)+1990); {God} g_m[a,1]:=(random(9)+4); {Mesyats} d[a]:=(random(31)+1); {Data} if (g_m[a,1]=6) or (g_m[a,1]=7) or (g_m[a,1]=8) then begin inc(kol) ; dd[kol].i:=a; dd[kol].d:=d[a]; dd[kol].m:=g_m[a,1]; dd[kol].g:=g_m[a,2]; WriteLn('|',f[a,1]:10,f[a,2]:15,d[a]:13,'.',g_m[a,1]:1,'.',g_m[a,2],' |'); end; end; WriteLn('____________________________________________________________'); {--------------------------------} {---God} min:=dd[1].g; mini:=dd[1].i; for a:=2 to kol do if dd[a].g<min then begin mini:=dd[a].i; min:=dd[a].g end; {---Mesyats} for a:=1 to kol do if dd[a].g=min then begin inc(p); s:=a; end else dd[a].i:=0; if p>1 then begin min:=dd[s].m; mini:=dd[s].i; for a:=1 to kol do if dd[a].i<>0 then if dd[a].m<min then begin mini:=dd[a].i; min:=dd[a].m end; end; {---Deni} for a:=1 to kol do if dd[a].m=min then begin inc(p); s:=a; end else dd[a].i:=0; if p>1 then begin min:=dd[s].d; mini:=dd[s].i; for a:=1 to kol do if dd[a].i<>0 then if dd[a].d<min then begin mini:=dd[a].i; min:=dd[a].d end; end; WriteLn('Mladshii: '); WriteLn('|',f[mini,1]:10,f[mini,2]:15,d[mini]:13,'.',g_m[mini,1]:1,'.',g_m[mini,2],' |'); WriteLn; WriteLn('Dalee nazhmite Enter...'); ReadLn; End.
Поделиться: