гиперактивность , лечение и отдых карловы вары
Первый вариант

Первый вариант — сделать переменную i параметром, вызываемым значением, — отвергается довольно легко. Действительно, переменная i станет при этом локальной величиной в воображаемом блоке, который создается при обращении к процедуре. В то же время фактический параметр, соответствующий параметру ш, должен, как мы уже установили, быть выражением, зависящим от переменной /. Но это выражение входит в состав оператора процедуры, который располагается в основном блоке — там, где локальная величина воображаемого блока недоступна. Поэтому у нас нет никакой возможности сделать выражение общего члена суммы зависящим от формального параметра i9 если этот параметр вызывать значением. Чтобы сделать это еще более ясным, совершим все же попытку описать процедуру суммирования следующим образом.
170 ГЛ. 7. ЭЛЕМЕНТЫ ЯЗЫКА АЛГОЛ 60
Если мы попробуем написать для решения этой задачи программу:

где описание процедуры sigmal имеет приведенный выше вид, то при выполнении оператора sigmal (s, /, /, я, будет построен воображаемый блок, в котором идентификаторы формальных параметров i, т, я, включенных в список значений, придется заменить какими-то другими, новыми идентификаторами:

Выполнение этого блока приведет к бессмысленному результату, так как локальная переменная внешнего блока i не получает в этой программе никакого конкретного значения.
К сходным результатам мы придем, если попробуем исключить переменную i из числа параметров и локализовать ее в теле процедуры:

Здесь в воображаемом блоке описание переменной il переместится еще глубже — в преобразованное тело процедуры, где по-прежнему в цикле с параметром il будет выполняться оператор
s: = s+(l/i)
Глобальная переменная i не имеет ничего общего с локальной переменной il.
Положение выправится, если отказаться от локализации переменной i как в теле процедуры, так и в воображаемом блоке. Соста-
вим программу, содержащую процедуру sigmaS, следующим образом: