скачать nod 32 , Раскрутка сайтов бесплатно - продвижение сайтов строительной тематики. Сайты для Вашего бизнеса.
Что касается идентификаторов формальных параметров

Что касается идентификаторов формальных параметров пин идентификатора i; локального в теле процедуры, то ими в основной программе можно пользоваться свободно — можно, например, заменить т на я, а * на i, т. е. записать программу в виде
где описание процедуры h остается прежним. Прямолинейное применение правил построения воображаемого блока привело бы к блоку, содержащему бессмысленные конструкции:
begin integer я; п: = п;

Однако следует руководствоваться принципом локализации идентификаторов в блоках, из которого вытекает, что идентификаторы я и i9 локальные, соответственно, в воображаемом блоке и в преобразованном теле процедуры, обозначают там другие величины, не те, которые обозначены теми же идентификаторами в основном блоке. Поэтому при построении воображаемого блока следует эти локальные идентификаторы заменить (также мысленно) другими идентификаторами, например, nl и И, т. е. считать, что этот воображаемый блок имеет вид

Этот блок уже вполне осмыслен и его выполнение приводит к желаемым результатам.
В качестве следующего примера попробуем составить процедуру, заменяющую одно из самых употребительных математических обозначений — символ суммирования

Глядя на эту запись, естественно предположить, что у процедуры должно быть пять параметров: переменная s, которой присваивается вычисленное значение суммы, переменная i9 по которой ведется суммирование, значения тип, определяющие границы изменения переменной, и, наконец, выражение ш общего члена суммы. Мы не зря, говоря о параметрах га и я, употребили термин «значения», а применительно к параметру ui — термин «выражение», хотя каждый из этих формальных параметров может быть только идентификатором. Этим мы хотели подчеркнуть, что для параметров тип важны только заданные им значения, а для параметра ui, напротив, важен характер зависимости соответствующего фактического параметра от переменной суммирования. Поэтому параметры тип следует вызывать значением, а параметр ui — по наименованию.
Самый ответственный момент в этом примере — это решение, к какому классу отнести переменную L Кроме уже сделанного предположения о том, что она должна быть параметром процедуры, вызываемым либо значением, либо по наименованию, следует рассмотреть еще две возможности — сделать ее локальной в теле процедуры или глобальной в теле, но локальной в основной программе.