Урок 14.2 Задача 4

Урок 14.2 Задача 4:

Пользователь передает целое положительное число N, выведете на экран последовательность от 1 до N "ёлочкой", например для N=17:

1
2 3
4 5 6
7 8 9 10
11 12 13 14
15 16 17

ПРИМЕЧАНИЕ: для вывода очередной строки используйте отдельную подпрограмму, т.е. для каждой строки вы должны каждый раз (причем один раз для одной строки) вызывать эту подпрограмму.

var
  a, j, n: integer;             // сплошной счетчик, ограничитель чисел в строке, макс-е число

function stroka (x, z, q: integer): integer; //получаем на вход текуще значение сплошного счетчика, ограничитель чисел в строке и максимальное число сплошного счетчика
var
  i: integer;                   // локальная переменная, счетчик чисел в строке
begin
  i:=0;                         // сбрасываем счетчик чисел в строке
  while ((i<z) and (x<q)) do    // цикл, работает, пока счетчик чисел не дойдет до ограничителя и пока сплошной счетчик не дойдет до макс-го числа
  begin
    x:=x+1;                     // увеличиваем сплошной счетчик на 1
    i:= i+1;                    // увеличиваем счетчик чисел в строке на 1
    write(x, ' ');              // выводим значение сплошного счетчика на экран в строку через пробел
  end;
  writeln ();                   // переходим на новую строку
  result := x;                  // передаем наружу значение сплошного счетчика после того, как цикл отработал
end;

begin
  write('Введите число N: ');   // просим ввести максимальное число
  readln(n);                    // считываем максимальное число для сплошного счетчика
  while (a<n) do
  begin
    j:=j+1;                     // увеличиваем ограничитель в строке на 1
    a:= stroka (a, j, n);       {получаем от функции текуще значение сплошного счетчика и тут же передаем
                                в функцию текуще значение сплошного счетчика, ограничитель чисел в строке
                                и максимальное число сплошного счетчика}
  end;
  readln();
end.       

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

Введите число N: 53
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 51 52 53

vedro-compota's picture

засчитано

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