Разработка внутренних структур данных

ВЫБОР МОДЕЛИ МЕТОДА РЕШЕНИЯ ЗАДАЧИ.

ПОСТАНОВКА ЗАДАЧИ.

ЭТАПЫ СОЗДАНИЯ СТРУКТУРНОЙ ПРОГРАММЫ.

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

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

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

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

· описание исходных данных и результатов (типы, форматы, точность, способ передачи, ограничения);

· описание задачи, реализуемой программой;

· способ обращения к программе;

· описание возможных аварийных ситуаций и ошибок пользователя.

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

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

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

При решении вопроса о том, как будут организованы данные в программе, полезно задать себе следующие вопросы.

· Какая точность представления данных необходима?

· В каком диапазоне лежат значения данных?

· Ограничено ли максимальное количество данных?

· Обязательно ли хранить их в программе одновременно?

· Какие действия потребуется выполнять над данными?

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

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

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: