Программирование разветвлений

Содержание

Слайд 2

В обычном смысле разветвление предполагает наличие альтернатив (вариантов или ветвей). Алгоритмы

В обычном смысле разветвление предполагает наличие альтернатив (вариантов или ветвей).

Алгоритмы

разветвляющейся структуры

Чаще всего ветвление предусматривает два варианта. В блок-схемах эта ситуация описывается следующим образом:

Слайд 3

Блок-схема ветвления:

Блок-схема ветвления:

Слайд 4

Проверка условия, записанного после слова ЕСЛИ, предполагает два варианта ответа: ДА

Проверка условия, записанного после слова ЕСЛИ, предполагает два варианта ответа:

ДА (условие

выполнено),
НЕТ (условие не выполнено).

В зависимости от варианта ответа и выбирается вариант выполнения алгоритма, или, как говорят, выполняется ветвь.

Пример 1. Составить алгоритм нахождения действительных корней квадратного уравнения общего вида ax2+bx+c=0, a≠0, b≠0.
В случае, если нет действительных корней, написать «нет действительных корней».

Слайд 5

Блок-схема примера 1

Блок-схема примера 1

Слайд 6

Для программирования разветвляющейся структуры на Фортране предусмотрено несколько видов условных операторов:

Для программирования разветвляющейся структуры на Фортране предусмотрено несколько видов условных операторов:

условный логический оператор, условный блочный оператор, условный структурный оператор.

Условные операторы

В этих операторах условие записывается в виде логического выражения, которое может принимать лишь два значения: .TRUE. (истина) или .FALSE. (ложь).

Слайд 7

Опр. Логическое выражение (ЛВ) представляет собой неравенство (или отношение), т.е. сравнение

Опр. Логическое выражение (ЛВ) представляет собой неравенство (или отношение), т.е. сравнение

переменных или арифметических выражений. Напомним, как логические операции записываются на Фортране.

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

Слайд 8

Название операции Символ операции (Фортран-90 и Фортран -77) Больше > или

Название операции Символ операции
(Фортран-90 и Фортран -77)
Больше > или

.GT.
Больше или равно >= или .GE.
Не равно /= или .NE.
Меньше < или .LT.
Меньше или равно <= или .LE.
Равно == или .EQ.

Операции отношения

Слайд 9

Логические операции

Логические операции

Слайд 10

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

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

Слайд 11

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

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

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

IF

(ЛВ) оператор S,

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

Слайд 12

1. Вычисляется значение логического выражения (ЛВ ), т.е. проверяется истинно оно

1. Вычисляется значение логического выражения (ЛВ ), т.е. проверяется истинно оно

или ложно.

Порядок выполнения условного логического оператора:

2. Если ЛВ истинно, то выполняется оператор S. После него выполняется оператор, следующий за условным оператором.

3. Если ЛВ ложно, то оператор S не выполняется и управление передается оператору, следующему за условным логическим оператором.

Слайд 13

Пусть значение переменной x1 является минимальным. Сохраним это значение в переменной

Пусть значение переменной x1 является минимальным. Сохраним это значение в переменной

Xmin.

Описание алгоритма

Тогда, сравнивая Xmin с другими переменными x2 и x3, в случае, если оказывается, что Xmin больше x2, то переменной Xmin присваиваем значение переменной x2.

Затем также сравниваем переменную x3 и Xmin. Если оказывается, что Xmin больше x3, то переменной Xmin присваиваем значение переменной x3.

Пример 2. Найти минимальное из трех произвольных вещественных чисел x1, x2, x3, не равных между собой.

Слайд 14

PROGRAM MINIMUM ! название программы Код программы по примеру 2. print

PROGRAM MINIMUM ! название программы

Код программы по примеру 2.

print *,

“Vvod x1, x2, x3” ! поясняющий текст

read *, x1, x2, x3 ! ввод значений переменных

Xmin = x1

if (Xmin > x2) Xmin = x2 ! Логический оператор 1

if (Xmin > x3) Xmin = x3 ! Логический оператор 2

print *, “Xmin =”, Xmin ! вывод результата
END ! конец программы

Слайд 15

IF (ЛВ ) THEN ……………… ……………… ELSE …………… …………… …………… END IF Условный блочный оператор

IF (ЛВ ) THEN
………………
………………
ELSE
……………
……………
……………
END IF

Условный блочный оператор

Слайд 16

В вычислительных задачах условие чаще всего представляет сравнение числовых величин или

В вычислительных задачах условие чаще всего представляет сравнение числовых величин или

арифметических выражений.

Условный блочный оператор

