Урок 13.1. Задача №21. Вложенные циклы

Урок 13.1 Задача №21.

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

Например, для M = 3 и N = 25 получим:
1
2 3
4 5 6 -- максимум три числа
7 8
9
10 11
12 13 14 -- снова три числа
18 19
20
21 22
23 24 25.....

var i, j, k, M, N, count : integer;
begin
  k := 1;
  count := 1;
  writeln ('Enter positive integer N: ');
  readln (N);
  writeln ('Enter positive integer M: ');
  readln (M);
  writeln ();
  while (i <= N) do
  begin
    for j := 1 to k do
    begin
      i += 1;
      if (i <= N) then
        write (i, ' ');
    end;
    if (k < M) and (k = count) then
    begin
      k += 1;
      count += 1;
    end else
    begin
      k -= 1;
      count := 1;
    end;

    writeln ();
  end;

  readln(); // Удержание консоль
end.// Завершение программы
Firons's picture

var i, j, k, M, N : integer;
  count : boolean;
begin
  k := 1;
  writeln ('Enter positive integer N: ');
  readln (N);
  writeln ('Enter positive integer M: ');
  readln (M);
  writeln ();
  while (i <= N) do
  begin
    if (k = 1) then
      count := true;

    for j := 1 to k do
    begin
      i += 1;
      if (i <= N) then
        write (i, ' ');
    end;

    if (k < M) and (count = true) then
    begin
      k += 1;
    end else
    begin
      k -= 1;
      count := false;
    end;

    writeln ();
  end;

  readln(); // Удержание консоль
end.//