Задание 2 урок 19

У вас есть текстовый файл с информацией об итогах соревнований (каждая строка имеет формат: имя + произвольное число пробелов + балл 1 + произвольное число пробелов + балл 2):

	
Вася    16     485
Коля    17   555
Юра     18   61

..........

-- где:
слева указаны имена участников, а справа число баллов.
Первое число в каждой строке -- штрафные баллы набранные участниками, а второе число -- "положительные баллы", то есть если у нас есть строка:

Vasya    N      M

где N
-- число шрафных баллов, а M - число баллов положительных, то итоговая оценка Васи Z вычисляется как разность:
Z=M−N.

Напишите программу, которая определяет победителя и его итоговый балл (прочитав данный файл построчно).
По возможности разбивайте код на процедуры и функции.

Задание 2 урок 19

program project1;

Var
    f1:text; // тип для открытия текстового файла
    filename, s: string;
    var
        max,A,Chtraf,i,j,Ochki, Total, Winner,ch,code:integer;
        s1,name,s3:string ;
        ar: array[1..3] of integer;
        f: boolean;
begin
  filename := 'C:\Users\zamhyr\input.txt'; // путь к файлу

  assign(f1, filename); { связывание переменной дескриптора
                        с путём к файлу }
  reset(f1); // открываем файла для чтения

  writeln('========nachalo faila=====');

  while not eof(f1) do // пока не достигнут конец файла
  begin
    readln(f1, s);  // читаем из него очередную строку

    S1 := '';
    f := false;
    name := '';

    for i := 1 to length(s) do
    begin
      if (s[i] >= '0') and (s[i] <= '9') then //если символ - цифра
      begin
        f := true;
        S1 := S1 + s[i]; // то добавляю цифру в числовую строку
      end
      else  //если символ не цифра
      begin
        if f then //и флаг поднят
        begin
          val(S1, Chtraf); //то получаем штраф из первого набора цифр
          S1 := '';//обнуляем строку для получения счета
          f := false;
        end
        else if (s[i] <> ' ') then // если не пробел
          name := name + s[i]; // собираем имя игрока из символов
      end;
    end;
      WriteLn('Winner: ', name);
      val(S1, Ochki); //получаем счет из последнего набора цифр
      Total := Ochki - Chtraf;
      if Total > Winner  then
      begin
        Winner:= Total;
        WriteLn('Winner: ', name, ' Total count: ',Winner );

      end;
   end;
      writeLn('========= konez faila =========');

      if Total > Winner  then
      begin
        Winner:= Total;
        WriteLn('Winner: ', name, ' Total count: ',Winner );

      end;
  readln();
end.
vedro-compota's picture

засчитано

_____________
матфак вгу и остальная классика =)