Задача 6 урок 16 Варианты решений и вопрос
Primary tabs
Пользователь вводит строку произвольных символов,
выделите из неё массив первых 8 строковых литералов,
которые являются числами.
И выведите эти числа на экран.
Вариант из разбора:
Вопрос: сделал точно по шаблону из разбора - не работает. Выводит в консоль только последнее число. Почему?
var
s: string;
a: array [1..8] of string;
i,j: integer;
f: boolean;
begin
writeln('vvedite proizvolnuy stroku:');
//readln(s);
s:= 'rew2i@#$$#435tr353453t4er4df';
f := false;
j:=0;
for i := 1 to length(s) do
begin
if (s[i] >= '0') and (s[i] <= '9') then
begin
if not f then
j:=j+1;
f:= true;
a[j]:= a[j]+ s[i];
end else
begin
if (f) then
begin
f:=false;
end;
end;
end;
for i:= 1 to j do;
writeln(a[i]);
end. Вариант без флага boolean:
var a: array [1..8] of string;
s: string;
i,j: integer;
begin
writeln('vvedite stroku s');
readln(s);
j:=1;
a[j]:='';
for i:=1 to length(s) do
begin
if (s[i]>='0') and (s[i]<='9') then
a[j]:=a[j]+s[i]
else
if (a[j]<>'') then
begin
writeln(a[j]);
if (j=8) then
break;
j:=j+1;
end;
end;
readln();
end. - Log in to post comments
- 546 reads
vedro-compota
Wed, 10/06/2021 - 21:01
Permalink
for i:= 1 to j do;
- точка с запятой
_____________
матфак вгу и остальная классика =)