Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции_Информатика.doc
Скачиваний:
6
Добавлен:
16.04.2019
Размер:
738.82 Кб
Скачать

2. Процедуры и функции. Блочная структура программы. Параметры.

< Что такое подпрограмма и для чего она нужна >

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

X := Sin(A);

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

Writeln('Это проверка');

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

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

procedure имя-процедуры(параметры);

Функции имеют такой же формат, что и процедуры за исключением того, что они начинаются с заголовка function и заканчиваются типом данных для возвращаемого значения функции:

function имя_функции(параметры) : тип данных;

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

Процедура активизируется с помощью оператора процедуры. Функция активизируется при вычислении выражения, содержащего вызов функции и возвращаемое функцией значение подставляется в это выражение.

Организация связи основной программы с подпрограммой

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

Часто не тратить время и не загромождать программу многократным повторением этих операторов целесообразно оформить их как вспомогательный программный модуль со своим именем, называемый ПОДПРОГРАММОЙ, а в соответствующих местах программы, являющейся основной (головной) ведущей единицей просто обратиться к ней (сослаться).

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

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

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

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

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

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

Схема алгоритма решения задач с использованием подпрограммы может быть организована в виде двух отдельных схем алгоритмов - основного и вспомогательного. Причем при составлении схемы вспомогательного алгоритма, реализуемого в виде подпрограммы, в схеме появляются надписи ВХОД и ВЫХОД в начале и конце алгоритма соответственно. Обращение к вспомогательному алгоритму выполняется в схеме основного алгоритма с помощью специального блока.

Предопределенный процесс

В ПАСКАЛЕ различают 2 вида подпрограмм: ФУНКЦИЯ и ПРОЦЕДУРА.

Главное их различие состоит в количестве результатов, возвращаемых в основной алгоритм(программу). Функцию целесообразно использовать, если результатом вычисления является только одно значение. Процедура универсальна. Она используется, когда результатом является произвольное количество значений, в том числе и ни одного.