Задача 22 урок 13.1

Задача 22 урок 13.1

Пользователь передает целое положительное число N, выведете на экран последовательность от 1 до N, так чтобы ширина "ёлочки" росла волнами. Например, для N=49 получим:
1
2 3 -- сначала до двух
4
5 6
7 8 9 -- потом до трёх
10 11
12 -- возвращаемся к одному
13 14
15 16 17
18 19 20 21 -- тут уже четыре
22 23 24
25 26 -- снова убывает
27
28 29
30 31 32
33 34 35 36
37 38 39 40 41
42 43 44 45
46 47 48
49

program task_22_lesson_13_1;
var
  n, c, i, j, f, m : integer;
begin
  c := 0;        // счетчик элементов в строке
  i := 1;
  j := 1;        // нужное кол-во элементов в строке
  readln(n);
  f := 1;        // переключатель роста длины строки
  m := 2;        // начальная высота волны
  while i <= n do
        begin
          write(i, ' ');
          i += 1;
          c += 1;
          if (c = j) then   // проверка длины строки
             begin
               writeln();
               j := j + f;
               c := 0;
             end;
          if (j = m) then      // проверка условия (max длина строки)
             begin
               f := -1;
               m += 1;         // повышаем максимальную длину строки
             end;
          if (j <= 1) then         // проверка того что строку слили до 1-го
             f := 1;
        end;
  readln();
end.
vedro-compota's picture

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

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