Решение задачи №5 из главы 16
Primary tabs
Решение задачи №5 из главы 16
Пользователь вводит строку символов, в которой есть два числа, разделенные другими символами, т.е. строка имеет вид:
какиетосимволыЧИСЛО1какиетосимволыЧИСЛО2какиетосимволы
Вывод консоли
Vvedite stroku: wsefg34teth567gfd 34 567
var
arr:array[1..100] of string;
i,j:integer;
strinput,str:string;
a:char;
n:byte;
begin
j:=1;
i:=1;
write('Vvedite stroku: ');
readln(strinput);
n:=length(strinput);
while i <= n do begin
a:=strinput[i];
while (a>='0') and (a <= '9') do begin
str:=str+a;
i:=i + 1;
a:=strinput[i];
end;
i:=i+1;
if str <> '' then begin
arr[j]:= str;
j:=j + 1;
str :=' ';
end;
end;
for i:=1 to j-1 do
writeln(arr[i]);
readln();
end.- Log in to post comments
- 3952 reads
vedro-compota
Sun, 12/27/2020 - 15:55
Permalink
1) после запуска я получил:
1) после запуска я получил:
-- пустых строк быть не должно
2)
-- проверка идет на пустую строку, а присваивается непустое значение. Исправьте.
_____________
матфак вгу и остальная классика =)
gani84
Sat, 01/02/2021 - 15:35
Permalink
Исправил
var arr:array[1..100] of string; i,j:integer; strinput,str:string; a:char; n:byte; begin j:=1; i:=1; write('Vvedite stroku: '); readln(strinput); n:=length(strinput); while i <= n do begin a:=strinput[i]; while (a>='0') and (a <= '9') do begin str:=str+a; i:=i + 1; a:=strinput[i]; end; i:=i+1; if str <> '' then begin arr[j]:= str; j:=j + 1; str :=''; end; end; for i:=1 to j-1 do writeln(arr[i]); readln(); end.vedro-compota
Sat, 01/02/2021 - 16:17
Permalink
Доработать: чтобы если в
Доработать: чтобы если в строке есть более 2 чисел, то выводились бы только первые два.
_____________
матфак вгу и остальная классика =)
vedro-compota
Sat, 01/02/2021 - 16:16
Permalink
решение засчитано
решение засчитано
_____________
матфак вгу и остальная классика =)