урок 13.1 задача 4

урок 13.1

Пользователь вводит числа до тех пор пока не введёт число меньшее 1. В ответ на каждое введённое им число выводите на экран все нечетные числа от 1 до это числа, при этом делящиеся на 5. Если же пользователь ввел число меньшее 1, то завершите программу.

var
  i,j:integer;
begin
   writeln('ведите число:');
   readln(i);
 while (i>1) do
 begin
  if (i <=1) then
    for j :=1 to i do
      if ((i mod 2)=1) and ((i mod 5)=0) then
        writeln(i);
 end

end.          
vedro-compota's picture

1) Форматирование
2) Программа ничего не выводит (при этом попадает в бесконечный цикл

3)

 while (i>1) do
 begin
  if (i <=1) then

-- это взаимоисключающие условие

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

isaac_fan's picture

var
  i,j:integer;
begin
  i:=2;
  while (i>1) do
  begin
    writeln('ведите целое число');
    readln(i);
    writeln(((i mod 2)=1) and ((i mod 5)=0));

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

см. урок 10.0

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

isaac_fan's picture

var
  i.j:integer;
begin
   writeln('ведите число 1:');
   readln(i);
   while (i > 1) do
   begin
      if (i <= 1) then
         for j:=1 to i do
              if ((i mod 2) = 1) and ((i mod 5)=0) then
                  write(j, ' ');
      writeln();
      writeln('ведите число:');
      readln(i);
    end;
   writeln('конец!');
   readln();
end.                                
vedro-compota's picture

  1. есть опечатка - не запускается
  2. даже после исправления делает вообще что-то не то
  3.  while (i > 1) do
       begin
          if (i <= 1) then 

    --несовместимые проверки

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

isaac_fan's picture

var
  i,j:integer;
begin
   writeln('ведите число 1:');
   readln(i);
   while (i > 1) do
   begin
      if (i <= 1) then
         writeln('ошибка число меньше 5');
         breack;
         for j:=1 to i do
              if ((i mod 2) = 1) and ((i mod 5)=0) then
                  write(j, ' ');
      writeln();
      writeln('ведите число:');
      readln(i);
    end;
   writeln('конец!');
   readln();
end.           
vedro-compota's picture

  1. исправить форматирование
  2. проверить запуск на соответствие условию - напр. если мы введем число 8

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

isaac_fan's picture

var
  i,j:integer;
begin
  writeln('ведите число НЕ меньше 1:');
  readln(i);
  if (i>1) then
      for j:=1 to i do
      write(i+2);
  readln();
end.