Powered by Invision Power Board
Здравствуйте Гость ( Вход | Регистрация ) Обратная связь   
  Reply to this topicStart new topicStart Poll

> МЕТОД ПОЛОВИННОГО ДЕЛЕНИЯ НА Vba
50theme
Отправлено: Дек 13 2021, 19:34
Quote Post


Админ
***

Группа: Администраторы
Сообщений: 900
Пользователь №: 1
Регистрация: 15-Июня 14
Статус: Offline

Репутация: -1




Option Explicit


'''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Sub met_pol_del(a As Single, b As Single, eps As Single, kod_y As Integer)

Dim x As Single
Dim kol_it As Integer
Dim f_a As Single
Dim f_x As Single
Dim f_b As Single
Dim ft As Integer
'''''''''''''''''''''' Выбор способа ввода
a=1.1' начала,
b=8.8' конца отрезка
eps=0.001' и допустимой погрешности
'''''''''''''''''''''' ЗА ТОБОЙ!
x = (a + cool.gif * 0.5
f_x = yr1(x, kod_y)
kol_it = 0
f_a = yr1(a, kod_y)
f_b = yr1(b, kod_y)

ft = 1

If (f_a*f_x >= 0) And (f_b*f_x>= 0) Then ft = 0

Do While (Abs(f_x) > eps) And ((f_a*f_x<0) Or (f_b*f_x< 0))
f_a = yr1(a, kod_y)
f_b = yr1(b, kod_y)
If f_a * f_x < 0 Then b = x Else a = x

x = (a + cool.gif * 0.5
f_x = yr1(x, kod_y)
kol_it = kol_it + 1
Loop

If ft = 0 Then
MsgBox "Здесь рыбы нет!"
End If

If ft = 1 then
st="Корень уравнения: " + CStr(x) + "; Кол-во итераций: " + CStr(kol_it)
msgbox st
End If

End Sub

'Выбор уравнения
Function yr1(x As Single, kod_y As Integer) As Single
Select Case kod_y
Case 1
yr1 = 3 * x ^ 3 + Log(2 * x) - 8
Case 2
yr1 = x ^ 0.5 + 4 * x ^ 2 - 3 ^ 2 - 5
Case 3
yr1 = x ^ 4 + 2 * x ^ 3 - 10 * x - 18
End Select

End Function

«Форумок» - биржа постинга, комплексная система продвижения сайтов, услуг и товаров в социальных сервисах рунета…
Top
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Topic Options Reply to this topicStart new topicStart Poll


 


Мобильная версия