Задача 23 Урок 13.1

Задача 23 Урок 13.1:

Пользователь передает целое положительное число N, выведете на экран последовательность от 1 до N, так чтобы ширина "ёлочки" росла волнами.

var a,b,n,m,c,i,z: integer;
begin
  writeln('vvedite chislo N');
  readln(n);
  a:=0;
  b:=0;
  c:=1;                     //с-счетчик чисел которые выводятся\
  z:=2;
  m:=z-1;
  repeat
  begin
    if (a<=b) then           //a-кол-во выведенных символов в строке
    begin                    //b-кол-во символов которое нужно вывести в строке
      write (c,' ');
      a:=a+1;
      c:=c+1;
    end
    else
    begin
      writeln();
      if (b=m) then         //на уменьшение строки
        i:=1
      else if (b=0) then    //на увеличение строки
        i:=0;
      if (b<m) and (i=0) then
      begin
        b:=b+1;
        a:=0;
      end
      else
      begin
        b:=b-1;
        a:=0;
        z+=1;
        m:=z-1;
      end;
    end;
  end;
  until c>=n;
  readln();
end. 

Вывод консоли:

vvedite chislo N
30
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