Задача 21 урок 13.1

Задача 21 урок 13.1

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

program zadacha21;
var i, j, n, m, p: integer;
    x: boolean;
begin
  writeln('Vvedite chislo N:');
  readln(n);
  m:=1;
  i:=1;
  p:=2;
  x:=false;
  repeat    //цикл, который прогоняет строки
    j:=1;              //j - cчетчик коллчества символов в строке, обнуляем каждый проход цикла
      while (j<=m) and (i<=n) do             //цикл, печатающий строки
      begin
        write(i, ' ');
        i:=i+1;
        j:=j+1;
      end;
    writeln();
      If x then   //проверяем, увеличиваем строку или уменьшаем
        m:=m-1
      else
        m:=m+1;
      if m = p then    //провряем, дошли до пользовательского значния или вернулись к 1
      begin
        x := true;
        p:=p+1;      //увеличивем максимальную строку каждой новой "елочки"
      end;
      if m = 1 then
        x := false;
  until i>=n;
  readln();
end. 
vedro-compota's picture

решить через 1 цикл for

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

program zadacha21;
var i, j, n, m, p: integer;
    x: boolean;
begin
  writeln('Vvedite chislo N:');
  readln(n);
  m:=1;
  j:=2;
  x:=false;
    for i:=1 to n do
     begin
      write(i,' ');
      p:=p+1;       //считем коллисетсво напечатаных символов в строке
        if p=m then //делаем проверку, все ли символы введены в строке
          begin
            writeln();
            p:=0;             //обнуляем счетчик строки
              if x then   // проверем, нужно добвить колличество символов в строку или уменьшить
                m:=m-1
              else
                m:=m+1;
          end;
        if m=j then  //проверяем когда строка достигла "вершины елки"
          begin
            x:=true;   //меняем направленность
            j:=j+1;    //увеличиваем "вершину"
          end;
        if m=1 then   //проверяем если дошли до низа и меняем направеность
          x:=false;
     end;
  readln();
end. 
vedro-compota's picture

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

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

program zadacha21;
var i, j, n, m, p: integer;
    x: boolean;
begin
  writeln('Vvedite chislo N:');
  readln(n);
  m:=1;
  j:=2;
  x:=false;
    for i:=1 to n do
    begin
      write(i,' ');
      p:=p+1;       //считем коллисетсво напечатаных символов в строке
        if p=m then //делаем проверку, все ли символы введены в строке
        begin
          writeln();
          p:=0;             //обнуляем счетчик строки
            if x then   // проверем, нужно добвить колличество символов в строку или уменьшить
              m:=m-1
            else
              m:=m+1;
        end;
        if m=j then  //проверяем когда строка достигла "вершины елки"
        begin
          x:=true;   //меняем направленность
          j:=j+1;    //увеличиваем "вершину"
        end;
        if m=1 then   //проверяем если дошли до низа и меняем направеность
          x:=false;
     end;
  readln();
end.   
vedro-compota's picture

форматирование

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