Урок 18. Задача 7.
Primary tabs
Решите предыдущую задачу:
С использованием процедуры, которая разбирала бы очередную строку, изменяя по ссылке значения двух перемененных (одна для имени и одна для балла), уже после вызова этой процедуры для очередной строки записывайте очередные значения переменных в массивы (каждую в свой).
type arrI = array[1..3] of integer;
type arrS = array[1..3] of string;
var i, j, n, c, ind, ball :integer;
str, imya :string;
aI :arrI;
Sa :arrS;
function get_index(aI :arrI) :integer;
begin
if aI[1] < aI[2] then
if aI[2] < aI[3] then
get_index := 3
else
get_index := 2
else
if aI[1] < aI[3] then
get_index := 3
else
get_index := 1;
end;
procedure getData(str: string; var imya: string; var ball: integer);
var i, n, c :integer;
s_3 :string;
begin
for i := 1 to length(str) do
begin
val(str[i], n, c);
if c = 1 then
if str[i] = ' ' then
continue
else
imya := imya + str[i]
else
s_3 := s_3 + str[i];
end;
val(s_3, n);
ball := n;
end;
begin
j := 0;
while true do
begin
j := j + 1;
writeln('enter');
readln(str);
if str = 'end' then
break;
imya := '';
ball := 0;
getData(str, imya, ball);
aI[j] := ball;
Sa[j] := imya;
writeln(ball, ' ', imya); //аномалия
end;
ind := get_index(aI);
writeln('Победитель - ', Sa[ind], ' число - ', aI[ind]);
readln();
end.
- Log in to post comments
- 2088 reads
vedro-compota
Thu, 09/08/2022 - 19:34
Permalink
переписать код под N=100, так
переписать код под N=100, так чтобы он был адаптирован к поиску по массиву произвольной длины
_____________
матфак вгу и остальная классика =)
Dennis80
Sat, 09/10/2022 - 20:28
Permalink
type arrI = array[1..3] of
type arrI = array[1..3] of integer; type arrS = array[1..3] of string; var i, j, n, c, ind, ball :integer; str, imya :string; aI :arrI; Sa :arrS; function get_index(aI :arrI) :integer; var n, i :integer; begin for i := 1 to (high(aI) - 1) do if aI[i] < aI[i + 1] then n := i + 1 else n := i; get_index := n; end; procedure getData(str: string; var imya: string; var ball: integer); var i, n, c :integer; s_3 :string; begin for i := 1 to length(str) do begin val(str[i], n, c); if c = 1 then if str[i] = ' ' then continue else imya := imya + str[i] else s_3 := s_3 + str[i]; end; val(s_3, n); ball := n; end; begin j := 0; while true do begin j := j + 1; writeln('enter'); readln(str); if str = 'end' then break; imya := ''; ball := 0; getData(str, imya, ball); aI[j] := ball; Sa[j] := imya; writeln(ball, ' ', imya); //аномалия end; ind := get_index(aI); writeln('Победитель - ', Sa[ind], ' число - ', aI[ind]); readln(); end.vedro-compota
Sun, 09/11/2022 - 15:20
Permalink
function get_index(aI :arrI)
--проверить. Если это поиск индекса максимума, то тут что-то не то
_____________
матфак вгу и остальная классика =)
Dennis80
Mon, 09/12/2022 - 19:01
Permalink
type arrI = array[1..3] of
type arrI = array[1..3] of integer; type arrS = array[1..3] of string; var i, j, n, c, ind, ball :integer; str, imya :string; aI :arrI; Sa :arrS; function get_index(aI :arrI) :integer; var i, max :integer; begin max := 1; for i := 2 to high(aI) do if aI[max] < aI[i] then max := i; get_index := max; end; procedure getData(str: string; var imya: string; var ball: integer); var i, n, c :integer; s_3 :string; begin for i := 1 to length(str) do begin val(str[i], n, c); if c = 1 then if str[i] = ' ' then continue else imya := imya + str[i] else s_3 := s_3 + str[i]; end; val(s_3, n); ball := n; end; begin j := 0; while true do begin j := j + 1; writeln('enter'); readln(str); if str = 'end' then break; imya := ''; ball := 0; getData(str, imya, ball); aI[j] := ball; Sa[j] := imya; writeln(ball, ' ', imya); //аномалия end; ind := get_index(aI); writeln('Победитель - ', Sa[ind], ' число - ', aI[ind]); readln(); end.vedro-compota
Wed, 09/14/2022 - 19:43
Permalink
засчитано
засчитано
_____________
матфак вгу и остальная классика =)