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

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

Пользователь передает целые положительные число N и M, выведете на экран последовательность от 1 до N, так чтобы ширина "ёлочки" увеличивалась до M чисел, то уменьшалась до 1. Например, для M=3 и N=19 получим:
1
2 3
4 5 6--максимум три числа
7 8
9
10 11
12 13 14--снова три числа
15 16
17
18 19.....

Решение:

program u13z20;
var i,j,k,N,M,t:integer;
begin
  writeln('Vvedite chislo - N');
  readln(N);
  writeln('Vvedite chislo - M');
  readln(M);
  i:=1; //номер элемента по порядку
  j:=1; //номер строки
  k:=1;
  t:=1;//номер элемента в строке
  for i:=1 to N do
  begin
    write(i,' ');
    if j=k then
    begin
      writeln();
      j:=0;
      if k=M then
        t:=0;
      if k=1 then
        t:=1;
      if t=1 then
        k:=k+1;
      if t=0 then
        k:=k-1;
    end;
    j:=j+1;
  end;
  readln();
end.

Консоль:

Vvedite chislo - N
50
Vvedite chislo - M
3
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
50