Задача 6 урок 17
Primary tabs
Задача 6 урок 17
Решите предыдущую задачу с использованием процедуры, которая разбирала бы очередную строку, изменяя по ссылке значения двух перемененных (одна для имени и одна для балла), уже после вызова этой процедуры для очередной строки записывайте очередные значения переменных в массивы (каждую в свой).
var i, x, n, max: integer; s, k, winner: string; a: array[1..3] of string; b: array[1..3] of integer; procedure getData(str: string; var name: string; var scores: integer); var i, T, Code: integer; k, a: string; begin for i:=1 to length(s) do begin if Not((str[i]>='0')and(str[i]<='9')) AND (str[i]<>' ') then a:=a+str[i] //если не число и не пробел string else if (str[i]>='0')and(str[i]<='9') then k:=k+str[i]; //если число сохраняем в string if i=length(str) then //после последнего символа число(string) begin Val(k, T, Code); //преобразуем в integer scores := T; name:=a; k:=''; a:=''; end; end; end; begin n:=1; //индекс массива while(s<>'end') do begin writeln('Enter name and points'); readln(s); if (s<>'end') then getData(s, k, x);//вызов процедуры a[n]:= k; //присвоение очередных значений массива b[n]:= x; //присвоение очередных значений массива inc(n); //сдвиг индекса массивов end; max := b[1]; if max < b[2] then max := b[2]; //определяем максимальный integer if max < b[3] then max := b[3]; for i:=1 to high(b) do if b[i]=max then //по индексу integer ищем значение string winner:=a[i]; writeln('The winner is ',winner,', scores = ',max); readln(); end.
- Log in to post comments
- 599 reads