- •1. Константы
- •2. Типы констант
- •3. Переменные
- •4. Типы переменных
- •5. Операторы описания
- •6. Арифметические операции
- •7. Расположение текста программы на экране дисплея
- •4 Write (*,*) ’ Введите значения сторон треугольника a, b, c ’
- •9. Арифметический оператор if
- •8. Технология прохождения фортран – программ на эвм
- •Оператор, следующий после if арифметического должен иметь метку;
- •If арифметический не может быть последним оператором в цикле do.
- •4 Write (*,*) ’ Введите значения сторон треугольника a, b, c ’
- •8 Write (*,*) ’ Площадь треугольника равна нулю ’
- •9 Write (*,*) ’ Такой треугольник не существует ’
- •10. If логический
- •11. Табулирование функции
- •12. Оператор цикла do
- •3 Write(6,*)’Введите переменные a,b,c’
- •13. Массивы
- •Работа с массивами
- •14. Ввод массивов
- •15. Вывод массивов
- •16. Конструкция if then–else – end if
- •17. Оператор data
- •По очерёдности следования;
- •По типу данных;
- •Количество переменных не должно превышать количество констант
- •19. Ввод двумерного массива
- •20. Оператор format
- •20.1. Спецификация X
- •20.2. Спецификация I
- •20.3 Разделители
- •20.4. Формат f
- •20.5 Использование повторителей в операторе format
- •20.6 Вывод по спецификации Fw.D
- •20.8. Вывод информации по спецификации Еw.D
- •20.8 Ввод и вывод информации по спецификации Gw.D
- •Подпрограммы
- •21. Оператор-функция
- •22. Подпрограмма-функция (function)
- •23. Подпрограмма subroutine.
- •24. Способы передачи данных в подпрограмму.
- •If (логическое выражение 1) return 1
- •If (логическое выражение 2) return 2
- •25. Передача данных посредством оператора common
20.8 Ввод и вывод информации по спецификации Gw.D
Спецификация G является универсальной для ввода и вывода переменных:
целого типа
вещественного типа.
Для переменных целого типа формат Gw.d соответствует и работает как формат Iw.
Для переменных вещественного типа при вводе информации, она может быть представлена, как по формату Fw.d, так и по формату Еw.d. То есть, если информацию вводить без десятичной или с десятичной точкой, то спецификация G будет полностью работать как формат F. Если информацию вводить с плавающей запятой, то спецификация G будет работать, как формат Е. Если вводить информацию для переменной целого типа (I, J, K, L, M, N), то спецификация G будет работать как формат I.
Вывод переменных целого типа осуществляется как и по спецификации Iw.
Пример:
WRITE (5,10) M
10 FORMAT ( 1X, G8.2 )
Е
сли
М=1235, то выведет: 1235, то есть сработает
по формату I8.
При выводе данных вещественного типа по спецификации Gw.d если число может быть выведено по такому - же формату Fw.d то происходит вывод данных как по формату Fw.d, но если число не может быть выведено по этому формату, то оно будет сделана попытка вывести его как по формату Ew.d. Но при этом действует правило, как и при выводе по спецификации Е, w-d 7.
Пример:
WRITE(6,10) A
10 FORMAT(1X,G8.2)
Ч
исло
16.879 по этому формату выведет: 16.88
ч исло –389.456 выведет: – 3 8 9.46
число –33924.1621
нельзя вывести по формату F8.2,
поэтому будет сделана попытка вывести
число по формату Е8.2. Но это число нельзя
вывести и по формату E8.2,
так как w-d=6
и на экран выведутся символы “
”.
Однако на некоторых ЭВМ стоит гашение
незначащего нуля и на этих ЭВМ число
–33924.1621 по формату G8.2
всё-таки выведется -.34Е+05.
При вводе – выводе информация форматная строка может присутствовать в операторах READ и WRITE вместо метки оператора FORMAT. Она записывается в виде текстовой констант.
Предыдущий пример может быть переписан проще и короче без оператора FORMAT :
WRITE (6,’(1X,G8.2)’)A
Запись операторов ввода – вывода с оператором FORMAT длиннее, но позволяет несколько раз использовать один и тот же оператор FORMAT, обращаясь к нему из разных мест программы.
Задача. Распечатать в таблицу значения массивов А и В, размерностью 10, и массив С, каждый элемент которого является результатом сложения элементов массивов А и В.
======================================
| N | Массив А | Массив В | Массив С |
DIMENSION A(10),B(10),C(10)
READ(5,*) A
DO 1 I=1,10
WRITE (6,2) I
2 FORMAT ( 1X , ' Введите элемент по формату F5.3 B( ' , I2 , ' )= ' \ )
Символ \ (обратный слэш) отменяет переход на новую строку по окончании работы оператора FORMAT
1 READ(5,3) B(I)
3 FORMAT(F5.3)
DO 4 I=1,10
4 C(I)=A(I)+B(I)
C Вывод шапки таблицы
WRITE(6,7)
7 FORMAT(1X,34('=')/1X,'| N | МАССИВ А | МАССИВ В | МАССИВ С |')
DO 8 I=1,10
8 WRITE(6,10) I,A(I),B(I),C(I)
10 FORMAT (1X, 38 ('-') / 1X , ' | ', I2 ,' | ', 3 ( F9.3 ,' | ') )
Выводится линия из символов -, затем осуществляется переход на другую строку, печатается номер цикла и по одному значению элементов трех массивов А,В,С.
WRITE (6,11)
11 FORMAT (1X , 34 (' = ') )
Конец таблицы подчеркнули двойной чертой
END
