ЛАБОРАТОРНАЯ РАБОТА №2. Разработка программ разветвленной структуры
Разработка программ разветвленной структуры
Цель работы приобретение практических навыков составления программ разветвленной структуры, изучение базовых алгоритмов разветвляющихся структур.
Краткие теоретические сведения
Разветвляющимися алгоритмическими структурами называются такие структуры, в которых порядок выполнения блоков операторов определяется значениями логических выражений. Разветвляющийся алгоритм может состоять из нескольких ветвей, каждая из которых может содержать любую, сколь угодно сложную, алгоритмическую структуру. В процессе работы разветвляющегося алгоритма в первую очередь вычисляютсялогические выражения(частнымслучаем логического выражения является логическая переменная или константа). Если результат вычисления логического выражения принимает значение 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
Ifx > 0Theny=SQR(x)Elsey=1
Iflambda< 1Orbeta = 3Thenx=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: