
- •Лекция 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. Буквальные (неименованные) константы
Спецификация целой константы:
<знак> <<основание> #> константа <kind>
Форматы записи вещественной константы:
<+> <целая часть> . <дробная часть> <_разновидность типа>
<+|- > < мантисса> E|e <+|-> порядок <_разновидность типа>
<+|-> <мантисса> D|d <+|-> порядок
Комплексная константа
Холлеритовская константа:
nH|hпоследовательность символов
Логическая константа : .FALSE. или .TRUE..
3.4.4. Задание именованных констант
Именованная константа – это именованный объект данных с атрибутом PARAMETER. Задание атрибута:
PARAMETER <(>имя = const <, имя = const ... > <)>
или
тип, PARAMETER <, атрибут> :: имя = const <, имя = const >...
Пример задания именованных констант.
program t3 ! t3 – имя программы
integer n ! описание перемененной целого типа
integer(2), parameter :: h=3 ! описание двухбайтовой целой константы
! с использованием атрибута parameter
real (kind=4) a, c ! описание четырехбайтовых перемененных
! вещественного типа
real, parameter:: b=3.5 ! описание и инициализация константы
! перемененной b
character(10), parameter :: it=’Input a’ ! описание и присвоение
! значения символьной константе
print *, it ! вывод на экран сообщения: ’Input а
read *, a ! ввод значения в переменную а (допустим 2)
print *, ‘’Input n’ ! вывод на экран символьной константы: ’Input n
read *, n ! ввод значения в переменную n (допустим 2)
c=a**h+b**n ! вычисления значения переменной с
print *, ‘b=’, b ! вывод на экран значения переменной: b= 3.5
print *, ‘c=’, c ! вывод на экран результата: с= 20,25
end program t3 ! end – обязательный оператор завершения программы
3.4.5. Задание начальных значений переменных
Синтаксис оператора:
DATA список имен /список значений/ <, список имен /список значений/ >
Пример использования оператора DATA.
program t4 ! t4 – имя программы
integer n ! описание перемененной целого типа
integer(2) h ! описание двухбайтовой целой переменной
real (kind=4) a, c ! описание четырехбайтовых перемененных
! вещественного типа
real, parameter :: b=3.5 ! описание и инициализация
! вещественной перемененной b
character it*9, st*3 ! описание символьных переменных
data it /‘Input a’/ ! присвоение начальных
data h /3/ ! значений переменным it, h и st
data st /’---‘/ !
print *, it ! вывод на экран сообщения: Input а
read *, a ! ввод значения в переменную а (допустим 2)
print *, ‘Input n’ ! вывод на экран символьной константы: Input n
read *, n ! ввод значения в переменную n (допустим 2)
c=a**h+b**n ! вычисления значения переменной с
print *, st, st, st, st, st ! вывод на экран строки: ---------------
print *, ‘h=’, h ! вывод на экран значения переменной: h= 3
print *, ‘c=’, c ! вывод на экран результата: с= 20.25
end program t4 ! end – обязательный оператор завершения программы
3.4.6. Символьные данные
Оператор описания данных символьного типа:
CНARACTER <(длина )> <<атрибуты> ::> имя
Выделение подстроки:
переменная (<ferst>:<last>)
Пример. Задан массив символьных переменных KOD(2,3), элементы которого состоят из пяти символов. Пусть элементу KOD(2,2) присвоено значение 'KILAS', тогда подпоследовательности KOD(2,2)(2:3), KOD(2,2)(4:) и KOD(2,2)(:1) имеют соответственно значения: 'IL', 'AS' и 'K'.
Символьные выражения
Символьная операция – конкатенация (соединения символьных последовательностей), обозначается двумя косыми (//).
Пример использования символьных данных.
program t5 ! t5 – имя программы
character (*) it ! описание символьной константы
character st, st1*11, st2*8 str*5 ! описание символьных переменных
character*8 :: ast=’VORADOV ’ ! описание и инициализация
data st /’.’/ ! символьных переменных
parameter (it=‘program t5’) ! инициализация символьной константы
print *, it ! вывод на экран сообщения: program t5
print *, ‘Input str’ ! вывод на экран сообщения: Input str
read *, str ! ввод значения в переменную str (допустим CEMEN)
st1=ast(3:)//str ! выделение подстрок и
st2=ast(:2)//ast(5:)//str(3:3)//st ! вычисление символьных выражений
print *, st1 ! вывод на экран строки: RADOV CEMEN
print *, st2 ! вывод на экран строки: VODOV М.
end program t5 ! end – обязательный оператор завершения программы