
- •Приближенные вычисления
- •Ряд Тейлора
- •Точность вычислений
- •Рекуррентная формула
- •Блок-схема алгоритма
- •Текст программы
- •Отладка программы
- •Альтернативная блок-схема
- •Bвод и вывод данных
- •Операторы open и close
- •Оператор read – ввод данных
- •Оператор write – вывод данных
- •Оператор format
- •Спецификации числовых данных
- •Вывод комплексных чисел
- •Спецификации нечисловых данных
- •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, соответствующая оператору ввода или вывода, символьное выражение – спецификация формата, а символ «*» указывает, что формат выбирается компилятором по умолчанию, при этом ввод и вывод производится под управлением списка.