Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Глава 3_1.doc
Скачиваний:
60
Добавлен:
13.03.2016
Размер:
358.91 Кб
Скачать

Упражнения

1. Для следующих формул записать соответствующие арифметические выражения на Фортране:

а) a + bx + cyz;

б) [(ax – b)x + c]x – d;

в)

г)

д)

е)

2. Записать математические формулы, соответствующие следующим выражениям на Фортране:

а) (p + q) / (r + s) – p * q / (r * s);

б) 1E3+beta / (x – gamma * delta);

в) a / b * (c + d) – (ab) / b / c + 1E–8.

3. Почему на Фортране аргумент функции всегда записывают в скобках (например, пишут log(5), а не log5)?

4. Для следующих формул записать соответствующие арифметические выражения на Фортране:

a) (1 + x)2;

б)

в)

г)

д) arcsin x;

е)

ж)

з)

и)

к)

л)

5. Определить результаты вычисления выражений

1) 3/2/5 2) 3./2/5 3)3/2/5. 4) 3/2./5.

6. Определить тип выражения:

а)1+0.0;

б)20/4;

в) sqrt(4);

г)sqrt(16.);

д) sin(0);

е)nint(–3.14).

7. Записать арифметическое выражение, вычисляющее

а) сумму цифр целого двузначного числа X

b) сумму цифр целого четырехзначного числа Х

8.Записать последовательность операторов присваивания, осуществляющих

1) обмен значений в двух переменных

2) циклический обмен значений в трех переменных

3) обмен значений двух целых переменных без использования третьей переменной; обосновать ограниченность такого метода.

9. Написать программу на Фортране вычисления площади кольца по значениям внешнего и внутреннего радиусов.

3.7. Логические выражения. Программирование ветвлений

Результатом логического выражения является логическое значение: .TRUE. или .FALSE. Простейшей формой логического выражения является отношение.

Отношение производит сравнение значений двух арифметических или сим­вольных выражений. Отношения являются аналогами математических неравенств, например: x>0, y<10 и т.п.

Знаки операций отношения в Фортране могут быть записаны в двух формах: мнемонической и символьной.

меньше: .LT. или <

меньше или равно: .LE. или <=

больше: .GT. или >

больше или равно: .GE. или >=

равно: .EQ. или = =

не равно: .NE. или /=

Если в выражении отношения один операнд имеет вещественный, а другой целый тип, то перед выполнением операции целочисленный опе­ранд приводится к вещественному типу.

При сравнении комплексных величин можно применять только две операции отношения: .NE. (/=) и .EQ. (= =).

Пример 1:

real ::x=1.3, y= -4.6

logical flag

flag = x > y ! .TRUE.

flag = x > abs(y) ! .FALSE.

Приоритет операций отношения ниже, чем арифметических операций. Например, в выражении

X+Y>2*Y

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

Логическое выражение состоит из операндов логического типа, связанных логическими операциями и круглыми скобками. Результатом его вычисления является логическое значение .TRUE. или .FALSE. Операндами могут быть логические константы, переменные, функции, выражения отношения. Логические операции:

.NOT. логическое НЕ (отрицание);

.AND. логическое И;

.OR. логическое ИЛИ;

.XOR. логическое исключающее ИЛИ;

.EQV. эквивалентность;

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

Все логические операции, кроме отрицания, являются бинарными. Логическая операция .NOT. является унарной и располагается перед операндом.

В таблице приведены результаты логических операций над логическими переменными х и у, принимающими значения "истина" (И) и "ложь" (Л).

Таблица истинности

х

y

х.AND. y

х .OR. у

.NOT. х

х .XOR. у

х .EQV. у

х.NEQV. у

И

И

И

И

Л

Л

И

Л

И

Л

Л

И

Л

И

Л

И

Л

И

Л

И

И

И

Л

И

Л

Л

Л

Л

И

Л

И

Л

Приоритет логических операций ниже, чем операций отношений. В свою очередь у логических операций имеется своя иерархия рангов. Стоящие подряд в выражении операции отношения и логические операции одинакового старшинства выполняются слева направо.

Пример 2. Математическому неравенству 1≤ x ≤ 7 соответствует следующее логическое выражение: (1<= x).and.(x<=7).

Пример 3. Записать условие принадлежности точки с координатами (x,y) области, лежащей внутри кольца с внешним радиусомR1и внутренним радиусом R2 с центром в начале координат

real x, y, R1, R2

logical g

g=(x*x+y*y<R1*R1).and.(x*x+y*y>R2*R2)

Значение переменной gбудет .true., если точка принадлежит заданной области.