Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

экзамен по ТМОИ Гура Екатерина / Функция и процедура языка программирования Turbo Pascal

.doc
Скачиваний:
6
Добавлен:
08.06.2015
Размер:
39.94 Кб
Скачать

Функция и процедура языка программирования Turbo Pascal.

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

Язык Турбо-Паскаль содержит два типа подпрограмм:

  1. Процедуры.

  2. Функции.

Процедуры в Паскале

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

PROCEDURE <имя>(<сп. форм. пар.>);

<блок>

где

PROCEDURE – зарезервированное слово процедура;

<имя> - имя процедуры, является уникальным, выбирается по общим пра- вилам, желательно чтобы оно отражало смысл процедуры;

<сп. форм. пар.> - список формальных параметров т.е. список имен обозначаю- щих исходные данные и результат работы процедуры с указани- ем их типов;

<блок> - тело процедуры представляющее разделы описаний и раздел операторов, представляющий составной оператор (совокупность операторов, заключенных в операторные скобки BEGIN END).

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

Глобальные объекты – это объекты, описанные в разделах описаний основной программе. Областью их действия является программа и все, содержащиеся в ней подпрограммы.

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

<имя>(<сп. факт. пар.>);

где:

<имя> - имя процедуры;

<сп. факт. пар.> - список фактических параметров.

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

Виды параметров в Паскале

Различают четыре вида параметров:

- параметры- значения;

- параметры- переменные;

- параметры- процедуры;

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

Параметры- значения – используются для передачи исходных данных в подпрограмму. Формальные параметры при этом записываются через запятую с указанием их типов. Они получают значения фактических параметров, но не могут передавать свои значения фактическим параметрам.

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

Параметры- процедуры – указываются после слова Procedure.

Параметры- функции - . указываются после слова Function.

Функции в Паскале

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

FUNCTION <имя>(<сп. форм. пар.>):<тип>;

<блок>;

где:

FUNCTION – зарезервированное слово функция;

<имя> - имя функции, является уникальным, выбирается по общим правилам, желательно чтобы оно отражало смысл функции;

<сп. форм. пар.> - список формальных параметров т.е. список имен обозначающих исходные данные функции с указанием их типов;

<тип> - тип результата возвращаемого функцией и присваиваемого имени функции;

<блок> - тело процедуры представляющее разделы описаний и раздел операторов, представляющий составной оператор (совокупность операторов, заключенных в операторные скобки BEGIN END).

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

Вызов функции представляет собой операнд (указатель функции) в отличии от процедуры обращение к которой представляет оператор. Он имеет вид:

<имя>(<сп. факт. пар.>);

где:

<имя> - имя функции (указатель);

<сп. факт. пар.> - список фактических параметров.

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

Отличие процедуры от функции

  1. Функция в отличие от процедуры возвращает единственное скалярное значение

  2. Результат вычисления функции присваивается имени, а процедуре входит в список параметров.

  3. Имя функции имеет тип.

  4. Обращение к функции представляет операнд, а процедуры оператор.