Урок 17 (решенная задача номер 5)
Primary tabs
Урок 17 (решенная задача номер 5)
Пользователь вводит в консоль строки вида (имя + произвольное число пробелов + балл):
Вася 485 Коля 555 Юра 61 .......... .... end // признак завершения ввода(пока не введёт строку end) -- где слева указаны имена участников, а справа -- число баллов.
Используя массив строк и массив целых чисел (пусть оба массива будут максимальной длины =3) считайте отдельно имена и баллы и определите победителя, выведя его имя и полученный им балл.
var s, Namepobed: string; balpobed : integer; procedure ru36(h : string); var bal, i, c: integer; name, g: string; begin for i := 1 to length(h) do begin if (h[i] <> '') and (h[i] > '9') then name := name + s[i]; if (h[i] >= '0') and (h[i] <= '9') then g := g + s[i]; if (i = length(h)) then val(g, bal, c); end; writeln('imy ', name); writeln('colicestvo ballov - ', bal); if (bal > balpobed) then begin balpobed := bal; Namepobed := name; end; end; begin while (s <> 'end') do begin writeln('vvedite stroky'); readln(s); if (s <> 'end') then ru36(s); end; writeln('Pobeditel - ', Namepobed); writeln('Ego kol-vo ballov sostavilo ', balpobed); end.
(С Использованием массивов)
type myarr = array[1..3] of integer; miarr = array[1..4] of string; var s : string; o : integer; glStrMassiv : miarr; glCisMassiv : myarr; procedure ru36(h : string; var a : myarr; var m : miarr; j : integer); var bal, i, c: integer; name, g: string; begin for i := 1 to length(h) do begin if (h[i] <> '') and (h[i] > '9') then name := name + s[i]; if (h[i] >= '0') and (h[i] <= '9') then g := g + s[i]; if (i = length(h)) then val(g, bal, c); end; a[j] := bal; m[j] := name; Inc(j); end; procedure ru37(a : myarr; m : miarr); begin if (a[1] > a[2]) and (a[1] > a[3]) then writeln('Pobeditel - ', m[1],' ', 'ego kol-vo ballov - ', a[1]) else if (a[2] > a[3]) then writeln('Pobeditel - ', m[2],' ', 'ego kol-vo ballov - ', a[2]) else writeln('Pobeditel - ', m[3],' ', 'ego kol-vo ballov - ', a[3]); end; begin o := 1; while (s <> 'end') and (o <= 3) do begin writeln('vvedite stroky'); readln(s); if (s <> 'end') and (o <= 3) then ru36(s, glCisMassiv, glStrMassiv, o); Inc(o); end; ru37(glCisMassiv, glStrMassiv); end.
- Log in to post comments
- 2039 reads
vedro-compota
Sun, 10/18/2020 - 21:10
Permalink
поменять названия процедурам
поменять названия процедурам
_____________
матфак вгу и остальная классика =)
Romakip
Mon, 10/19/2020 - 16:31
Permalink
Исправлено