“ Алгоритмы и программы
разветвляющейся структуры”
Цель работы: научиться разрабатывать алгоритмы и программы
разветвляющейся структуры с условным
оператором IF . Познакомиться с некоторыми объектами VBA и
с их свойствами
КРАТКИЕ
ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ:
1.В схемах алгоритмов выбор условия обозначается
с помощью символа,

от которого отходит ветвление
для указания дальнейших действий в зависимости от выбора “ДА” или “НЕТ”.Выбор
хода алгоритма , как правило ,зависит от значения переменной или выражения,
состояния объекта. Например,
НЕТ
…
ДА
….
2.В программном коде, чтобы
реализовать ветвление применяется условный оператор IF THEN
Условный оператор позволяет выбирать и выполнять действия
в зависимости от истинности некоторого условия. Имеется два варианта
синтаксиса: В первом случае он имеет вид:
IF <условие> Then [операторы
1] [Else [операторы 2]]
Во втором
случае оператор расположен на нескольких строках:
IF <условие> Then
[операторы]
[ElseIf <условие – n> Then
[операторы-n ]…
[Else]
[ИначеОператоры]]
End
If
Здесь
условие обязательно в обоих вариантах. Оно может быть числовым или строковым
выражением со значениями TRUE или
FALSE.
Операторы 1 и операторы 2 это последовательности из одного или нескольких
разделенных двоеточием операторов. По крайней мере
одна из этих последовательностей должна быть непустой. Если условие истинно (TRUE),
выполняется последовательность
«операторы 1», если ложно, “операторы 2”.
Пример
записи оператора:
‘Условный
оператор в виде одной строки:
IF A>10 Then A=A+1: B=B+A: C=C+B ELSE
C=A*B: A=C+2
‘тот
же условный оператор в виде блока:
IF A>10 Then
A=A+1 : B=B+A : C=C+B
ELSE
C=A*B: A=C+2
Пример1.
Если точка М(x1,y1)
лежит:
·
выше прямой y=kx+b, то
выдать сообщение “Точка М лежит выше
прямой”;
·
ниже прямой,
то выдать сообщение “Точка М лежит ниже
прямой”;
·
на прямой, то
выдать сообщение “Точка М лежит на прямой”.
1 этап.
Продумать задачу и уяснить, что будет входными данными, что выходными и есть ли
все необходимое для решения задачи.
2 этап.
Нарисовать на бумаге интерфейс приложения, т.е. как будет выглядеть экран при
решении задачи на компьютере.

Рис.Интерфейс приложения
3 этап.
Определить ход решения задачи и составить алгоритм программы. В нашей задаче,
чтобы определить положение точки относительно прямой, нужно подставить
координату точки X1 в уравнение прямой и
сравнить полученное значение Y c координатой точки Y1. Если значение Y=Y1, точка
лежит на прямой; если полученное значение Y >Y1, точка –ниже прямой, и
,наконец, если Y<Y1, точка – выше прямой.
СХЕМА
АЛГОРИТМА ПРОГРАММЫ (См. ниже)
4 этап. Загрузить
редактор VBA и разработать приложение.
ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ:
1.
Выполнить команду СЕРВИС
/МАКРОС/РЕДАКТОР VBA
2.
Выполнить команду ВСТАВКА/USER FORM
3.
Поместить на форму элементы с панели элементов и расположить их нужным
образом. Требуемые элементы:
4 элемента Label (текст)
4 элемента TextBox (поле ввода)
2 элемента CommandButton(кнопка)
1 элемент CheckBox(флажок)
.

4.Изменить
свойства объектов на форме c помощью окна свойств следующим
образом
|
Свойство |
Значение |
|
Label1.Caption |
Точка M( |
|
Label2.Caption |
) |
|
Label3.Caption |
Прямая y = |
|
Label4.Caption |
X + |
|
UserForm1.Caption |
Принадлежность точки прямой |
|
TextBox1.Text |
X1 |
|
TextBox2.Text |
Y1 |
|
TextBox3.Text |
K |
|
TextBox1.Text |
B |
|
СоmmandButton1 |
СТАРТ |
|
СоmmandButton2 |
ВЫХОД |
|
CheckBox1.Caption |
Очистка полей ввода |
|
Для всех объектов свойство .BackColor |
По своему вкусу выбрать цвет Из палитры цветов |
|
Для Label1, Label2 ,Label3 Label4,
TextBox1, TextBox2, TextBox3,
TextBox4 свойство .Font |
В диалоговом окне “Шрифт”, которое появится после щелчка
по Кнопке с изображением трех маленьких точек, расположенной напротив
свойства Font в окне свойств, выбрать размер
16 |
Рекомендуется
сопоставить рисунки “Интерфес приложения” и “Окно формы”, чтобы сделать вывод о
назначении использованных свойств объектов”.
5 этап. Написать
программный код. Для этого рекомендуется выполнить двойной щелчок по кнопке СТАРТ и перейти в окно программы, где
набрать текст процедуры обработки события Click() для
кнопки:
Private Sub CommandButton1_Click()
Dim x1, y1, k, b As Integer
x1 = CInt(TextBox1.Text)
y1 = CInt(TextBox2.Text)
k = CInt(TextBox3.Text)
b = CInt(TextBox4.Text)
y = k * x1 + b
If y = y1 Then
MsgBox "Точка лежит на
прямой"
ElseIf y
> y1
Then
MsgBox
"Точка лежит ниже прямой"
Else
MsgBox
"Точка лежит выше прямой"
End If
CheckBox1.Value = False
End Sub
В этой процедуре условный оператор If встречается дважды:
в первом случае – однострочный, во втором-
в виде блочной структуры, завершающейся обязательно End If.
Аналогичным
образом создаем процедуру для кнопки ВЫХОД:
Private Sub CommandButton2_Click()
Unload UserForm1
End Sub
И для объкта Флажок:
Private Sub CheckBox1_Click()
CheckBox1.Value
= True
TextBox1.Text =
""
TextBox2.Text =
""
TextBox3.Text =
""
TextBox4.Text =
""
TextBox1.SetFocus
CheckBox1.Value
= False
End Sub
Пример2.
Ввести Х, вычислить F по формуле:
X/2, если Х>0
F= (X+1)/2, если Х<0

