- •Часть 3
- •Содержание
- •30. Работа с файлами
- •Примечание:
- •31. Открытие файлов
- •File not found
- •32. Непосредственная работа с файлом
- •33. Форматный вывод информации
- •34. Форматное чтение информации из файла
- •35. Обработка сбойных ситуаций и ситуаций “конец файла” при вводе-выводе информации
- •Обработка сбойной ситуации:
- •7 Write (6,*) ’Введите a,I,b’
- •Обработка ситуации “конец файла”:
- •36. Операторы для работы с записями в файле
- •37. Дополнение файла информацией
- •Первый способ дополнения файла информацией:
- •10 Write (6,*)’Всего записей в файле’,kzap
- •Второй способ дополнения файла информацией
- •4 Write (6,*)’в файле было записей’,kz
- •38. Работа с текстом
- •39. Текстовые константы
- •Правило:
- •10 Format (a8)
- •10 Format (a)
- •1) Вводится меньше 8 символов, то они помещаются в переменную imfile, а недостающие до 8 позиции дополняются пробелами.
- •2) Вводится имя большего размера, чем 8 позиций, то будут восприняты только первые 8 символов и они будут записаны в переменную imfile;
- •8 Format (a10/5a5)
- •9 Format (1x,a10/1x,5a5)
- •9 Format (1x,a10/1x,5a5)
- •Семин а.В.
- •Правила ввода-вывода текстовой информации:
- •1). Ввод информации
- •Примечание:
- •40. Текстовые подцепочки
- •41. Вывод графиков
- •42. Эквивалентирование текстовых переменных
- •If(fam1.Eq.Fam2) write(6,9) fam2,k1,k2,k3,k4
- •7 Format (a40,i5,a15,i5,a7)
- •If (ngod.Ne.1962) goto 4
- •9 Format (1x,a40,i5,a15,i5,a7)
- •10 Write(4,*)’Конец просмотра базы данных’
- •43. Создание библиотек
- •44. Решение дифференциальных уравнений
- •45. Работа с комплексными данными
- •Правило:
- •46. Ввод-вывод переменных комплексного типа
- •Примечание:
- •47. Встроенные функции комплексного типа
- •48. Оператор equivalence
- •Правило:
- •49. Результаты арифметических операций в выражениях с данными разного типа
- •50. Файлы прямого доступа
- •51. Способы передачи форматных записей
- •52. Модификации оператора цикла do
- •6 Continue
- •If (y.Lt.0.05) cycle
- •55. Командные файлы
- •If errorlevel 1 go to exit
- •If errorlevel 1 go to done
45. Работа с комплексными данными
В ФОРТРАНЕ имеется специально выделенный тип переменных, который называется комплексными переменными.
Все данные комплексного типа должны быть описаны в программе специальным оператором описания COMPLEX.
Пример описания:
COMPLEX A,B,DOK(10),C(4,5)
Правило:
В операторе COMPLEX должны быть описаны все переменные, которым может быть присвоено выражение комплексного типа (в том числе и промежуточные данные).
Константы комплексного типа представляют собой два вещественных числа, заключённых в скобки и разделённых запятой.
Примеры:
(-1.67,1.Е–2)= –1.67+j0.01
(0.,–2.)=0–j2= –j2
Оба числа должны быть вещественного типа. Если вещественная или мнимая часть равна нулю, то ноль в константе комплексного типа всё равно должен быть записан.
Переменным комплексного типа значения могут быть заданы следующим образом:
1) с помощью операторов присваивания
А=(–3.5,–6.8)
В=(1.12,2.2Е+3)
C1=6.85
C2=X*C
D=(C1,C2*SQRT(3.))
действ. часть мнимая часть
Переменные А,B,Dобязательно должны быть описаны при помощи оператораCOMPLEX.
2) с помощью оператора DATA
DATAA,B/(–3.5, –6.8), (1.12,2.2Е+3)/
3)с помощью операторов ввода.
46. Ввод-вывод переменных комплексного типа
Ввод-вывод информации делят на форматный и бесформатный.
При бесформатном вводе комплексных данных с помощью оператора READисходные данные вводятся в виде комплексных констант, то есть каждой переменной комплексного типа соответствует комплексная константа в виде двух чисел,заключённых в скобки.То есть предыдущие переменные А и В бесформатно вводятся следующим образом:
READ(5,*)A,B
С клавиатуры надо будет ввести: (–3.5, –6.8) затем запятую или пробел и далее (1.12,2.2Е+3).
Бесформатный вывод переменных комплексного типа осуществляется аналогично выводу переменных вещественного типа, где каждое число выводится автоматически в круглых скобкахв виде двух чисел, выведенных по спецификации Е15.7. Данные будут выводиться в одну строку по 5 вещественных чисел.
Форматный ввод-вывод информации осуществляется как ввод-вывод обычных данных вещественного типа с единственным отличием: каждая комплексная переменная представляется двумя вещественными числами (действительной и мнимой частью). Операторы READиWRITEзадают список очерёдности ввода-вывода, а операторFORMATзадаёт очерёдность спецификаций, которые будут соответствовать списку ввода-вывода.
Пример:
WRITE (6,8) A,B
FORMAT(1X,’Комплексные значения A,B’/1X,F6.3,2X,F8.2,
*3X,E10.3)
На экране монитора получим:
Комплексные значения А,В
–3.500 –6.80 0.112Е+01
F6.3 2X F8.2 3X E10.3
Комплексные значения А,В
******
1X,F6.3
Примечание:
При форматном вводе-выводе круглые скобки комплексных чисел не вводятся и не выводятся.
Осталось вывести мнимую часть числа В, Но список спецификаций оператора FORMATисчерпан и операторFORMATповторяет свою работу, начиная с первой открывающейся скобки (стандартная работа оператораFORMATпри любых спецификациях).Поэтому на экране снова появиться строка комплексных значений будет выполнен переход на следующую строку и сделана попытка мнимую часть по спецификацииF6.3.Но это число не может быть выведено по этому формату и поэтому выведет символы “******”