Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
прога.docx
Скачиваний:
1
Добавлен:
28.10.2018
Размер:
96.22 Кб
Скачать

21. Процедуры. Параметры-переменные.

ПроцедурыПроцедурой в Паскале называется именованная последова­тельность инструкций, реализующая некоторое действие. В нуж­ное место программы процедуру вызывают с помощью оператора вызова. После выполнения процедуры программа перейдет к вы­полнению оператора, следующего за оператором вызова. Формат описания процедуры:Рrocedure<Имя процедуры>(<форм. параметры>); <Раздел описаний> Begin<Тело процедуры> End;Формальные параметры — перечень имен для обозначения исходных данных и результатов работы процедуры, используе­мых для описания процедуры, с указанием их типов.Раздел описаний может иметь такие же подразделы, как и раздел описаний основной программы. Однако все описанные здесь объекты доступны лишь в этой процедуре. Они локальны так же, как и имена формальных параметров. Объекты, описан­ные ранее в разделе описаний основной программы и не переоп­ределенные в процедуре, называются глобальными для этой под­программы и доступны для использования. Формат оператора вызова: <имя процедуры> (<фактические параметры>) ;Фактические параметры - данные, с которыми выполняется процедура. Между формальными и фактическими параметрами должно быть соответствие по количеству, типу и порядку следо­вания. Процедуры могут быть без параметров, например, Proce­dure Р11; . При описании процедур без параметров использу­ются глобальные переменные. Параметры процедурыСуществует два способа передачи фактических параметров в подпрограмму: по значению и по ссылке. Соответственно пара­метры называются параметрами-значениями и параметрами-переменными.В первом случае значение переменной - фактического па­раметра при вызове подпрограммы присваивается локальной пе­ременной, являющейся формальным параметром подпрограммы. Изменение локальной переменной никак не отражается на соот­ветствующей глобальной. В качестве фактических параметров может служить любое выражение соответствующего типа.Передача параметров по ссылке отличается тем, что при обращении к подпрограмме имя формального параметра будет указывать на ту же область памяти, что и имя соответствующего фактического параметра. При описании подпрограммы перед именем параметра-переменной ставится служебное слово Var. В этом случае изменения выполняются в ячейках памяти фактиче­ских параметров. Поэтому в качестве фактических параметров можно использовать только имена переменных.

22. Пользовательские функции

Подпрограмма-функция предназначена для вычисления ка­кого-либо параметра. Функция состоит из заголовка и тела функ­ции. Заголовок функции имеет вид: Function <имя> (формальные параметры) :<тип>;где Function - служебное слово; <имя> — имя функции, определяемое в соответствии с общими правилами построения идентификаторов; <тип> - тип функции, т.е. тип возвра­щаемого параметра. Функция может возвращать типы вещест­венные, порядковые, строкового и любого указателя.

У этой подпрограммы два основных отличия от процедуры. Первое отличие - заголовок. Второе отличие в том, что процеду­ра может иметь несколько выходных параметров - результатов, а функция только одно значение, передаваемое через ее имя. Именно этим объясняется то, что в теле функции хотя бы один раз имени функции должно присваиваться вычисленное значе­ние.Структура функции такая же, как и процедуры. Передача параметров осуществляется так же, как в процедуре. Функция - это некоторый независимый вспомогательный ал­горитм (или имеющая имя часть программы), к которому можно обращаться для выполнения указанной в нем последовательности операций. Функция предназначена для вычисления только одного значения переменной. Вызов функции производится на том шаге основного алгоритма, для реализации которого необходимо ис­пользовать значение именно данной функции (в выражениях, других функциях и т.п.).Обращение к функции состоит из имени функции и списка фактических параметров, которые должны совпадать по количе­ству и типам с формальными параметрами. При обращении к не­которым функциям список параметров может отсутствовать.В теле функции обязательно должна быть команда присваи­вания, где в левой части стоит имя функции, а в правой - ее значе­ние. В противном случае значение функции не будет определено.Каждое обращение к функции приводит к исполнению ком­пьютером предусмотренных этой функцией операций, которые позволяют найти конкретное значение данной функции. Получен­ное значение присваивается этой функции и помещается (как гово­рят, возвращается) в ячейку памяти, адрес которой определяется именем функции {пример - математические функции). Т.е. резуль­тат исполнения алгоритма-функции возвращается в основной алгоритм в виде единственного значения этой функции.