Сведения об участниках конкурса содержат следующую информацию: фамилия, имя, адрес(город, улица, № дома, № квартиры), секция, набранный балл. Составить программу, которая считывает эти данные из текстового файла в массив записей (не менее 20-ти элементов). Составить процедуры и/или функции, которые позволяют: 1) найти средний балл по каждой секции 2) определить фамилии победителей по каждой секции 3) по каждому из городов определить фамилии участников, набравших наибольшие баллы (независимо от секции) — Pascal(Паскаль)

program p;
const n = 21;
type
   T_address=record
        gorod:string[10];
        ulica:string[10];
        dom:word;
        kv:word;
    end;
   T_conkurs= record
        fam: string[10];
        name: string[11];
        address: T_address;
        cekciya: string[9];
        ball:word;
  end;
var   inf:array[1..n] of T_conkurs;
      kol_zap:word;
procedure Dannye_vvod;// процедура ввода из текстового файла
  var f:text;
      i:word;
  begin
      i := 0;
      assign(f,'anketa.txt');
      reset(f);
      while not Eof(f) do
            begin
            i := i + 1;
            with inf[i] do
            readln(f,fam,name,address.gorod,address.ulica,address.dom,address.kv,cekciya,ball);
            end;
      kol_zap:=i;
      close(f);
  end;
procedure Dannye_vyvod; //процедура вывода на экран
  var i:integer;
  begin
  writeln(' Фамилия    Имя    Адрес         Секция   Набранный балл    ');
  for i:=1 to kol_zap do
      begin
      with inf[i] do
  writeln(' ',fam,' ',name,' ',address.gorod,' ',address.ulica,' ',address.dom,' ',address.kv,' ',cekciya,' ',ball);
  end;
  end;
begin
     Dannye_vvod;
     Dannye_vyvod;
end.

Leave a Comment

+ 8 = 18