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

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

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

1
2 3
4 5 6
7 8 9 10
11 12 13 14 15
16 17 18
ПРИМЕЧАНИЕ: эту задачу можно решить, как вложенными циклами, так и вообще одним циклом (что более изящно).
Решите указанными двумя способами.

program  u13z18;
var i,a,m,n: integer;

begin
  writeln('vvedite chislo n');
  readln(n);

  a:=1;
  m:=1;
  while (a <=n) do
  begin

    for i:=1 to m do
     begin
      if (a <=n)then
        write(a,' ');
      a:=a + 1;
     end;
    m:=m+1;
     if (a<=n)then
      writeln();

  end;

  readln();

end.               
vedro-compota's picture

подумать над решением одним циклом (без вложенных)

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

program  u13z18;
var a,b,c,n,d: integer;

begin

  writeln('vvedite chislo n');
  readln(n);

  a:=0;
  c:=1;
  b:=1;
  d:=0;
  while (a<=n) do
  begin
    a:=a + 1;
      if (a <=n) then
        write(a,' ');
      if (a = c) then
      begin
        writeln();
        d:=d+1;
        b:=d+1;
        c:=c+b;
      end;

  end;

  readln();

end.
vedro-compota's picture

  • 1) лучше начать с a:=1; тогда не нужно будет проверять if (a
  • 2) write(a,' '); можно делать каждый раз без проверки
  • Прокомментировать назначение переменных
    d:=d+1;
    b:=d+1;
    c:=c+b;
    

    -- тут есть лишние?

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