Задача 4 Урок 11

http://fkn.ktu10.com/?q=node/7341

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

// 2 цикла
var i, k: integer;
begin
  i := 35;
  while((i >= 35) and (i <= 117)) do
     begin
     if((i mod 2) = 0) then
       write(i, ' ');
       i := i + 1;
     end;
  writeln();
  writeln();
  k := 45;
  while((k >= 45) and (k <= 99)) do
     begin
     if((k mod 2) <> 0) then
       write(k, ' ');
       k := k + 1;
     end;
  readln();
end.  
//1 цикл
var i: integer;
begin
  i := 35;
  while((i >= 35) and (i <= 117)) do
     begin
     if((i mod 2) = 0) then
       begin
       write(i, ' ');
       end;
     if(((i mod 2) <> 0) and (i >= 45) and (i <= 99)) then
       begin
       write(i, ' ');
       end;
     i := i + 1;
     end;
  readln();
end.  
vedro-compota's picture

неоптимальная связь проверок в теле цикла (по аналогии с уроком 9)

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

//1 цикл
var i: integer;
begin
  i := 35;
  while((i >= 35) and (i <= 117)) do
    begin
      if((i mod 2) = 0) then
        write(i, ' ')
    else
      if(((i mod 2) <> 0) and (i >= 45) and (i <= 99)) then
        write(i, ' ');
    i := i + 1;
   end;
  readln();
end.      
vedro-compota's picture

есть лишнее логическое подвыражение

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

//1 цикл
var i: integer;
begin
  i := 35;
  while((i >= 35) and (i <= 117)) do
    begin
      if((i mod 2) = 0) then
        write(i, ' ')
    else
      if((i >= 45) and (i <= 99)) then
        write(i, ' ');
    i := i + 1;
    end;
  readln();
end.  
vedro-compota's picture

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

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