- •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
4. Типы переменных
По неявному соглашению все переменные считаются вещественного типа за исключением тех, имя которых начинается на одну из букв:
I, J, K, L, M, N.
Если имя переменной начинается на одну из этих букв, то эта переменная считается целого типа и может содержать только целое число.
Во всех других случаях типы переменных задаются с помощью операторов описания.
5. Операторы описания
К операторам описания относят операторы:
REAL – описывает переменные и массивы вещественного типа.
Если имеется переменная или массив целого типа (когда имя начинается на любую букву из I, J, K, L, M, N), то с помощью оператора REAL можно преобразовать её в переменную вещественного типа.
Пример:
REAL K, LAM(5)
K = 2.5
INTEGER – описывает переменные и массивы целого типа.
Используется для преобразования переменной или массива вещественного типа в переменную или массив целого типа.
Пример:
INTEGER X, TOK, B(10)
TOK = 4
B(1) = 132
COMPLEX – описывает переменные и массивы комплексного типа. Все переменные и массивы комплексного типа обязательно должны быть описаны в программе оператором COMPLEX.
После описания с помощью оператора COMPLEX переменная любого типа становиться переменной комплексного типа.
Пример: COMPLEX Q1, QX2, M12
CHARACTER – описывает переменные и массивы текстового типа (строковые). Все данные строкового типа должны быть описаны. Если длина строковой переменной не превышает 4-х байт, то ее можно не описывать.
Используется при непосредственной работе с текстом для описания переменных как текстовых.
Пример: CHARACTER*10 C, C1, D12*15
Данная строчка означает, что в программе переменные C, C1, D12 будут текстового типа (строковые), причём переменные С, С1 могут содержать до 10 символов. *10 – обозначает групповой описатель длины переменных. Переменная D12 может содержать до15 символов текста. *15 – индивидуальный описатель длины переменной D12.
LOGICAL – описывает переменные логического типа.
Пример: LOGICAL T1, T2
DOUBLE PRECISION или REAL*8 – описывает переменные удвоенной точности.
6. Арифметические операции
Операции по приоритету:
вычисление значений функций;
** - возведение в степень;
*, / - умножение и деление;
+, – - сложение и вычитание;
( ) – очерёдность выполнения арифметических операций может задаваться с помощью скобок;
= - присвоить значение.
Встроенные (стандартные) функции языка FORTRAN
sin x |
SIN(x) |
ex |
EXP(X) |
cos x |
COS(x) |
ln x |
ALOG(X) |
tg x |
TAN(x) |
lg x |
ALOG10(X) |
arctg x |
ATAN(x) |
|x| |
ABS(X) |
|
SQRT(2.*x) |
max(a,b) |
AMAX1(A,B) |
|
X**(1./3.) |
min(a,b,c) |
AMIN1(A,B,C) |
Предупреждение: функции sin, cos, а также отрицательное число нельзя возводить в вещественную степень.
Для тригонометрических функций угол указывается в радианах.
Оператор присваивания.
Синтаксис: <переменная> = <выражение>
Символ “ = ” обозначает операцию присвоить значение. При схожести с арифметической операцией “равно” ( Y=48 ), имеет существенное отличие в таких выражениях как:
I = I+1 или X=X+DX
Последняя запись обозначает следующее. Взять число из ячейки X добавить к нему число, хранящееся в ячейке DX и результат записать в ячейку X.
Не могут находиться рядом два знака арифметических операций. Их необходимо отделять скобками: T * ( -2.* X )
Арифметические операции в выражении выполняются слева направо с учетом приоритета. При нескольких операциях возведении в степень они выполняются справа налево. Например: А=В**С**2 будет выполняться как А=В**(С**2).
При записи арифметических операций количество открытых скобок должно быть равно количеству закрытых скобок.
Отрицательное
число не может быть возведено в
вещественную степень. Поэтому выражение
для записи функции sin2x
в программе должна быть: SIN(X)**2.
Положительное число может быть возведено
в вещественную степень. В этом случае
используется программа с логарифмическими
функциями. Процесс возведения в целую
степень заменяется перемножением,
эта функция должна быть записана так:
X**2.5
+ Y**(1./3.)
– 2.*SIN(X)**2
+ EXP(2.*X).
В приведенном выражении желательно
использование данных одного типа.
При арифметических операциях с переменными или константами целого типа, промежуточный результат является так же целым числом, т.е. сохраняется только целая часть промежуточного результата, а дробная часть отбрасывается.
Примеры:
A = 1/3 ! = 0
A = 1./3. ! = 0.33(3)
I = 199/100 ! = 1
J = 1./3 = 0.33(3) при вычислении, а при пересылке результата вычисления в ячейку памяти ЭВМ дробная часть результата отбрасывается и J будет равно 0.
X**(1/3) результат такой записи при любом Х будет равен 1. Поскольку деление целых 1 на 3 дает целый ноль, то любое число Х, возведенное в нулевую степень, будет равно 1. Правильная запись: Х**(1./3.).
Ошибки в записи порядка операций с данными целого типа являются одними из самых распространенных.
