Лабораторная работа №2 Разветвляющийся алгоритм и его реализация на языке vb цель работы
Лабораторные работы по VB стр
Лабораторная работа №2
Разветвляющийся алгоритм и его реализация на языке VB
1. Цель работы:
Отработка навыков создания блок-схем для реализации ветвления при решении задач и овладение навыками работы с операторами IF-THEN-ELSE и SELECT- CASE. Использование этих операторов для решения различных задач. Научить исследовать задачу и найти оптимальный план решения, подбирать инструменты, предусмотрев все возможные варианты данных, вводимых пользователем.
2. Темы для предварительного изучения
Линейные алгоритмы. Блоки блок-схемы, используемые при графическом изображении линейного алгоритма.
Алгоритм ветвления назначение и применение. Сколько вариантов можно рассмотреть с его помощью?
Объекты VB, используемые при решении вычислительных задач и их свойства.
Стандартные функции, используемые в VB.
Этапы создания приложения в среде VB.
3. Задание
а) Создать программу, решающую квадратное уравнение, если его коэффициенты введены с клавиатуры,
б) создать простейший графический редактор.
Пример 1.
Решение квадратного уравнения
Постановка задачи:
Дано: a,b,c коэффициенты уравнения, причем a0
Найти: корни
Математическая модель:


Блок-схема






Ф

Создать эту форму не представляет трудностей, но стоит обратить внимание на то что текстовые поле для коэффициентов одинаковые, а следовательно создавать их можно используя прием копирования, при это мы получим ряд индексированных полей Text1(0), Text1(1) и Text1(2). Нужно также повторить следующие моменты
Для реализации проверки выполнения условия или нескольких условий используется оператор ветвления, имеющий следующий формат:
IF <условия>THEN <серия 1>[ELSE<серия 2>].
Условие – это математическое выражение, содержащее знаки отношений
= - равенство <=- меньше либо равно
<>- неравенство <- меньше
>=- больше либо равно >- больше.
Если нужно проверить сразу несколько условий, то их соединяют логическими связками AND – если все условия должны выполняться одновременно и OR –если хотя бы одно из перечисленных условий.
Часть оператора, заключенная в квадратные скобки, является необязательной, т.е. наличие серии 2 необязательно.
Что такое серия 1 и серия 2 – это оператор или несколько операторов, разделенных знаком (:) которые должны быть выполнены, если условие верно – серия 1, неверно – серия 2. В случае когда отсутствует слово ELSE при невыполнении условия управление передается следующему по порядку оператору.
Если нужно нарушить последовательность выполнения операторов в программе используется оператор GoTo <метка>, где метка – это натуральное число, стоящее перед строкой, которой нужно передать управление.
Вывод в текстовое поле сразу и комментария, и значение числовой переменной возможно, если соединить их знаком &.
Написание программного кода
Private Sub Command1_Click()
Dim a As Single, b As Single, c As Single, d As Single, x1 As Single, x2 As Single
1 a = Val(InputBox("введи а", "ввод"))
b = Val(InputBox("введи b", "ввод"))
c = Val(InputBox("введи c", "ввод"))
If a = 0 Then Text2 = "это неквадратное уравнение": GoTo 1
Text1(0) = a
Text1(1) = b
Text1(2) = c
d = b ^ 2 - 4 * a * c
If d< 0 Then Text2 = "нет корней"
If d > 0 Then x1 = (-b - Sqr(d)) / (2 * a): x2 = (-b + Sqr(d)) / (2 * a): Text2 = "x1=" & x1: Text2 = Text2 + "x2=" & x2
If d = 0 Then x = -b / (2 * a): Text2 = "x=" & x
End Sub
Отладка программы.
Обязательна проверка всех ветвей алгоритма.
Т.е. контрольных примеров для отладки будет 4:
0, 4, 5 – это неквадратное уравнение
1, 5, 6 – х1=-3, х2=-2
1, 2, 1 – х=-1
1, 2, 3 – нет корней.
Второй вариант реализации команды ветвления с использованием оператора Select-Case.
Private Sub Command1_Click()
Dim a, b, c, d, x1, x2 As Single
1 a = Val(InputBox("введи а", "ввод"))
b = Val(InputBox("введи b", "ввод"))
c = Val(InputBox("введи c", "ввод"))
If a = 0 Then Text2 = "это неквадратное уравнение": GoTo 1
Text1(0) = a
Text1(1) = b
Text1(2) = c
d = b ^ 2 - 4 * a * c
Select Case d
Case Is < 0: Text2 = "нет корней"
Case Is > 0: x1 = (-b - Sqr(d)) / (2 * a): x2 = (-b + Sqr(d)) / (2 * a): Text2 = "x1=" & x1: Text2 = Text2 + "x2=" & x2
Case Is = 0: x = -b / (2 * a): Text2 = "x=" & x
End Select
End Sub
Пример 2
Создадим простейший графический редактор, позволяющий рисовать некоторые геометрические фигуры выбирая их цвет.
Создаём форму следующего вида, используем новый элемент - рамка Frame, разместив на нем три переключателя OptionBox, и комбинированное окно списка ComboBox, графическое поле PictureBox.

Frame
OptionBox
CommandButton

Для элемента ComboBox создадим список значений, для этого в свойстве List введем первое значение – красный, затем нажмем комбинацию клавиш <Ctrl>+<Enter> для перехода на следующую строку и введем остальные значения – синий, зеленый и жёлтый.
Для элементов OptionBox, размещенных внутри элемента Frame, изменим свойство Caption соответственно на Круг, Прямоугольник и Прямая.
Подписи кнопок «Нарисовать», «Очистить» и «Выход».
Для того чтобы при загрузке по умолчанию в поле списка цветов было выбрано, например, первое значение – красный (счет индексов в списке начинается с нуля), а переключатель в положении Круг в процедуре загрузки формы запишем
Private Sub Form_Load()
Combo1.ListIndex=0
Option1.Value=True
End Sub
Для определения системы координат на элементе PictureBox используется метод Scale. Пусть х[-5;5] и y[-4;4] тогда добавим в процедуру открытия формы команду
Picture1.Scale (-5,4)-(5,-4)
После нажатия на кнопку «Нарисовать» должна быть нарисована выбранная фигура, соответствующим цветом из списка.
Программный код её будет:
Private Sub Command1_Click()
Select Case Combo1.ListIndex
Case 0
Picture1.FillColor=vbRed
Case 1
Picture1.FillColor=vbBlue
Case 2
Picture1.FillColor=vbGreen
Case 3
Picture1.FillColor=vbYellow
EndSelect
If Option1=True Then Picture1.Circle(0,0), 3, Picture1.FillColor
If Option2=True Then Picture1.Line(-3,2)-(3,-2), 3, Picture1.FillColor,B
If Option3=True Then Picture1.Line(-3,2)-(3,-2), 3, Picture1.FillColor,
End Sub
Для очистки формы при нажатии на кнопку «Очистить» процедура будет следующей:
Private Sub Command2_Click()
Picture1.cls
End Sub
Самостоятельно составьте блок-схему и напишите программный код для решения линейного уравнения ах = b.

страница 1
скачать
Другие похожие работы: