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

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

Пользователь вводит целое положительное число N большее или равное 8, если оно не соответствует этим критериям (то есть не является положительным и большим или равным 8), выведете сообщение об ошибке, в противном случае выведите на экран все числа последовательности, не большие N.
Например, для N=20 получим результат:

?
1
8 10 3 12 14 3 16 18 3 20
-- то есть всё начинается с восьмерки, затем число увеличивается на 2, затем выводится тройка и ещё пара увеличенных на 2 чисел и т.д. пока не дойдем до N.

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

program  u131z15;
var n, c, m: integer;

begin
writeln('vvedite cheloe chislo');
readln (n);
  if (n > 8) or (n = 8) then
  begin

   c:=8;
   writeln(c);
   m:=1;
    while (c < n) and (c < (n - 1)) do
    begin
     c:=c + 2;
     writeln(c);
      if (c >= n) or (c >= (n - 1))  then
      break else
      begin

       writeln(3);
       c:=c + 2;
       writeln(c);

      end;
   end;
  end else
  writeln('oshibka');


readln();
end.     
vedro-compota's picture

while (c < n) and (c < (n - 1)) do

 if (c >= n) or (c >= (n - 1))  then

-- тут есть лишние подусловия, переписать

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

program  u131z15;
var n, c, i: integer;

begin
  writeln('vvedite cheloe chislo');
  readln (n);
  if (n > 8) or (n = 8) then
  begin

    c:=8;

    while (c <= n) do
    begin

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

        if(c <= n) then
          write(3,' ');

    end;


  end else
  writeln('oshibka');


readln();
end.