ОсновныеОператорыВетвлени

advertisement
Разветвляющаяся алгоритмы.
Условные операторы
•Ветвление - выбор пути решения
задачи в соответствии с выполнением
или невыполнением некоторого
условия выбора.
• Для записи условий используются
логические выражения, которые также
называют условными выражениями.
Простые и сложные условия
• Простое условие - это два выражения, между
которыми помещается знак сравнения.
Примеры записи простых условий:
A>0, C<=D, B<>0 и т. д.
• Сложное условие - это последовательность
простых условий, заключенных в круглые
скобки, которые соединены между собой
знаками логических операций: And (и), Or (или),
Not (не).
Примеры записи сложных условий:
(A>B) AND (B>C), (A>=B) OR (A<=C) OR (A=D)
и т. д.
Таблица истинности логических
операций
Значение операндов
А
В
Результат операции
А AND В
А OR В
NOT A
False
False
False
False
True
False
True
False
True
True
True
False
False
True
False
True
True
True
True
False
Двойной условный переход
• Однострочная форма записи:
If Условие Then Оператор1 Else Оператор2
• Многострочная форма записи:
If Условие Then
< Операторы1 >
Else
< Операторы2 >
End if
Одинарный условный переход
• Однострочная форма записи:
If Условие Then Оператор1
• Многострочная форма записи:
If Условие Then
< Серия1>
End if
Условный переход с использованием
Elseif
If условие 1 Then
[Серия 1]
[ElseIf условие 2 Then
[Cерия 2 для ElseIf]
...
[ElseIf условие n Then
[Cерия n для ElseIf]
[Else
[Cерия для Else]]
End If
Оператор выбора Select Case
Select Case <Переменная Выбора>
Case <Значение 1>
<Серия Операторов 1>
Case <Значение 2>
< Серия Операторов 2>
...
Case < Значение k>
< Серия Операторов k>
Case Else
< Серия Операторов >
End Select
Задача 1
• Составить блок-схему и программу
вычисления значений составной
функции:
4 X ,еслиX  4
y
7 X  1, еслиX  4
для X=-2; 4; 5
Блок-схема задачи 1
Начало
Ввод Х
да
нет
Х >= 4
Y = 4 * Sqr(X)
Y=7*X
Вывод Y,X
Конец
Процедура программы задачи 1
Sub задача1()
Dim X As Single, Y As Single
X = Val(InputBox("Введите X"))
If X >= 4 Then
Y = 4 * Sqr(X)
Else
Y=7*X
End If
MsgBox "Y=" + Str(Y) + " при X=" + Str(X)
End Sub
Задача 2
Составить блок-схему и программу, в
которой определяется полугодие
года (первое или второе) по номеру
введенного месяца.
Блок-схема задачи 2
Начало
Ввод N
N>0 и N<13
Нет
Да
Нет
N<=6
Вывод:
II полугодие
Да
Наберите
правильно
номер месяца
Вывод:
I полугодие
Конец
Процедура программы задачи 2
Sub Задача2()
Dim N As Integer
N = Val(InputBox("Введите номер месяца"))
If (N > 0) And (N < 13) Then
If (N > 0) And (N <= 6) Then
MsgBox "I полугодие"
Else
MsgBox "II полугодие"
End If
Else
MsgBox "Введите правильно номер месяца"
End If
End Sub
Задача
3
По номеру введенного весеннего месяца
(переменная n) определить название месяца.
Если считать, что n – номер введенного весеннего
месяца, то фрагмент кода программы будет
следующий:
If n = 3 Then
Print " март"
ElseIf n = 4 Then
Print "апрель"
ElseIf n = 5 Then
Print "май"
Else
Print "набран номер не весеннего месяца"
End If
Задача 4
По номеру дня недели (переменная n),
введенного с клавиатуры, определить
половину недели (дни с 1-го по 3-й –
первая половина недели, 4,5-й – вторая
половина, 6-й – выходной день суббота, 7-й - выходной день воскресенье).
Фрагмент программы задачи 4
Если считать, что n – номер дня недели, то
фрагмент кода программы будет
следующий:
Select Case n
Case 1 To 3: Print "Первая половина недели"
Case 4, 5
Print "Вторая половина недели"
Case 6: Print "Выходной день - суббота"
Case Else
Print "Выходной день - воскресенье"
End Select
Задания для подготовки к
тестированию
Задание 1. Задан фрагмент алгоритма, в
котором пропущено условие:
Если X>Y то A=Y
Иначе A=X
Все
Если ___ то A=A*A
Иначе A=A*2
Все
Вставьте такое условие, чтобы при X=2, Y=1 результатом выполнения алгоритма
стало A=1
Решение задания 1
Задан фрагмент алгоритма, в котором
пропущено условие:
Если X>Y то A=Y
Иначе A=X
Все
Если A<1 то A=A*A
Иначе A=A*2
Все
Вставьте такое условие, чтобы при X=2, Y=1 результатом выполнения алгоритма
стало A=1
Задание 2
Задан фрагмент алгоритма, в котором
пропущено условие:
F=0
Если _____ то F=1
Если F=1 то Вывод «ДА»
Иначе Вывод «НЕТ»
Вставьте условие так, чтобы данный
фрагмент алгоритма выяснял,
является ли Z гипотенузой
прямоугольного треугольника со
сторонами X,Y,Z.
Решение задания 2
Задан фрагмент алгоритма, в котором
пропущено условие:
F=0
Если X^2+Y^2=Z^2 то F=1
Если F=1 то Вывод «ДА»
Иначе Вывод «НЕТ»
Вставьте условие так, чтобы данный
фрагмент алгоритма выяснял,
является ли Z гипотенузой
прямоугольного треугольника со
сторонами X,Y,Z.
Задание 3
Задан фрагмент алгоритма:
1. Если a<0 то a=-a
2. Если b<0 то b=-b
3. Если (a>b) то a=a-b иначе b=b-a
В результате выполнения данного
алгоритма с начальными значениями
a=-13; b=5 переменные примут
значения…
Решение задания 3
Задан фрагмент алгоритма:
1. -13<0 → a=-a → a=13
2. 5 не <0 → b=5
3. (13>5) → a=13-5 → a=8
В результате выполнения данного
алгоритма с начальными значениями
a=-13; b=5 переменные примут
значения: a=8; b=5
Задание 4
Задан фрагмент алгоритма, в котором
пропущено условие:
Если X<0 то X=-2*X
Иначе X=3*X
Все
Если _____ то A=X*Y
Иначе A=X-Y
Все
Вставьте условие так, чтобы при X=-5,
Y=-1 результатом выполнения
алгоритма стало A=11
Решение задания 4
Задан фрагмент алгоритма, в котором
пропущено условие:
Если X<0 то X=-2*X
Иначе X=3*X
Все
Если Y>0 то A=X*Y
Иначе A=X-Y
Все
Вставьте условие так, чтобы при X=-5, Y=-1
результатом выполнения алгоритма стало
A=11
Задание 5
При начальном значении F=-5 по
окончании работы программы
Если F>0 то F=F*F иначе F=-F*3
Вывод F
будет выведено …
Решение задания 5
При начальном значении F=-5 по
окончании работы программы
F=-5 →F<0 → F=-F*3 →F=-(-5)*3 →F=15
Вывод F
будет выведено число 15
Задание 6
Круг радиуса R входит в прямоугольник
со сторонами a и b, если:
1)4*R^2<=a^2+b^2
2)R<=a или R<=b
3)R>a/2 или R>b/2
4)R<=a/2 и R<=b/2
Решение задания 6
Круг радиуса R входит в прямоугольник
со сторонами a и b, если:
4)R<=a/2 и R<=b/2
Задание 7
Значение переменной d после выполнения фрагмента
алгоритма (операция mod(x,y) – получение остатка
целочисленного деления х на y, diy(x,y) целочисленное деление х на y)
k=50
выбор
при div (k,12) = 4
d=k
при div (k,12) > 5
d=2
при mod (k,12)>9
d=3
иначе
d=1
все
равно …
Решение задания 7
Значение переменной d после
выполнения фрагмента алгоритма
(операция mod(x,y) – получение
остатка целочисленного деления х на
y, diy(x,y) - целочисленное деление х на
y)
k=50
div (50,12) = 4 →d=k →d=50
равно 50
Задание 8
При начальном значении A=-5 по окончании
работы программы
Если A>0 то A=A*2
Иначе
Если A<0 то A=-3*A
Иначе
A=A+10
Все
Все
Вывод A
будет выведено …
Решение задания 8
При начальном значении A=-5 по
окончании работы программы
будет выведено число 15, так как
A<0→ A=-3*A → A=15
Download