Урок 13.1 задача 17

Урок 13.1 задача 17

Модифицируйте решение предыдущей задачи, так, чтобы длина возрастающего фрагмента каждый раз увеличивалась на единицу (начиная с двух)

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

1. Решение с одним циклом без делимости нацело

program Project1;
var m,n,i,j: integer;

begin
  j:=6;
  i:=0;
  write('Vvedite N: '); readln(n);
  write('Vvedite M: '); readln(m);
  if(n<8)then
    write('ERROR!')
  else
    begin
      while(j<n)do
        begin
          i:=i+1;
          if(i<>m+1)then
             begin
               j:=j+2;
               write(j,' ')
             end
          else
             begin
               write(3,' ');
               i:=0;
               m:=m+1;
             end;
        end;
    end;
  readln();
end.

2. Решение с одним циклом с делимостью нацело

program Project1;
var m,n,i,j: integer;

begin
  j:=6;
  i:=0;
  m:=2;
  write('Vvedite N: '); readln(n);
  if(n<8)then
    write('ERROR!')
  else
    begin
      while(j<n)do
        begin
          i:=i+1;
          if(i mod(m+1)<>0)then
             begin
               j:=j+2;
               write(j,' ')
             end
          else
             begin
               write(3,' ');
               i:=0;
               m:=m+1;
             end;
        end;
    end;
  readln();
end.

3.Решение с помощью вложенных циклов

program Project1;
var n,i,j,m: integer;

begin
j:=8;
m:=2;
i:=0;
write('Vvedite N: '); readln(n);
if(n<0)then
  write('ERROR!')
else
  begin
    while(j<=n)do
      begin
        while (j<=n) and (i<m) do
           begin
             write(j,' ');
             j:=j+2;
             i:=i+1;
           end;
      if(i<>m)then
        break
      else
        begin
          write('3 ');
          m:=m+1;
          i:=0;
        end;
      end;
  end;
  readln();
end.
vedro-compota's picture

засчитано

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