- •Тема 3. Технология разработки алгоритмов и программ.
- •3.1. Основные этапы разработки программного обеспечения.
- •3.2. Проектирование алгоритмов.
- •3.2.1. Требования к алгоритмам.
- •3.2.2. Временная и емкостная сложность алгоритмов.
- •3.2.3. Алгоритмы полиномиальной сложности и np-полные алгоритмы.
- •3.2.4. Эвристические алгоритмы.
- •3.2.5. Итеративные и рекурсивные алгоритмы.
- •3.2.6. Восходящий и нисходящий методы проектирования алгоритмов.
- •3.2.7. Базовые управляющие структуры алгоритмов и структурное прог-
- •3.2.8. Модульный метод разработки алгоритмов.
- •3.3. Проектирование данных.
- •3.3.1. Типы данных и объекты данных.
- •3.3.2. Классификация типов данных в системе программирования Turbo
- •Integer -32768 .. 32767 16 битов со знаком
- •3.3.3. Основные структуры данных и их представления.
- •3.4. Отладка и тестирование программ.
- •3.4.1. Классификация ошибок в программах.
- •3.4.2. Цели и задачи отладки и тестирования.
- •3.4.3. Основные возможности интегрированного отладчика системы
Тема 3. Технология разработки алгоритмов и программ.
3.1. Основные этапы разработки программного обеспечения.
Программное обеспечение (ПО) в процессе своего создания и эксплуа-
тации проходит последовательно следующие этапы:
- постановка и анализ задачи; составление спецификаций будущего ПО
(т. е. описание технических требований к решению этой задачи).
- построение и анализ формальной модели задачи. В ходе анализа мо-
дели выявляются главные факторы, влияющие на ее работу; связь между эти-
ми факторами. Определяется последовательность работы и взаимодействие
частей модели. Проводится поиск и запись математических и логических
соотношений между элементами модели.
- проектирование алгоритма решения задачи.
- проектирование структуры исходной, промежуточной и выходной ин-
формации для данной задачи. Этот и предыдущий этапы позволяют обоснован-
но выбрать язык программмирования для записи (кодирования) исходной
программы.
- запись программы в соответствии с синтаксическими правилами соот-
ветствующего языка программирования.
- автоматическая трансляция (перевод) исходной программы на машин-
ный язык. С этого момента начинается процесс отладки и тестирования
(испытания) программы.
- подготовка технической документации по программе в соответствии с
требованиями государственного стандарта.
- эксплуатация и сопровождение программы. С этого момента начина-
ется "жизненный цикл" программы, в процессе которого возможна ее модер-
низация.
3.2. Проектирование алгоритмов.
Если требуется решить задачу на ЭВМ, то необходимо разработать ал-
горитм - способ действий, ясно и недвусмысленно объясняющий этапы вы-
числений, которые должны быть выполнены над исходными данными задачи,
чтобы получить корректное решение (когда оно существует) за конечное
время. Составление алгоритма - важнейший шаг для получения эффективной и
правильной программы. При этом предполагается правильный выбор языка и
полнота спецификаций программы.
Возникает вопрос как выбрать хороший алгоритм? Первое правило - не
начинайте программировать первый пришедший в голову алгоритм, просмотри-
те по крайней мере несколько вариантов. Имеется немало литературных
источников, где рассматриваются вычислительные алгоритмы, например,
трехтомник Д. Кнута "Искусство программирования для ЭВМ". Все профессио-
нальные программисты должны быть знакомы с этимии полезными изданиями.
3.2.1. Требования к алгоритмам.
Разработанный алгоритм должен удовлетворять ряду требования, среди
которых следует выделить:
- определенность; результаты работы алгоритма должны однозначно
соответствовать исходными данными задачи.
- массовость; алгоритм должен быть работоспособным не для одного, а
для целого множества исходных данных.
- информативность (результативность); результатом работы алгоритма
должно быть или решение задачи или сообщение о невозможности такого ре-
шения при предложенном наборе исходных данных.
- эффективность; работа алгоритма должна заканчиваться за конечное,
определенное условием задачи, время и за конечное количество шагов.