- •Основы алгоритмизации
- •1. История
- •Основные этапы процесса решения задачи на пк
- •Математическая постановка задачи
- •Выбор метода решения задачи
- •Разработка алгоритма
- •Программирование
- •Подготовка исходных данных и непосредственное выполнение программы
- •3. Понятие алгоритма. Сущность алгоритмизации
- •4. Свойства алгоритма
- •5. Средства описания алгоритма
- •6. Методы разработки алгоритмов
- •7. Правила оформления схем алгоритмов
- •8. Типовые структуры алгоритмов
- •Литература
- •Представление данных
- •1.1.4. Виды алгоритмов
Программирование
Это процесс записи алгоритма на одном из алгоритмических языков программирования. Таких языков существует немало. Наиболее распространены Бейсик, Паскаль, СИ и др.
Следует отметить, что этап программирования не будет представлять большой сложности, если алгоритм разработан достаточно тщательно. Чем больше внимания Вы уделите разработке алгоритма, тем меньше времени придется затратить на написание программы, которое в этом случае будет выглядеть как простой перевод. Качественно разработанный алгоритм сможет программировать человек, владеющий языком программирования, но совершенно не знакомый ни с постановкой задачи, ни с методом ее решения. Зачастую подавляющая часть времени при создании программы уходит не на ее написание, а на отладку. Поэтому программа должна быть наглядной, легко читаться, сопровождаться комментариями. В комментариях рекомендуется указывать назначение отдельных участков программы, смысл используемых переменных, пояснение наиболее сложных участков.
Отладка программы
Это процесс поиска (диагностики) и устранения ошибок в программе путем решения ее на контрольных (тестовых) примерах. Надо подобрать разные наборы исходных данных, чтобы проверить правильность работы программы при всех возможных исходах. Вместе с тем, исходные данные должны быть упрощенными настолько, чтобы на каждом этапе сверить значения промежуточных результатов с результатами ручного просчета. Если решение задачи вручную невозможно или требует больших затрат, то для сравнения можно взять результаты решения, полученные по другому алгоритму.
Главное правило подбора тестовых примеров состоит в следующем: тесты следует подбирать таким образом, чтобы они не подтверждали правильность программы, а выявляли имеющиеся в ней ошибки.
Ошибки программы бывают двух видов:
ошибки ввода (описки) и синтаксические ошибки записи операторов - выявляются при трансляции программы на машинный язык. Программа-транслятор выводит на экран компьютера сообщение о характере ошибки и указывает место в программе, где эта ошибка была обнаружена.
смысловые (алгоритмические) ошибки - выявляются на этапе отладки работающей программы, когда программа не производит в точности ожидаемых действий, сообщений об ошибках при этом нет. Обнаруживаются такие ошибки только при сравнении результатов машинного и ручного просчета.
При отладке большой сложной программы используются следующие методы:
распечатка значений промежуточных данных, помогает найти ошибки в вычислениях;
трассировка программы (trace - след) - вывод номеров операторов по мере их фактического выполнения, дает возможность проследить последовательность выполнения отдельных действий и частей программы;
пошаговое выполнение с просмотром содержимого памяти, выполняется с помощью специальной программы - диалогового отладчика;
дамп (damp - разгрузка) - вывод содержимого памяти для анализа в определенный момент времени, например, в момент останова программы из-за ошибки.
Сложные программы для отладки обычно разбивают на несколько крупных частей, связь между которыми достаточно обозрима. После этого проводится автономная отладка каждой части, для чего подготавливаются специальные наборы контрольных вариантов.
В конце этапа отладки рекомендуется выполнить комплексное тестирование программы на контрольных исходных данных, максимально приближенных к реальным. Цель комплексной отладки - проверить правильность схемы организации программы в целом.
