Задача 2 Урок 22

Задача 2 Урок 22

Есть исходный код:

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.

Задача:

Определить, что делает эта программа
В ней есть лишние конструкции -- перепишите код оптимальным образом

var
  s: string;
  i, n: integer;
  a: array[1..8] of char;
// программа заполняет массив символами цифр из полученной строки
// лишняя конструкция- вложенный цикл

begin
 writeln('Vvedite stroku');
 readln(s);

 n := 1;
 i := 1;

 while((i <= length(s)) AND (n <= high(a))) do //пока не кончится строка или не заполнится массив
 begin
   if (s[i] >= '0') AND (s[i] <= '9') then
   begin
     a[n] := s[i];
     inc(n);
   end;
   inc(i);
 end;

 for i := low(a) to high(a) do
   write(a[i], ' '); // выводим массив

 readln();

end.
vedro-compota's picture

засчитано

_____________
матфак вгу и остальная классика =)