Глобальными называются переменные, описанные в главной программе. Переменные, которые не были инициализированы явным образом, перед началом выполнения программы обнуляются. Время жизни глобальных переменных — с начала программы и до ее завершения.
Внутри подпрограмм описываются локальные переменные. Время их жизни — с начала работы подпрограммы и до ее окончания. Значения локальных переменных между двумя вызовами одной и той же подпрограммы не сохраняются, и эти переменные предварительно не обнуляются.
ПРИМЕЧАНИЕ Если переменная внутри подпрограммы определена в разделе описания констант, — начальное значение ей присваивается один раз до начала работы программы. Время жизни такой переменной — вся программа, то есть значение этой переменной сохраняется между вызовами подпрограммы. Область действия переменной — подпрограмма, в которой она описана.
Глобальные переменные доступны в любом месте программы или подпрограммы, кроме тех подпрограмм, в которых описаны локальные переменные с такими же именами. Локальные переменные могут использоваться только в подпрограмме, в которой они описаны, и всех вложенных в нее.
[10] Пишем собственные функцию и процедуру. В чём отличия? Программируем на Паскале
Понятно, что никаких дополнительных усилий по передаче глобальных переменных в подпрограмму не требуется: они видны в ней естественным образом. Этот способ обмена информацией между главной программой и подпрограммой — самый простой, но он же и самый плохой.
В подавляющем большинстве случаев для обмена данными между вызывающей и вызываемой подпрограммами предпочтительнее использовать механизм параметров. Если все данные передаются подпрограммам через списки параметров, для локализации места ошибки достаточно просмотреть заголовки подпрограмм, а затем — тексты только тех из них, в которые передается интересующая нас переменная.
ВНИМАНИЕ Подпрограмму надо писать таким образом, чтобы вся необходимая для ее использования информация содержалась в ее заголовке.
Виды параметров подпрограмм
Список параметров, то есть величин, передаваемых в подпрограмму и обратно, содержится в ее заголовке. Для каждого параметра обычно задаются его имя, тип и способ передачи. Либо тип, либо способ передачи могут не указываться.
В заголовке подпрограммы нельзя вводить описание нового типа — там должны использоваться либо имена стандартных типов, либо имена типов, описанных программистом ранее в разделе type .
В Паскале существует четыре вида параметров: значения, переменные, константы и нетипизированные параметры.
Кроме того, по другим критериям можно выделить особые виды параметров:
- открытые массивы и строки;
- процедурные и функциональные параметры;
- объекты.
Параметры-значения
Параметр-значение описывается в заголовке подпрограммы следующим образом:
Например, передача величины целого типа в процедуру Р записывается так:
Источник: studfile.net