метода Волощенко (551678), страница 2
Текст из файла (страница 2)
горитм должен обеспечивать правильное решение задачи возможных наборов исходных данных из допустимого а значений. горитм должен быть эффективным, т.е. затраты машинени на решение задачи и требуемый объем памяти долж- минимальными. 3. Алгоритм должен состоять из конструкций структурного программирования [Ц, быть простым для понимания, ясным для доказательства и удобным для модификации. 4. В алгоритмах должны быть предусмотрены средства контроля данных, чтобы исключить аварийный останов программы при задании неправильных данных. Для итерационных методов необходимо предусматривать средства контроля количества итераций и Формирования соответствующего признака завершения вычислительного процесса. Сообщения, выводимые программой, должны быть лаконичными и подсказывающими пользователю путь выхода из данной ситуации.
1.3.3. Подготовка тестов Тест — это совокупность исходных данных, результатов н промежуточных значений переменных, рассчитанных вручную или любым другим способом. Результаты теста могут быть получены различными путями. Если есть возможность, то результаты теста лучше получать путем, отличным от реализованного в программе, так как, если вычисления проводить точно по алгоритму, то можно не заметить ошибку, которую затем не выявит и отладка. Например, если в программе решается нелинейное уравнение численным методом, то значение корня уравнения можно получить путем решения этого уравнения в прилежании Магг1Сад.
Хотя тесты используются на этапе отладки программы, составляют их после разработки схем алгоритмов, ио до составления программы, так как подготовка тестов часто помогает выявить многие ошибки в алгоритмизации. Комплект тестов должен быть таким, чтобы все ветви схемы алгоритма были пройдены, по крайней мере, по одному разу. 1.3А. Г!одзотовка текстов процедур и функций Тексты процедур и функций записываются по детальным схемам алгоритмов. Если в процессе записи текстов будет обнаружена ошибка или найдено более рациональное решение, то сначала надо внести изменения в схему алгоритма, а затем продолжить составление программы. Программа и процедуры должны быть снабжены достаточным количеством комментариев. Различают вводные и поясняющие комментарии.
Вводные комментарии размещаются сразу после заголовка программы (процедуры) и содержат следующую информацию: назначение программы; функции, реализуемые программой; сведения об используемых численных методах, процедурах и функциях; сведения об авторе программы и дате изготовления. Поясняющие комментарии размещаются перед каждым функционально законченным фрагментом алгоритма и содержат информацию о реализуемой в этом фрагменте функции. В комментариях каждой подпрограммы должны быть указаны сведения о реализуемой функции и используемых численных методах.
2) некоторые ошибки приводят к тому, что верные операторы воспринимаются транслятором, как ошибочные и наоборот— ошибочные операторы ЗВМ воспринимаются, .как верные; 3) ошибка в одном месте программы может повлечь за собой серию диагностических сообщений в других местах программы. Поэтому после ввода программы в ЗВМ и исправления очевидных ошибок, необходимо получить распечатку текста программы и тщательно проверить весь текст программы. Алгоритмическая отладка — это поиск и исправление семантических ошибок и ошибок в алгоритме. Семантическая ошибка появляется в результате неправильного понимания программистом смысла операторов языка программирования. Основными инструментами алгоритмической отладки являются тесты и пошаговое выполнение программы с контролем значений переменных в окне ЪУа1сй.
После исправления синтаксических ошибок программу отправляют на выполнение, задав первый тестовый набор исходных данных. Сравнивая полученные результаты с тестовыми, выносят суждение о правильности выполнения той или иной функции. 1.3.6. Решение задач на ЭВМ 1.3.5.
Отладка прозрамзчы Отладка программы — это процесс обнаружения, локализации и исправления ошибок в программе. Она может занимать до 50% времени от общих затрат на разработку программы. Обычно отладку программы выполняют в два этапа: поиск и исправление синтаксических ошибок (синтаксическая отладка) и поиск и исправление логических ошибок (алгоритмическая отладка). Синтаксическая отладка выполняется с помощью компилятора, в составе которого есть программа, анализирующая правильность записи программы. При нарушении правил синтаксиса языка программирования компилятор выдает информацию об ошибке в виде диагностического сообщения. При выполнении синтаксической отладки необходимо знать: 1) транслятор обнаруживает не все ошибки, например, если в некотором выражении в программе вместо г(Т записано НТ и обьявлены обе такие переменные, то такую ошибку транслятор обнаружить не сможет; После успешного завершения отладки на тестовых примерах необходимо выполнить задание исследовательской части курсовой работы.
Описание результатов должно содержать цель исследования, наборы исходных данных, описание графиков и таблиц и выводы. Глава 3. АППРОКСИМАЦИЯ ФУЕ1КЦИОНАЛЪНЫХ ЗАВИСИМОСТЕЙ 2.1. Варианты заданий При расчете и проектировании электронных устройств часто функциональные зависимости между переменными описываются сложными математическими выражениями. Для повышения эффективности алгоритмов проектирования зти зависимости аппраксимируют более простыми математическими соотношениями. Задача аппроксимации возникает также в тех случаях, когда функ- 11 циональные зависимости между переменными задаются в вида таблиц и необходимо определять значения Функции для значений аргумента отсутствующих в таблице.
Аппроксимацией называется замена одних математический объектов (чисел, функций) другими, более простыми в том ила ином смысле и близкими к исходным. Прн решении задачи аппроксимации предполагается, что из= вестны значения аппроксимируемой функции 1(х) (снятые экспе= риментально или рассчитанные по формуле) в узловых точках (обычно их называют узлами интерполяции) х1, хэ, ..., х„(рис. 2.1). Необходимо найти функцию Р(х), с помощью которой можно было бы определить значения исходной Функции для других (отличных от узловых) значений аргумента х с некоторой достаточно малой погрешностью.
1 (х) Рис. 2.1 Наиболее часто в качестве аппроксимирующей функции используется полинам: Р(х) = а1 + аэ х + аэ х + ... + а„т 1 х (2. 1) Достоинством такого многочлена является возможность построении эффективного алгоритма вычисления Р(х) с минимальным количеством операций. Например, если записать выражение (2.1) по схеме Горнера Р(х) = а +х(аз+ х(аэ+ ...
+х(а„+а„1 х)~...). (2.2) и воспользоваться операцией последовательного умножения, то можно построить алгоритм, требующий всего порядка и операций умножения. Различают две задачи аппроксимации: интерполяцию и зкстраполяцию. Интерполяция — это отыскание промежуточных значений функции внутри заданного интервала [х, х 1 для значе- 1' э 12 ний не совпадающих с узловыми точками(например, для точки х на рис. 2.1). Экстраполяция — зто распространение выводов, з полученных из наблюдения над одной частью явления на другую ее часть, т,е.
это определение значений Функции вне заданного интсрВаЛа [Х1, Хэ ), НаПрИМЕр дЛя ТОЧКИ ХЭ На рне. 2.1. Задания по данной теме формулируются в виде: "Разработать алгоритм и программу аппроксимации заданной Функции". В качестве исходных данных задается метод аппроксимации и аналитическая функция, которая используется для оценки погрешности аппроксимации. Каждое задание содержит также исследовательскую часть, которая включает в себя один из следующих вариантов исследования зависимости погрешности: от степени аппроксимирующего полинома; от расстояния между узлами интерполяции; от величины шага до экстраполируемой точки; ° от количества учитываемых узловых точек при экстраполяции функпин.
В общем случае программа должна реализовывать следующие Функции: определение коэффициентов полннома; ° определение значения функции по полиному для любого значения аргумента на заданном интервале; ° определение погрешности аппроксимации для заданной Функции; определение коэффициентов полинома для Функции заданной таблично; определение значения табличной функции по полнному для любого значения аргумента на заданном интервале. При разработке алгоритмов и программы по данной теме необходимо иметь в виду следующее. Численный метод аппроксимации должен быть реализован в виде подпрограммы, которая в качестве исходных данных получает таблицу значений Функции в узлах аппроксимации.
Аналитическая функция 1(х), в частности, используется для оценки погрешности аппроксимации. Для оценки погрешности можно использовать как абсолютную погрешность КЛ = ~ Р— Р~, 13 так и относительную погрешность ЕО = !(Р— Р) / Р!, где Р и Š— значения, рассчитанные по полиному и аналитической Формуле соответственно. Оценку погрешности можно осуществлять различными способами, например, погрешность интерполяции можно определить, если для каждого отрезка между узлами интерполяции организовать алгоритм поиска максимального отклонения интерполяционного полинома от аналитической Функции и выбрать максимальное значение из полученных отклонений.