Дан массив с ФИО студентов и с датой их рождения. Написать программу, которая выводит студентов, родившихся летом, и вывести из них старшего — 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.

Leave a Comment

− 2 = 1