2014-01-04 6 views
0

Итак, я пытаюсь изучить vbscript, и я столкнулся с проблемой: введите несоответствие. Я не разбираюсь в vbs, поэтому не знаю, где ошибка. Я пишу программу, которая запрашивает стороны правого треугольника и углов, тогда программа дает мне все свои данные. Мне нужен код для получения углов тригонометрическими функциями (sin * α * = a/c, и вы знаете «a» и «c»). Это является частью всей программы (где обратная тригонометрическая функция является) .Type в 0,8 (а = 4, Ь = 3, с = 5):Ошибка несоответствия типа Vbscript

u1 = "Type the quotient of a and c!" 
f = "Math" 
e =Inputbox(u1, f) 
c = Sqr(-e^e+1) 
a = Atn(e/c) 
u = "α=" & a & vbCrLf 
k = 0+64 
msgbox u, k, f 

Если что-то неясно, пожалуйста, предупредите меня. Английский не мой родной язык, поэтому я не очень хорошо знаю выражения математики. С наилучшими пожеланиями Мэтью Szertel

ответ

0

VBScript не справится с выражением -e^e+1, если e не является целым числом. Это не даст вам показатель отрицательного нецелого числа. Но учитывая, что показатель отрицательного числа является его абсолютной величиной (т. Е. Положительной), возможно, вы можете просто сделать Sqr(e^e+1)? Я проверил это, и это сработало для меня, хотя я не проверял математическую точность.

См. MSDN. Это означает, что:

«Число может быть отрицательным, только если показатель степени является целым числом».

Я не против VBScript как такового, но он не очень подходит для математической работы.

Обновление: Повторное чтение вашего сообщения Я подозреваю, что вы печатаете «0.8!». с восклицательным знаком в поле ввода. Если это так, то вы действительно получите Type Mismatch, так как число с восклицательным знаком будет просто рассматриваться как строка, то есть текст, и не может использоваться в любой математической операции.

Смежные вопросы