Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
63
Добавлен:
02.05.2014
Размер:
553.98 Кб
Скачать

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

  1. 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.Но это число не может быть выведено по этому формату и поэтому выведет символы “******”

Соседние файлы в папке Программирование на Фортране