
- •Lesson 3 Приближенные вычисления
- •Ряд Тейлора
- •Точность вычислений
- •Рекуррентная формула
- •Блок-схема алгоритма
- •Текст программы
- •Отладка программы
- •Альтернативная блок-схема
- •Bвод и вывод данных
- •Операторы open и close
- •Оператор read – ввод данных
- •Оператор write – вывод данных
- •Оператор format
- •Спецификации числовых данных
- •I -спецификация формата.
- •F -спецификация формата
- •E, d -спецификации формата
- •G-спецификация формата
- •Вывод комплексных чисел
- •Спецификации нечисловых данных a-спецификация формата
- •L-спецификация формата
- •X-спецификация формата
- •Cпецификация формата – «слэш»
- •Взаимодействие операторов write и format .
- •Оператор nameList
Текст программы
Отладка программы
Если программа завершилась аварийно, или если полученные результаты не соответствуют ожидаемым результатам, рекомендуется провести анализ возможных причин этого.
Если вследствие ошибок в программе исследуемый ряд стал расходящимся, то программаобязательнозакончится аварийно. Но это не значит, что аварийно завершаетсятолькосуммированиерасходящихсярядов.
Предположим, что выбранное значение Nmax=100, а для достижения заданной точности при выбранном аргументе требуется сумма из 120 слагаемых. Ряд сходится, но программа при этом завершится аварийно.
При аварийном завершении программы обычно рекомендуется выводить информацию, позволяющую анализировать создавшуюся ситуацию. Так и в нашей программе выводятся значения x, An, F, Sn, N, Nmax.Отличитьрасходящийсяряд отсходящегосяможно, анализируя значение последнего просуммированного члена ряда An. Если значение его модуля приближается к значению заданной погрешности, то,возможно, ряд просто «не успел» сойтись, поэтому рекомендуется увеличить значениеNmaxи повторить вычисления.
Если же значение | An| на порядки превышает значение погрешности, то бесполезно изменятьNmax,потому что рядрасходится.К этому могут привести следующие ошибки:
Значение аргумента x не принадлежит области сходимости ряда.
Заданная погрешность вычислений ε не согласована с типом используемых переменных; например, используя переменные типа real нельзя получить результат с точностью до 17-го десятичного знака (минимальная допустимая погрешность ε =10-6 ÷ 10-7).
Допущены ошибки в рекуррентной формуле, алгоритме или программе.
Альтернативная блок-схема
У каждой задачи в программировании обычно имеется не одно решение. Покажем, как можно решить задачу суммирования ряда на примере разложения функции sin x. В этом алгоритме используется цикл по целой переменнойN– номеру члена ряда. Все, сказанное об алгоритме, приведенном выше, относится и к этому варианту.
Bвод и вывод данных
При вводе или выводе данных происходит преобразование данных из текстового представления во внутреннее и обратно. Чаще всего, это обмен данными между программой и внешним носителем информации, обычно файлом или экраном компьютера.
Для ввода и вывода данных в Фортране служат операторы readиwrite.
Общая форма этих операторов имеет вид:
read(управляющая информация)список переменных
write(управляющая информация)список констант, переменных и выражений
Обмен данными происходит в порядке следования элементов списка.
В список управляющей информациивходят:
На первомместе в списке – параметр, задающийномер устройства,который имеет вид:nили символ «*» гдеn– целая константа без знака, условный номер, связанный с устройством ввода-вывода (в частном случае сфайлом), а символ «*» указывает, что номер устройства задан по умолчанию – клавиатура для ввода и экран для вывода.
На второмместе – параметр, определяющийформат ввода или вывода, который имеет вид:nили ‘(символьное выражение)’ или «*» гдеn– метка оператораformat, соответствующая оператору ввода или вывода, символьное выражение – спецификация формата, а символ «*» указывает, что формат выбирается компилятором по умолчанию, при этом ввод и вывод производится под управлением списка.