Студопедия
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Пример 2 (ListBox)

 

Private Sub ListBox1_Change()

Select Case ListBox1.ListIndex

Case 0

Me.BackColor = vbYellow

Case 1

Me.BackColor = vbGreen

Case 2

Me.BackColor = vbRed

End Select

End Sub

 

Private Sub UserForm_Initialize()

ListBox1.AddItem "Желтый"

ListBox1.AddItem "Зеленый"

ListBox1.AddItem "Красный"

'ListBox1.ListIndex = 0

End Sub

 

В завершение разберем следующий пример:

Дана функция F(x)=2x-sin(x)-0,5.

Ø Найти корень уравнения на интервале [-1,1],

Ø вычислить значение на интервале [-1,1] с шагом =0,1 и

Ø построить график функции

 

 

Текст программного кода приведен ниже

 

Function f(x As Double) As Double

f = 2 * x - Sin(2 * x) - 0.25

End Function

 

 

Private Sub CommandButton1_Click()

Dim a As Double

Dim b As Double

Dim c As Double

Dim h As Double

Dim x As Double

Dim y As Double

a = CDbl(TextBox1.Text)

b = CDbl(TextBox2.Text)

h = CDbl(TextBox4.Text)

eps = 0.0001

 

If OptionButton1.Value = True Then

Do While Abs(b - a) > eps

c = (a + b) / 2

If f(a) * f(c) > 0 Then

a = c

Else

b = c

End If

Loop

c = (a + b) / 2

Label3.Caption = "Результат" & Chr(13) & _

"Значение корня = " & c

'TextBox3.Text = c

Label3.Visible = True

End If

 

If OptionButton2.Value = True Then

x = a: i = 0

Do While x <= b

y = f(x)

ListBox1.ColumnCount = 2

ListBox1.ColumnWidths = "30;40"

ListBox1.AddItem x

ListBox1.List(i, 1) = y

i = i + 1

x = x + h

Loop

ListBox1.Visible = True

Label4.Visible = True

End If

 

If OptionButton3.Value = True Then

x = a: i = 1

Do While x <= b

y = f(x)

Worksheets(2).Cells(i, 1) = x

Worksheets(2).Cells(i, 2) = y

i = i + 1

x = x + h

Loop

 

График

End If

 

End Sub

 

Private Sub CommandButton2_Click()

Hide

End Sub

 

Private Sub UserForm_Initialize()

TextBox1.Text = " "

TextBox2.Text = ""

TextBox4.Text = ""

TextBox1.SetFocus

 

End Sub

Sub График()

'

' График Макрос

' Макрос записан 28.05.2009 (Татьяна Донец)

'

 

'

i = 1

While Worksheets(2).Cells(i, 1) <> ""

i = i + 1

Wend

i = i - 2

Range("A1:B" & i).Select

Charts.Add

ActiveChart.ChartType = xlXYScatterSmoothNoMarkers

ActiveChart.SetSourceData Source:=Sheets("Лист2").Range("A1:B" & i), PlotBy:= _

xlColumns

ActiveChart.Location Where:=xlLocationAsObject, Name:="Лист2"

With ActiveChart

.HasTitle = True

.ChartTitle.Characters.Text = "График функции"

.Axes(xlCategory, xlPrimary).HasTitle = False

.Axes(xlValue, xlPrimary).HasTitle = False

End With

End Sub


ЛАБОРАТОРНАЯ РАБОТА

Построение графика на листе Excel и на пользовательской форме.

Процедуры обработки ошибок

 

1. Построение графика на листе Excel производится через процедуру.

Пример. Построить график функции на отрезке [a;b] с шагом h. Построение графика организовать процедурой.

‘При создании процедуры график() вначале был создан макрос в Excel, а затем полученный макрос отредактирован. В частности, первая команда в данной процедуре определяет количество заполненных строк на листе в столбце А и это значение присваивается переменной n.

 

2. При составлении приложений важно предусмотреть, чтобы программа анализировала возможные ошибки, возникающие при ее выполнении по вине пользователя, и информировала его об этом, подсказывая, что конкретно он сделал неправильно. При этом возможно два подхода:

· Предотвращение ошибок

· Обработка ошибок

 

Рассмотрим процесс создания приложения, в котором предотвращается появление ошибки на конкретном примере:

Программа производит деление числителя на знаменатель по нажатию кнопки Счет без контроля появления возможных ошибок.

 

 

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

Такие ошибки ввода легко избежать, если производить в программе предварительную проверку. Например, это видно в следующее процедуре:

 

 

Но, если пользователь введет в поле Знаменатель 0, то произойдет аварийная остановка выполнения программы с отображением кода ошибки. (Каждая ошибка имеет свой код). В идеале разрабатываемое приложение не должно никогда аварийно прерываться. В приложении следует создать средства перехвата возможной ошибки, обработать её, выдать сообщение пользователю и обеспечить безаварийное продолжение работы приложения.

Инструкция On Error производит перехват ошибки. Устанавливает, что программа должна делать в случае появления ошибки.

Ниже приведен код программы с обработкой ошибок:

 

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

 

3 Для построения графика на пользовательской форме применяется элемент управления Image (рисунок). Он используется для отображения графических файлов в формате gif, ipg,, ico. Перечислим некоторые из его свойств, используемых для управления выводом изображения.

 

AutoSize True – рисунок автоматически изменяет размер для того, чтобы отобразить изображение целиком False – в противном случае
Picture Задает Изображаемый Графический Файл. Используется С Функцией Loadpicture. Синтаксис: .Picture = LoadPicture(полное имя файла), т.е. полное имя отображаемого графического файла  
SizeMode Устанавливает масштабирование рисунка fmPictureSizeModeClip - не помещающиеся в границах объекта части рисунка обрезаются fmPictureSizeModeStretch - так, чтобы он занимал полную поверхность объекта fmPictureSizeModeZoom - рисунок масштабируется с сохранением относительных размеров так, чтобы он помещался целиком внутри объекта
.PictureAlignment Устанавливает расположение рисунка внутри объекта  

 

Рассмотрим предыдущий пример: Построить график функции на отрезке [a;b] с шагом h. Построение графика организовать процедурой.

 

 

 


 




Дата добавления: 2015-09-12; просмотров: 91 | Поможем написать вашу работу | Нарушение авторских прав

Application.Quit | Добавление формы в проект | End Sub | Основные общие свойства элементов управления. | Функция IsNumeric(Аргумент) возвращает значение True, если аргумент является число и False в противном случае |


lektsii.net - Лекции.Нет - 2014-2025 год. (0.749 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав