В фамилии, имени, отчестве – не более 12 букв, пол указанная прописью М и Ж, возраст от 16 до 35 лет, курс — целое число от 1 до 5. Определить номер курса, на котором мужчин больше — Pascal(Паскаль)

Program PascalGuru;

type
  student = record
    prizv: string[12];
    imia: string[12];
    batko: string[12];
    stat: char;
    vik: 16 .. 35;
    kurs: 1 .. 5;
  end;

  { -------------------------------------- }
var
  st: array [1 .. 50] of student;
  f: text;
  p, i, j, n, cislo, code: integer;
  s, sub: string;
  kurs: 1 .. 5;
  kolvo: integer;

  { -------------------------------------- }
begin
  assign(f, 'db.txt');
  reset(f);

  i := 0;
  while not eof(f) do
  begin
    inc(i);
    readln(f, s);
    p := pos(' ', s);
    j := 0;
    repeat
      inc(j);
      sub := copy(s, 1, p - 1);
      if j = 1 then
        st[i].prizv := sub;
      if j = 2 then
        st[i].imia := sub;
      if j = 3 then
        st[i].batko := sub;
      if j = 4 then
        st[i].stat := sub[1];
      if j = 5 then
      begin
        val(sub, cislo, code);
        st[i].vik := cislo;
      end;
      delete(s, 1, p);
      p := pos(' ', s);
    until p = 0;
    val(s, cislo, code);
    st[i].kurs := cislo;
  end;
  n := i;

  { *** ниже определяем курс, где "М" больше }
  kurs := 1;
  kolvo := 0;
  for i := 1 to 5 do { проверяем с 1 по 5 курс }
  begin
    p := 0;
    for j := 1 to n do { проверяем всех студентов }
      if (i = st[j].kurs) then
        if (st[j].stat = 'М') then
          inc(p);

    if p > kolvo then
    begin
      kolvo := p;
      kurs := i;
    end;

  end;
  { *** }
  writeln('Otvet: na "', kurs, '" kurse (vsego ', kolvo, ')');

  close(f);
  readln;

Leave a Comment

− 1 = 2