Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Процедуры и функции. В языке PASCAL определяются два типа подпрограмм - про­цедуры и функции





В языке PASCAL определяются два типа подпрограмм - про­цедуры и функции. Любая подпрограмма обладает той же структу­рой, который обладает и вся программа.

При вызове подпрограммы выполнение основной программы приостанавливается и управление передается в подпрограмму. По окончании работы подпрограммы управление возвращается ос­новной программе.

Основное, не формальное, различие между процедурой и функ­цией состоит в том, что процедура только выполняет какую-либо за­конченную последовательность действий, не возвращая результата работы в основную программу, а функция и выполняет действия, и возвращает результат. Например, вызов функции М:= MIN (X, Y) вернет в основную программу значение наименьшего из двух чисел и это значение будет присвоено переменной М.

Любая подпрограмма должна быть описана до того, как она будет вызвана в программе или в другой подпрограмме. Все пере­менные, которые использует подпрограмма, могут быть либо гло­бальные, т. е. объявленные в основной программе и доступные как программе, так и всем ее подпрограммам, либо локальные, объявленные внутри подпрограммы и доступные только ей самой. Обмен информацией между основной программой и подпрограм­мой может осуществляться только с помощью глобальных пере­менных.

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

Любая процедура начинается с заголовка, который является обязательным. Он состоит из зарезервированного слова PROCEDURE, за которым следует идентификатор имени проце­дуры, а далее в круглых скобках - список формальных параметров: PROCEDURE <ИМЯ ПРОЦЕДУРЫ> (<СПИСОК ФОРМАЛЬНЫХ ПАРАМЕТРОВ>);

За заголовком следуют такие же разделы, что и в основной программе. Завершается процедура точкой с запятой.

Досрочный выход из подпрограммы возможен только с помо­щью EXIT.

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

Все формальные параметры можно разбить на 4 категории:

- параметры-значения (эти параметры в основной программе подпрограммой не изменяются);

- параметры-переменные (эти параметры подпрограмма может изменить в основной программе);

- параметры-константы (используются только в версии 7.0);

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

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

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

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

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

Параметр-константа указывается в заголовке подпрограммы подобно параметру-значению, но перед именем параметра запи­сывается зарезервированное слово CONST, действие которого

распространяется до ближайшей точки с запятой. Тип параметра, значения может быть любым за исключением файлового.

Параметр-константу нельзя передавать в другую подпрограмму в качестве фактического параметра.

В TURBO PASCAL можно использовать параметры-перемен­ные и параметры-константы без указания типа. В этом случае фактический параметр может быть переменной любого типа, а от­ветственность за правильность использования того или иного па­раметра возлагается на программиста.

В версии 7.0 можно в качестве параметров-переменных ис­пользовать массивы и строки открытого типа, у которых не зада­ются размеры.

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

Директива FORWARD позволяет как бы разбить на две части одну из подпрограмм. В этом случае сначала записывается полный заголовок первой подпрограммой. Тело этой подпрограммы заме­няется директивой FORWARD. Затем полностью описывается вторая подпрограмма, а уже после этого полностью описывается первая подпрограмма.

Рассмотрим следующие задачи.

Задача 9.1 Написать процедуру ввода элементов матрицы Т.

Описание процедуры можно построить следующим образом:

PROCEDURE TAB(VAR L, К: INTEGER);

VAR I, J: INTEGER;

BEGIN

FOR I:= 1 TO L DO

BEGIN

FOR J:= 1 TO К DO

BEGIN

WRITE('T [', I,',', J,'] =');

READ(T[I, J])

END;







Дата добавления: 2015-09-07; просмотров: 485. Нарушение авторских прав; Мы поможем в написании вашей работы!




Картограммы и картодиаграммы Картограммы и картодиаграммы применяются для изображения географической характеристики изучаемых явлений...


Практические расчеты на срез и смятие При изучении темы обратите внимание на основные расчетные предпосылки и условности расчета...


Функция спроса населения на данный товар Функция спроса населения на данный товар: Qd=7-Р. Функция предложения: Qs= -5+2Р,где...


Аальтернативная стоимость. Кривая производственных возможностей В экономике Буридании есть 100 ед. труда с производительностью 4 м ткани или 2 кг мяса...

Травматическая окклюзия и ее клинические признаки При пародонтите и парадонтозе резистентность тканей пародонта падает...

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

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

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

РЕВМАТИЧЕСКИЕ БОЛЕЗНИ Ревматические болезни(или диффузные болезни соединительно ткани(ДБСТ))— это группа заболеваний, характеризующихся первичным системным поражением соединительной ткани в связи с нарушением иммунного гомеостаза...

Решение Постоянные издержки (FC) не зависят от изменения объёма производства, существуют постоянно...

Studopedia.info - Студопедия - 2014-2025 год . (0.012 сек.) русская версия | украинская версия