Решение задачи 16 из главы 13.1

Решение задачи 16 из главы 13.1

Пользователь вводит целое положительное число N, если оно не соответствует критериям (то есть не является положительным), выведете сообщение об ошибке, в противном случае выведите на экран все числа последовательности, не большие N, сформированной следующим образом:
?
1
8 10 3 12 14 3 16 18 3 20 22 3 и т.д.
-- то есть всё начинается с восьмерки, затем число увеличивается на 2, затем выводит тройка и ещё пара увеличенных на 2 чисел и т.д.

program Project16;
var a, b, c: integer;
begin
  b:=8;
  c:=1;
  writeln('Vvedite zeloe polozhitelnoe chislo bolshe 8:');
  readln(a);
  if (a > 0) then
  begin
     while (b < a) do
           repeat
              for c:=1 to 2 do
              begin
                  write(b, ' ');
                  b:=b+2;
              end;
              c:=c+1;
              write (3, ' ');
           until (c > 2);
    end
  else
     writeln('Vy vveli otrizatelnoe chislo!');
  readln();
end.

В этой программе

           repeat
             { .. }
           until (c > 2);

не используется.

Если ввести 13, вывод будет

8 10 3 12 14 3 

14 больше 13 и находится в последовательности.

program Project16;
var a, b, c: integer;
begin
  b:=6;
  c:=1;
  writeln('Vvedite zeloe polozhitelnoe chislo bolshe 8:');
  readln(a);
  if (a > 0) then
  begin
     while (b <= a) do
           repeat
              for c:=1 to 2 do
              begin
                  b:=b+2;
                  if (b > a) then
                     break;
                  write(b, ' ');
              end;
              c:=c+1;
              if (c = 2) then
                 break;
              write (3, ' ');
           until (c > 2);
    end
  else
     writeln('Vy vveli otrizatelnoe chislo!');
  readln();
end.