Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

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



В языке Паскаль имеется два вида подпрограмм - процедуры и функции. Процедура - подпр-ма, сост–щая из заголовка и тела. По своей стр–ре проц–ра копирует построение программы Паскаля. Стр–ра проц–ры имеет вид. Procedure Имя (Список формальн. пар-ов (пар–р1: тип, параметр2: тип,…));Список формальных пар–ров опр–ет кол-во, тип, имена констант или перем–х зн–й кот–х передаются в процедуру в кач–ве внешнего пар–ра. Разумеется, наличие внешних пар–ров не обязательно, следовательно списка пар–ров может и не быть. Тогда прог-ра работает как автономная программа. Далее идет label const type var – Описание локальн. меток, конст, типов и перемен-ых. procedure function –Опис-ие внутр-их проц-р и функ-ий. begin…end; – Операторы. Подпр-мой – функцией в Паскале наз–ют тип подпр-м, кот–ый имеет несколько отличий от процедуры.

1) Заголовок функции имеет вид: Function Имя (Список форма–ных пар–ов): тип рез–та;

Имя функции исп–ется внутри ф–ции как идентификатор некоторой перем–ной, тип кот–ой указ–ется в заголовке.

2) begin…end; – Операторы, среди кот-х должен быть хотя бы один, кот-ый присваивает имени фун-ии знач-ие рез-та.Ф–ция обяз–но должна передать вызывающей программе свое зн–ние (скалярного типа), поэтому внутри тела фун-ции обязательно д/б опер–р, присваив–й идентиф–ру ф–ии его зн–ния.3) Вызов ф–ции можно производить в любом варианте, в том числе в алгебр–ком выр–нии, вызове проц–ры или др–й ф–ии.

Вызов проц-ры осущ–ся из основной программы или другой подпр-мы. Для вызова проц-ры необходимо отдельным опер–ром записать имя проц-ры и указать ее пар–ры. Идентификаторы пар–ров д/б описаны в вызывающей прог–ме. Для совм–ти прог-ры и вызывающей прог–мы необх–мо соотв–вие пар–ров.

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

Структура описания процедур и функций похожа на структуру Паскаль-программы: у них также имеются заголовок, раздел описаний и исполняемая часть. Раздел описаний содержит те же подразделы, что и раздел описаний программы: описания констант, типов, меток, процедур, функций, переменных. Исполняемая часть содержит собственно операторы процедур. Формат описания процедуры:

procedure имя процедуры (формальные параметры);/ раздел описаний процедуры/ begin/ исполняемая часть процедуры/ end;

Формат описания функции:

function имя функции (формальные параметры):тип результата;/ раздел описаний функции/ begin/ исполняемая часть функции/ end;

Формальные параметры в заголовке процедур и функций:

var имя параметра: имя типа и отделяются друг от друга точкой с запятой. Ключевое слово var может отсутствовать. Если параметры однотипны, то их имена можно перечислять через запятую, указывая общее для них имя типа. При описании параметров можно использовать только стандартные имена типов, либо имена типов, определенные с помощью команды type. Список формальных параметров может отсутствовать.

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

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

При вызове процедур и функций необходимо соблюдать следущие правила: 1количество фактических параметров должно совпадать с количеством формальных; 2соответствующие фактические и формальные параметры должны совпадать по порядку следования и по типу. Имена формальных и фактических параметров могут совпадать. Это не приводит к проблемам, так как соответствующие им переменные все равно будут различны из-за того, что хранятся в разных областях памяти. Все формальные параметры являются временными переменными - они создаются в момент вызова подпрограммы и уничтожаются в момент выхода из нее.

var x,y,m,n: integer;

procedure MaxNumber(a,b: integer; var max: integer);

begin/if a>b then max:=a else max:=b;/end;/begin/rite('Введите x,y ');

readln(x,y);/MaxNumber(x,y,m);/MaxNumber(2,x+y,n);/writeln('m=',m,'n=',n);/end./Аналогичная с функцией: /var x,y,m,n: integer;

function MaxNumber(a,b: integer): integer;/ var max: integer;

begin/ if a>b then max:=a else max:=b;/ MaxNumber:= max;/

end;/begin/ write('Введите x,y ');/ readln(x,y);/m:= MaxNumber(x,y);

n:= MaxNumber(2,x+y);/writeln('m=',m,'n=',n);/end.





Дата публикования: 2015-01-23; Прочитано: 1728 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...