Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика все ответы.doc
Скачиваний:
23
Добавлен:
26.04.2019
Размер:
946.69 Кб
Скачать

26. Методы проектирования алгоритмов.

Методы проектирования алгоритмов включают: нисходящее проектирование, модульность, структурное программирование.

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

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

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

  1. циклический. Используется для представления циклических алгоритмов. Описывается языком графических символов одним из двух способов:

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

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

Выделим в поставленной задаче три основных подзадачи и введем необходимые комментарии:

  1. ввод и размещение в памяти компьютера списка абитуриентов и их оценок по аттестату. При этом количество абитуриентов заранее неизвестно, поскольку документы принимаются у всех желающих;

  1. ввод и анализ оценок по каждому экзамену по каждому абитуриенту. В результате анализа возможно исключение абитуриента из списка. Число абитуриентов известно после решения первой подзадачи. Количество экзаменов известно заранее;

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

  1. определение нужного подмножества абитуриентов для зачисления. Число студентов набора известно заранее.

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

27. Тестирование и верификация алгоритма. Трассировка.

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

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

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

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

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

Трассировка – это метод пошаговой фиксации динамических составляющих алгоритма на некотором тексте (проверка переменных и их значений). Часто осуществляется с помощью трассировки таблиц, в которых каждая строка соответствует определённому шагу, а столбец определяет состояние параметров (переменных). Отличает отладку.

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

Процесс поиска и исправления ошибок – отладка.