Задача 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
- 872 reads