Урок10.1 задача 5: Проверка делимости чисел с выбором диапазона в цикле - Обсуждение решения

Выведите на экран, все четные числа от 35 до 117 и нечетные числа, лежащие в диапазоне от 45 до 99.
Указание: сначала можно решить задачу двумя циклами, но потом перепишите с использованием одного цикла, в теле которого составьте логическое выражение, описывающее подходящие числа (используйте логические операции).

Решение:

begin
  //for i:= 35 to 117 do
  //if ((i mod 2) = 0) then
  //write(i, ' ');
  //
  //for i:= 45 to 99 do
  //if i mod 2 <> 0 then
  //write(i, ' ');

  for i:= 35 to 117 do
      begin

      if ((i>= 35) AND (i <=117)
      AND ((i mod 2) = 0)) then
      write(1,' ')
      else
      if ((i>= 45) AND (i <=99)
      AND ((i mod 2) <> 0)) then
      write(i, ' ');
      end;


  readln();

end.
                                      
vedro-compota's picture

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

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

program U101Z5;

  var  i: integer;

begin
  for i:=35 to 117 do
      if ((i mod 2) = 0) then // если четное
          write(i, ' ');

  writeln();

  for i:=35 to 117 do //
      if ((i mod 2) <>0) then // если нечетные
          write(i, ' ');

  readln();
end.  

Это решение не работает почему-то:

program U101Z5;

  var  i: integer;

begin
  for i:= 35 to 117 do
      if ((i>= 35) AND (i <=117)
          AND ((i mod 2) = 0)) then
              write(1,' ')

          else
              if ((i>= 45) AND (i <=99)
              AND ((i mod 2) <> 0)) then
                  write(i, ' ');

  readln();
end.
           

program U101Z5;

  var  i: integer;

begin
  for i:= 35 to 117 do
      if ((i>=35) AND (i <=117)
          AND ((i mod 2) = 0)) then
              write(i,' ')

          else
              if ((i>= 45) AND (i <=99)
              AND ((i mod 2) <> 0)) then
                  write(i, ' ');

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

if ((i>=35) AND (i <=117)

-- лишняя проверка

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

program U101Z52;

  var  i: integer;
      //С одним циклом
begin
  for i:= 35 to 117 do
       if ((i>= 45) AND (i <=99)
           AND ((i mod 2) <> 0)) then
              write(i, ' ')
       else
           if ((i>=35) AND ((i mod 2) = 0)) then
              write(i,' ');

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

if ((i>=35) AND ((i mod 2) = 0)) then

есть лишняя проверка

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

p

rogram U101Z5;

  var  i: integer;

begin
  for i:= 35 to 117 do
      if (i mod 2) = 0 then
              write(i,' ')
      else
          if ((i>= 45) AND (i <=99)
              AND ((i mod 2) = 1)) then
                  write(i, ' ');

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

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

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