Задача 4 урок 16

Задача 4 урок 16

Пользователь вводит строку произвольных символов, запишите первые 8 символов цифр в массив и выведете этот массив на экран.

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];  //массив записывать по n
           inc(n); //процедура n:=n+1
         end;
   end;
 for i:=low(a) to high(a) do
   write(a[i],' '); // выводим массив
 readln();
end.
vedro-compota's picture

 while(n<10) do      // 1-8

-- зачем тут внешний цикл?

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

Цикл while использовался для ограничения записи массива до 8 элементов, исправлено

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 //9-1=8
         break;
       a[n]:=s[i];  //массив записывать по n
       inc(n);
     end;

 for i:=low(a) to high(a) do
   write(a[i],' '); // выводим массив
 readln();
end.
vedro-compota's picture

 if n = 9 then //9-1=8
         break;

лучше сделать break на 8-ом витке. после нужных операций

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

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.
vedro-compota's picture

решение засчитано

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