задача 4 урок 17

задача 4 урок 17

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

РЕШЕНИЕ

program task_4_lesson_17;
var s: string;
    c: array[1..8] of char;
    i, n: integer;
begin
  readln(s);
  n := 1;
  while n <= 8 do
    for i := 1 to length(s) do
    begin
      if (s[i] >= '0') and (s[i] <= '9') then
    begin
      c[n] := s[i];
      n += 1;
    end;
  end;
  for i := low(c) to high(c) do
    write(c[i], '|');
  readln();
end.

Консоль

34 one 342 two 9033 three ijidu 2323 eight 88 nine ten 0001
3|4|3|4|2|9|0|3|
vedro-compota's picture

  while n <= 8 do
    for i := 1 to length(s) do

-- если не удалось считать 8 символов за первый проход, вложенный цикл будет перезапущен?

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

Убрал цикл while. Записываю цифры(char) сразу в массив

program task_4_lesson_16;
var s: string;
    c: array[1..8] of char;
    i, n: integer;
begin
  n := 1;
  readln(s);
    for i := 1 to length(s) do
    begin
      if (s[i] >= '0') and (s[i] <= '9') then
    begin
      c[n] := s[i];
      n += 1;
      if (n = 9) then  // как только массив переполнен, выходим из цикла
        break;
    end;
  end;
  for i := low(c) to high(c) do
    write(c[i], '|');
  readln();
end. 

Консоль - цифр меньше 8 штук

1234 rtrt fgfg  gfgr
1|2|3|4| | | | |
vedro-compota's picture

засчитано

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