Cтраница 1
Внутренние процедуры имеют практически такую же структуру, как и внешние. [1]
Внутренняя процедура может использовать все те переменные, которые имеются в охватывающей ее процедуре. Допускается использование новых, переменных во ваутреннеи процедуре. Переменные, появившиеся; в охватьшающей процедуре без явного объявления, считаются известными и во впут -, ренней процедуре. Метки во внутренней и охватывающих процедурах должны быть различными. [2]
Внутренняя процедура В может вызываться только из непосредственно охватывающей ее процедуры А либо из другой внутренней процедуры, определенной в охватывающей процедуре А. [3]
Внутренние процедуры не обеспечивают такой независимости реализуемых модулей: их нельзя независимо транслировать и исправлять. [4]
Внутренние процедуры ( функции) либо входят в раздел описания процедур и функций вызывающей программы, либо следуют за блоками вызывающей программы. [5]
Внутренняя процедура или подпрограмма - - это замкнутая подпрограмма, физически расположенная в вызывающем ее модуле. Внутренних процедур следует избегать по нескольким причинам. Внутренние процедуры трудно изолировать для тестирования ( автономного тестирования), и они не могут быть вызваны из модулей, отличных от тех, которые их физически содержат. Это не соответствует идее повторного использования. Конечно, имеется альтернативный вариант: включить копии внутренней процедуры во все модули, которым она нужна. Наконец, если только при программировании не установлена строжайшая дисциплина, внутренние процедуры будут иметь плохие сцепления с вызывающими их модулями. Когда возникает потребность во внутренней процедуре, проектировщик должен рассмотреть возможность оформления ее в виде отдельного модуля. [6]
Внутренняя процедура, или подпрограмма - это закрытая подпрограмма, физически содержащаяся в вызывающем ее модуле. Внутренних процедур следует избегать, так как их трудно тестировать и к ним нельзя обратиться из других модулей. Это противоречит принципу множественности использования. Если при программировании внутренней процедуры используются правильные приемы, она будет обладать низким показателем связности со своим вызывающим модулем. Таким образом, если возникает необходимость в использовании внутренней процедуры, проектировщику предпочтительнее оформить ее как модуль. [7]
Внутренние процедуры сдвигаются правее на один отступ внутри объемлющей их процедуры. [8]
Внутренняя процедура NUMERIC сортирует счета в порядке убывания. [9]
Внутренняя процедура ALPHA сортирует имена в алфавитном порядке. [10]
Для внутренней процедуры описание входа должно находиться в том же блоке, что и сама процедура. Напомним, кроме того, что обращение к процедуре может осуществляться только из того же блока, где находится процедура, или из внутренних блоков. Для внешней процедуры описание ее входа должно находиться в том же блоке, где расположены обращения к ней, или во внешних по отношению к нему блоках. [11]
Во внутренней процедуре innerprod параметры cl и с2 служат для записи числа, заданного с удвоенной точностью, и представляют собой нормализованные числа, имеющие обычную точность. Сложенные вместе они определяют начальное число, заданное с удвоенной точностью, к которому затем добавляют накопленное скалярное произведение. Поскольку процедура innerprod должна быть записана в машинном коде, то она, конечно, будет различна для различных вычислительных машин. [12]
При выполнении внутренняя процедура может использовать все переменные охватывающей процедуры с теми значениями, которые они имеют в момент вызова внутренней процедуры. В результате работы внутренней процедуры эти значения могут меняться. Внутренние процедуры компилируются вместе с охватывающей процедурой. [13]
Доступ к внутренней процедуре возможен только из содержащей ее внешней процедуры. Сами внутренние процедуры имеют доступ ко всем объектам своей внешней процедуры, включая возможность вызова других ее внутренних процедур. [14]
В является внутренней процедурой. При этом В может находиться в любом месте внутри процедуры А, так же как любой оператор. При последовательном выполнении операторов процедуры А текст процедуры В игнорируется. [15]