Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Информатика алгоритмы к лекции / К лекции по линейным алгоритмам

.doc
Скачиваний:
20
Добавлен:
31.05.2015
Размер:
88.58 Кб
Скачать

К лекции линейные алгоритмы и алгоритмы ветвления

Линейные алгоритмы

Задача1. Известна сторона равностороннего треугольника. Найти его площадь.

Составить математическую модель, блок-схему алгоритма и записать код.

  1. И

    Описание: На листе Excel поместим командную кнопку “Вычислить”. Данные введем в окно ввода, результат выведем в окне сообщения.

    сходные данные
    : а (a>0)

Выходные данные: S

Связь:

  1. Блок-схема:

  1. Программный код:

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

Самостоятельно:

Написать алгоритм расчета площади площади треугольника по строне и высоте

Написать алгоритм расчета площади треугольника по двум сторонам и углу между ними

Написать расчет площади треугольника по формуле Герона

Инструкции проверки условий

Условные операторы позволяют управлять последовательностью исполнения инструкций (выполнения операторов) в программе.

Базовая структура  "ветвление". Обеспечивает в зависимости от результата проверки условия (да или нет) выбор одного из альтернативных путей работы алгоритма. Каждый из путей ведет к общему выходу, так что работа алгоритма будет продолжаться независимо от того, какой путь будет выбран. Структура ветвление существует в четырех основных вариантах:

  • если—то;

  • если—то—иначе;

  • выбор;

  • выбор—иначе.

Условные операторы представлены в виде:

  1. если—то

  1. если—то—иначе

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.

  1. выбор

  1. выбор—иначе

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