Урок 17 (Решенная задача номер 3)
Primary tabs
Урок 17 (Решенная задача номер 3)
Пользователь вводит произвольную строку, посчитайте количество чисел в ней - тех, что больше 125. Например, в строке:
123ret34#2145esrt5такое число только одно и это:
2145(сначала выделите эти числа из строки и запишите их в массив (of integer), а затем уже посчитайте число тех, что больше 125)
type
myarr = array of integer;
var s : string;
function ru36(j : string): myarr;
var a : array[1..100] of integer;
g: string;
i, v, c, h: integer;
begin
h := 1;
for i := 1 to length(s) do
begin
if (s[i] >= '0') and (s[i] <= '9') then
g := g + s[i];
if (s[i] >= '0') and (s[i] <= '9') and (s[i+1] > '9') or (i = length(s)) then
begin
val(g, v, c);
a[h] := v;
g := '';
Inc(h);
end;
end;
for i := 1 to (h - 1) do
if (a[i] > 125) then
writeln(a[i]);
end;
begin
writeln('vvedite stroky');
readln(s);
ru36(s);
end.- Log in to post comments
- 3155 reads
vedro-compota
Mon, 10/12/2020 - 18:33
Permalink
замечания:
замечания:
_____________
матфак вгу и остальная классика =)
Romakip
Tue, 10/13/2020 - 15:49
Permalink
Исправлено
var s : string; function ru36(j : string): integer; var a : array[1..100] of integer; g: string; i, v, c, h, shet: integer; begin h := 1; for i := 1 to length(s) do begin if (s[i] >= '0') and (s[i] <= '9') then g := g + s[i]; if (s[i] >= '0') and (s[i] <= '9') and (s[i+1] > '9') or (i = length(s)) then begin val(g, v, c); a[h] := v; g := ''; Inc(h); end; end; for i := 1 to (h - 1) do if (a[i] > 125) then Inc(shet); result := shet; write(result); end; begin writeln('vvedite stroky'); readln(s); ru36(s); end.vedro-compota
Sun, 10/18/2020 - 21:20
Permalink
Замечание:
Замечание:
1) Дублирование проверок в if
2) При переборе до последнего индекса:
обращаться к элементу:
некорректно
_____________
матфак вгу и остальная классика =)
Romakip
Mon, 10/19/2020 - 16:45
Permalink
var s : string;
var s : string; function CiselBolse125(j : string): integer; var a : array[1..100] of integer; g: string; i, v, c, h, shet: integer; begin h := 1; for i := 1 to length(s) do begin if (s[i] >= '0') and (s[i] <= '9') then g := g + s[i]; if (s[i] > '9') or (i = length(s)) then begin val(g, v, c); a[h] := v; g := ''; Inc(h); end; end; for i := 1 to (h - 1) do if (a[i] > 125) then Inc(shet); result := shet; write(result); end; begin writeln('vvedite stroky'); readln(s); CiselBolse125(s); end.