Так как чертёжник оказался в начальной точке, значит после цикла у нас должно получиться число, обратное последней команде. В данном случае последняя команда такая: (8, -2), следовательно должны получить (-8, 2). Возьмём начальную координату (0, 0) т.к. так проще считать.
Посмотрим где будет чертёжник после нескольких выполнений цикла После первого по координатам х: 0 -1 + 0 + (-3) = -4 После первого по координатам y: 0 -4 + 2 + B = -2 + B
по оси Х нам не хватает ещё одного цикла, значит считаем после второго выполнения цикла После второго по координатам x: -4 * 2 = -8 После второго по координатам y: (-2 + B) * 2 = -4 + 2B
Кол-во во "повтори" мы нашли. Это 2 т.к. при двух прокатах цикла мы получаем х= -8, что нам и надо чтобы вернуться в начальную точку.
Осталось найти y. Согласно последней команде, y должен быть обратным -2, следовательно y = 2, составим уравнение и найдём B. 2 = -4 + 2B -2B = -4 - 2 -2B = -6 2B = 6 B = 3
Если не ошибаюсь, то X и Z являются типа byte. Требовать от переменных этого типа извлечение корня неправильно. Так как это по определению целые положительные числа, размером до 256. От переменной, из которой извлекают корень, требуется тип значения - действительное число. Так что лучше сразу объявить эти две переменные типа double (похоже так в Паскале).
В первом же случае лучше извлечь корень с операции sqrt. Снова, если не ошибаюсь, операция возведения в степени в Паскале довольно трудоемка что ли. Она определяется через exp и ln. Так что лучше не заморачиваться, а воспользоваться оператором sqrt.
Пользовательский ввод:
## var m := ReadMatrInteger(5, 6); m.ElementsByRow.Max.PrintЗаполнение случайными числами:
## var m := MatrRandom(5, 6, -99, 99).Print; m.ElementsByRow.Max.PrintПример работы: