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

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

Пользователь вводит строку произвольных символов, выделите из неё массив первых 8 строковых литералов, которые являются числами. И выведите эти числа на экран.
Например, из строки:

rew2@#$$#435tr353453t4er4

должны быть выделены подстроки:

2
435
353453
4
4
Подсказка: массив должен быть "of string".

РЕШЕНИЕ

program task_6_lesson_17;
var  s : string;
     i, n : integer;
begin
  readln(s); // ввод строки
  n := 0;   // первый символ
  for i := 1 to length(s) do
    if ((s[i] >= '0') and (s[i] <= '9')) then
      begin
        write(s[i]);
        n := 1; // если n > 0 тогда символ (числовой!!!!) НЕ первый
      end
    else
      if (((s[i + 1] >= '0') and (s[i + 1] <= '9')) and (n > 0)) then
        writeln();
  readln
end.

Консоль

kjkjk34k3j4kjk12kkjk3j4k3j4343434kjk4jkjk23kjk456
34
3
4
12
3
4
3
4343434
4
23
456
vedro-compota's picture

массив первых 8 строковых литералов

-- нет ограничения

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

Добавил счетчик чисел. как только будет 8 цикл прервется

program task_6_lesson_17;
var  s : string;
     i, n, c : integer;
begin
  c := 0; // счетчик
  readln(s); // ввод строки
  n := 0;   // первый символ
  for i := 1 to length(s) do
    if ((s[i] >= '0') and (s[i] <= '9')) then
      begin
        write(s[i]);
        n := 1; // если n > 0 тогда символ (числовой!!!!) НЕ первый
        c += 1;
        if (c = 8) then
          break;
      end
    else
      if (((s[i + 1] >= '0') and (s[i + 1] <= '9')) and (n > 0)) then
        writeln();
  readln
end. 
vedro-compota's picture

засчитано

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