Урок 17. Задача №5. Решение.
Primary tabs
Пользователь вводит в консоль строки вида (имя + произвольное число пробелов + балл):
Вася 485 Коля 555 Юра 61 .......... .... end // признак завершения ввода(пока не введёт строку end) -- где слева указаны имена участников, а справа -- число баллов.
Используя массив строк и массив целых чисел (пусть оба массива будут максимальной длины = 3) считайте отдельно имена и баллы и определите победителя, выведя его имя и полученный им балл.
type StrMyArr = array[1..3] of string; IntMyArr = array[1..3] of integer; function SearchMax(y: integer; arr: IntMyArr): integer; var f: integer; begin y := arr[1]; for f := 2 to length(arr) do if(y < arr[f]) then y := arr[f]; result := y; end; procedure printResult(x: integer; int_arr: IntMyArr; str_arr: StrMyArr); begin if(x = int_arr[1]) then begin writeln('And winner is...:'); writeln(str_arr[1], x); end else if(x = int_arr[2]) then begin writeln('And winner is...:'); writeln(str_arr[2], x); end else begin writeln('And winner is...:'); writeln(str_arr[3], x); end; end; var str, name, tmp: string; arrName: StrMyArr; arrInt: array [1..3] of integer; max, j, i, k, point: integer; begin writeln('If you enter the word "end" step on next program! '); writeln(); writeln('Enter your name: enter your points: '); while(str <> 'end') do begin readln(str); if(str <> 'end') then begin for i := 1 to length(str) do begin if(str[i] >= '0') and (str[i] <= '9') then tmp += str[i] else name += str[i]; end; val(tmp, point); j += 1; arrInt[j] := point; k += 1; arrName[k] := name; tmp := ''; name := ''; end; end; max := SearchMax(max, arrInt); writeln(); printResult(max, arrInt, arrName); readln(); // Удержание консоль end.// Завершение программы
- Log in to post comments
- 883 reads