NetNado
  Найти на сайте:

Учащимся

Учителям



Лабораторная работа №2 Разветвляющийся алгоритм и его реализация на языке vb цель работы


Лабораторные работы по VB стр


Лабораторная работа №2

Разветвляющийся алгоритм и его реализация на языке VB

1. Цель работы:

Отработка навыков создания блок-схем для реализации ветвления при решении задач и овладение навыками работы с операторами IF-THEN-ELSE и SELECT- CASE. Использование этих операторов для решения различных задач. Научить исследовать задачу и найти оптимальный план решения, подбирать инструменты, предусмотрев все возможные варианты данных, вводимых пользователем.
2. Темы для предварительного изучения

  • Линейные алгоритмы. Блоки блок-схемы, используемые при графическом изображении линейного алгоритма.

  • Алгоритм ветвления назначение и применение. Сколько вариантов можно рассмотреть с его помощью?

  • Объекты VB, используемые при решении вычислительных задач и их свойства.

  • Стандартные функции, используемые в VB.

  • Этапы создания приложения в среде VB.

3. Задание

а) Создать программу, решающую квадратное уравнение, если его коэффициенты введены с клавиатуры,

б) создать простейший графический редактор.

Пример 1.

Решение квадратного уравнения

Постановка задачи:

Дано: a,b,c коэффициенты уравнения, причем a0

Найти: корни

Математическая модель:

, то есть необходимо ввести вспомогательную переменную для вычисления дискриминанта .
Блок-схема







Форма, с которой придется работать, должна иметь следующие объекты: командную кнопку, три одина-ковых текстовых поля для ввода коэффициентов уравнения и текстовое поле для вывода результата.

Создать эту форму не представляет трудностей, но стоит обратить внимание на то что текстовые поле для коэффициентов одинаковые, а следовательно создавать их можно используя прием копирования, при это мы получим ряд индексированных полей 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


скачать

Другие похожие работы: