Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.04.2010, 11:47   #1
Hitman15
Новичок
Джуниор
 
Регистрация: 30.04.2010
Сообщений: 2
По умолчанию расчет глубины погружения тела

вообщем задали ргр, все внизу написано, программу написал, но почему то не работает она ( мож кто чем поможет? подскажет?

Тело, образованное вращение дуги AB вокруг оси Ox (рис. 1 xͼ [a,b], a=-8, b =8), плавает в воде так, что ось Ox, перпендикулярна поверхности воды. Дуга AB задана функцией f(x)=x^2-8. Необходимо определить глубину погружения тела. Плотность материала, из которого сделано тело, на 20% меньше плотности воды. Вычисление интегралов производить методом центральных прямоугольников с точностью до 0,001. Получающиеся нелинейное уравнение решать методом дихотомии с точностью до 0,001.

сама программа:

Option Explicit
Private Sub command1_click()
Dim a As single, b As Single, r As Single
Dim epsi As Single, epsu As Single, V As single
Dim T As Single, Tt As Single
a = Val(Form1.Text1.Text)
b = Val(Form1.Text2.Text)
epsi = Val(Form1.Text3.Text)
epsu = Val(Form1.Text4.Text)
r = 0.8
V = r*Integral(ByVal a,ByVal b,ByVal epsi)
T = Root(ByVal a,ByVal b, ByVal epsu, ByVal V, ByVal epsi) - a
Form1.Text5.Text = T
Tt = (r*(b^7-a^7)+a^7)^(1/7)-a
Form1.Text6.Text = Tt
Form1.Text7.Text = Abs(T-Tt)
End Sub
Private Function F(ByVal x, ByVal V, ByVal epsi) As Single
Dim a As Single
F = Integral(ByVal a, ByVal x, ByVal epsi)-V
End Function
Private Function f(ByVal T) As Single
f=T^3
'f=x^2-8
End Function
Private Function Integral(ByVal a, ByVal b, ByVal epsi) As Single
Dim n As Long, MaxN As Long, I1n As Single
Dim I2n As Single
If a=b then
Integral = 0
Exit Function
End if
n=4
MaxN=100000
I1n=Itg(ByVal a, ByVal b, ByVal n)
Do
n=n*2
I2n-Itg(ByVal a, ByVal b, ByVal n)
If Abs (I1n-I2n)<=epsi*Abs(I2n) Then
Integral = I2n
Exit Do
Else
I1n=I2n
End if
If n>MaxN Then stop
Loop
End Function
Private Function Itg(ByVal a, ByVal b, ByVal n) As Single
Dim S as Single, I as Long, h As single, x As Single
h = (b-a)/n
S = 0
For I = 1 To n
x = a+I*h-h/2
S = S=f(x)^2
Next I
Itg = S*h
End Function
Private Function Root(ByVal a, ByVal b, ByVal epsu, ByVal epsi) As Single
Dim c As Single, FA As Single, FO As Single, x As Single
Dim FB As Single, F1 As Single, z As Single
x=a
FA=f(ByVal x, ByVal V, ByVal epsi)
x=b
FB=f(ByVal x, ByVal V, ByVal epsi)
If FA*FB>0 Then
form1.text8.text = "функция не пересекает ось ox"
exit function
end if
Do While Abs(b-a)>epsu and x<=1.018b
c=(a+b)/2
x=c
F1 =f(ByVal x, ByVal V, ByVal epsi)
x=a
FA=f(ByVal x, ByVal V, ByVal epsi)
If FA*F1<0 Then
b=c
Else
a=c
end if
loop
If x>1.01*b then
Form1.Text9.Text = "нет решения"
stop
end if
root = (a+b)/2
end function


при запуске выделяется вот эта строчка:
T = Root(ByVal a,ByVal b, ByVal epsu, ByVal V, ByVal epsi) - a
Hitman15 вне форума Ответить с цитированием
Старый 01.05.2010, 16:17   #2
Hitman15
Новичок
Джуниор
 
Регистрация: 30.04.2010
Сообщений: 2
По умолчанию

помогитееее
Hitman15 вне форума Ответить с цитированием
Старый 01.05.2010, 21:00   #3
was3110
Форумчанин
 
Аватар для was3110
 
Регистрация: 25.04.2010
Сообщений: 254
По умолчанию

могу помочь. сайт в профиле. контакты на сайте.
помогать студентам - моя вторая профессия
was3110 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Увеличение "глубины" вызова рекурсивных процедур Mixim Общие вопросы Delphi 1 06.03.2010 12:42
Ограничение на поворот тела KorDum Gamedev - cоздание игр: Unity, OpenGL, DirectX 8 05.07.2009 15:56
Движение тела под углом Lemo Помощь студентам 6 05.04.2009 14:49
Работа с DIB, изменение глубины цвета JOHNKZ1 Мультимедиа в Delphi 7 18.12.2008 06:52
Как отобразить категории, имеющие вложенность произвольной глубины?! Aska БД в Delphi 4 31.10.2007 01:03