Если ЛВ истинно (или как еще говорят, ЛВ выполняется), то выполняются операторы ветви 1, а операторы ветви 2 пропускаются. Если ЛВ ложно (или как еще говорят, ЛВ не выполняется), то выполняются операторы ветви 2, а операторы ветви 1 пропускаются.

Блочный оператор применяется, если по алгоритму задачи требуется разделение вычислений на две ветви.

Слайд 17

IF (ЛВ ) THEN …………… …………… END IF В случае, когда

IF (ЛВ ) THEN
……………
……………
END IF

В случае, когда в алгоритме программы

нужно предусмотреть обход, тогда можно использовать условный блочный оператор, который содержит только одну ветвь:

Пример 3. Найти максимальное из двух произвольных не равных друг другу чисел.

Слайд 18

PRINT *, “Vvedite dva chisla” Пример 3. Код программы READ *,

PRINT *, “Vvedite dva chisla”

Пример 3. Код программы

READ *, A, B

IF

(A > B) then
Amax=A ! Операторы ветви 1

else
Amax=B ! Операторы ветви 2
endif

PRINT *, ‘Amax=’, Amax

END

Слайд 19

IF (ЛВ1 ) THEN ……………… ……………… ELSE IF (ЛВ2 ) THEN

IF (ЛВ1 ) THEN
………………
………………
ELSE IF (ЛВ2 ) THEN
……………
……………
ELSE
……………
……………
END IF

Условный структурный

оператор
Слайд 20

если ЛВ1 – истинно, то выполняются операторы ветви 1, если ложно

если ЛВ1 – истинно, то выполняются операторы ветви 1, если ложно

– операторы не выполняются;

Порядок выполнения условного структурного оператора:

если ЛВ2 – истинно, то выполняются операторы ветви 2, если ложно – операторы не выполняются;

если ЛВ1 и ЛВ2 – ложны, то выполняются операторы ветви 3.

Слайд 21

Пример 4. Для произвольного вещественного значения x составить программу вычисления Чтобы

Пример 4. Для произвольного вещественного значения x составить программу вычисления

Чтобы

правильно составить программу вычисления y, надо предварительно определить знак подкоренного выражения. Из правил математики известно, что
Слайд 22

read *, x Пример 4. Код программы t = x **

read *, x

Пример 4. Код программы

t = x ** 3

– sin(x)

if (t > 0) then
y = t **(1./3.) ! Ветвь 1

else if (t < 0) then
y = t **(1./3.) ! Ветвь 2

else
y = 0 ! Ветвь 3
end if

print *, ‘ y =’, y
END

Слайд 23

SELECT CASE (key) CASE (Lkey1) S1 CASE (Lkey2) S2 ... CASE

SELECT CASE (key)
CASE (Lkey1)
S1
CASE (Lkey2)
S2
...
CASE (LkeyN)
SN
[ CASE

DEFAULT ]
SN+1
END SELECT

Оператор выбора (общий вид)

Слайд 24

где key - управляющий параметр типа integer, logical или character*1. Lkey1,

где key - управляющий параметр типа integer, logical или character*1.
Lkey1,

Lkey2, ... , LkeyN - список значений, которые могут быть константными выражениями.

Оператор выбора

S1, S2, ... , SN, SN+1 - блоки операторов.

CASE DEFAULT является необязательным.

Список значений Lkeyi можно задавать либо одним значением, либо списком отдельных значений, разделенных запятыми, либо диапазоном значений, разделенных двоеточием.

Слайд 25

Например: CASE (5,12,19) - блок выполняется, если управляющий параметр равен либо

Например: CASE (5,12,19) - блок выполняется, если управляющий параметр равен либо

5, либо 12, либо 19.

Оператор выбора

CASE (2:10) - блок выполняется, если управляющий параметр заключен в диапазоне от 2 до 10.

CASE (‘A’:’z’) - блок выполняется, если управляющий параметр символьного типа является латинской буквой.

Слайд 26

program Perevod_v_Kg Пример 5. По введенному номеру единицы измерения (1 –

program Perevod_v_Kg

Пример 5. По введенному номеру единицы измерения (1 – кг,

2 – мг, 3 – г, 4 – т, 5 – ц) и массе M вывести на экран соответствующее значение массы в килограммах.

! Поясняющая информация
print *, ‘Programma perevodit massu M v kilogrammy’
print *, ‘Vvedite massu M’

! Ввод значения переменной М
read *, M

! Поясняющая информация
print *, ‘Vvedite nomer edinitsy izmereniya massy M’
print *, ‘ 1 – kg, 2 – mg, 3 – gr, 4 – tonna, 5 – centner’

! Ввод номера единицы измерения n
read *, n