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



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

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

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

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

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

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

ТРАНСПОРТНАЯ ИММОБИЛИЗАЦИЯ   Под транспортной иммобилизацией понимают мероприятия, направленные на обеспечение покоя в поврежденном участке тела и близлежащих к нему суставах на период перевозки пострадавшего в лечебное учреждение...

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

Именные части речи, их общие и отличительные признаки Именные части речи в русском языке — это имя существительное, имя прилагательное, имя числительное, местоимение...

Интуитивное мышление Мышление — это пси­хический процесс, обеспечивающий познание сущности предме­тов и явлений и самого субъекта...

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