- •Часть 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
47. Встроенные функции комплексного типа
Встроенные функции комплексного типа в языке ФОРТРАН представлены следующими функциями:
CSIN – комплексныйsin
CABS – комплексный модуль
и.т.д
Отличие этих функций от остальных встроенных: аргументом этих функций должна быть величина комплексного типа.
Пример:
COMPLEX A,B,C,D
A=(–1.5, –3.7)
B=A+(4.5,6.3)
C=CSIN(A*B+SQRT(3.))
CMPLX – формирует из двух вещественных чисел комплексное число
COMPLEX A,B,C,D,E
F=6.3
B=CMPLX(F,–SIN(2.3)*3)
мнимая часть
REAL(B) – функция выделения действительной части комплексного числа
F1=REAL(B)+1.F1=7.3
AIMAG – функция выделяет мнимую часть комплексного числа
F2=AIMAG(B)+2. F2=–SIN(2.3)*3+2.
Задача:
Рассчитать токи в электрической цепи:
Преобразуем схему так, чтобы осталось только одно полное эквивалентное
сопротивление цепи Zэкв.
1) 2) 3)
Основные формулы для расчёта этой схемы:
COMPLEX Z2, Z3,Z4, ZS, TOK1, TOK2, TOK3
DIMENSION TOKM(1000)
WRITE (6,*)’Введите ИД’
READ (5,*)R1,R2,R3,C,AL,TN,TK,DT,F,UM,
W=2.*3.14*F
XL=W*AL
XC= –1./(W*C)
Z2=CMPLX(R2,XC)
Z3=CMPLX(R3,XL)
Z4=Z3*Z2/(Z2+Z3)
ZS=R1+Z4
I=1
DO 8 T=TN,TK,DT
U=UM*SIN(W*T)
Получим комплексные значения токов:
TOK1=U/ZS
TOK2=TOK1*Z3/(Z2+Z3)
TOK3=TOK1-TOK2
Модуль тока I1
TOKM(I)=SQRT(REAL(TOK1)**2+AIMAG(TOK1)**2)
WRITE (6,*)’При T=’,T,’ ток=’,TOK3
На экран будут выводиться значения: “При Т= ток=( , )
TOKM – массив данных для построения графика, содержит значения модуля тока I1 .
8 I=I+1
CALL GRAF(TOKM,I–1)
PAUSE
STOP
END
48. Оператор equivalence
Записывается в виде:
EQUIVALENCE (A,B)
Этот оператор устанавливает, что один и тот же объект в оперативной памяти ЭВМ может фигурировать под разными именами, то есть осуществляется эквивалентирование памяти.
Примеры:
DIMENSION A(6,5),B(5),E(30)
EQUIVALENCE (A(1,1),B(1))
C=B(2) Или можно было записать: C=A(2,1)
EQUIVALENCE (A(1,1),E(1))
Одномерный массив Е содержит те же данные, что и двухмерный массив А, расположенный по столбцам.
Пример эквивалентирования текстовых переменных:
CHARACTER*20 A,B*5
EQUIVALENCE (A(1:1),B(1:1))
В результате эквивалентирования первые пять символов из переменной А будут соответствовать переменной В.
EQUIVALENCE (A(11:15),B(1:5))
Пять символов с 11 позиции по 15 позицию переменной А будут соответствовать переменной В. Или можно эту строку записать следующим образом: EQUIVALENCE (A(11:11),B(1:1)).
Правило:
Элементы списка, находящиеся в операторе EQUIVALENCE не могут быть в списке формальных параметров и списке оператора COMMON.
Пример эквивалентирования комплексных переменных:
COMPLEX D(5)
DIMENSION E(8)
EQUIVALENCE (D(2),E(1))
Представим графически это эквивалентирование:
Массив D:
d1 |
d2 |
d3 |
d4 |
d5 | |||||
д.ч. |
м.ч. |
д.ч. |
м.ч. |
д.ч. |
м.ч. |
д.ч. |
м.ч. |
д.ч. |
м.ч. |
Массив Е:
-
e1
e2
e3
e4
e5
e6
e7
e8
где д.ч. – действительная часть комплексного числа;
м.ч. – мнимая часть комплексного числа.
Из рисунка видно, что элемент e1соответствует действительной части элементаd2, а элементe2соответствует мнимой часть элементаd2и т.д.