урок 13.1 задача 5: Задача на while - Обсуждение решения

урок 13.1

Пользователь вводит первое целое число-ограничитель m. А затем начинает вводить целые числа по одному, пока не введёт число большее числа-ограничителя.
Если очередное целое число больше 1, то в ответ на каждое такое число программа должна выводить все целые числа от единицы до этого числа.
Примечание: это задача на вложенные циклы, в качестве внешнего надо использовать while, а в качестве внутреннего можно использовать или for или while.

var
  i,j,m,e:integer;
begin
   writeln('ведите число 1:');
   readln(m);
   i:=m+1;
   while(j=i) do
     begin
     write('ведите целое число 2:');
     readln(j);
     if (j>1) then
       for e:=1 to j do
         writeln(e,' ')
     end;

end.                 
vedro-compota's picture

1) форматирование
2) Программа не работает по условию (похоже что и не запускалась перед публикацией)

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

isaac_fan's picture

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

end.                
vedro-compota's picture

while(j<>m) do

-почему именно такая проверка? что должно быть по условию?

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

isaac_fan's picture

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

  1. var
    i,j,m:integer;
    begin
     j:=1;
     writeln('ведите число 1:');
    
    

    --лучше писать "введите число-ограничитель", т.е. больше по смыслу задачи

  2. Проверить работу кода
  3. Уточнить форматирование

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

isaac_fan's picture

var
i,j,m:integer;
begin
 j:=1;
 writeln('ведите число ограничитель ');
 readln(m);
 while(j>m) do
 begin
   write('ведите целое число 2:');
   readln(j);
   if (j>1) then
     for i:=1 to j do
       writeln(i,' ')
       else
         writeln('ошибка');
         breack;
 end;

end.        
vedro-compota's picture

  1. Проверить работу кода
  2. Уточнить форматирование

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

isaac_fan's picture

var
i,j,m:integer;
begin
 j:=1;
 writeln('ведите число ограничитель ');
 readln(m);
 while(j>m) do
 begin
   write('ведите целое число 2:');
   readln(j);
   if (j>1) then
     for i:=1 to j do
       writeln(i,' ')
       else
       begin
         writeln('ошибка');
         breack;
       end;
 end;

end.     
vedro-compota's picture

форматирование все еще не верное, работу кода будем праверять, как разберемся с форматированием)

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