Задача 5 Урок 17

Задача 5 Урок 17

Пользователь вводит в консоль строки вида (имя + произвольное число пробелов + балл):

Вася         485
Коля       555
Юра        61
..........
....
end // признак завершения ввода

(пока не введёт строку end) -- где слева указаны имена участников, а справа -- число баллов.
Используя массив строк и массив целых чисел (пусть оба массива будут максимальной длины =3) считайте отдельно имена и баллы и определите победителя, выведя его имя и полученный им балл.

var i, k, c, id, Code, scoreInt: integer;
    s, Name,scoreStr: string;
    nameArr : array[1..5] of string;
    scoreArr : array[1..5] of integer;


procedure getData(s: string; var Name: string; var scoreStr: string);
begin
  Name := '';
  scoreStr := '';
  for i := 1 to length(s) do
    begin
      if((s[i] >= '0') and (s[i] <= '9')) then
        scoreStr := scoreStr + s[i]
      else if(s[i] <> ' ') then
        Name := Name + s[i];
    end;
  Val(scoreStr, scoreInt, Code);
end;



begin
  k:=0; // индексирует массив
  writeln('vvedi name + ___ + score');
  repeat
    readln(s);
    if (s <> 'end') then
      begin
        getData(s,Name,scoreStr);
        k:=k+1;
      end;
    nameArr[k] := Name;
    scoreArr[k] := scoreInt;
  until(s = 'end');

  // поиск победителя
  c := scoreArr[1];
  for i := 1 to high(scoreArr) do
    begin
      if(scoreArr[i] > c) then
        begin
          c := scoreArr[i];
          id := i;
        end;
    end;
  writeln('pobedil ', nameArr[id], ' c rezultom ', c);


  readln();
end. 

результат :

vvedi name +     + score
qqq   111
www   222
eee   444
rrr   333
end
pobedil eee c rezultom 444

vedro-compota's picture

решение засчитано

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