- •Лекция 3
- •3. Алгоритмический язык фортран /3,5,11/
- •3.1. Историческая справка
- •1978 Г., Фортран 77.
- •3.2. Элементы языка Фортран
- •3.2.1. Алфавит, форматы записи программы
- •3.2.2. Имена, объекты данных, атрибуты
- •3.2.4. Программные единицы
- •3.3. Порядок следования операторов и метакоманд в программной единице
- •3.4. Организация данных
- •3.4.1. Типы данных
- •3.4.2. Описание несимвольных типов данных
- •3.4.3. Буквальные (неименованные) константы
- •3.4.4. Задание именованных констант
- •3.4.5. Задание начальных значений переменных
- •3.4.6. Символьные данные
- •3.5. Выражения, операции и присваивания
- •3.5.1. Арифметическое выражение
- •Integer(2)
- •Integer(4)
- •3.5.2. Выражения отношения и логические выражения
- •3.5.3. Правила вычисления выражений
- •3.5.4. Константные и описательные выражения
- •3.6. Управляющие операторы и конструкции
- •3.6.2. Конструкция select case
- •1 Continue
- •3.6.5. Операторы pause, stop, end
- •3.7. Форматный ввод-вывод
- •3.7.1. Вводный комментарий
- •3.7.2. Оператор format
- •3.7.3. Дескрипторы данных
- •3.7.4. Дескрипторы управления
- •3.7.5. Задание формата в операторах ввода-вывода
- •20 Format (f5.0, 2p, 2f5.0, 3p, f5.0)
- •21 Format (1x, 2p, e10.3, 3x, 3p, f10.3)
- •3.7.6. Списки ввода-вывода
- •3.7.7. Управляемый списком ввод-вывод
- •Namelist / имя списка b/b / список переменных &
- •24.000000 Qwertyuiop sub
- •3.8. Массивы
- •3.8.1. Описание размерности статических массивов
- •3.8.2. Сечение массива
- •3.8.3. Присваивание значений элементам массива
- •Where (логическое выражение - массив) присваивание массива
- •3.8.4. Динамические массивы
- •Integer n, m, kp
- •Integer I
- •Interface
- •3.8.5. Массивы – формальные параметры процедур
- •Integer n, m, j
- •Integer n, I, j
- •Interface
- •3.9. Файлы Фортрана
- •3.9.1. Основные понятия
- •3.9.2. Операции над внешними файлами
- •3.9.3.Операторы передачи данных
- •Endfile u
- •3.9.4. Порядок выполнения передачи данных
- •3.9.5. Операторы подсоединения устройств к файлам
- •24.000000 Qwertyuiop sub
- •3.9.6. Операторы позиционирования файла
- •3.10. Встроенные функции и процедуры
3.4. Организация данных
3.4.1. Типы данных
Таблица 3.3.
Разновидности встроенных типов данных
Типы |
Разновидность |
Число байт |
Примечание |
Целый тип |
|||
BYTE |
1 |
1 |
То же, что и INTEGER(1) |
INTEGER(1) |
1 |
1 |
|
INTEGER(2) |
2 |
2 |
|
INTEGER(4) |
4 |
4 |
|
INTEGER |
4 |
4 |
То же, что и INTEGER(4) |
Вещественный тип |
|||
REAL(4) |
4 |
4 |
|
REAL |
4 |
4 |
То же, что и REAL(4) |
REAL(8) |
8 |
8 |
|
DOUBLE PRECISION |
8 |
8 |
То же, что и REAL(8) |
Комплексный тип |
|||
COMPLEX(4) |
4 |
8 |
4 байта под действительную часть и столько же под мнимую часть |
COMPLEX |
4 |
8 |
То же, что и COMPLEX(4) |
COMPLEX(8) |
8 |
16 |
8 байта под действительную часть и столько же под мнимую часть |
DOUBLE COMPLEX |
8 |
16 |
То же, что и COMPLEX(8) |
Логический тип |
|||
LOGICAL(1) |
1 |
1 |
Байт, содержащий либо 0 – .FALSE., либо 1 – .TRUE. |
LOGICAL(2) |
2 |
2 |
Первый (старший) байт содержит значение LOGICAL(1), второй – null |
LOGICAL(4) |
4 |
4 |
Первый байт содержит значение LOGICAL(1), остальные – null |
LOGICAL |
4 |
4 |
То же, что и LOGICAL(4) |
Символьный тип |
|||
CHARACTER или CHARACTER(1) |
1 |
1 |
Единичный символ |
CHARACTER(n) |
1 |
n |
n – длина строки в байтах |
3.4.2. Описание несимвольных типов данных
I, J, K, L, M, N – определяют целый тип; все остальные буквы – вещественный.
Операторы описания данных несимвольного типа:
тип <<(<KIND => значение)><, атрибуты> ::> список имен
где тип – это один из: INTEGER, REAL, BYTE, DOUBLE PRECISION, COMPLEX, LOGICAL.
Пример программы, иллюстрирующей описание данных встроенных типов.
program t2 ! t2 – имя программы
integer n/2/ ! описание и инициализация четырехбайтовой перемененной целого типа
integer(2) h ! описание двухбайтовой перемененной целого типа
real (kind=4) a ! описание четырехбайтовой перемененной вещественного типа
real :: с, b=3. ! описание четырехбайтовых вещественных
! переменных и инициализация перемененной b
print *, ‘Input а’ ! вывод на экран сообщения: Input а
read *, a ! ввод значения в переменную а (допустим 2)
print *, ‘Input h’ ! вывод на экран сообщения: Input h
read *, h ! ввод значения в переменную h (допустим 3)
c=a**h+b**n ! вычисления значения переменной с
print *, ‘b=’, b ! вывод на экран значения переменной: b= 3
print *, ‘c=’, c ! вывод на экран результата: с= 17
end program t2 ! end – обязательный оператор завершения программы