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

Задача 22 Урок 13.1:
Пользователь передает целые положительные число N и M, выведете на экран последовательность от 1 до N, так чтобы ширина "ёлочки" увеличивалась до M чисел, то уменьшалась до 1. Например, для M=3 и N=19 получим:

1
23
456--максимум три числа
78
9
1011
121314--снова три числа
1516
1718
19.....
program task22;
var a,b,n,m,c,i: integer;
begin
  writeln('vvedite chislo N u M');
  readln(n);
  readln(m);
  c:=1;
  m:=m-1;
  while (n>0) do
  begin
    if (a<=b) then
    begin
      write (c,' ');
      a:=a+1;
      c:=c+1;
      n:=n-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;
      end;
    end;
  end;
  readln();
end.
vedro-compota's picture

убрать лишние скобки, прокомментировать назначение переменных

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

program task22;
var a,b,n,m,c,i: integer;
begin
  writeln('vvedite chislo N u M');
  readln(n);
  readln(m);
  c:=1;                       //с-счетчик чисел которые выводятся
  m:=m-1;
  while (n>=c) do
  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;
      end;
    end;
  end;
  readln();
end.