Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
методичка.doc
Скачиваний:
80
Добавлен:
09.05.2015
Размер:
506.88 Кб
Скачать

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

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

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

2. Темы для предварительного изучения

  • Алгоритм ветвления назначение и применение. Типы ветвлений.

  • Объекты Visual Basic 6.0 и их свойства.

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

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

3. Разветвляющийся вычислительный процесс.

В программировании принято различать две формы ветвления - сокращенную (Рис.6,7) и полную (Рис. 8,9).

  1. Сокращенная форма ветвления.

Блок-схема

Рис. 6 Сокращенная форма ветвления, ветвь которого содержит одно действие

Формат оператора ветвления:

If <Условие?> THEN <Действие>

  1. Сокращенная форма ветвления, одна из ветвей которого содержит серию действий.

Блок-схема

Рис. 7 Сокращенная форма ветвления, ветвь которого содержит серию действий

Формат оператора ветвления:

IF <Условие?> THEN

<Действие 1>

<Действие 2>

End IF

  1. Полная форма ветвления

Блок-схема

Рис. 8. Полная форма ветвления. Каждая ветвь содержит по одному действию

Формат оператора ветвления

If <Условие?> THEN <Действие 1>ELSE <Действие 2 >

  1. Полная форма ветвления, каждая ветвь которого содержит серию действий

Блок-схема

Рис. 9. Полная форма ветвления. Каждая ветвь содержит серию действий

IF <Условие?> THEN

<Действие 1>

<Действие 2>

ELSE

<Действие 3>

<Действие 4>

End IF

Пример 1.

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

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

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

Найти: корни уравнения X1,X2.

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

, вспомогательная переменная для вычисления дискриминанта .

Разработаем блок-схему алгоритма решения этой задачи (Рис.11)

Создадим интерфейс пользователя по образцу (Рис.10):

Рис.10 Отображение на форме ряда индексированных текстовых полей

Создавая эту форму, целесообразно использовать прием копирования объекта Textbox, при это мы получим ряд индексированных текстовых полей: Text1(0), Text1(1) и Text1(2).

Для реализации проверки выполнения условия или нескольких условий используется оператор ветвления, имеющий следующий формат:

IF <условия>THEN <серия 1>[ELSE<серия 2>].

Условие – это математическое выражение, содержащее знаки отношений

= - равенство <= - меньше либо равно

<> - неравенство < - меньше

>= - больше либо равно > - больше.

Рис.11. Блок-схема алгоритма решения КВУР

Е

сли нужно проверить сразу несколько условий, то их соединяют логическими связкамиAND – в случае, когда все условия должны выполняться одновременно и OR –при выполнении хотя бы одно из условий.

При нарушении последовательности выполнения операторов в программе используется оператор GoTo <метка>, где метка – это натуральное число, стоящее перед строкой, которой нужно передать управление.

В текстовое поле можно одновременно поместить комментарий и значение числовой переменной, если соединить их знаком &.

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

Dim a As Single, b As Single, c As Single, d As Single

Dim x1 As Single, x2 As Single

________________________________________________

Private Sub Command1_Click()

1 a = Val(InputBox("введи а", "ввод"))

b = Val(InputBox("введи b", "ввод"))

c = Val(InputBox("введи c", "ввод"))

If a = 0 Then

Text2 = "Это неквадратное уравнение"

GoTo1

End If

Text1(0) = str(a)

Text1(1) = str (b)

Text1(2) = str (c)

D = b ^ 2 - 4 * a * c

If D > 0 Then

x1 = (-b - Sqr(d)) / (2 * a)

x2 = (-b + Sqr(d)) / (2 * a)

Text2 = "x1=" & x1

Text2 = Text2 + "x2=" & x2

Else

If D = 0 Then

x = -b / (2 * a)

Text2 = "x=" & x

Else Text2 = "нет корней"

End If

End If

End Sub

Отладка программы.

Обязательна проверка всех ветвей алгоритма.

Контрольные примеры для отладки :

0, 4, 5 – это неквадратное уравнение

1, 5, 6 – х1=-3, х2=-2

1, 2, 1 – х=-1

1, 2, 3 – нет корней.

Второй вариант решения этой задачи с использованием оператора Select-Case.

Dim a As Single, b As Single, c As Single, d As Single

Dim x1 As Single, x2 As Single

________________________________________________

Private Sub Command1_Click()

1 a = Val(InputBox("введи а", "ввод"))

b = Val(InputBox("введи b", "ввод"))

c = Val(InputBox("введи c", "ввод"))

If a = 0 Then

Text2 = "Это неквадратное уравнение"

GoTo 1

End If

Text1(0) = str(a)

Text1(1) = str (b)

Text1(2) = str (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

Создать графический редактор, позволяющий рисовать простейшие геометрические фигуры, выбирая их цвет.

Создадим форму следующего вида (Рис.12), используем новый элемент - рамка Frame, разместив на нем три переключателя OptionBox, и комбинированное окно списка ComboBox, графическое поле PictureBox.

Frame

OptionBox

CommandButton

Рис.12. Элемент управления Frame с набором переключателей

Для элемента 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), Picture1.FillColor,B

If Option3=True Then Picture1.Line(-3,2)-(3,-2), Picture1.FillColor

End Sub

Для очистки формы при нажатии на кнопку «Очистить» процедура будет следующей:

Private Sub Command2_Click()

Picture1.cls

End Sub

Задание для самостоятельного выполнения.

Cоставьте блок-схему и напишите программный код для решения линейного уравнения ах = b.