Я согласен с соседними комментариями 1 до 3.
код приведенного выше аномальный несколько способов. Я подозреваю, что были ошибки транскрипции.
Во-первых, соединение «начало» «конец» является неполным.
В Algol, 'начало. , , end '- это простой оператор, OR, если внутри есть декларации, то это блок.
В этом коде, что следует за i: = 1 шаг 1 до тех пор, пока m do 'не начнется, как составной оператор с «begin», но соответствующий «конец» не будет виден. Если мы предположим, что «конец» появляется как следующий следующий токен, тогда это завершит составную инструкцию, управляемую этим предложением «для i: = ...».Весь этот составной оператор будет повторяться m раз с i, содержащим последовательные значения от 1 до m.
Вторая аномалия состоит в том, что второй цикл, управляемый «для j: = ...», присоединяется только к следующему одиночному утверждению (вплоть до «;») и суммирует один и тот же набор значений в каждом a [i], и это будет перезаписано 1/a [j]! (Я предполагаю, что «наклон» представляет собой скалярную переменную, а не функцию без параметров, так что она приносит одинаковое значение при каждом выполнении.)
В-третьих, в Алголе не рекомендуется делать какие-либо предположения о значение управляющей переменной в цикле «for» после завершения цикла. Во многих реализациях Algol j здесь будет оставлено, содержащее m + 1. Таким образом, все элементы из [1] в [m] будут содержать 1/a [m + 1]. Это может завершиться неудачей «делить на ноль», если [m + 1] содержит ноль или если a объявлен «реальный массив a [1: m];» то он может выйти из строя с «недопустимым индексом».
Если здесь есть ошибка транскрипции, и мы предполагаем, что заключительный оператор должен был прочитать [i]: = 1/a [i], все значения, вычисленные и сохраненные в [1] ... a [m ] все равно будет тем же, и есть более быстрые способы кодирования этого!
Я надеюсь, что эта тирада (дольше, чем я надеялся) была полезна.
Этот документ является темой Видемана? –