при вещественном показателе степени real x операция a**x выполняется как - откуда следует ограничение на основание a>0

при целом показателе степени integer n операцияa**n выполняется как n-кратное умнжение a*a*a* ..*a

1.3.2 Логические выражения

Результатом операций отношения может быть только два значения True – истина и False – ложь. В логическом выражении можно использовать отношения и логические операции. Отношения в логических выражениях используют для сравнения либо двух числовых, либо двух символьных выражений. Результат вычисления отношения имеет логический тип - это либо .true. - "истина" либо .false.- "ложь". В Фортране допускаются следующие отношения (см. табл. 1.4):

 

Таблица 1.4 Операции отношения языка Фортран

Отношения Фортран 90 Пример
Меньше чем .LT. < a.LT.b
Меньше или равно .LE. <= a.LE.b
Равно .EQ. == k.EQ.m
Не равно .NE. /= k.NE.m
Больше или равно .GE. >= a.GE.b
Больше чем .GT. > a.GT.b

Знаки отношений записываются между числовыми либо символьными операндами. Отношения вычисляются после вычисления их операндов.

В Фортране допускаются следующие логические операции (см. табл. 1.5):

Таблица 1.5 Логические операции языка Фортран

Операция Обозначение Старшинство Пример
Отрицание .NOT. .NOT.a
Конъюнкция .AND. a.AND.b
Дизъюнкция .OR. a.OR.b
Эквивалентность .EQV. a.EQV.b
Неэквивалентность .NEQV. a.NEQV.b

Операция .NOT. является унарной и пишется перед операндом, остальные знаки логических операций всегда записываются между операндами. Две логические операции могут следовать в выражении непосредственно друг за другом, если второй операцией является операция отрицания. Например, a .and. .not. b.

Таблица 1.6.Таблица истинности логических операций

x y x.and.y x.or.y .not.x x.xor.y x.eqv.y x.neqv.y
И И Л Л И Л И Л И Л Л Л И И И Л Л Л И И Л И И Л И Л Л И Л И И Л

Приоритет операций в логическом выражении:

1 – вычисления значений функций;

2 – арифметические операции;

3 – операции отношения;

4 – логические операции.

 

Примеры:.

На математическом языке a<x<b => x>a Ùx<b.

На Фортране x>a.and.x<b.

Так если a=2, b=4, то выражение истинно при x=3 и ложно при x=1 или x=5.

На математическом языке -¥<x<+¥ =>x>a Úx<b.

На Фортране x>a.or.x<b.

Так если a=2, b=4, то выражение истинно при любом x.

На математическом языке X<a или x>b =>x>a Úx<b.

На Фортране x<a.or.x>b.

Так если a=2, b=4, то выражение ложно при x=3 и истинно при x=1 или x=5.

 

1.4 Структура программы языка Фортран. Основные операторы программы с линейной структурой

Программа на Фортране состоит из главной программы и, возможно, некоторого числа подпрограмм. Первым оператором главной программы является её заголовок PROGRAM. За ним следует имя программы:

PROGRAM ИМЯ_ПРОГРАММЫ

Имя программы обязательно начинается с буквы, затем могут идти буквы, цифры и символы подчеркивания, например:

PROGRAM SUMMATION

PROGRAM QUADRATIC_EQUATION_SOLVER45

Максимальная длина любого имени в программах на Фортране - 31 символ. Заключительный оператор главной программы может иметь также следующий вид:

END PROGRAM ИМЯ_ПРОГРАММЫ

ИМЯ_ПРОГРАММЫ является необязательной частью оператора.

После заголовка следуют описания переменных, констант, меток, подпрограмм и других объектов, используемых в программе. Эта ее часть называется разделом описаний (или неисполняемых операторов). После раздела описаний следует раздел исполняемых операторов. Процесс создания проекта приведен в приложении Б.

При обработке информации программой выполняется три основных блока:

1. ввод исходных данных;

2. обработка данных согласно алгоритму;

3. вывод результата из программы.

Пример:

Program itit

Integer :: a=10, b=20

End program init

Оператор Program задает имя программы. Оператор End обозначает окочание программы.

Вторая строка в программе означает, что переменные целого типа a и b содержат значения 10 и 20.

Пример. Программа сложения двух целых чисел:

Program sum

Integer a,b,c

A=100

B=20

C=a+b

End program sum

В программе описаны три переменные целого типа. Чтобы поместить в переменные определенные значения, используется оператор присваивания, который записывается как знак =. Его следует отличать от математического знака равно, который в Фортране используется как логический оператор для сравнения двух величин и обозначается = =. В данном случае a=100 означает, что переменной а присвоили значение 100. Таким образом, в переменных a и b будут храниться числа 100 и 20. Далее переменной присваивается сумма значений переменных a и b, то есть в с будет значение 120.

Для ввода данных в программу извне, а так же для вывода результатов за пределы программы из ячеек памяти используются операторы ввода/вывода.

Оператор вводаread (читать).

Integer a

Read (*,*), a

При выполнении этого фрагмента программы на черном экране будет мигать курсор, в ожидании ввода с клавиатуры целого числа. После ввода число будет записано в переменную a. При попытке ввода значения другого типа компилятор сообщит об ошибке.

Операторы вывода Print (печатать) и Write(писать) служат для вывода на экран информации.

В приведенном ниже примере оба оператора выводят на экран приветствие Hello!. Заключение приветствия в одинарные кавычки показывает что выводит значение символьного типа. Внутри кавычек могут быть любые символы, которые в точности будут выведены на экран.

Print*, ‘Hello!’

Write(*,*),‘Hello!’

Можно улучшить вывод, если воспользоваться средствами форматирования. Для этого вместо звездочки в операторе Print и вместо второй звездочке в операторе Write указывается спецификация формата вывода. Спецификация формата – это набор дескрипторов преобразования, заключенных в ‘()’.

Основные дескрипторы:

А – вывод символов;

$ - запрет перехода на следующую строку;

/ - переход на следующую строку;

// - пропуск строки;

Nx – вывод n пробелов.

In – выделение n позиций для вывода целого числа

Fk.n – выделение k позиций для вывода вещественного числа, из которых n отводится на количество знаков после запятой

Ek.n – выделение k позиции под вывод числа в экспоненциальной форме. Из них 4 выделяется по показатель десятичной экспоненты, степень и знак степени (например e+04), 1 под точку, 1 под знак и n под дробную часть.

An - выделение n позиций для вывода строки символов

Ka – вывод k строк.

L – вывод логического значении T (true - истина) F (false - ложь).

Если при выводе числовой информации отвести меньшее количество символов, то будут выведены звездочки. Символьная информация в этом случае будет обрезана до указанного размера. В случае выделения большего места чем необходимо, то оставшееся место будет заполнено пробелами.

Например:

 

Write(*,’(a3)’), ‘Hello!’

На экране:

Hel

 

Write(*,’(a10)’), ‘Hello!’

На экране (^ - обозначен пробел):

^^^^ Hello!

 

Write(*,’(L)’), 5>3

На экране

T

Если спецификация формата часто повторяется, то ее рекомендуется записывать отдельно при помощи оператора format (формат). Ссылка на формат осуществляется при помощи числовой метки, например:

Write(*,100), ‘Hello!’

100 format(a10)