Задача 8 Урок 18
Primary tabs
Решите предыдущую задачу:
Пользователь вводит в консоль строки вида (имя + произвольное число пробелов + балл):
Вася 485
Коля 555
Юра 61
..........
....
end // признак завершения ввода(пока не введёт строку end) -- где слева указаны имена участников, а справа -- число баллов.
Используя массив строк и массив целых чисел (пусть оба массива будут максимальной длины =3) считайте отдельно имена и баллы и определите победителя, выведя его имя и полученный им балл.С использованием процедуры, которая разбирала бы очередную строку, изменяя по ссылке значения двух перемененных (одна для имени и одна для балла), уже после вызова этой процедуры для очередной строки записывайте очередные значения переменных в массивы (каждую в свой).
var i,j,max,l:integer; Nmax:string; bal:array [1..3] of integer; x,name:array [1..3] of string; s:array [1..4] of string;
procedure table(s:string;var name: string; var bal: integer);
var i: integer; x:string;
begin
for i:=1 to Length(s) do
begin
if (s[i]>='0')and (s[i]<='9')then
x:=x+s[i]
else if s[i]<>' ' then
name:=name+s[i];
end;
val(x,bal,l);
end;
begin
for i:=1 to 4 do
begin
readln(s[i]);
if s[i]='end' then
break;
table(s[i],name[i],bal[i]);
end;
max:=bal[1];
for i:=2 to 3 do
if bal[i]>max then
begin
max:=bal[i];
Nmax:=name[i];
end
else
begin
max:=bal[i-1];
Nmax:=name[i-1];
end;
write(Nmax,' ',max);
readln();
end. - Log in to post comments
- 431 reads