Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование / WORD / Лекции по ЯП (часть 2).doc
Скачиваний:
98
Добавлен:
15.04.2015
Размер:
2.24 Mб
Скачать

Метод программирования сверху вниз

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

В результате, основная программа — т.е. ее тело содержит сравнитель­но немного операторов. Основной объем кода заключен в процедурах. Часто пользователю предоставляется меню. Выполнение программы разветвляется в зависимости от выбора пользователя. Каждая ветвь выполняется отдельной процедурой.

Меню — хорошее средство создания удобных в использовании программ.

  1. Определение процедуры

Процедура — это независимый элемент программы, структура которого на­поминает структуру всей программы. Процедура начинается с заголовка, который включает слово procedure и имя процедуры (или ее идентификатор). Завершается заголовок процедуры точкой с запятой. Раздел описаний процедуры является необязательным и присутствует только тогда, когда в процедуре используются собственные константы и переменные. В каждой процедуре имеется тело процедуры, которое начинается с зарезервированного слова begin и завер­шается словом end; (с точкой с запятой).

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

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

Синтаксические правила для процедур

ОПИСАНИЕ СИНТАКСИСА: Объявление процедуры (с параметрами)

Форма:

procedure pname (формальные параметры);

<раздел описаний>

begin

<тело процедуры>

end;

Интерпретация: После имени pname объявленной процедуры следует список формальных параметров, заключенных в скобки. Идентификаторы, объявленные в разделе описаний, являются для процедуры локальными и определены на время работы процедуры. Тело процедуры описывает манипуляции над данными (которые будут выполнены при вызове процедуры) с использованием формальных параметров в качестве фиктивных имен вместо фактических параметров. Формальные параметры-значения принимают данные, передаваемые в процедуру, а формальные параметры-переменные, которые предваряются зарезервированным словом var, возвращают результаты работы процедуры в вызвавшую ее основную программу.

Следующая синтаксическая диаграмма демонстрирует, что список формальных параметров всегда заключается в скобки и представляет собой один или несколько перечней идентификаторов. Каждому перечерню идентификаторов может предшествовать зарезервированное слово var (однако это необязательно) и каждый перечень должен завершаться двоеточием, за которым следует идентификатор типа данных (например Real или Char). Идентификаторы в перечнях разделяются запятыми, а перечни идентификаторов отделяются один от другого точками с запятой.

ОПИСАНИЕ СИНТАКСИСА: Оператор вызова процедуры с параметрами

Форма:

pname(фактические параметры);

Интерпретация: Фактические параметры заключены в операторе вызова процедуры в скобки. Когда имеет место вызов процедуры pname, ее первый фактический параметр ассоциируется с первым формальным параметром, второй фактический параметр ассоциируется со вторым формальным параметром и так далее. Для параметра-значения, в область данных процедуры заносится значение фактического параметра и она (процедура) обрабатывает локальное значение. Для параметра-переменной в область данных процедуры заносится адрес фактического параметра, после чего процедурой обрабатывается сам фактический параметр.

Примечание: Фактические параметры должны удовлетворять правилам соответствия списка параметров.

Списки параметров: правила соответствия

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

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

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

Пояснения по параметрам-значениям и параметрам-переменных

Передача параметра по значению означает, что в процедуру передается копия значения параметра (аргумента). Этот метод включает 3 этапа:

  1. Если необходимо, вычисляется значение выражения.

  2. Результат копируется в стек — временное хранилище данных в памяти.

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

Ключевым моментом тут является то, что процедура никак не может изменить значение параметра (аргумента), если параметр передается по значению. Данные снаружи процедуры защищены от неосторожного вмешательства.

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

Когда использовать параметр-переменную и когда параметр-значение

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

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

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

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

Соседние файлы в папке WORD