Студопедия — Процедуры и функции. В языке PASCAL определяются два типа подпрограмм - про­цедуры и функции
Студопедия Главная Случайная страница Обратная связь

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

Процедуры и функции. В языке 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; просмотров: 453. Нарушение авторских прав; Мы поможем в написании вашей работы!



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

Расчетные и графические задания Равновесный объем - это объем, определяемый равенством спроса и предложения...

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

Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...

Конституционно-правовые нормы, их особенности и виды Характеристика отрасли права немыслима без уяснения особенностей составляющих ее норм...

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

Значення творчості Г.Сковороди для розвитку української культури Важливий внесок в історію всієї духовної культури українського народу та її барокової літературно-філософської традиції зробив, зокрема, Григорій Савич Сковорода (1722—1794 pp...

Тема: Изучение приспособленности организмов к среде обитания Цель:выяснить механизм образования приспособлений к среде обитания и их относительный характер, сделать вывод о том, что приспособленность – результат действия естественного отбора...

Тема: Изучение фенотипов местных сортов растений Цель: расширить знания о задачах современной селекции. Оборудование:пакетики семян различных сортов томатов...

Тема: Составление цепи питания Цель: расширить знания о биотических факторах среды. Оборудование:гербарные растения...

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