- •Лекция 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. Встроенные функции и процедуры
1 Continue
! вычисление суммы элементов массива, значения которых больше 5
do i=1,10 ! инициализация цикла
if (a(i).eq.0) exit ! прерывание цикла при обнаружении 0
if (a(i)>5) then
summa=summa + a(i) ! суммирование чисел больших 5
end if
end do
! вывод результатов
print *, 'sum (ar(i,i), i=1,5,1):', sumar
if (x0==0.) then
print *, 'not square(x), x0=0'
else
print *, 'square(x):', x
end if
print *, 'sum (a(i)>5, 1=1,10,1):', summa
end program yok3
3.6.4. Операторы CONTINUE, RETURN, CALL
Оператор CONTINUE: CONTINUE
Оператор RETURN: RETURN <метка>
Оператор CALL: CALL имя(a1,a2,...,an)
3.6.5. Операторы pause, stop, end
Оператор PAUSE: PAUSE <сообщение>
Если сообщение отсутствует, то на экран выдается строка:
Please enter a blank line (to continue) or system command .
Оператор STOP: STOP <сообщение>
Если сообщение не является числом, выводится предложение: Return code число .
Если сообщения нет, то выводится строка: STOP - Program terminated .
Оператор END: END <имя программной единицы> .
3.7. Форматный ввод-вывод
3.7.1. Вводный комментарий
3.7.2. Оператор format
Оператор FORMAT: метка FORMAT (ДП)
3.7.3. Дескрипторы данных
Таблица 3.6. Дескрипторы преобразования данных
Дескриптор |
Тип аргумента |
Внешнее представление |
Iw[.m] |
Целый |
Целое число |
Bw[.m] |
Целый |
Двоичное представление |
Ow[.m] |
Целый |
Восьмеричное представление |
Zw[.m] |
Любой |
Шестнадцатеричное представление |
Fw.d |
Вещественный |
Вещественное число в F-форме |
Ew.d[Ee] |
Вещественный |
Вещественное число в E-форме |
Enw.d[Ee] |
Вещественный |
Вещественное число в E-форме |
Dw.d |
Вещественный |
Вещественное число двойной точности |
Lw |
Логический |
T и F, .TRUE. и .FALSE. |
A[w] |
Символьный |
Строка символов |
Gw.d[Ee] |
Любой |
Зависит от типа данных |
Примеры использования дескрипторов.
Спецификатор Число Отведенное поле
I4 20 20
F10.2 0,3 .30
F10.4 -3445 -3445.00
E10.4 346 0.3460E+03
E10.5E1 -346 -.34600E+3
G5.3 2.3 2.3
G5.3 2300 0.230E+04
L1 истина T
при вводе L2 ложь FА
при выводе L2 ложь F
A2 JB JB
A3 KAJA KAJ