Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл: Источник:
Скачиваний:
289
Добавлен:
04.03.2014
Размер:
136.19 Кб
Скачать

3.2.8. Модульный метод разработки алгоритмов.

Неформально модульная программа - это такая программа, в которой

любую часть логической структуры можно изменить, не вызывая изменений в

остальных частях программы. Одним из более абстрактных понятий, связан-

ных с модульностью, является понятие независимости: в модульной програм-

ме каждый модуль является независимой единицей компиляции. Законченная

теория модульности не является общепринятой и в значительной степени за-

висит от языка программирования (системы программирования). Обычно тео-

рия модульности формулируется на языке структурного программирования,

которое было рассмотрено в предыдущем пункте. Тем не менее существует

некоторое число специальных приемов, которые обычно позволяют успешно

строить модульные программы:

- разбивайте Ваши програмы на малые независимые подпрограммы. Необ-

ходимо постоянно стремиться выделять функциональный характер подпрограм-

мы; каждая подпрограмма должна иметь определенное назначение, которое

более или менее не зависит от других подпрограмм программы.

- используйте символьные параметры для констант;

- отделяйте действия по вводу-выводу от вычислительных операций;

- не пользуйтесь общей областью памяти. Обычно значительно проще

отлаживать программу, если каждому модулю отводится локализованная об-

ласть для хранения промежуточных результатов.

3.3. Проектирование данных.

Фактором, сравнимым по значению с выбором алгоритма, является про-

ектирование данных. Следует выбирать такое представление данных, которое

наилучшим образом соответствует рассматриваемой задаче. Имеется немало

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

данных, например, трехтомник Д. Кнута "Искусство программирования для

ЭВМ". Почти все структуры данных могут быть смоделированы на любом язы-

ке, и эти методы обсуждаются в упомянутых книгах, но лучше использовать

тот язык программирования, в конструкциях которого предусмотрена нужная

Вам структура данных.

3.3.1. Типы данных и объекты данных.

Данные в языках программирования группируются во взаимоисключающие

классы, называемые типами данных. Тип данных определяется не как отдель-

ное независимое значение, а в рамках некоторой системы типов. Отвечая на

вопрос, "что такое тип?", - недостаточно сказать, например, "тип - это

множество значений", а надо установить, какими средствами строятся или

описываются множества как типы и как они соотносятся друг с другом.

Система типов обычно строится из некторых базисных типов, которыми явля-

ются множества с заданными свойствами, с помощью некоторых операций над

типами.

Суммируя сказанное, тип данных можно определить множеством значе-

ний, которыми могут обладать идентификаторы, объявленные как объекты

этого типа, и множеством операций, применяемых к объектам этого типа

данных. Следует отметить, что с "машинной" точки зрения тип данных - это

прежде всего шаблон их представления в памяти ЭВМ и определяемый этим

шаблоном способ доступа к данным и их частям.

Объекты данных бывают двух видов:

- постоянные (или константные), значения которых не изменяются в

процессе выполнения программы и

- переменные, которые вводятся для обозначения произвольных, зара-

нее неизвестных значений, возникающих в процессе выполнения программы.

Во всех языках программирования, за исключением самых простых, для

объектов данных вводят собственные имена. В простейшем случае в роли

имени выступает идентификатор; в общем случае идентификатору может быть

приписан специальный выделитель. Во многих языках программирования реко-

мендуется все объекты данных описывать с помощью операторов, принадлежа-

щих к классу описаний (деклараций, объявлений). По роли описания объек-

тов данных языки программирования делятся на языки с обязательными объ-

явлениями и необязательными объявлениями. Например, Turbo Pascal - язык

с обязательными объявлениями в том смысле, что каждый идентификатор,

используемый в программе, должен быть описан с помощью некоторого описа-

ния.

Описание любого объекта данных имеет ограниченную сферу действия

(область видимости). По сфере действия в тексте программы объекты данных

делятся на локальные и глобальные. Участки программы, в которых локали-

зуются объекты данных в разных языках устанавливаются по-разному. В язы-

ке Turbo Pascal, например, они соответствуют описаниям процедур и функ-

ций.

По способу распределения памяти объекты данных делятся на стати-

ческие и динамические. Статические данные создаются при их указании в

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

мические данные могут создаваться и уничножаться во время выполнения

программы. На динамические данные можно ссылаться, используя один или

более указателей.

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