https://pastein.ru/t/bu2

  скопируйте уникальную ссылку для отправки

Загрузка данных


//13
var
  fin, fout: text;
  s: string;
  fam, name, point: array[1..100] of string;
  i, st, x, n, code: integer;

begin
  assign(fin, 'in.txt');
  assign(fout, 'out.txt');
  reset(fin);
  while not eof(fin) do begin
    readln(fin, s);
    st := st + 1;
    fam[st] := copy(s, 1, pos(' ', s));
    delete(s, 1, pos(' ', s));
    name[st] := copy(s, 1, pos(' ', s));
    delete(s, 1, pos(' ', s));
    point[st] := copy(s, 1, 3);
  end;
  close(fin);
  for i := 1 to st do begin
    val(point[i], x, code);
    if x > 80 then begin
      rewrite(fout);
      n := n + 1;
      writeln(fout, n, ') ', name[i][1], '. ', fam[i], ' ', point[i]);
    end;
  end;
  close(fout);
end.

//16
var
  fin, fout: text;
  s, t: string;
  fam, name, point: array[1..100] of string;
  i, st, x, n, code, j: integer;

begin
  assign(fin, 'in.txt');
  assign(fout, 'out.txt');
  reset(fin);
  while not eof(fin) do begin
    readln(fin, s);
    st := st + 1;
    fam[st] := copy(s, 1, pos(' ', s));
    delete(s, 1, pos(' ', s));
    name[st] := copy(s, 1, pos(' ', s));
    delete(s, 1, pos(' ', s));
    point[st] := copy(s, 1, 3);
  end;
  close(fin);
  for i := 1 to st - 1 do begin
    for j := 1 to st - 1 do begin
      if (fam[j])[1] > (fam[j + 1])[1] then begin
        t := fam[j];
        fam[j] := fam[j + 1];
        fam[j + 1] := t;
      end;
    end;
  end;
  for i := 1 to st do begin
    val(point[i], x, code);
      rewrite(fout);
      n := n + 1;
      writeln(fout, n, ') ', name[i][1], '. ', fam[i], ' ', point[i]);
    end;
  close(fout);
end.

//17
var
  fin, fout: text;
  s, p: string;
  fam, name, point: array[1..100] of string;
  mark: array[1..100] of integer;
  t, i, st, n, code, j: integer;

begin
  assign(fin, 'in.txt');
  assign(fout, 'out.txt');
  reset(fin);
  while not eof(fin) do begin
    readln(fin, s);
    st := st + 1;
    fam[st] := copy(s, 1, pos(' ', s));
    delete(s, 1, pos(' ', s));
    name[st] := copy(s, 1, pos(' ', s));
    delete(s, 1, pos(' ', s));
    point[st] := copy(s, 1, 3);
  end;
  close(fin);
  for i:=1 to st do
    val(point[i], mark[i], code);
  for i := 1 to st - 1 do begin
    for j := 1 to st - 1 do begin
      if mark[j] < mark[j + 1] then begin
        t := mark[j];
        mark[j] := mark[j + 1];
        mark[j + 1] := t;
        p := name[j];
        name[j] := name[j + 1];
        name[j + 1] := p;
        p := fam[j];
        fam[j] := fam[j + 1];
        fam[j + 1] := p;
      end;
    end;
  end;
  for i := 1 to st do begin
    rewrite(fout);
    n := n + 1;
    writeln(fout, n, ') ', name[i][1], '. ', fam[i], ' ', mark[i]);
  end;
  close(fout);
end.