samlab
Гость
|
|
« : 03-11-2010 20:21 » |
|
Dim u, v, x, y, z As Variant
Private Sub cmd1_Click() x = CVar(txt1.Text) v = x - 2 * Tan(1) u = 2 * (Atn(3) + Log(7 * x)) y = Cos(u) + (8 * Sin(3 * v)) z = Round(y, 3) lbl2 = z End Sub
Private Sub cmd2_Click() End End Sub
Проверьте, пожалуйста, где я напутал в математике... При x=0,77 должно выдать y= -6,457. Задали по информатике курсовую работу, а я в математике полный профан, на вас только и надежда...
|
|
« Последнее редактирование: 03-11-2010 20:23 от Sel »
|
Записан
|
|
|
|
Sla
|
|
« Ответ #1 : 03-11-2010 20:33 » |
|
нужна начальная формула.
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
samlab
Гость
|
|
« Ответ #2 : 03-11-2010 20:41 » |
|
Начальные данные y = cos u + 8 sin 3v u = 2 arctg 3 + lg7x v = x - 2 tg 1 Найти y при x=0,77
|
|
« Последнее редактирование: 03-11-2010 20:48 от samlab »
|
Записан
|
|
|
|
Sla
|
|
« Ответ #3 : 03-11-2010 21:10 » |
|
Задание u = 2 arctg 3 + lg7x
Реализация u = 2 * (Atn(3) + Log(7 * x))
Два умножить на ЧТО?
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
samlab
Гость
|
|
« Ответ #4 : 03-11-2010 21:16 » |
|
Не знаю, если честно, скорее всего, на скобку всю. Хотя, может и на первое выражение только.
|
|
|
Записан
|
|
|
|
Sla
|
|
« Ответ #5 : 03-11-2010 21:17 » |
|
правильно! на всю "скобку" А нужно на ЧТО?
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
samlab
Гость
|
|
« Ответ #6 : 04-11-2010 16:10 » |
|
Да хз, препод видимо сам в математике не силен... Ну да ладно, методом проб и ошибок, как-нибудь дойду... Хотелось бы уточнить вот еще что, если вместо чисел ввести, скажем - какой нить текст, то программа вылетит с ошибкой... Надо сделать какую нибудь проверку... Я вот как это вижу If {сравниваем то, что ввели} Then тут выполняем основной код Else Msg.Box msg , , "Ошибка" End If
Подскажите, как сравнить, вернее, с чем?
|
|
|
Записан
|
|
|
|
Sla
|
|
« Ответ #7 : 04-11-2010 18:36 » |
|
возможно здесь поможет функция Val
Value = Val("12345.678")
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
samlab
Гость
|
|
« Ответ #8 : 04-11-2010 19:08 » |
|
Спасибо, но не работает... Видимо, нужна функция для преобразования строки в число, где это возможно... Или регулярным выражением показать, что вводить можно только числа... Dim u, v, x, y, z As Double
Private Sub cmd1_Click() x = (txt1) If x <> 0 And x <> "" Then v = x - (2 * Tan(1)) u = 2 * (Atn(3) + Log(7 * x)) y = Cos(u) + (8 * Sin(3 * v)) z = Round(y, 3) lbl2 = z Else MsgBox "Enter a valid number", , "Error" End If End Sub
Private Sub cmd2_Click() End End Sub
Private Sub cmd4_Click() txt1 = "" lbl2 = "" End Sub
Вот так вот я запретил ввод нуля и пустой строки
|
|
« Последнее редактирование: 04-11-2010 19:42 от samlab »
|
Записан
|
|
|
|
Dale
|
|
« Ответ #9 : 04-11-2010 22:44 » |
|
Спасибо, но не работает... Видимо, нужна функция для преобразования строки в число, где это возможно... Функция IsNumeric проверяет, может ли строка быть вычислена как численное выражение. Пример: Public Sub Main() Debug.Print IsNumeric("123") Debug.Print IsNumeric("abc") End Sub Результат: True False По результату проверки принимайте решение, стоит ли пытаться преобразовать строку в число.
|
|
|
Записан
|
Всего лишь неделя кодирования с последующей неделей отладки могут сэкономить целый час, потраченный на планирование программы. - Дж. Коплин.
Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard
Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
|
|
|
samlab
Гость
|
|
« Ответ #10 : 06-11-2010 21:04 » |
|
Спасибо Добавлено через 1 день, 3 часа, 59 минут и 55 секунд:Вот как все-таки вышел из положения, хотя ответ все-равно не сходится Private Sub cmd1_Click() x = Val(txt1.Text) If (x <> 0) And (x <> "") Then u = (2 * Atn(3)) + (Log(7 * x)) v = x - (2 * Tan(1)) y = Cos(u) + (8 * Sin(3 * v)) p = Round(y, 3) MsgBox p, vbInformation, "Ответ" Else MsgBox "Введите число", vbCritical, "Ошибка" End If End Sub
Private Sub cmd2_Click() End End Sub
Private Sub cmd3_Click() txt1.Text = "" End Sub
Пробовал в начале объявлять переменные Dim x, u, y, v, p As Double Думал, может повысится точность подсчета, но ничего не поменялось.
|
|
« Последнее редактирование: 08-11-2010 01:04 от samlab »
|
Записан
|
|
|
|
|