Решение задачи №4 из главы 13.1. Readln и сравнение чисел, ввод пользователя. Паскаль

Задача №4 из главы 13.1

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

var   a,i:integer;
begin

   writeln('vvedite chislo >1:');
   readln(a);

   while (a > 1) do
   begin   //  начало тела внешнего цикла
      for i:=1 to a do // (вложенный цикл) выводим все числа до a
        if ((a mod 2) = 1) and ((a mod 5)=0) then
        write(i, ' ');
      writeln(); // перенос строки

      writeln('vvedite chislo >1:'); // очередной раз запрашиваем число в цикле
      readln(a);

   end;  // конец тела внешнего цикла

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

Если же пользователь ввел число меньшее 1, то завершите программу.

где код отвечающий за это?

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

gani84's picture

var   a,i:integer;
begin

   writeln('vvedite chislo >1:');
   readln(a);
   while (a > 1) do
   if (a < 1) then
      break
   else
   begin   //  начало тела внешнего цикла
      for i:=1 to a do // (вложенный цикл) выводим все числа до a
        if ((a mod 2) = 1) and ((a mod 5)=0) then
        write(i, ' ');
      writeln(); // перенос строки
      writeln('vvedite chislo >1:'); // очередной раз запрашиваем число в цикле
      readln(a);
    end;  // конец тела внешнего цикла
   writeln('zaversheno!');
   readln();
end.                 
vedro-compota's picture

неправильно отформатировано

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

vedro-compota's picture

проверить работу при a=1

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

gani84's picture

var   a,i:integer;
begin

   writeln('vvedite chislo >1:');
   readln(a);
   while (a > 1) do
   if (a <= 1) then
      break
   else
   begin   //  начало тела внешнего цикла
      for i:=1 to a do // (вложенный цикл) выводим все числа до a
         if ((a mod 2) = 1) and ((a mod 5)=0) then
             write(i, ' ');
      writeln(); // перенос строки
      writeln('vvedite chislo >1:'); // очередной раз запрашиваем число в цикле
      readln(a);
    end;  // конец тела внешнего цикла
   writeln('zaversheno!');
   readln();
end.            
Результат
vvedite chislo >1:
2
vvedite chislo >1:
1
zaversheno!
vedro-compota's picture

сделать без else и без break. Достаточно if в неполной форме.

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

gani84's picture

var   a,i:integer;
begin
   writeln('vvedite chislo >1:');
   readln(a);
   while (a > 1) do
   begin
      if (a <= 1) then
         for i:=1 to a do // (вложенный цикл) выводим все числа до a
              if ((a mod 2) = 1) and ((a mod 5)=0) then
                  write(i, ' ');
      writeln(); // перенос строки
      writeln('vvedite chislo >1:'); // очередной раз запрашиваем число в цикле
      readln(a);
    end;  // конец тела внешнего цикла
   writeln('zaversheno!');
   readln();
end.
              
vedro-compota's picture

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

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