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

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

Решите предыдущую задачу:
С использованием процедуры, которая разбирала бы очередную строку, изменяя по ссылке значения двух перемененных (одна для имени и одна для балла), уже после вызова этой процедуры для очередной строки записывайте очередные значения переменных в массивы (каждую в свой).

program lesson17_6;

procedure getData(s: string; var name: string; var ball: integer);
var
    sBall: string = '';
    i: integer;
begin
    for i := 1 to length(s) do
        if (s[i] >= '0') and (s[i] <= '9') then
            sBall := sBall + s[i]
        else if s[i] <> ' ' then
            name := name + s[i];
    val(sBall, ball);
end;

var
    s: array[1..10] of string;
    strArr: array[1..3] of string;
    intArr: array[1..3] of integer;
    name: string;
    i, ball, max, index: integer;
begin

    writeln('specify the name and the ball: ');

    for i := 1 to 10 do
    begin
        write(i, '. ');
        readln(s[i]);
        if s[i] = 'end' then
            break;
	end;

    ball := 0;
    for i := low(strArr) to high(strArr) do
    begin
        name := '';
        getData(s[i], name, ball);
        strArr[i] := name;
        intArr[i] := ball;
	end;

    max := 0;
    for i := 1 to 3 do
        if intArr[i] > max then
        begin
            max := intArr[i];
            index := i;
		end;

    writeln('winner: ', strArr[index], ' ', intArr[index]);
    readln();
end.
vedro-compota's picture

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

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