Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция 10_ОАП.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
96.26 Кб
Скачать

Лекция № 6. Тема: Методология процедурного программирования.

  1. Принципы структурного программирования.

  2. Структурирование алгоритма в терминах процедур и функций.

  3. Синтаксис описания и семантика выполнения.

  4. Организация обмена данными между процедурами. Локализация данных. Побочные эффекты.

  5. Техника программирования в терминах процедур и функций.

Принципы процедурного программирования

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

  1. Процесс разработки программы состоит из последовательности шагов, на каждом из которых программист

  • уточняет структуру программы;

  • уточняет структуру данных.

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

  1. Уточнение структуры данных состоит в определении и описании данных, обрабатываемых выбранным оператором.

  1. Определение структуры данных программы начинается с описания входа-выхода, т.е. с определения структуры исходных и выходных данных.

  1. При работе пользуются принципом минимальной необходимости: уточнение осуществляют лишь с той степенью точности, которая необходима на данном шаге.

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

  1. Основными структурными единицами программы являются процедуры и функции. Каждую от­­но­си­тельно самостоятельную подзадачу оформляют как подпрограмму (процедуру или функцию).

Структурирование алгоритма в терминах процедур и функций Процедуры и функции

Технология программирования на языках программирования типа языка Паскаль предлагает проектировать программы методом последовательных уточнений.

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

Описание процедур

В языке Паскаль процедуры определяются в разделе процедур и функций с помощью описаний процедур. Обращение к процедуре осуществляется оператором процедуры. Раздел процедур и функций содержит список описаний процедур и функций.

Описание процедуры выглядит так же, как и описание программы, но вместо заголовка программы фигурирует заголовок процедуры. Заголовок имеет вид:

Заголовок

процедуры

Примеры заголовка процедуры:

procedure Picture;

procedure Power(X: real; n: Integer; var u, v: Real);

procedure Integral( a, b, epsilon: Real; var S: Real);

Формальные параметры. Локальные и глобальные объекты

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

Метки, имена констант, типов, переменных, процедур и функций, описываемых в теле процедуры, а также все имена, вводимые в разделах формальных параметров, являются локальными в описании процедуры, которые называются областью действия для этих объектов. Вне этой области они неизвестны.

Резервирование памяти под локальные объекты осуществляется таким образом, что она “захватывается” процедурой при ее вызове оператором и освобождается при выходе из процедуры. Такой механизм распределения памяти называется динамическим. Динамическое распределение позволяет экономить адресуемую память.

Объекты, описанные в основной программе, доступны для использования в этой процедуре. Они называются глобальными. Отметим, что локальный и глобальный объекты совершенно различны, но могут иметь одно и то же имя. Если, например, переменная Х описана как в основной программе, так и в процедуре, то в процедуре она используется как локальная. Если же в процедуре переменная Х не описана, то в процедуре она используется как глобальная.