Урок 13.1 Задача 9

Урок 13.1 Задача 9

Есть исходный код:

var
  i,m:integer;
begin
  i:=1;
  m:=1;
  repeat
    repeat
      write('# ');
      m:=m+1;
    until(m=13);
    i:=i+1;
    writeln();
  until(i=9);
  readln();

end.
-- в нем сделана попытка вывести квадрат символов # размерами 13 на 9.
Но цикл оказывается бесконечным, разберитесь почему (напишите текстовое описание причины) и исправьте ошибку в коде.

program Project1;
var
  i,m:integer;
begin
  i:=1;

  repeat
    m:=1;
    repeat
      write('# ');
      m:=m+1;
    until(m>13);
    writeln();
    i:=i+1;

  until(i>9);
  readln();
end.           
vedro-compota's picture

дописать ответы по обновленному условию

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

1: Первая ошибка в том что вот эти конец переменных repeat-until указаны не верно
until(m=13);
until(i=9);
Знак "равно" надо заменить на знак "больше"
Тогда у нас получиться:

# # # # # # # # # # # # #
#
#
#
#
#
#
#
#

2: Вторая ошибка в том что переменную "m" надо переместить тоесть указать в другом месте а именно после первого слова repeat
Тогда у нас получиться:

# # # # # # # # # # # # #
# # # # # # # # # # # # #
# # # # # # # # # # # # #
# # # # # # # # # # # # #
# # # # # # # # # # # # #
# # # # # # # # # # # # #
# # # # # # # # # # # # #
# # # # # # # # # # # # #
# # # # # # # # # # # # #

А это и есть правильный результат

vedro-compota's picture

ответьте дополнительно на вопросы:

  1. На каком витке внешнего и внутреннего цикла (укажите номера витков) программа впервые начинает выводить не то, что ожидалось
  2. Какой из двух циклов - внешний или внутренний оказывается бесконечным и почему (состояние переменных)

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

№1
Программа начинает выводить не то на 26 витке внутреннего цикла.
То-есть на втором витке внешнего цикла после 13-ого символа "#" продолжают выводиться эти символы и получаются бесконечный цикл.

№2
Бесконечным циклом оказывается внутренний цикл так как он продолжает выводить символ "#"
на втором витке внешнего цикла

vedro-compota's picture

отлично

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