Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
вопросы 8-14.docx
Скачиваний:
1
Добавлен:
27.09.2019
Размер:
196.15 Кб
Скачать

Строковое выражение

Операнды строкового выражения должны быть строкового типа. В строковом выражении допускается только одна операция – сцепление строк или конкатенация. Сцепление обозначается «//», например s=s1//s2, символы в строке s нумеруются слева направо как 1,2,…len(s), len(s1//s2)=len(s1)+len(s2). Подстрока - несколько символов строки подряд.

Пример: результат вычисления ba =ab(14:26)//ab(1:13) – строка, в которой меняются местами первая и вторая половины алфавита:

Character*26 :: ba, ab=’abcdefghijklmnopqrstuvwxyz’

Обратите внимание на то, что оператор s1=s1//s2 с повторением s1 слева и справа от “=” не имеет смысла. В Фортране строки постоянной длины, а именно той, что заявлена в описании строки. В то же время оператор s1=trim(s1)//s2 вполне осмыслен, если в s1 хвостовых пробелов, не менее чем символов в s2. Функция trim(s1) обрезает хвостовые пробелы.

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

Логическое выражение имеет значение «истина» или «ложь», состоя из:

  • логических констант и переменных;

  • пяти логических операций с операндами логического типа;

  • шести отношений, которые сравнивают либо два числовых выражения, либо два символьных выражения.

Результат вычисления отношения – это либо .true. – «истина» либо .false.– «ложь». В Фортране шесть операций отношения

Отношения

Фортран 90 сейчас пишут так

В стиле Фортран 77, устаревающее

меньше чем A<b

a<b

a .lt. b

меньше или равно Ab

a<=b

a .le. b

равно A=b

k==m

a .eq. b

не равно Ab

k/=m

a .ne. b

больше или равно Ab

a>=b

a .ge. b

больше чем a>b

a>b

a .gt. b

Отношения вычисляются после вычисления их операндов. Например, при A=2, B=0 для отношения A+3 >B порядок действий такой: сначала вычисляется А+3 и получается 5; затем 5 сравнивается с В, которое равно 0; результат вычисления выражения 5>0 – «истина».

Логические операции выполняются после вычисления отношений. В Фортране пять логических операций

Операция

Обозначение

Старшинство

Пример

Отрицание НЕ

.not.

1

.not.a

Конъюнкция И

.and.

2

a.and.b

Дизъюнкция ИЛИ

.or.

3

a.or.b

Эквивалентность

.eqv.

4

a.eqv.b

Неэквивалентность

.neqv.

4

a.neqv.b

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

Введем обозначения: T – «истина» и F – «ложь». Строки и столбцы таблиц истинности помечены значениям операндов, а на пересечении строки и столбца записан результат двухместной операции

.AND.

F

T

.OR.

F

T

F

F

F

F

F

T

T

F

T

T

T

T

.EQV.

F

T

.NEQV.

F

T

F

T

F

F

F

T

T

F

T

T

T

F

Операция .not. – одноместная и дает результат «истина», если значение операнда «ложь», и результат «ложь», если значение операнда «истина»

.NOT.

F

T

T

F

Пример логического выражения: a>3 .and. a<5. Выражение истинно, когда оба отношения истинны, то есть а(3,5).

Сложные выражения вычисляются в следующем порядке:

  • числовые операции или строковые операции;

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

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