задача 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
- 1255 reads
vedro-compota
Wed, 11/03/2021 - 19:02
Permalink
засчитано
засчитано
_____________
матфак вгу и остальная классика =)