Программирование в среде Фортран. Часть 3.

Страницы работы

Фрагмент текста работы

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

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

Такой вывод информации нельзя признать хорошим. Желательно выводить не только номер элемента массива и его значение, но и  значение аргумента Н, при котором рассчитано это значение. Для этой цели можно:

1)  создать массив значений аргумента

2)  вычислять текущее значение высоты Н в процессе вывода информации и выводить это значение:

         HT=HN+(J–1)*(HK–HN)/(N–1)

Вычисление этого выражения можно оформить в операторе-функции, но можно в качестве арифметического выражения записать прямо внутри оператора вывода WRITE. Это будет выглядеть так:

                   WRITE (3,10) (HN+(J–1)*(HK–HN)/(N–1), B(J),J=1,N)

         10      FORMAT(/1X,’Результат расчёта’/(1X,’При H=’,F4.2,

*’B=’,G11.4/))

                   WRITE (3,11)

11      FORMAT (1X,70(’=’))

                   CLOSE(3)

                   PAUSE

                   STOP

END

Предполагаем, что программа INDUK находится в библиотеке стандартных программ. Но если эта программа написана пользователем и хранится в виде отдельного файла в этом же каталоге, то её можно подключить к данной головной программе с помощью метакоманды:

         $INCLUDE.

Она записывается в том месте текста головной программы, куда нужно ставить текст подпрограммы. Записываем  с первой позиции строки метакоманду:

$INCLUDE: ’INDUK.FOR’

Если этот файл находится в другом месте, то необходимо указать полный путь к нему                    $INCLUDE: ’D:\Fortran\MyProg\INDUK.FOR’

Метакоманда начинается символом “ $ ” с первой позиции, а в данном случае INCLUDE включает в текст программы имя файла, который указан в текстовой строке.

35. Обработка сбойных ситуаций и ситуаций “конец файла” при вводе-выводе информации

Оператор ввода имеет структуру следующего вида:

         READ (n, m1, ERR=m2, END=m3)  список

где n – номер канала ввода;

      m1 – метка оператора FORMAT или “ * ”;

      m2 – метка оператора, по которому передаётся управление, если при вводе информации произошёл сбой по чтению.

Сбойная ситуации наступает в том случае, когда вводимая информация не соответствует описанию полей оператора  FORMAT. Например: целое число вводится с десятичной точкой; вещественное число вводится с двумя минусами; число не соответствует формату; вместо числовой информации вводится текстовая информация  (распространённая ошибка); при форматном вводе ставится запятая, которая является ошибкой при отделении одного числа от другого.

      m3 – метка, на которую передаётся управление, если при попытке чтения очередной записи обнаружен конец файла.

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


Обработка сбойной ситуации:

Пример обработки сбойных ситуаций при вводе исходных данных с экрана дисплея:

                   OPEN (4,FILE=’REZ.DAT’)

         7        WRITE (6,*) ’Введите A,I,B’

                   READ (5,8,ERR=11) A, I, B

FORMAT (F6.2,I4,E9.3)

          Прочитанные исходные данные выводятся в файл результатов

WRITE (4,12) A,I,B

12  FORMAT (2X,’Исходные данные’/4X,’A=’,F7.2,’ I=’,I4,’ B=’,G12.4)

Формат вывода данных может отличаться от формата ввода.

GOTO 13

11  WRITE (6,*) ’При вводе ИД произошёл сбой. Введите ИД заново по

*формату F6.2, I4, E9.3’

                    GO TO 7

13  D=A+B

Если при вводе информации в данной программе произошла ошибка, то управление передаётся на метку 11. По этой метке мы выдаём текстовое сообщение об ошибке и подсказку, как эту ошибку исправить.

После этого повторяем ввод исходных данных.

Обработка ситуации “конец файла”:

Обработка ситуаций “конец файла” используется при чтении файла до конца

Похожие материалы

Информация о работе