Дан массив с ФИО студентов и с датой их рождения. Написать программу, которая выводит студентов, родившихся летом, и вывести из них старшего

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.      
Поделиться:

Похожие статьи: