Урок 18 Задача 7
Primary tabs
Решите предыдущую задачу:
Пользователь вводит в консоль строки вида (имя + произвольное число пробелов + балл):
Вася 485 Коля 555 Юра 61 .......... .... end // признак завершения ввода(пока не введёт строку end) -- где слева указаны имена участников, а справа -- число баллов.
Используя массив строк и массив целых чисел (пусть оба массива будут максимальной длины =3) считайте отдельно имена и баллы и определите победителя, выведя его имя и полученный им балл.С использованием процедуры, которая разбирала бы очередную строку, изменяя по ссылке значения двух перемененных (одна для имени и одна для балла), уже после вызова этой процедуры для очередной строки записывайте очередные значения переменных в массивы (каждую в свой).
Подсказка: Т.е. такая процедура может иметь следующую сигнатуру:procedure getData(str: string; var name: string; var ball: integer);
type chisla = array[1..3] of integer; stroki = array[1..3] of string; var str, name, vrem: string; i, j, h, ball: integer; b: chisla; n: stroki; procedure getData(str: string; var name: string; var ball: integer); var i, j, h: integer; vrem: string; begin i:= 0; j:= 0; h:= 1; while not (h > 3) do begin i:= i+1; if (str[i]>='0')and(str[i]<='9') or not ((str[i]>='0')and(str[i]<='9') or (str[i] =' ')) then // если встретилось число begin if j = 2 then begin j:= 1; i:= 1; val(vrem, ball); vrem:= ''; h:= h+1; end else begin j:= j + 1; name:= ''; end; for i:= i to length(str) do if not ((str[i]>='0')and(str[i]<='9') or (str[i] =' ')) then name:= name + str[i] else if (str[i]>='0')and(str[i]<='9') then vrem:= vrem + str[i] else break; end; end; end; begin writeln ('Введите имя и количество баллов: '); for i:= 1 to 3 do begin readln(str); if str = 'end' then break else begin name:= ''; vrem:= ''; getData (str, name, ball); n[i]:= name; b[i]:= ball; end; end; writeln; writeln ('Ответ:'); for i:= 1 to 3 do begin write (n[i], ' '); writeln (b[i]); end; readln(); end.
- Log in to post comments
- 759 reads
Patrick
Wed, 01/04/2023 - 16:30
Permalink
Исправил
Вывод в консоли:
vedro-compota
Wed, 01/04/2023 - 17:19
Permalink
засчитано
засчитано
_____________
матфак вгу и остальная классика =)