k = k + 1
Next j
Set ry = Sheets(ActiveSheet.Name).Range(Cells(1, 2), Cells(k, 2))
Set rx = Sheets(ActiveSheet.Name).Range(Cells(1, 1), Cells(k, 1))
Charts.Add
ActiveChart.ChartType = xlLine
ActiveChart.SetSourceData Source:=ry, PlotBy:=xlColumns
ActiveChart.SeriesCollection(1).XValues = "=" & rx.Address(ReferenceStyle:=xlR1C1, external:=True)
ActiveChart.Location Where:=xlLocationAsObject, Name:="Лист1"
With ActiveChart
.HasTitle = False
.Axes(xlCategory, xlPrimary).HasTitle = False
.Axes(xlValue, xlPrimary).HasTitle = False
End With
With ActiveChart.Axes(xlCategory)
.HasMajorGridlines = False
.HasMinorGridlines = False
End With
With ActiveChart.Axes(xlValue)
.HasMajorGridlines = False
.HasMinorGridlines = False
End With
ActiveChart.HasLegend = False
ActiveChart.HasDataTable = False
ActiveChart.Export Filename:=CurDir + "\Grafic_func.gif", FilterName:="GIF"
ActiveSheet.ChartObjects.Delete
Worksheets(1).UsedRange.Clear
Image1.Picture = LoadPicture(CurDir + "\Grafic_func.gif") 'загружаем в Image1 файл с графиком
Image1.Visible = True
CommandButton5.Enabled = False
CommandButton4.Enabled = True
End Sub
Public Function f(x As Double) As Double 'нахождение значения функции
f = x ^ 3 - x - 0.3
End Function
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) 'Проверка ввода
If KeyAscii > 26 Then
If InStr(number, Chr(KeyAscii)) = 0 Or (InStr(TextBox1.Text, ",") > 0 And Chr(KeyAscii) = ",") Or (TextBox1.SelStart > 0 And InStr(sign, Chr(KeyAscii)) > 0) Then
KeyAscii = 0
End If
End If
End Sub
Private Sub TextBox2_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) 'Проверка ввода
If KeyAscii > 26 Then
If InStr(number, Chr(KeyAscii)) = 0 Or (InStr(TextBox2.Text, ",") > 0 And Chr(KeyAscii) = ",") Or (TextBox2.SelStart > 0 And InStr(sign, Chr(KeyAscii)) > 0) Then
KeyAscii = 0
End If
End If
End Sub
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) 'Закрытие формы
Select Case MsgBox("Закрыть окно?", vbYesNo + vbQuestion, "Завершение работы")
Case vbYes
Cancel = 0
Application.Quit
Case vbNo
Cancel = -1
End Select
End Sub
4 Тестирование программного модуля
Найдем корень уравнения. Нажмем на кнопку «Найти корни». После этого появится результат и промежуточные вычисления.
Рисунок 8. Закладка «Вычисления».
Для проверки корня, построим график функции на отрезке [1,1.3] (рис. 9)
Заключение
Целью данной курсовой работы является разработка программного модуля для нахождения методом хорд корня уравнения x3 - x - 0.3 = 0 с точностью до 0,001.
Тестирование показало, что результаты, полученные разработанным программным модулем, соответствуют теоретическим расчётам (это подтверждает и график). В программе присутствует обработка ошибок. При вводе ошибочные данные игнорируются, а при отсутствии введенных данных выдаётся сообщение об ошибке. Курсовая выполнена в полном объеме и в соответствии с заданием.
Список использованных источников
1 Биллинг В.А. VBA и Office 2000. Офисное программирование. – М.: «Русская редакция», 1999.
2 Гарнаев Ю.А. Использование MS Excel и VBA в экономике и финансах. – СПб: БХВ – Санкт-Петербург, 2002.
3 Гарнаев Ю.А. самоучитель VBA. – СПб: БХВ – Санкт-Петербург, 2002.
4 Васильев А. VBA в Office 2000: учебный курс – СПб: Питер, 2002.
5 Кузьменков В.Г. VBA 2002. – М.: Издательство БИНОМ, 2002.
6 MS Office XP: Разработка приложений/Под ред. Ф.А.Новикова – СПб: БХВ – Санкт-Петербург, 2003.