Вычислительные процессы и структуры
1. Структура СЛЕДОВАНИЕ
2. Структура РАЗВИЛКА
Классическая развилка Условный оператор
Развилка с одной ветвью
Вложенная развилка
Оператор Select Case . . . End Select
Рассмотрим пример:
4. Код приложения
Оператор безусловного перехода
Например
Функция IIf
Рассмотрим пример:
642.00K
Категория: ПрограммированиеПрограммирование

Вычислительные процессы и структуры. Лекция №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 x
y
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.

P
1
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
English     Русский Правила