Информатика алгоритмы к лекции / К лекции по линейным алгоритмам
.docК лекции линейные алгоритмы и алгоритмы ветвления
Линейные алгоритмы
Задача1. Известна сторона равностороннего треугольника. Найти его площадь.
Составить математическую модель, блок-схему алгоритма и записать код.
-
И
Описание: На листе Excel поместим командную кнопку “Вычислить”. Данные введем в окно ввода, результат выведем в окне сообщения.
Выходные данные: S
Связь:
-
Блок-схема:
-
Программный код:
Private Sub CommandButton1_Click()
Dim a As Single, S As Single
a = InputBox("Введите сторону = ")
S = Sqr(3) * a ^ 2 / 4
S = Format(S, "###.000")
t = MsgBox("Площадь треугольника" & Str(S))
End Sub
Самостоятельно:
Написать алгоритм расчета площади площади треугольника по строне и высоте
Написать алгоритм расчета площади треугольника по двум сторонам и углу между ними
Написать расчет площади треугольника по формуле Герона
Инструкции проверки условий
Условные операторы позволяют управлять последовательностью исполнения инструкций (выполнения операторов) в программе.
Базовая структура "ветвление". Обеспечивает в зависимости от результата проверки условия (да или нет) выбор одного из альтернативных путей работы алгоритма. Каждый из путей ведет к общему выходу, так что работа алгоритма будет продолжаться независимо от того, какой путь будет выбран. Структура ветвление существует в четырех основных вариантах:
-
если—то;
-
если—то—иначе;
-
выбор;
-
выбор—иначе.
Условные операторы представлены в виде:
|
|
if условие then дейсивые |
if условие then дейсивые 1 else дейсивые 2 end if |
Инструкция IF (ЕСЛИ) используется в двух нотациях: в виде простой и блочной структур. Инструкция простой структуры имеет следующую форму записи:
If <Выражение> Then <Инструкция, исполняемая, если выражение-условие истинно>
Конструкция блочной структуры может включать один блок инструкций (условие), исполняемых, если выражение условие1 истинно, или же еще дополнительные условия, сопровождаемые блоками инструкций:
If Условие 1 Then
Действия 1 – исполняется, если выражение 1 истинно
ElseIf Условие 2 Then
Действия 2 – исполняется, если выражение 2 истинно
ElseIf Условие 3 Then
Действия 3 – исполняется, если выражение 3 истинно
…………………..
Else
Блок инструкций, исполняемых, если ложны выражения в инструкциях If и ElseIf
End If
Приведем пример простой инструкции If:
If R Then MsgBox“Точка попала в прямоугольник”
Теперь пример блочной структуры:
R = False
If X < X1 Then
GoTo 10 ‘уже ясно, что точка не попала в прямоугольник
ElseIf X > X2 Then
GoTo 10 ‘управление передается на метку 10
ElseIf Y < Y1 Then
GoTo 10
ElseIf Y > Y2 Then
GoTo 10
Else
R = True
End If
10: MsgBox R ‘после метки ставится двоеточие
Блоки ElseIf и (или) Else могут отсутствовать. В любом случае блочная конструкция оканчивается инструкцией End If.
Приведенный пример, кроме блочной конструкции IF, поясняет возможность использования в программе меток и передач управления с помощью инструкции GoTo. Метка не обязательно обозначается числом – можно было написать и N10 или MsgR.
|
|
Select Case Переменная Case Значение 1 либо Case is Условие 1 Действия 1 – выполняется, если значение переменной равно значению 1 или соответствует условию 1 Case Значение 2 либо Case is Условие 2 Действия 2 – выполняется, если значение переменной равно значению 2 или соответствует условию 2 …………………. Case Значение N либо Case is Условие 2 Действия N – выполняется, если значение переменной равно значению 2 или соответствует условию 2 Case Else Действия N+1 – выполняется если ни одно из предыдущих условий не является истинным End Select |
В ситуациях, когда требуется запрограммировать три и более разветвлений в зависимости от значения одной переменной, удобно использовать структуру Select Case.
Пример:
Возраст = TextBox1.Value
Select Case Возраст
Case Is < 13
Label1.Caption = "После 22-00 спать!"
Case 16
Label1.Caption = "Пора получать паспорт"
Case Is < 18
Label1.Caption = "Только чай!"
Case Is >= 18
Label1.Caption = "Можно почти все!"
End Select
Таким образом,
Оператор условного перехода можно писать в многострочном варианте
If Условие Then Команды1 Else Команды2 End If
Оператор условного перехода можно писать в однострочном варианте Если оператор не помещается в одной строке, то она может быть разбита на несколько строчек, но при переносе на новую строку, нужно поставить знак _
If Условие _ Then Команды1_ Else Команды2 End If или If Условие Then Команды1_ Else Команды2
End If
Условие может быть и сложным - простые условия соединенные между собой логическими операциями: And - и, Or - или, Not - не.
Dim Password, Pword
PassWord = "12345"
Pword = InputBox("Введите пароль")
If Pword <> PassWord Then
MsgBox "Пароль не верный"
End
End If
Алгоритмическая структура "выбор" (Select Case) - при выполнении различных условий, выполняются различные серии команд
Алгоритм "выбор" в Visual Basic и в VBA представляет собой следующий вид: Select Case Выражение (переменная, арифметическое выражение, значение какого-то свойства ОБЪЕКТА и т.д.)End Select
Case Условие1 Команды1 Case Условие2 Команды2 Case Условие3 Команды3 (и так далее) End Select
Пример:
Sub Primer ()
Dim x As Integer
x = InputBox ("введите целое число")
Select Case x
Case 8 To 10
MsgBox ("Отлично")
Case 6 To 7
MsgBox ("Хорошо")
Case 4 To 5
MsgBox ("Удовлетворительно")
Case Is < 4
MsgBox ("Неудовлетворительно")
End Select
End Sub
Sub Name() User = "Jerry" Do While User <> "Tom" User = InputBox("Как ваше имя?") Loop n = InputBox("Введите n ") If n > 0 Then MsgBox "n>0" Else MsgBox "n<=0" End If Select Case n Case 1 To 5 MsgBox "Между 1 и 5" Case 6, 7, 8, 9, 10 MsgBox "Между 6 и 10" Case Else MsgBox "Вне отрезка [1, 10]" End Select End Sub