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

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

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

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

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

Подсказки (если не получается решить самостоятельно или для лучшего понимания):

Разбор решения одним цилом: https://youtu.be/l_fOvs68xWY (link is external)

program u13_1_z20; // решение двумя циклами

var n,i,m,j :integer;

begin
  writeln('vvedite chislo n');
  readln(n);
  i:=1;
  m:=1;
  j:=0;
  while (m <= n) do
  begin
    while (i <= m) and (j < n) do
    begin
      write(j,'  ');
      i:=i + 1;
      j:=j + 1;
    end;
    writeln();
    m:=m+1;
    i:=1;
  end;
  readln();
end.
program u13_1_z20; // решение одним циклами

var n,i,m,j : integer;

begin
  writeln('vvedite chislo n');
  readln(n);
  i:=0;
  j:=1;
  m:=1;
  while (j <= n) do
  begin
    write(j,' ');
    i:=i + 1;
    j:=j + 1;
    if (i = m) then
     begin
     writeln();
     i:=0;
     m:=m+1;
     end;
  end;
  readln();
end.      
program u13_1_z20; // решение одним циклами с заменой while на for после видео разбора

var n,i,m,j : integer;

begin
  writeln('vvedite chislo n');
  readln(n);
  i:=0;
  j:=1;
  m:=1;
  for j:=1 to n do
  begin
    write(j,' ');
    i:=i + 1;
    if (i = m) then
     begin
     writeln();
     i:=0;
     m:=m+1;
     end;
  end;
  readln();
end.
vedro-compota's picture

program u13_1_z20; // решение одним циклами с заменой while на for после видео разбора
 
var n,i,m,j : integer;
 
begin
  writeln('vvedite chislo n');
  readln(n);
  i:=0;
  j:=1;
  m:=1;
  for j:=1 to n do
  begin
    write(j,' ');
    i:=i + 1;
    if (i = m) then
     begin
     writeln();
     i:=0;
     m:=m+1;
     end;
  end;
  readln();
end.

есть проблемы с форматированием

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

program u13_1_z20; // обновила форматирование

var n,i,m,j : integer;

begin
  writeln('vvedite chislo n');
  readln(n);
  i:=0;
  j:=1;
  m:=1;
  for j:=1 to n do
  begin
    write(j,' ');
    i:=i + 1;
    if (i = m) then
    begin
      writeln();
      i:=0;
      m:=m+1;
    end;
  end;
  readln();
end.
vedro-compota's picture

решение засчитано

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