Similar presentations:
Вычислительные процессы и структуры. Лекция №4
1. Вычислительные процессы и структуры
ПГУПС, каф. ИВС1
24.11.2022
2.
ОСНОВНЫЕ АЛГОРИТМИЧЕСКИЕСТРУКТУРЫ
1. Линейные – структура СЛЕДОВАНИЕ
2. Разветвляющиеся – структура РАЗВИЛКА
3. Циклические – структура ЦИКЛ
ПГУПС, каф. ИВС
2
24.11.2022
3.
Любой сколь угодно сложный алгоритмможно построить с помощью этих трех
основных структур.
Описание этих структур на языке
программирования называется
структурным программированием
ПГУПС, каф. ИВС
3
24.11.2022
4. 1. Структура СЛЕДОВАНИЕ
Это структура, действия в которойвыполняются последовательно друг
за другом от первого до последнего.
Эта структура была рассмотрена на
1-ой лекции (пример вычисления
длины окружности)
ПГУПС, каф. ИВС
4
24.11.2022
5. 2. Структура РАЗВИЛКА
Под развилкой понимаетсяструктура, в которой направление
развития вычислительного процесса
зависит от выполнения или не
выполнения некоторого условия
(логического выражения).
ПГУПС, каф. ИВС
5
24.11.2022
6.
y2= - Sin xy
y1= Sin x
Да
x<0
x
y 1= x
y2= -x
Нет
y1=Sin x
y1= x
y2= -x
y2=-Sin x
y1 = x,
y2 = -Sin x, если x<0
y1 = Sin x, y2 = -x, в остальных случаях
ПГУПС, каф. ИВС
6
24.11.2022
7. Классическая развилка Условный оператор
If <логическое выражение>Then
<группа операторов 1>
Else
<группа операторов 2>
End If
ПГУПС, каф. ИВС
7
24.11.2022
8.
Private Sub Command1_Click()Dim Y1 As Single, Y2 As Single, X as Single
X=Inputbox(“Введите Х”, “Развилка”)
If x<0 Then
y1 = x
y2 = -Sin(x)
Else
y1 =Sin(x)
y2 = -x
End If
Print “При Х=” & X & “ Y1=” & Y1 & “ Y2=” & Y2
End Sub
ПГУПС, каф. ИВС
8
24.11.2022
9. Развилка с одной ветвью
If <Логическое выражение> Then <оператор>Короткий If управляет выполнением или
невыполнением только одного оператора.
При этом вся запись д.б. расположена в одной
строке.
Нет
X<0
Да
If X<0 Then X = Abs(X)
X=|X|
ПГУПС, каф. ИВС
9
24.11.2022
10.
Оператор If c одной ветвьюможет управлять и группой
операторов, но при этом он должен
заканчиваться строкой End If
If <Логическое выражение> Then
<Группа операторов>
End If
ПГУПС, каф. ИВС
10
24.11.2022
11.
Нет12 < T <= 24
Да
T = T - 12
P=“После
полудня”
If T>12 And T<=24 Then
T = T - 12
P = “После полудня”
End If
Print P & T
P, T
ПГУПС, каф. ИВС
11
24.11.2022
12.
Вложенная развилкаP
1
-1
1
t
P=
ПГУПС, каф. ИВС
-1 , если t < 0
0 , если 0 ≤ t ≤ 1
1 , если t > 1
24.11.2022
13. Вложенная развилка
If <логическое выражение 1> Then<группа операторов 1>
ElseIf <логическое выражение 2> Then
<группа операторов 2>
Else
<группа операторов 3>
End If
ПГУПС, каф. ИВС
13
24.11.2022
14.
P1
P=
-1
t<0
t
1
Да
P=-1
Нет
0<t<1
Нет
P=1
ПГУПС, каф. ИВС
Да
P=0
-1 , если t < 0
0 , если 0 ≤ t ≤ 1
1 , если t > 1
If t < 0 Then
P = -1
ElseIf t >= 0 And t <= 1
Then
P=0
Else
P=1
End If
14
24.11.2022
15. Оператор Select Case . . . End Select
Оператор используют когдавложенность структуры развилка
превышает три.
Позволяет сделать выбор из
произвольного числа вариантов.
ПГУПС, каф. ИВС
15
24.11.2022
16.
Select Case <выражение>Case <значение>
<операторы>
[Case <значение>
<операторы>]
...
[Case Else
<операторы>]
End Select
ПГУПС, каф. ИВС
16
24.11.2022
17.
Параметр <выражение> - любое числовое,строковое, логическое выражение или
переменная.
В этом операторе выполняется
сравнение значения <выражения> с
каждой из величин заданных параметром
<значение>.
ПГУПС, каф. ИВС
17
24.11.2022
18.
Для блока Case можно указывать не толькоодно значение, но и несколько, разделенных
запятой (например 2, 4, 6).
Можно определять также области
сравнения ( 0 To 10)
или воспользоваться относительным
сравнением (IS >= 9, где IS – ключевое
слово).
ПГУПС, каф. ИВС
18
24.11.2022
19.
Очередной блок Case выполняется, еслини одно из предыдущих условий не
является истинным.
В операторе м.б. произвольное число
блоков Case. Если ни одно из условий не
является истинным , то выполняются
<операторы> Case Else .
ПГУПС, каф. ИВС
19
24.11.2022
20. Рассмотрим пример:
1. Постановка задачи.Разработать информационную технологию,
позволяющую определить какую квартиру
можно приобрести за введенную сумму.
Выходные данные:
Входные данные:
ПГУПС, каф. ИВС
Сообщение о квартире.
S – Сумма стоимости
квартиры в тыс. $
20
24.11.2022
21.
2. Математическая модельКомната,
Сообщение
о квартире =
Однокомнатная, если S=40,50,60
Двушка,
если 60<S<100
Трех и больше,
если S≥100
Увеличьте сумму
ПГУПС, каф. ИВС
если S=30
в остальных
случаях
21
24.11.2022
22.
Начало3. Разработка
алгоритма
S
S = 30
Да
Комната
Нет
S=40,50,60
Нет
60<S<100
Нет
S > 100
Нет
Увеличьте
сумму
ПГУПС, каф. ИВС
Да
Да
Да
Однокомнатная
Двушка
Трех и больше
Конец
22
24.11.2022
23. 4. Код приложения
Private Sub Command1_Click()Dim s As Integer
Dim m As Label
m: s = InputBox("Введите
сумму")
Select Case s
Case 30
MsgBox "Комната"
Case 40, 50, 60
MsgBox "Однокомнатная"
ПГУПС, каф. ИВС
Case 60 To 100
MsgBox "Двушка"
Case Is > 100
MsgBox "Трех и
больше"
Case Else
MsgBox "Увеличьте
сумму"
GoTo m
End Select
End Sub
23
24.11.2022
24. Оператор безусловного перехода
Прерывает естественныйпорядок выполнения
операторов и передает
управление оператору
помеченному меткой.
Go To < Метка >
Метка – буква, цифра или их
совокупность.
Отделяется от
помечаемого оператора
двоеточием.
Количество меток не
24
ограничивается,
но
их
ПГУПС, каф. ИВС
24.11.2022
25. Например
…Dim m As Label
…
m: s = InputBox("Введите
…
Go To m
ПГУПС, каф. ИВС
сумму")
25
24.11.2022
26. Функция IIf
IIF (логическое выражение, выражение1,выражение2)
если значение логического выражения
истина – функция возвращает значение
первого выражения,
в противном случае - второго
ПГУПС, каф. ИВС
26
24.11.2022
27. Рассмотрим пример:
Найти max средидвух чисел a и b
Начало
a, b
Да
a>b
Max = a
Нет
Max = b
Max
Конец
ПГУПС, каф. ИВС
Private Sub Command1_Click()
Dim a As Integer, b As Integer
Dim Max As Integer
a = InputBox (“Введите
а ”)
b = InputBox (“Введите b”)
Max = iif (a > b, a, b)
Print “Max = ” & Max
27
24.11.2022
End Sub