Задача 2 урок 21
Primary tabs
Задача 2 урок 21
Есть исходный код:
var s:string; i, n: Integer; a: array[1..8] of char; begin writeln('Vvedite stroku'); readln(s); n := 1; while(n<10) do // 1-8 begin for i:=1 to Length(s) do if (s[i]>='0')and(s[i]<='9') then begin a[n]:=s[i]; inc(n); end; end; for i:=low(a) to high(a) do write(a[i],' '); // выводим массив readln(); end.
- Определить, что делает эта программа
- В ней есть лишние конструкции -- перепишите код оптимальным образом
Ответ:
- Программа принимает от пользователя строку, далее ищет в ней числа и записывает первые 8 из них в массив, выводит полученный массив
- Излишнее использование цикла while()
Более оптимальное решение:
var s:string; i, n: Integer; a: array[1..8] of char; begin writeln('Vvedite stroku'); readln(s); n := 1; //счетчик цифр for i:=1 to Length(s) do if (s[i]>='0')and(s[i]<='9') then begin if n < 9 then // begin a[n]:=s[i]; //массив записывать по n inc(n); end else break; end; for i:=low(a) to high(a) do write(a[i],' '); // выводим массив readln(); end.
- Log in to post comments
- 735 reads
vedro-compota
Sun, 09/26/2021 - 12:38
Permalink
решение засчитано
решение засчитано
_____________
матфак вгу и остальная классика =)