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



Композиция из абстрактных геометрических фигур Данная композиция состоит из линий, штриховки, абстрактных геометрических форм...

Важнейшие способы обработки и анализа рядов динамики Не во всех случаях эмпирические данные рядов динамики позволяют определить тенденцию изменения явления во времени...

ТЕОРЕТИЧЕСКАЯ МЕХАНИКА Статика является частью теоретической механики, изучающей условия, при ко­торых тело находится под действием заданной системы сил...

Теория усилителей. Схема Основная масса современных аналоговых и аналого-цифровых электронных устройств выполняется на специализированных микросхемах...

Этапы трансляции и их характеристика Трансляция (от лат. translatio — перевод) — процесс синтеза белка из аминокислот на матрице информационной (матричной) РНК (иРНК...

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

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

Упражнение Джеффа. Это список вопросов или утверждений, отвечая на которые участник может раскрыть свой внутренний мир перед другими участниками и узнать о других участниках больше...

Влияние первой русской революции 1905-1907 гг. на Казахстан. Революция в России (1905-1907 гг.), дала первый толчок политическому пробуждению трудящихся Казахстана, развитию национально-освободительного рабочего движения против гнета. В Казахстане, находившемся далеко от политических центров Российской империи...

Виды сухожильных швов После выделения культи сухожилия и эвакуации гематомы приступают к восстановлению целостности сухожилия...

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