Рис. Интерфейс
приложения
СХЕМА АЛГОРИТМА ПРОГРАММЫ

Private Sub CommandButton1_Click()
Dim x, F As Single
x =
TextBox1.Value
If
x = 0 Then MsgBox
"Функция не определена", vbCritical, _
"Расчет
функции"
If x > 0
Then F = x / 2 Else
F = (x + 1) / 2
TextBox2.Value
= F
End Sub
Private Sub CommandButton2_Click()
Unload Me
End Sub
Выполнения самостоятельного задания.
1.Выбрать для решения одну из задач
2.Нарисовать интерфейс приложения.
3.Разработать схему алгоритма.
4. В редакторе VBA разработать приложение.
5.Выполнить приложение и
подготовить отчет.
Содержание отчета.
1.
Условие задачи
2.
Интерфейс приложения
3.
Схема алгоритма
4.
Программный код
5.
Использованные операторы и функции
КОНТРОЛЬНЫЕ ВОПРОСЫ
1. Что такое разветвляющаяся структура алгоритма?
2.Какой символ используется в схемах алгоритмов, чтобы показать выбор
условия?
3.С помощью какого оператора можно организовать ветвление в программе?
Написать cинтаксис этого оператора для
однострочной формы записи
4.Чем отличается блочная форма записи условного оператора от однострочной? Написать синтаксис условного оператора в
блочной форме или привести пример его использования.
5.Назвать известные вам элементы ActiveX,
используемые при разработке приложений VBA. Какие элементы
и какие свойства
этих элементов были использованы в вашей программе?
ЗАДАНИЯ
К ВЫПОЛНЕНИЮ:
I
1.Вычислить значение функции:
0, если х=0,
f(x) =
квадрат х, если х
<>0.
2.Вычислить значение функции:
sin(x), если
х>0,
f(x)
= 0, если х = 0,
сos(x),
если х< 0.
3.Ввести три целых числа и
определить, сумма каких двух является наибольшей.
4. Вычислить значение функции:
sin(x), если х>0,
f =
0, если х< =
0,
5. Вычислить значение функции:
tg(x),
если х=0,
f =
tg(x)/2, если х< = 0,
6. Вычислить значение функции:
√x, если
х=0,
f =
tg(x)/2, если
х< = 0
II
1.Ввести число Х и
определить, делится ли оно:
1) на 2,
2) на3,
3) на 5.
4) На 8
2. Ввести число Х и определить,
является ли оно четным.
3. Ввести число N и определить делится ли оно без
остатка на число M.
2 часть. Программирование с использованием объектов EXCEL.
Разрабатывать
приложения в редакторе VBA можно и с использованием объктов
приложений Office(объктов EXCEL,WORD и др.) Рассмотрим разработку приложения примера2
с использованием объектов EXCEL. Будем использовать объекты:
·
WORKSHEETS() –для
обозначения листа EXCEL
·
RANGE() – для
обозначения диапазона ячеек или одной ячейки
·
свойство
.Value для обращения к значению ячейки.
Т.е., если мы хотим записать в
ячейку значение F программным способом, нужно написать в программе так:
Worksheets().Range().Value = F, где в скобках указать имя или номер листа EXCEL и адрес ячейки. Например, чтобы :
|
Присвоить ячейке С1 На листе “лист1” значение переменной F |
Нужно написать Worksheets(“лист1”).Range(“C1”).Value = F |
|
Изменить значение
в ячейке A1 на листе “лист1” |
WorkSheets(“лист1”).Range(“A1”).Value=3 |
|
Установить формулу
для ячейки B1 на активном листе |
Range(“B1”).Formula = “= - 5 + A1” |
ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ:
1. В Ячейку А1
ввести текст « Исходные данные»
2. В ячейку А2
ввести текст «Х=»
3. В ячейку В2
ввести значение Х.
4. В ячейку C1 ввести текст
«результат при х>0»
5. В ячейку D1 ввести текст « результат при
х<0»
6. Выполнить команду СЕРВИС /МАКРОС/РЕДАКТОР VBA
7. Выполнить команду ВСТАВКА/МОДУЛЬ
8. Ввести имя модуля SUB LL()
9. Набрать текст программы:
Sub LL ()
X=Worksheets(1).Range(“B2”).Value
IF Х>0 Then
End Sub
10.
Выполнить программу и подготовить отчет. Содержание отчета указано в первой
части работы
11.Решить одну из задач
самостоятельно.
Контрольные вопросы.
1.Какие
объекты Еxcel вы знаете?
2.Как
обратиться к ячейке на рабочем листе из программы?
3.Какая
форма записи условного оператора была использована в вашей программе?