Написание программного кода с использованием процедур
Программный код решаемой задачи представлен на рис. 4.6-3.
Option Strict On
Option Explicit On
Imports System.Math
Public Class Form1
'Функция ввода исходн. данных из TextBox
Function vvod(ByVal T As TextBox) As Double
Return Val(T.Text)
End Function
'Процедура вывода вещественного результата в TextBox
Sub vivod(ByVal Z As Double, ByVal T As TextBox)
T.Text = CStr(Z)
End Sub
'Процедура вывода вещественного результата в ListBox
Sub vivodList(ByVal Z As Double, ByVal LB As ListBox)
LB.Items.Add(CStr(Z))
End Sub
' Процедура вывода целого результата в ListBox
Sub vivodListint(ByVal Z As Integer, ByVal LB As ListBox)
LB.Items.Add(CStr(Z))
End Sub
'процедура-Function, вычисляющая производную
Public Function FProiz(ByVal x As Double) As Double
Dim p As Double
p = 3 * x ^ 3 - 4 * x + 1
Return p
End Function
'процедура-Function, вычисляющая заданную функцию
Public Function Funy(ByVal x As Double) As Double
Dim f As Double
f = x ^ 3 - 2 * x ^ 2 + x - 3
Return f
End Function
' Процедура решения задачи поиска корня
Public Sub Kop(ByVal E As Double, ByVal x0 As Double, _
ByRef xe As Double)
Dim x, a As Double
Dim i As Integer
i = 0: x = x0
Do
a = x: x = a - Funy(a) / FProiz(a): i = i + 1
vivodListint(i, ListBox1)
vivodList(x, ListBox2)
Loop Until Abs(x - a) < E
xe = x
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button2.Click
End
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button1.Click
Dim EE, x0x0, xn, y As Double
EE = vvod(TextBox1)
x0x0 = vvod(TextBox2)
Kop(EE, x0x0, xn)
vivod(xn, TextBox3)
y = Funy(xn)
vivod(y, TextBox4)
End Sub
End Class
|
Рис. 4.6-3
Выполнение проекта и получение результатов
Выполним проект на компьютере и получим следующий результат, приведенный на рис. 4.6-4.
Рис. 4.6-4
Доказательство правильности работы программ
Значение функции при подстановке корня в уравнение f(x)= 0.00012315320113. Это говорит о том, что значение функции f(2.17457839205816)=0.00012315320113 близко к нулю.
4.6.6. Пример выполнения задания-2
1. Тема и название работы:
Программирование алгоритмов итеративных циклических структур – Вычисление членов заданной последовательности, значения которых по модулю больше заданного числа.
2. Задание на разработку проекта и вариант задания
Создать проект Проект-4-6-2-Лаб для вычисления и отображения на экране тех членов последовательности
,
значения которых по модулю больше e=0.0001, при x=1.5.
3. Формализация и уточнение задания
Для решения поставленной задачи необходимо вывести рекуррентную формулу вычисления члена последовательности.
Очевидно, что выражение для n-го члена заданной последовательности имеет вид:
.
Тогда формула для (n+1) члена последовательности имеет вид:
Имея в виду, что (n+1)! =n! ∙ (n+1), получим
Откуда получаем следующую рекуррентную формулу
-начальный член последовательности при n=1.
4. Разработка приложения
Разработка графического интерфейса пользователя
Разработанная форма интерфейса пользователя приведена на рис. 4.6-5.
Рис. 4.6-5
Установка свойств объектов
Свойства объектов управления разработанной формы приведены в таблице 4.6-3.
Таблица 4.6-3
Объект
| Свойство
| Значение свойства
|
Form1
| Text
| Тема 4.6. Пример 2.
|
Label1
| Name
| Label1
|
Text
| E=
|
ForeColor
| Синий
|
Font
| Microsoft Sans Serif, Жирный, 8 пунктов
|
Label2
| Name
| Label2
|
Text
| X=
|
ForeColor
| Черный
|
Font
| Microsoft Sans Serif, Жирный, 8 пунктов
|
Label3
| Name
| Label3
|
Text
| Задание:
|
ForeColor
| Красный
|
Font
| Microsoft Sans Serif, Жирный, 10 пунктов
|
Label4
| Name
| Label4
|
Text
| Вычислить все члены, заданной последовательности,
значения которых по модулю больше 0.0001
|
ForeColor
| Черный
|
Font
| Microsoft Sans Serif, Жирный, 8 пунктов
|
TextBox1
| Name
| TextBox1
|
Text
|
|
ForeColor
| Черный
|
Font
| Microsoft Sans Serif, Жирный, 10 пунктов
|
TextBox2
| Name
| TextBox2
|
Text
|
|
ForeColor
| Черный
|
Font
| Microsoft Sans Serif, Жирный, 8 пунктов
|
ListBox1
| Name
| ListBox1
|
Text
|
|
ForeColor
| Черный
|
Font
| Microsoft Sans Serif, Жирный, 8 пунктов
|
ListBox2
| Name
| ListBox2
| |
Text
|
| |
ForeColor
| Черный
| |
Font
| Microsoft Sans Serif, Жирный, 8 пунктов
| |
Button2
| Name
| Button2
|
Text
| Вычислить значения
|
Button1
| Name
| Button1
|
Text
| Стоп
|
Разработка схемы алгоритма
Схемы алгоритмов представлены на рис. 4.6-6.
Рис. 4.6-6
Популярное: