Функциональная и модульная декомпозиции
Для большинства задач алгоритмы их решения являются довольно большими и громоздкими. При программировании нужно стараться получить программу удобочитаемую, высокоэффективную и легко модифицируемую. Для этого производят декомпозицию сложного алгоритма поставленной задачи, т.е. его разбивка на отдельные более простые подзадачи, затем декомпозиция подзадач и т.д. Для этого используют приемы процедурного программирования.
Один из основных приемов - разбивка алгоритма на отдельные функции и/или модули, используя функциональную и/или модульную декомпозиции соответственно.
Функциональная декомпозиция- метод разбивки большой программы на отдельные функции, т.е. общий алгоритм - на отдельные шаги, которые потом и оформляют в виде отдельных функций.
Алгоритм декомпозиции можно представить следующим образом:
- программу делать как последовательность более мелких действий;
- каждую детализацию подробно описать;
- каждую детализацию представить в виде абстрактного оператора, который должен однозначно определять нужное действие, и в конечном итоге эти абстрактные действия заменятся на группы операторов выбранного языка программирования.
При этом надо помнить, что каждая детализация – это один из вариантов решения, и поэтому необходимо проверять, что
- решение частных задач приводит решению общей задачи;
- выбранная последовательность действий разумна;
- построенная декомпозиция позволяет получать команды, легко реализуемые на выбранном языке программирования.
Единицей компиляции в языке Си является отдельный файл (модуль). Модульная декомпозиция представляет собой разбиение программы на несколько отдельных файлов, каждый из которых решает отдельную конкретную задачу и, как правило, облегчает процесс ее работы. Кроме того, код программы, разделенный на отдельные файлы, позволяет части этого кода использовать в других программах.
Пример модульной декомпозиции кода Си:
Дата добавления: 2015-09-11; просмотров: 660;