Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Параметры-значения




Понятие процедуры и функции в Паскале. Их назначение, применение, варианты размещения в программе

Для реализации многократно повторяющихся участков вычислений и для обеспечения модульности программ в языке Турбо Паскаль предусмотрена возможность использования процедур и функций.

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

Процедура или функция (общее название - подпрограмма) определяется в разделе описаний основной программы или другой процедуры(функции). Процедура(функция) имеет ту же структуру, что и основная программа, т.е. состоит из заголовка, описательной части и выполняемой части.

Синтаксис заголовка процедуры:

PROCEDURE < имя процедуры > [(<список формальных параметров >)];

Например:

PROCEDURE PR1 (A,B,C: INTEGER; VAR S: REAL);

- Здесь PR1 – имя процедуры, а А,В,С,S – имена переменных, являющихся параметрами.

В отличие от основной программы заголовок в процедуре обязателен, но завершается процедура не точкой, а точкой с запятой. Описание процедуры выполняется с формальными параметрами. Оператор процедуры служит для вызова процедуры из основной программы или из другой процедуры(функции).

Вызов осуществляется в следующей форме:

<имя процедуры > [(<список фактических параметров>)];

Таким образом, для приведенного заголовка процедуры можно написать такой оператор вызова:

PR1 (A,B,C,S);

Формат списка параметров в заголовке процедуры и при вызове процедуры отличаются. При вызове переменные, константы или выражения следуют через запятую, а в заголовке запись переменных напоминает объявление переменных в разделе описания переменных. Для всех элементов списка должен быть указан тип данных. Несколько переменных, отнесенных к одному типу, пишутся через запятую, а группы переменных различного типа отделяются точкой с запятой. После обращения к процедуре управление передается на выполнение следующего за вызовом процедуры оператора.

Функция предназначена для вычисления какого-либо одного значения и используется в выражениях аналогично стандартным функциям.

Синтаксис заголовка функции:

FUNCTION < имя функции >[(<список формальных параметров>)]: <тип результата>;

Например:

FUNCTION PRF (A,B,C: INTEGER): REAL;

Отличие описания функции от процедуры:

• результатом обращения к функции может быть одно единственное значение;

• идентификатор результата не указывается в списке формальных параметров;

• в выполняемой части функции, хотя бы один раз, имени функции должно быть присвоено значение результата (чаще всего перед выходом из функции);

• после списка формальных параметров задается тип результата;

• после обращения к функции управление передается на выполнение следующей операции данного выражения (в соответствии с приоритетом).

Для вызова функции используется указатель функции (имя функции со списком фактических параметров), который обязательно должен быть частью какого-либо выражения (входить в правую часть оператора присваивания, присутствовать в списке данных оператора вывода, в логическом выражении условного оператора и т.д.). Для приведенного заголовка функции вызов функции может быть осуществлен одним из следующих способов:

S:=PRF (A,B,C);

Writeln (PRF (A,B,C));

If PRF (A,B,C)>20 then K=K+1;

5. Правила построения процедуры, размещение ее в программе обращение к ней из вызывающей программы. Обмен информацией между процедурой и вызывающей программой: понятие формального и фактического параметра. Технологии передачи параметров – по ссылке и по значению. Применение этих технологий

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

Синтаксис заголовка процедуры:

PROCEDURE < имя процедуры > [(<список формальных параметров >)];

Например:

PROCEDURE PR1 (A,B,C: INTEGER; VAR S: REAL);

- Здесь PR1 – имя процедуры, а А,В,С,S – имена переменных, являющихся параметрами.

В отличие от основной программы заголовок в процедуре обязателен, но завершается процедура не точкой, а точкой с запятой. Описание процедуры выполняется с формальными параметрами. Оператор процедуры служит для вызова процедуры из основной программы или из другой процедуры(функции).

Вызов осуществляется в следующей форме:

<имя процедуры > [(<список фактических параметров>)];

Таким образом, для приведенного заголовка процедуры можно написать такой оператор вызова:

PR1 (A,B,C,S);

Формат списка параметров в заголовке процедуры и при вызове процедуры отличаются. При вызове переменные, константы или выражения следуют через запятую, а в заголовке запись переменных напоминает объявление переменных в разделе описания переменных. Для всех элементов списка должен быть указан тип данных. Несколько переменных, отнесенных к одному типу, пишутся через запятую, а группы переменных различного типа отделяются точкой с запятой. После обращения к процедуре управление передается на выполнение следующего за вызовом процедуры оператора.

При описании процедуры (функции) в ее заголовке могут быть

указаны параметры следующих видов:

- параметры-значения;

- параметры-переменные;

- параметры-константы;

- параметры-процедуры;

- параметры-функции.

При записи параметров необходимо помнить:

- число формальных и фактических параметров должно быть одинаково;

- порядок следования и тип фактических параметров должен совпадать с порядком и типом соответствующих формальных параметров;

- идентификаторы формальных и фактических параметров могут совпадать;

- формальные параметры в языке Турбо Паскаль в заголовке находятся вместе с описаниями и объявлять их в разделе описаний процедуры(функции) не требуется;

- формальные параметры должны иметь простые или ранее определенные типы.

При передаче в подпрограмму массива его тип объявляют предварительно в разделе описания типов TYPE.

Например.

TYPE TV=ARRAY [1..30] OF INTEGER;

TM=ARRAY [1..20,1..20] OF REAL;

...

PROCEDURE TOP (A:TM; VAR B: TV; N: INTEGER);

...

Здесь описаны два типа массивов. TV – для одномерного массива и TM для двумерного массива. Затем в списке формальных параметров для переменных А и В используются эти ранее определенные типы при описании соответственно матрицы и вектора.

Формальные параметры – данные, с которыми работает подпрограмма (ПП). Это внутренние данные для ПП. Они перечисляются в заголовке ПП и связаны с фактическими параметрами.

Фактические параметры – данные, передаваемые в ПП и возвращаемые из нее. Это внешние для ПП данные, с которыми имеет дело вызывающая часть программы. В ПП им соответствуют формальные параметры. Указываются в списке фактических параметров при обращении к ПП.

Список параметров, задаваемых в заголовке процедуры или функции, обеспечивает связь подпрограммы с вызывающей программой. Через него в подпрограмму передаются исходные данные и возвращается результат (в процедуре). В языке Турбо Паскаль предусмотрены два принципиально отличающихся механизма передачи параметров: по значению и по ссылке.

При передаче параметров по значению в стеке, в котором осуществляется выделение памяти под внутренние (локальные) переменные подпрограммы, выделяется дополнительная память, в которую копируются значения соответствующих фактических параметров. В вызывающей программе в качестве аргумента подпрограммы для параметра-значения может использоваться не только переменная, но и выражение.

После завершения работы подпрограммы выделенная этим параметрам память становится недоступной, поэтому передача параметров по значению не может использоваться в подпрограммах для получения результатов.




Поделиться с друзьями:


Дата добавления: 2015-04-24; Просмотров: 999; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.011 сек.