- •Введение
- •Лабораторная работа №1
- •1.1. Краткие теоретические сведения
- •1.8. Доказательство правильности результатов
- •1.9. Контрольные вопросы по теме
- •Что определяет внутреннее представление данных в памяти компьютера?
- •Варианты заданий
- •Лабораторная работа №2
- •2.1. Краткие теоретические сведения
- •2.3.6. Доказательство правильности результатов
- •2.3.7. Контрольные вопросы по теме
- •2.4. Содержание отчета
- •Варианты заданий. Индивидуальное задание №1
- •Варианты заданий. Индивидуальное задание №2
- •Список литературы
- •Содержание
- •Программирование алгоритмов линейной и разветвленной структуры
- •115035, Москва, ул. Садовническая, 33, стр.1
Лабораторная работа №2
Разработка программ разветвленной структуры
Цель работы приобретение практических навыков составления программ разветвленной структуры, изучение базовых алгоритмов разветвляющихся структур.
2.1. Краткие теоретические сведения
Разветвляющимися алгоритмическими структурами называются такие структуры, в которых порядок выполнения блоков операторов определяется значениями логических выражений. Разветвляющийся алгоритм может состоять из нескольких ветвей, каждая из которых может содержать любую, сколь угодно сложную, алгоритмическую структуру. В процессе работы разветвляющегося алгоритма в первую очередь вычисляются логические выражения (частным случаем логического выражения является логическая переменная или константа). Если результат вычисления логического выражения принимает значение True (Истина), то выполняется часть алгоритма, расположенная по ветви «Да», если значение – False (Ложь), то – по ветви «Нет».
Наиболее часто используются три типа разветвлений. Стандартное разветвление содержит функциональные блоки как в ветви «Да», так и в ветви «Нет». Усеченное разветвление содержит функциональные блоки только в ветви «Да» или только в ветви «Нет». Вложенное разветвление включает одно или несколько разветвлений.
Логические выражения, в отличие от арифметических, содержат операции отношения (=, <, >, <=, >=, <>), а также еще пять логических операций, записанных далее в порядке убывания приоритета: отрицание - NOT, логическое умножение (логическое “И”) - AND, логическое сложение (логическое “ИЛИ”) - OR, исключающее “ИЛИ” - XOR, эквивалентность - EQV.
Логическое выражение может содержать либо простое, либо сложное условие. Простое условие – это два арифметических или строковых выражения, соединенных операцией отношения.
-
Операции отношения
Значение
=
Равно
<
Меньше чем
>
Больше чем
<=
Меньше или равно
>=
Больше или равно
<>
Не равно
Сложное условие, в отличие от простого условия, содержит логические операции - NOT, AND, OR, XOR и др.:
AND(и) – возвращает значение Истина, если все участвующие в операции выражения имеют значение Истина;
OR(или) – возвращает значение Истина, если хотя бы одно из участвующих в операции выражений имеет значение Истина;
XOR(исключающее или) – возвращает значение Истина, если только одно из выражений Истина;
NOT(операция отрицания) – возвращает обратное для значения выражения значение, то есть если выражение TRUE, вернет FALSE и наоборот.
Ниже представлена таблица истинности основных логических операций.
Значения операндов |
NOT x |
x AND y |
x OR y |
x XOR y |
х EQV y |
|
X |
Y |
|
|
|
|
|
T |
T |
F |
T |
T |
F |
T |
T |
F |
F |
F |
T |
T |
F |
F |
T |
T |
F |
T |
T |
F |
F |
F |
T |
F |
F |
F |
T |
Рассмотрим примеры простых условий:
Логическое выражение |
Результат |
5 < 10 |
True, так как 5 меньше 10 |
5 > 10 |
False, так как 5 не больше 10 |
7 <> 3 |
True, так как 7 не равно 3 |
X > 45 |
True, если X больше 45; в противном случае False |
5-1 > 1+2 |
True, вначале вычисляется разность 5-1 (4), |
|
затем вычисляется сумма 1+2 (3) и наконец, проверяется условие 4 > 3, т.е. 4 больше 3 |
Конструкция IF…Then…Else…
Порядок выполнения конструкции следующий: если значение логического выражения L равно True, то выполняется оператор (или операторы), стоящий после Then, в противном случае выполняются операторы, стоящие после Else. Конструкция Else может отсутствовать (в формате она взята в квадратные скобки) – случай усеченного разветвления.
Строчная конструкция:
If <L> Then <операторы ист.условия> [Else <операторы ложного условия>]
Примеры: If x mod 3=0 Then TextBox4.Text= “Число кратное 3”
If x<>0 Then K=K+1: S=S+X
If x > 0 Then y=SQR(x) Else y=1
If lambda < 1 Or beta = 3 Then x=0
Блочная конструкция:
If <L > Then
<операторы для обработки истинного условия>
[ Else
<операторы для обработки ложного условия>]
End If
Блочный оператор IF …END IF
Оператор IF блочной структуры имеет следующую конструкцию:
If <выражение_1> Then
<блок операторов_1>
[ ElseIf <выражение_2> Then
<блок операторов_2>
ElseIf < выражение_3> Then
<блок операторов_3>
…
ElseIf < выражение_N> Then
< блок операторов_N>
Else
<блок операторов ELSE>]
End If
Последовательно выполняется проверка истинности выражений. Если <выражение_1> истинно, выполняется блок <операторов_1> и переход к оператору, следующему за END IF, иначе выполняется проверка истинности <выражения_2> и т.д. Если ни одно из выражений не соответствует требованиям истинности, выполняется блок операторов ELSE, если он имеется, иначе - оператор, следующий за END IF.
Примеры:
If x>=a And x<=b Then
TextBox2.Text =“x принадлежит интервалу [a,b]”
End If
If x>xmax Then
Xmax=x
K=K+1
Exit For
End If
Конструкция Select …Case
Конструкция Select Case позволяет обрабатывать в программе несколько условий и аналогична блоку конструкций IF…Then…End IF. Эта конструкция состоит из анализируемого выражения и набора операторов Case на каждое возможное значение выражения. В первую очередь вычисляется значение заданного выражения. Затем полученное значение сравнивается со значениями, задаваемыми в операторах Case. Если найдено искомое значение, выполняются операторы, приписанные данному оператору Case. Если искомое значение не найдено, выполняются операторы за ключевым словом Case Else:
Select Case <анализируемое выражение>
Case <значение_1>
<операторы_1>
[ Case <значение_2>
<операторы_2>
…
Case <значение_N>
<операторы_N>
Case Else
<операторы_else> ]
End Select
Примеры оформления условий в операторе Select :
-
Case Is >100 ' проверка на превышение значения 100;
Case x^2 ' проверка на равенство значению выражения;
Case -10 To 10 ' проверка на принадлежность отрезку [-10,10];
Case 0 To 5, 12 To 19, 7, -2.5, Is > Sred
Ключевое слово Is говорит компилятору о том, что требуется сравнить переменную с выражением, указанным после ключевого слова Is. Ключевое слово То определяет диапазон значений. Запятая в списке условий обозначает логическое OR.
2.2.1. Задание на разработку проекта и вариант задания ИДЗ №1 (индивидуальное задание №1)
Написать программный код для вычисления выражения Y:
2.2.2. Расчет контрольного примера
Первый
набор данных: a=1,
b=2.5:
(истина),
следовательно,
Второй
набор данных: a=2,
b=-3:
(истина),
следовательно,
2.2.3. Блок-схема алгоритма
2.2.4. Экранная форма с примером протокола сеанса работы программы
2.2.5. Код программы
Private Sub CommandButton1_Click()
Rem
Rem Ввод данных
Rem
a = Val(TextBox1.Text)
b = Val(TextBox2.Text)
Rem
Rem Строчный IF
Rem
If a ^ 2 < b Then y = 7 * a + 2 * b Else y = Sqr(2 * a) / (Abs(b) + 1)
TextBox3.Text = CStr(y)
Rem
Rem Блочный IF
Rem
If a ^ 2 < b Then
y = 7 * a + 2 * b
Else
y = Sqr(2 * a) / (Abs(b) + 1)
End If
TextBox4.Text = CStr(y)
End Sub
Private Sub CommandButton2_Click()
End
End Sub
2.2.6 Доказательство правильности результатов. Результат расчета контрольного примера идентичен результату выполнения программы, следовательно, программа работает верно.
2.3.1. Задание на разработку проекта и вариант ИДЗ №2
Написать программный код для вычисления выражения Y:
2.3.2. Расчет контрольного примера
2.3.3 Блок-схема алгоритма
2.3.3. Экранная форма с примером протокола сеанса работы программы
2.3.5. Код программы
Private Sub CommandButton1_Click()
Rem
Rem Ввод данных
Rem
a = Val(TextBox1.Text)
Rem
Rem Блочный оператор IF
Rem
If a >= 50 And a <= 75 Or a >= 81 And a <= 83 Then
y = a + 5
ElseIf a >= -5 And a <= 0 Or a = 20 Then
y = a ^ 2
ElseIf a >= 30 And a <= 33 Or a = 2 Then
y = 7 + Log(a) / Log(2)
Else
y = (a - 1) / 2
End If
TextBox2.Text = CStr(y)
Rem
Rem Select Case
Rem
Select Case a
Case 50 To 75, 81 To 83
y = a + 5
Case -5 To 0, 20
y = a ^ 2
Case 30 To 33, 2
y = 7 + Log(a) / Log(2)
Case Else
y = (a - 1) / 2
End Select
TextBox3.Text = CStr(y)
End Sub
Private Sub CommandButton2_Click()
End
End Sub
