Глава 17 .Задача №5.Пользователь вводит в консоль строки (имя + произвольное число пробелов + балл)(пока не введёт строку "end")
Primary tabs
Пользователь вводит в консоль строки вида (имя + произвольное число пробелов + балл):
Вася 485 Коля 555 Юра 61 .......... .... end // признак завершения ввода(пока не введёт строку end) -- где слева указаны имена участников, а справа -- число баллов.
Используя массив строк и массив целых чисел (пусть оба массива будут максимальной длины =3) считайте отдельно имена и баллы и определите победителя, выведя его имя и полученный им балл.
program pascal_17_5;
type a = array[1..3] of integer; // секция обьявления типов
b = array[1..3] of string;
var max, i, j, num,code, str_int , name , index : integer; // секция обьявления переменных
s, empty_str, empty_int : string;
int_arr : a;
str_arr : b;
begin // начало тела основной программы
index := 0;
j := 0;
max := 0;
s := '';
while( s <> 'end' ) do
begin
empty_str := '';
empty_int := '';
num := 0;
readln( s );
if( s <> 'end' ) then
begin
for i := 1 to length( s ) do // обходим строку
begin
if( s[i] <> ' ' ) and ( num = 0 ) then // если условие верно
empty_str += s[i] // в пустую строку добавляем элемент
else
begin
if( s[i] = ' ' ) then // если равна пустой строке
begin
num := 1; // делаем первый if невыполнимым
continue; // пропускаем если символ пустая строка
end;
if ( s[i] >= '0' ) and ( s[i] <= '9' ) then
empty_int += s[i]; // добавляем в другую пустую строку символы
end;
end;
j += 1; // индекс массива
str_arr[j] := empty_str; // добавляем в массив
Val( empty_int , str_int ,code ); // преобразуем в число
int_arr[j] := str_int;
end;
end;
for i := 1 to high( int_arr ) do // обходим integer массив
begin
if( int_arr[i] > max ) then // если значение массива больше max
begin
max := int_arr[i]; // присваиваем max значение массива
index := i; // считаем индекс string массива
end;
end;
writeln( str_arr[index],' ', 'scored a maximum : ' , max ); // выводим
readln();
end.
- Log in to post comments
- 1760 reads