Задача 6 Урок 17
Primary tabs
Решите предыдущую задачу:
Пользователь вводит в консоль строки вида (имя + произвольное число пробелов + балл):Вася 485 Коля 555 Юра 61 .......... ....end // признак завершения ввода
(пока не введёт строку end) -- где слева указаны имена участников, а справа -- число баллов.
Используя массив строк и массив целых чисел (пусть оба массива будут максимальной длины =3) считайте отдельно имена и баллы и определите победителя, выведя его имя и полученный им балл.С использованием процедуры, которая разбирала бы очередную строку, изменяя по ссылке значения двух перемененных (одна для имени и одна для балла), уже после вызова этой процедуры для очередной строки записывайте очередные значения переменных в массивы (каждую в свой).
Подсказка: Т.е. такая процедура может иметь следующую сигнатуру:
procedure getData(str: string; var name: string; var ball: integer);
program U17Z6;
var name:array [1..3] of string;
ball:array [1..3] of integer;
s,str1,str2: string;
i,p,code,winner:integer;
begin
writeln('vvedite stroki');
p:=1;
while (s<>'end') do
begin
readln(s);
str1:='';
str2:='';
for i:= 1 to length(s) do
begin
if (s[i]>='0') and (s[i]<='9') then
str2:=str2+s[i]
else
if (s[i]<>' ') then
str1:=str1+s[i];
end;
name[p]:=str1;
val(str2,ball[p],code);
p:=p+1;
end;
winner:=ball[1];
for i:=2 to high(ball) do
if (ball[i]>winner) then
winner:=ball[i];
writeln('winner: ',name[i],' ',ball[i]);
readln();
end. - Log in to post comments
- 3182 reads
vedro-compota
Wed, 09/29/2021 - 19:51
Permalink
добавить решение с
добавить решение с использованием процедуры
_____________
матфак вгу и остальная классика =)
slavina036
Fri, 10/01/2021 - 15:04
Permalink
program U17Z6;
program U17Z6; var mname:array [1..3] of string; mball:array [1..3] of integer; s,n: string; i,p,code,winner,b,w:integer; procedure getData(str: string; var name: string; var ball: integer); var j: integer; sball: string; begin for j:= 1 to length(str) do begin if (str[j] >= '0') and (str[j] <= '9') then sball:= sball+str[j] else if (str[j] <> ' ') then name:= name+s[j]; end; val(sball,ball,code); end; begin writeln('vvedite stroki'); p:=1; while (s<>'end') do begin readln(s); n:=''; getData(s,n,b); mname[p]:=n; mball[p]:=b; p:=p+1; end; w:=1; winner:=mball[1]; for i:=2 to high(mball) do begin if (mball[i]>winner) then w:=i; end; writeln('winner: ',mname[w],' ',mball[w]); readln(); end.slavina036
Fri, 10/01/2021 - 15:09
Permalink
почему так не работает?
program U17Z6; var mname:array [1..3] of string; mball:array [1..3] of integer; s,n: string; i,p,code,winner,b,w:integer; procedure getData(str: string; var name: string; var ball: integer); var j: integer; sball: string; begin for j:= 1 to length(str) do begin if (str[j] >= '0') and (str[j] <= '9') then sball:= sball+str[j] else if (str[j] <> ' ') then name:= name+s[j]; end; val(sball,ball,code); end; begin writeln('vvedite stroki'); p:=1; while (s<>'end') do begin readln(s); mname[p]:=''; getData(s,mnane[p],mball[p]); p:=p+1; end; w:=1; winner:=mball[1]; for i:=2 to high(mball) do begin if (mball[i]>winner) then w:=i; end; writeln('winner: ',mname[w],' ',mball[w]); readln(); end.выдает такую ошибкуЖ
project1.lpr(27,15) Error: Identifier not found "mnane"
выдает и другие ошибки, но из-за этой не хочет даже запускать программу
vedro-compota
Sun, 10/03/2021 - 13:35
Permalink
project1.lpr(27,15) Error:
-- нет такой переменной
_____________
матфак вгу и остальная классика =)
vedro-compota
Sun, 10/03/2021 - 13:35
Permalink
решение засчитано
решение засчитано
_____________
матфак вгу и остальная классика =)