Pascal Урок 17 Задача 6
Primary tabs
Решите предыдущую задачу:
Пользователь вводит в консоль строки вида (имя + произвольное число пробелов + балл):
Вася 485
Коля 555
Юра 61
..........
....
end // признак завершения ввода
(пока не введёт строку end) -- где слева указаны имена участников, а справа -- число баллов.
Используя массив строк и массив целых чисел (пусть оба массива будут максимальной длины =3) считайте отдельно имена и баллы и определите победителя, выведя его имя и полученный им балл.С использованием процедуры, которая разбирала бы очередную строку, изменяя по ссылке значения двух перемененных (одна для имени и одна для балла), уже после вызова этой процедуры для очередной строки записывайте очередные значения переменных в массивы (каждую в свой).
Подсказка: Т.е. такая процедура может иметь следующую сигнатуру:
program U15Z6; type a=array[1..3] of integer; b=array[1..3] of string; var t:b; l:a; i,d,f,n,max,ball: integer; w,k,s,name:string; procedure Nameball(s: string; var name: string; var ball: integer); begin for i:= 1 to length(s) do begin if (s[i]>='0')and(s[i]<='9') then begin w:=w+s[i]; val(w,f); ball:=f; end else if (s[i]<>' ') then begin k:=k+s[i]; name:=k; end; end; w:=''; k:=''; end; begin d:=1; while (s<>'end') do begin readln(s); Nameball(s,name,ball); t[d]:=name; l[d]:=ball; d:=d+1; end; for d:= low(l) to high(l) do begin if l[d] > max then begin max:=l[d]; inc(n); end; end; d:=n; writeln('Pobeditel: ',t[d]); writeln('S kolichestvom ballov: ',max); readln(); end.
- Log in to post comments
- 1205 reads
vedro-compota
Wed, 08/05/2020 - 19:10
Permalink
A B C D
-- имя победителя определиться неправильно (В вместо C)
_____________
матфак вгу и остальная классика =)
JimATI
Thu, 08/06/2020 - 17:50
Permalink
Исправленно