Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
shp.doc
Скачиваний:
22
Добавлен:
18.09.2019
Размер:
5 Мб
Скачать
☆

8.Процедуры и функции в Паскале. Особенности использования.

Важным принципом современного программирования является модульность. Преимущества такого подхода являются следующие: один и тот же фрагмент можно использовать многократно; маленькими фрагментами программу легче считать и отлаживать. В Паскале модульность реализуется за счет использования процедур и функций. Это относительно самостоятельные фрагменты программ оформленные специальным образом и имеющие имя. В простом варианте подпрограммы могут не содержать не параметров, ни описания параметров, а быть последовательностью операторов. (Procedure obmen begin work:=a[i]; a[i]:=a[j]; a[j]:=work; end;) Процедуры пишутся пользователем или содержатся в готовом наборе процедур (библиотечном модуле). Для вызова подпрограммы необходимо указать имя процедуры в операторе вызова или имя функции в выражении. Каждую процедуру или функцию необходимо описать в разделе описаний. Описать подпрограмму это значит: указать ее заголовок и тело. В заголовке объявляются имя программы и формальные параметры (если они есть). Для функции, кроме этого, определяется тип возвращаемого результата. За заголовком следует тело подпрограмм, которое состоит из раздела описаний и раздела операторов. В разделе описаний подпрограмм могут встречаться описания подпрограмм низшего уровня ,в тех, описания других подпрограмм и т. д. . Подпрограмма любого уровня имеет много имен. Констант, переменных, вложенных в неё подпрограмм низшего уровня. Все имена как бы не видны с наружи подпрограмм. Из основной программы можно обратится к процедурам А и В, но нельзя обратится ни к одной из вложенных в них подпрограмм (А1,А2,В1,В2). Подпрограмма как бы окружена полупрозрачными стенками. Снаружи подпрограммы мы не видим ее внутренности, но находясь внутри подпрограммы видно все. Любая подпрограмма может вызвать саму себя. Этот процесс называется рекурсией.

Процедура - это подпрограмма, в которой результат не обязательно окончательно рассчитанное значение. Процедура дает возможность заменить группу команд одной командой. Выполняется процедура только в момент обращения к ней. Обращение к процедуре называется вызовом процедуры. Вызвать процедуру можно из раздела операторов программы, из другой подпрограммы – процедуры или подпрограммы-функции. Для того, чтобы использовать процедуру, ее надо описать. Описывается процедура в тексте программы после раздела описания переменных. “Устройство” процедуры напоминает устройство программы. Она состоит из заголовка, раздела описаний и набора операторов, заключенного в операторные скобки begin…end. В общем виде описание процедуры выглядит так: procedure имя_процедуры (var параметр_1: тип_1; var параметр_2: тип_2; …..var параметр_N: тип_N); раздел описаний процедуры begin раздел операторов процедуры end;). Все переменные описанные в подпрограмме являются локальными и действуют только внутри подпрограммы. Связи между ними и объектами вызывающей программы. В подпрограмме можно использовать идентификаторы, описанные в вызывающей программе. Смысл и значение их ,и в вызывающей, и в процедуре одинаково. Такие идентификаторы называются глобальными.

Функции. Функция – это процедура особого характера, результатом работы которой является обязательное значение. Описание функции начинается со служебного слова function имя_функции (параметры): тип результат; function Geron (x:real):real; . Список параметров может отсутствовать. Структура функций аналогична структуре программы. В разделе описаний функций могут содержаться описание других подпрограмм. Таких описаний может быть несколько. В теле функций должен быть оператор присваивания, в левой части которой имя функции, а в правой – выражение. Обращение к функции выполняется путем указания ее имени в составе какого-либо выражения. Имя функции в вызывающей программе может появится только в правой оператора присваивания. Возможности функции ограничены. При создании процедур и функций преследуют следующие цели: 1)разбиение больших программ на более маленькие по объему и сложности; 2) уменьшение объема программы за счет многократного использования подпрограмм; 3) создание универсальных блоков программ пригодных для использования в др. программах. Имя процедур используется только для вызова процедуры, а имя функции еще связано с результатом. Оформлять подпрограмму как функцию целесообразно, когда необходимо получить числовое значение. А оформлять процедуру надо, когда есть необходимость выполнить последовательность действий.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]