| 
			| 
					
						| 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
Результат: TrueFalse
 По результату проверки принимайте решение, стоит ли пытаться преобразовать строку в число. |  
						| 
								|  |  
								|  |  Записан | 
 
 Всего лишь неделя кодирования с последующей неделей отладки могут сэкономить целый час, потраченный на планирование программы. - Дж. Коплин.
 Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - 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 » |  Записан | 
 |  |  | 
	|  |