задача 5 урок 18
Primary tabs
http://fkn.ktu10.com/?q=node/8694
Пользователь вводит в консоль строки вида (имя + произвольное число пробелов + балл):
Вася 485 Коля 555 Юра 61 .......... .... end // признак завершения ввода(пока не введёт строку end) -- где слева указаны имена участников, а справа -- число баллов.
Используя массив строк и массив целых чисел (пусть оба массива будут максимальной длины =3) считайте отдельно имена и баллы и определите победителя, выведя его имя и полученный им балл.
Решение
program task_5_lesson18; type imy = array[1..3] of string; bal = array[1..3] of integer; procedure otdel(s : string; var name: string; var point: string); var i, j: integer; begin i := 1; while s[i] <> ' ' do begin name := name + s[i]; i += 1; end; for j := i to length(s) do if (s[j] >= '0') and (s[j] <= '9') then point := point + s[j]; end; var s, vihod: string; name, k: imy; // для хранения строк point: bal; // для хранения наибольшего point i, j, n1, code: integer; begin s := ''; vihod := 'end'; i := 0; writeln('vvedite name - point:'); while s <> vihod do begin readln(s); i += 1; otdel(s, name[i], k[i]); end; for i := 1 to 3 do val(k[i], point[i], code); n1 := point[1]; j := 1; for i := 2 to 3 do // поиск победителя if (point[i] >= n1) then begin n1 := point[i]; j := i; // номер имени соответсвующий победителю end; writeln('pobedil: ',name[j],' --- ', n1); readln end.
Консоль
vvedite name - point: Kirill 7685 Artem 675 Kirill 7685 ...... .... end pobedil: Kirill --- 7685
- Log in to post comments
- 989 reads
vedro-compota
Wed, 11/03/2021 - 19:02
Permalink
засчитано
засчитано
_____________
матфак вгу и остальная классика =)