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

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

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

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

// 1 цикл не используя делимость нацело
var M, N, k, L:integer;
begin
  L := 2;  // ограничитель длины фрагмента(изменяется)
  k := 1; // длина фрагмента
  M := 8; // стартовое число 
  write('vvedi chislo N ');
  readln(N);
  if(N >= 10) then
    begin
      repeat
        write(M,' ');
        M := M + 2;
        if(k = L) then
          begin
            write(3,' ');
            k := 0;
            L := L + 1;
          end;
        k:=k+1;
      until(M > N);
    end
  else
    writeln('ERRROOOR');
readln();
end.
// вложенные циклы
var M, N, k, L:integer;
begin
  L := 2;  // ограничитель длины фрагмента(изменяется)
  k := 1; // длина фрагмента
  M := 8; // стартовое число
  write('vvedi chislo N ');
  readln(N);
  if(N >= 10) then
    begin
      while(M < N) do
        begin
          for k := 1 to L do
            begin
              write(M,' ');
              M := M + 2;
            end;
        write(3,' ');
        L := L + 1; //  увеличиваем длину фрагмента на 1
        k := 0;
        end;
    end
  else
    writeln('ERRROOOR');
readln();
end.      
// используя делимость нацело c одним циклом
var M, N, k, L:integer;
begin
  L := 2;  // ограничитель длины фрагмента(изменяется)
  k := 1; // длина фрагмента
  M := 8; // стартовое число
  write('vvedi chislo N ');
  readln(N);
  if(N >= 10) then
    begin
      repeat
        write(M,' ');
        M := M + 2;
        if((k mod L)=0) then
          begin
            write(3,' ');
            k := 0;
            L := L + 1;
          end;
        k:=k+1;
      until(M > N);
    end
  else
    writeln('ERRROOOR');
readln();
end. 
vedro-compota's picture

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

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