Решение задачи №1 из главы 13.1

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

Выведите на экран таблицу умножения используя только циклы вида repeat/until.

var i, j: integer;
begin
  i := 1; // начальное значение для счетчика внешнего цикла

  repeat // начало тела внешнего цикла

    j := 1; //  сбрасываем значение счетчика внутреннего цикла в единицу (чтобы он повторился как и предыдущий раз), или если речь идёт о первом витке, то это действие можно назвать заданием начального значения счетчика
    repeat // выводим равенства очередной строки, счётчик как правый множитель
      write(i, '*', j, '=', i*j, ' ');
        j:=j+1; // увеличиваем значение счетчика внутреннего цикла
      until (j>=9);

    writeln(); // переносим строку
    i:=i+1; // увеличиваем значение счетчика внешнего цикла

  until (i > 9);  // проверка условия выхода из внешнего цикла и конец его тела

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

посмотрите на код и скажите: какой максимальный результат произведения получится в результате работы этой программы?

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

gani84's picture

9*8=72 максимальное будет 72
Исправил

var i, j: integer;
begin
  i := 1; // начальное значение для счетчика внешнего цикла

  repeat // начало тела внешнего цикла

    j := 1; //  сбрасываем значение счетчика внутреннего цикла в единицу (чтобы он повторился как и предыдущий раз), или если речь идёт о первом витке, то это действие можно назвать заданием начального значения счетчика
    repeat // выводим равенства очередной строки, счётчик как правый множитель
      write(i, '*', j, '=', i*j, ' ');
        j:=j+1; // увеличиваем значение счетчика внутреннего цикла
      until (j>=10);

    writeln(); // переносим строку
    i:=i+1; // увеличиваем значение счетчика внешнего цикла

  until (i > 9);  // проверка условия выхода из внешнего цикла и конец его тела

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

Исправил

работает верно, но смущает вот это условие:

until (j>=10);

- вас число строк и столбцов совпадает. Переделайте условие так, чтобы в качестве ограничения использовалось минимальное число (подсказываю - это не 10).

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

gani84's picture

var i, j: integer;
begin
  i := 1; // начальное значение для счетчика внешнего цикла

  repeat // начало тела внешнего цикла

    j := 1; //  сбрасываем значение счетчика внутреннего цикла в единицу (чтобы он повторился как и предыдущий раз), или если речь идёт о первом витке, то это действие можно назвать заданием начального значения счетчика
    repeat // выводим равенства очередной строки, счётчик как правый множитель
      write(i, '*', j, '=', i*j, '   ');
        j:=j+1; // увеличиваем значение счетчика внутреннего цикла
      until (j>9);

    writeln(); // переносим строку
    i:=i+1; // увеличиваем значение счетчика внешнего цикла

  until (i > 9);  // проверка условия выхода из внешнего цикла и конец его тела

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

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

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