Этапы разработки программ.

Алгоритмизация вычислительных процессов

3.1.1 Анализ задания

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

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

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

Пример.

Индуктивность металлической рамки можно определить из соотношения

L = 8X(Ln(8X / B) — 2.58)

Если надо определить индуктивность, то достаточно подставить исходные данные в формулу и выполнить соответствующие арифметические действия. Если же надо определить размер X для заданной индуктивности, то надо решать нелинейное уравнение, которое в данном случае имеет вид

X = L / (8(Ln(8X / B) — 2.58))

При обосновании применяемого метода следует выявить его достоинства и недостатки по сравнению с другими возможными методами реализации функций.

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

3.1.2. Разработка алгоритмов

.

Разработка алгоритмов решения задачи проводится методом структурного программирования и включает в себя разработку: схемы иерархии; укрупненных и детальных схем алгоритмов.

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

3.1.3. Подготовка тестов

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

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

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

3.1.4. Подготовка текстов программы и подпрограмм.

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

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

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

3.1.5. Отладка программы

Отладка программы — это процесс обнаружения, локализации и исправления ошибок в программе. Она может занимать до 50% времени от общих затрат на разработку программы. Обычно отладку программы выполняют в два этапа: поиск и исправление синтаксических ошибок (синтаксическая отладка) и поиск и исправление логических ошибок (алгоритмическая отладка). Цель отладки — доказательство правильности программы, определение основных характеристик программы.

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

При выполнении синтаксической отладки необходимо иметь в виду, что:

1) транслятор обнаруживает не все ошибки, например, если в некотором выражении в программе вместо NT записано HT и объявлены обе такие переменные, то такую ошибку транслятор обнаружить не сможет;

2) некоторые ошибки приводят к тому, что верные операторы воспринимаются транслятором, как ошибочные и наоборот — ошибочные операторы ЭВМ воспринимаются, как верные;

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

Поэтому после ввода программы в ЭВМ и исправления очевидных ошибок, необходимо получить распечатку текста программы и тщательно, символ за символом проверить весь текст программы.

Алгоритмическая отладка — это поиск и исправление семантических ошибок и ошибок в алгоритме. Семантическая ошибка появляется в результате неправильного понимания программистом смысла операторов языка программирования. Основными инструментами алгоритмической отладки являются тесты и пошаговое выполнение программы с контролем значений переменных.

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

Урок 11. Этапы разработки программ. Программирование на Pascal / Паскаль. Уроки по информатике


Похожие статьи.

Понравилась статья? Поделиться с друзьями: