Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Где-то напутал в математике  (Прочитано 10961 раз)
0 Пользователей и 1 Гость смотрят эту тему.
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
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #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
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #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
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #5 : 03-11-2010 21:17 » 

правильно! на всю "скобку"
А нужно на ЧТО?
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
samlab
Гость
« Ответ #6 : 04-11-2010 16:10 » 

Да хз, препод видимо сам в математике не силен...  Ну да ладно, методом проб и ошибок, как-нибудь дойду... Хотелось бы уточнить вот еще что, если вместо чисел ввести, скажем - какой нить текст, то программа вылетит с ошибкой... Надо сделать какую нибудь проверку... Я вот как это вижу
Код:
If {сравниваем то, что ввели} Then
тут выполняем основной код
Else
Msg.Box msg , , "Ошибка"
End If
Подскажите, как сравнить, вернее, с чем?
Записан
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #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
Блюзмен
Команда клуба

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #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 » new

Спасибо

Добавлено через 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 » Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines