Название: Информатика. Алгоритмический язык Фортран - учебное пособие (Худяков Д.С., Саблина Г.В.)

Жанр: Информатика

Просмотров: 3010


2.6.4. условные операторы

 

В любых программах, за исключением простейших, естественный порядок выполнения операторов, как правило, изменяется в зависимости от каких-то условий.

Условный арифметический оператор имеет следующий вид:

IF(A)n1,n2,n3

Здесь А – арифметическое выражение, результат которого имеет целый или вещественный тип, а n1, n2, n3 – метки операторов. Правило выполнения: если результат арифметического выражения меньше нуля, то следующим выполняется оператор с меткой n1, если результат выражения равен нулю, то выполняется оператор с меткой n2, а если результат выражения больше нуля, то выполняется оператор с меткой n3. Две метки из трех могут совпадать. Примеры:

IF(X+Y-7.5)5,16,3

Условный арифметический оператор реализует отношения А < 0, A = 0, A > 0  или  А £ 0, А ³ 0.

Условный логический оператор имеет вид:

           IF(L) S

Здесь L – логическое выражение, a S – любой выполняемый оператор. Правило выполнения: если результат логического выражения

L – «истина», то выполняется оператор S, а если «ложь», то выполняется следующий за IF оператор, а S не выполняется. Примеры:

IF(I.LE.N) GOTO 10

IF(X**2+Y**2.LE.R**2) A=l

Структурный оператор IF является обобщением предыдущего и имеет вид:

IF(L) THEN

S1

S2

...

END IF

Здесь L – логическое выражение, S1, S2,… – операторы, которых может быть любое количество. Правило выполнения: если логическое выражение L – истинно, то выполняются операторы S1, S2,…, а если оно ложно, то выполняется следующий после END IF оператор. Пример:

IF(L) THEN

F=SIN(X)

F1=X**2+5*X

END IF

Блочный оператор IF (оператор IF THEN ELSE) имеет вид:

IF(L) THEN

< операторы 1 >

ELSE

< операторы 2 >

END IF

Правило выполнения: если логическое выражение L истинно, то выполняются < операторы 1 >, а если оно ложно, то выполняются

< операторы 2 >.

В качестве примера рассмотрим программу вычисления недельной зарплаты, обозначенной переменной PAY. Пусть оплата часа работы при общей рабочей неделе, не превышающей 40 часов, задается переменной RATE. Если рабочая неделя превышает 40 часов, то каждый сверхурочный час оплачивается в полуторном размере. Тогда, задавая время работы в неделю TIME и значение RATE, можно записать следующую программу:

READ(*,*)RATE,TIME

IF(TIME.GT.40)THEN

TT=TIME-40.0

PAY=40*RATE

PAY=PAY+1.5*RATE*TT

ELSE

PAY=RATE*TIME

END IF

WRITE(*,*)PAY

STOP

END