Вспомогательные управляющие операторы




Управляющие операторы и конструкции

Управляющие операторы и конструкции служат для изменения последовательности выполнения программ.

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

Формат: IF (логическое выражение) оператор

Действие: если логическое выражение истинно, то выполняется оператор, в противном случае управление передается на оператор, следующий за IF. Если логическое выражение ложно, то управление сразу передается на оператор, следующий за IF, минуя оператор.

Блок-схема:

Пример1: y=20; x=5

if (x>y) y=10

print*,y

При выполнении этого фрагмента будет выведено значение y=20, т.к. логическое выражение ложно, и оператор y=10 выполняться не будет.

 

Конструкция IF THEN ENDIF

Формат: IF (логическое выражение) THEN

Блок операторов

ENDIF

Действие: если логическое выражение истинно, то выполняется блок операторов, в противном случае управление передается на оператор, следующий за ENDIF.

Блок-схема:

 

 


Пример2: y=20; x=5

if (x>y) then

y=10

endif

print*,y

Результат выполнения этого фрагмента аналогичен примеру 1. Отличие заключается в самой записи этой конструкции.

Конструкция IF THEN ELSE ENDIF

Формат: IF (логическое выражение) THEN

Блок операторов 1

ELSE

Блок операторов 2

ENDIF

Действие: если логическое выражение истинно, то выполняется блок операторов 1 и управление передается на следующий за ENDIF оператор; если логическое выражение ложно, то выполняется блок операторов 2.

 

Блок-схема:

 

Пример3: y=20; x=5

if (x>y) then

y=10

else

y=70

endif

print*,y

При выполнении этого фрагмента будет выведено значение y=70, т.к. логическое выражение ложно.

Конструкция IF THEN ELSE IF

Формат: IF (логическое выражение 1) THEN

Блок операторов 1

ELSE IF (логическое выражение 2) THEN

Блок операторов 2

….

[ ELSE

блок операторов n ]

ENDIF

Действие: если логическое выражение 1 истинно, то выполняется блок операторов 1 и управление передается на следующий за ENDIF оператор. Eсли логическое выражение1 ложно, то вычисляется значение логического выражения 2, и если оно истинно, товыполняется блок операторов 2. Eсли оно ложно, то управление передается на следующий ELSEIF, и так далее. Если ложны все Л.В., то выполняется блок операторов n, следующий за завершающим ELSE. Если завершающий ELSE отсутствует, то управление передается за ENDIF.

Число операторов ELSEIF в конструкции может быть произвольным. Следует обратить внимание, что вся конструкция завершается одним ENDIF.

 

Блок-схема:

 
 

 

 


Пример3: Введите 2 числа с клавиатуры. Если они не равны между собой и отрицательны, то замените числа их кубами и выведите результат на экран. Если все числа положительны, то найдите и выведите среднее арифметическое. Иначе, уменьшите каждое число в два раза и выведите результат.

program primer3

real a, b, sr, max

print*, ‘Vvedi 2 chisla’

read*, a, b

if (a<0.and. b<0.and. a/=b) then

a=a**3; b=b**3

print*, ‘a=’, a, ‘b=’, b

elseif (a>0.and. b>0) then

sr=(a+b)/2

print*, ‘srednee arifmeticheskoe=’, sr

else

a=a/2; b=b/2

print*, ‘a=’, a, ‘b=’, b

endif

end

Сравните нижеприведенную программу с примером 3.

program primer3; real a, b, sr, max

print*, ‘Vvedi 2 chisla’; read*, a, b

if (a<0.and. b<0.and. a/=b) then; a=a**3; b=b**3; print*, ‘a=’, a, ‘b=’, b

elseif (a>0.and. b>0) then; sr=(a+b)/2; print*, ‘srednee arifmeticheskoe=’, sr; else

a=a/2; b=b/2; print*, ‘a=’, a, ‘b=’, b; endif; end

Как видно, чтение такой программы достаточно затруднено в связи с тем, что условные конструкции не наглядны. Кроме того, необходимо помнить, что операторы в одной строке разделяются «;».

 

 

Конструкция SELECT CASE

Формат: SELECT CASE (выражение)

CASE (список 1)

Блок операторов 1

CASE (список 2)

Блок операторов 2

…………

CASE DEFAULT

Блок операторов n

END SELECT

Выражение − целочисленное, символьное или логическое выражение.

Список − список констант, тип которых должен соответствовать типу выражения.

Список констант может содержать:

1. Одно значение, например: case(5)

2. Несколько значений, например: case(2,5,8,33)

3. Диапазон значений, например: case(10:15)! значения 10, 11, 12, 13, 14, 15

case(10:) (опущена правая граница)! значения >10

case(:-2) (опущена левая граница)! значения< -2

4. Смесь отдельных значений и диапазонов, например: case(3,4, 10:15, 77)

Каждое значение, даже если оно задано в диапазоне значений, может появляться только в одном списоке.

Действие: Вычисляется значение выражения. Если полученное значение находится в списке 1, то выполняется блок операторов 1; далее управление передается на следующий за END SELECT оператор. Если значение в списке 1 не находится, то проверяется, если оно в списке 2, и так далее. Если значение выражения не найдено ни в одном списке и присутствует оператор CASE DEFAULT, то выполняется блок операторов n и далее следующий за END SELECT оператор. Если же значение выражения не найдено ни в одном списке и оператор CASE DEFAULT отсутствует, то управление передается на следующий за END SELECT оператор.

Пример4: integer x

………

select case (x)

case (1:)

x=sqrt(x)

case (:-1)

x=abs(x)

case (0)

x=sin(x)+cos(x)

end select

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

Вспомогательные управляющие операторы

Оператор STOP

Формат: STOP [ сообщение ]

Действие: Прекращает выполнение программы.

Сообщение – символьная или целочисленная константа. Эта константа выводится на экран монитора после логического завершения программы по оператору STOP.

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

STOP – Program terminated

Оператор PAUSE

Формат: PAUSE [ сообщение ]

Действие: Оператор временно приостанавливает выполнение программы и позволяет пользователю выполнить команды операционной системы.

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

Please enter a blank line (to continue) or a system command

(пожалуйста, введите пробел для продолжения программы или команду системы).

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2021-02-02 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: