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

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

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.05.2010, 02:28   #1
HpPaviliondv7
Пользователь
 
Регистрация: 21.04.2010
Сообщений: 19
По умолчанию UserForm построить траекторию полёта

Приветствую всех!
Задание такое: Тело брошено под углом a к горизонту со скоростью v. Построить траекторию полёта.
Алгоритм решения:
1.Находим время полёта тела t = (2 * v * Sin(a)) / g, где g=9.81
2.Разбиваем время допустим на 20 инаходим координаты точки в t1,t2,...t20 и строим траекторию полёта.
координаты можно посчитать по х=v*Cos(a)*t1
y=v*Sin(a)*t1-(g*t1^2)/2
Вобщем начал делать обработка ошибок не работает, и значение t считает отрицательным...вот код программы :
Private Sub CommandButton1_Click()
Dim v As Double, a As Double, t As Double, g As Double
v = TextBox1.Text
If IsNumeric(v) = False Then
Call MsgBox("Vvedite 4islo.", , "Oshibka!")
TextBox1.Text = ""
TextBox1.SetFocus
Exit Sub
End If
v = CDbl(TextBox1.Text)
a = TextBox2.Text
If IsNumeric(a) = False Then
Call MsgBox("Vvedite 4islo.", , "Oshibka!")
TextBox2.Text = ""
TextBox2.SetFocus
Exit Sub
End If
a = CDbl(TextBox2.Text)
g = 9.81
t = (2 * v * Sin(a)) / g
Worksheets(1).Cells(1, 1) = t
End Sub

Или вот сама форма:
http://rghost.net/1524206

Надеюсь на Вашу помощь!
HpPaviliondv7 вне форума Ответить с цитированием
Старый 03.05.2010, 18:52   #2
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

ваша ошибка в том.что при вычислении тригонометрических функций используете меру углов в градусах.а надо в радианах
Вложения
Тип файла: rar Книга2.rar (14.2 Кб, 36 просмотров)
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 03.05.2010, 19:08   #3
HpPaviliondv7
Пользователь
 
Регистрация: 21.04.2010
Сообщений: 19
По умолчанию

Спасибо, что откликнулись...я уже сам нашол ошибку)
HpPaviliondv7 вне форума Ответить с цитированием
Старый 03.05.2010, 19:45   #4
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

решение без UserForm. см. вложение
Вложения
Тип файла: rar книга318.rar (7.9 Кб, 28 просмотров)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 04.05.2010, 01:03   #5
HpPaviliondv7
Пользователь
 
Регистрация: 21.04.2010
Сообщений: 19
По умолчанию IgorGO

Сделано великалепно...но мне нужно в юзер форме...помогите пожалуйста!
вот то, что уменя получилось, но не правильно считает координаты и не правильно строит график!
Траектория.rar
HpPaviliondv7 вне форума Ответить с цитированием
Старый 04.05.2010, 01:59   #6
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Так работает
Код:

Private Sub CommandButton1_Click()
Dim v As Double, a As Double, t As Double, i As Integer
Dim dStep As Double, dSin As Double, dCos As Double, oCntrl As Control
Const g As Double = 9.81
Const Pi As Double = 3.1415
For Each oCntrl In Frame1.Controls
    If Not IsNumeric(oCntrl.Text) Then
        MsgBox "Input error", vbCritical
        oCntrl.Text = vbNullString
        oCntrl.SetFocus
        Exit Sub
    End If
Next
v = CDbl(TextBox1.Text)
a = CDbl(TextBox2.Text) * Pi / 180
dSin = Sin(a)
dCos = Cos(a)
t = (2 * v * dSin) / g
Label4.Caption = t
dStep = 0
For i = 1 To 20
    Worksheets(1).Cells(i, 1) = v * dCos * dStep
    Worksheets(1).Cells(i, 2) = v * dSin * dStep - (g * (dStep) ^ 2) / 2
    dStep = dStep + t / 20
Next
End Sub
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 04.05.2010, 05:39   #7
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

или такой еще вариант, с графиком на форме.
Вложения
Тип файла: rar книга318.rar (16.8 Кб, 22 просмотров)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 04.05.2010, 13:09   #8
HpPaviliondv7
Пользователь
 
Регистрация: 21.04.2010
Сообщений: 19
По умолчанию

Всем спасибо...огроное!
HpPaviliondv7 вне форума Ответить с цитированием
Старый 04.05.2010, 23:16   #9
HpPaviliondv7
Пользователь
 
Регистрация: 21.04.2010
Сообщений: 19
По умолчанию

Уважаемые...Я немного переделал все работает вот только осталось оси в графике подписать х и у...и проверку на ошибки для TextBox1 на отрицательные числа...TextBox2 на промежуток значений от 0 до 90...на текст проверку сделал...И для CommandButton4 (очистка) задать, что бы убирал и весь график...все остальное я сделал, что бы убирал...
Помогите пожалуйста вот форма.Траектория_end_version - копия.rar
HpPaviliondv7 вне форума Ответить с цитированием
Старый 05.05.2010, 00:19   #10
HpPaviliondv7
Пользователь
 
Регистрация: 21.04.2010
Сообщений: 19
По умолчанию Исправил ошибки

Вот тоько, что исправил ошибки...все работают...
Осталось подписать оси на графике...подскажите как это сделать...поставить Х и У??Траектория_end_version - копия.rar
HpPaviliondv7 вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
UserForm Hide Show Insainer Microsoft Office Excel 9 28.11.2010 16:31
userform в vba Юлия1717 Помощь студентам 0 15.03.2010 14:54
VBA (UserForm) Zhene4ka2607 Помощь студентам 2 08.06.2009 16:59
2 вопроса по UserForm tolikman Microsoft Office Excel 4 25.11.2008 22:50
Помогите с UserForm Maxx Microsoft Office Excel 4 12.11.2008 11:37