Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.54/13: Рейтинг темы: голосов - 13, средняя оценка - 4.54
0 / 0 / 1
Регистрация: 27.11.2018
Сообщений: 47
1

Не удаётся вычислить арксинус и арккосинус

28.11.2018, 15:21. Показов 2569. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
If button.Name = "OpARCSIN" Then
            Dim n As String = TextBox1.Text
            Dim result = New DataTable().Compute(n, Nothing)
            TextBox1.Text = TextBox1.Text * Math.PI / 180
            result = Math.Asin(n)
            TextBox1.Text = result
        End If
        If button.Name = "OpARCCOS" Then
            Dim o As String = TextBox1.Text
            Dim result = New DataTable().Compute(o, Nothing)
            TextBox1.Text = TextBox1.Text * Math.PI / 180
            result = Math.Acos(o)
            TextBox1.Text = result
        End If
Короче ни в радианах ни в градусах вычислять не хочет, пишет ошибку NaN. Арктангенс и Арккотангенс вычисляет спокойно.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.11.2018, 15:21
Ответы с готовыми решениями:

Записать выражение для функции: арксинус и арккосинус 2й степени
Добрый день,матлабом пользуюсь недавно,как записать такое выражение?

Как вычислить арккосинус
Ребят, кто-нибудь знает, как вычислить арккосинус в 2008-м ВБ? Старые примеры не работают.

Как поделить арксинус на арксинус
Как поделить арксинус на арксинус?

Программно вычислить арксинус 1
Всем доброе утро! Ребят, что-то меня подвели школьные знания математики, а именно тригонометрии. ....

9
es geht mir gut
11270 / 4752 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
28.11.2018, 15:25 2
Цитата Сообщение от Ramandu Посмотреть сообщение
ни в радианах ни в градусах вычислять не хоч
При чём тут градусы и радианы ?
Арксинус, это функция, обратная синусу. То есть, ее аргументом является значение синуса исходного угла, а возвращает она исходный угол
Добавлено через 1 минуту
Цитата Сообщение от Ramandu Посмотреть сообщение
VB.NET
1
2
3
4
5
Dim o As String = TextBox1.Text 
Dim result = New DataTable().Compute(o, Nothing) 
TextBox1.Text = TextBox1.Text * Math.PI / 180 
result = Math.Acos(o) 
TextBox1.Text = result
А это вообще ерунда какая-то

Зачем нужна 11-я строка в Вашем коде ?
0
0 / 0 / 1
Регистрация: 27.11.2018
Сообщений: 47
28.11.2018, 16:56  [ТС] 3
Для перевода в радианы а то с калькулятором Windows не сходится.

Добавлено через 5 минут
Ну и как поправить код? Ну чтобы арксинус и арккосинус вычислял.
0
es geht mir gut
11270 / 4752 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
28.11.2018, 16:57 4
Цитата Сообщение от Ramandu Посмотреть сообщение
Для перевода в радианы а то с калькулятором Windows не сходится.
Да это понятно, что Вы хотите сделать.
Вы переводите в радианы (зачем?) , но нигде это значение не используете.

Добавлено через 48 секунд
Цитата Сообщение от Ramandu Посмотреть сообщение
Ну чтобы арксинус и арккосинус вычислял.
Вы хотите арксинусу скормить градусы или радианы ?
0
es geht mir gut
11270 / 4752 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
28.11.2018, 17:12 5
Не удаётся вычислить арксинус и арккосинус
0
256 / 209 / 52
Регистрация: 01.08.2016
Сообщений: 815
28.11.2018, 17:28 6
Когда работаешь с числами и хочешь их вставлять из TextBox нужно переменным присваивать числовые значения
VB.NET
1
2
Dim n As double ' число с запятой
n=CDbl(TextBox1.Text)
или
VB.NET
1
2
Dim n As integer ' целое число
n=CInt(TextBox1.Text)
Добавлено через 9 минут
Потом чтобы меньше всяких приставок писать:
VB.NET
1
2
Imports System.Math
Public Class 1
1
es geht mir gut
11270 / 4752 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
28.11.2018, 17:34 7
Цитата Сообщение от andrsh Посмотреть сообщение
TextBox нужно переменным присваивать числовые значения
Согласен и поддерживаю. Но в тоже время неявное преобразование типов тоже никто не отменял.

Добавлено через 1 минуту
В моём примере всё работает
0
0 / 0 / 1
Регистрация: 27.11.2018
Сообщений: 47
28.11.2018, 19:28  [ТС] 8
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
Public Class Form1
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
 
    End Sub
 
    Private Sub ButtonClickMethod(sender As Object, e As EventArgs) Handles Num0.Click, Num1.Click,
...продолжение...
Dim button As Button = CType(sender, Button)
...продолжение...
If button.Name = "OpARCSIN" Then
            Dim n As String = TextBox1.Text
            Dim result = New DataTable().Compute(n, Nothing)
            TextBox1.Text = TextBox1.Text * Math.PI / 180
            result = Math.Asin(n)
            TextBox1.Text = result
        End If
        If button.Name = "OpARCCOS" Then
            Dim o As String = TextBox1.Text
            Dim result = New DataTable().Compute(o, Nothing)
            TextBox1.Text = TextBox1.Text * Math.PI / 180
            result = Math.Acos(o)
            TextBox1.Text = result
        If button.Name = "OpARCTG" Then
            Dim p As String = TextBox1.Text
            Dim result = New DataTable().Compute(p, Nothing)
            TextBox1.Text = TextBox1.Text * Math.PI / 180
            result = Math.Atan(p)
            TextBox1.Text = result
        End If
        If button.Name = "OpARCCTG" Then
            Dim q As String = TextBox1.Text
            Dim bb As String = -q
            Dim result = New DataTable().Compute(q, Nothing)
            TextBox1.Text = TextBox1.Text * Math.PI / 180
            result = Math.Atan(bb) + (Math.PI / 2)
            TextBox1.Text = result
        End If
Не работает где-то между Dim n As String и последним End If. Поясняю. Я должен в градусах ввести в TextBox1 некое число, после чего нажав на кнопку OpARCSIN, компьютер мне в том же TextBox1 выдать арксинус этого числа в радианах. То же самое и с арккосинусом (OpARCCOS). Типы Button и Private Sub менять нельзя. Странно, но арктангенс и арккотангенс работают нормально и без ошибок, хотя структура кода схожа с кодом для кнопок OpARCSIN и OpARCCOS.
0
4407 / 3531 / 843
Регистрация: 02.02.2013
Сообщений: 3,417
Записей в блоге: 2
28.11.2018, 20:43 9
Лучший ответ Сообщение было отмечено Ramandu как решение

Решение

Ramandu, вас уже пытались наставить на путь истинный, но как-то не получилось. Попробую еще раз.
Функция Arcsin(x):
-возвращает значение угла, синус которого равен значению аргумента(x)
-допустимые значения аргумента (x) [1,-1]
Аналогично и для ArccCos.
Исходя из этого и разбирайтесь с вашим кодом.
1
0 / 0 / 1
Регистрация: 27.11.2018
Сообщений: 47
28.11.2018, 20:51  [ТС] 10
А...допёр. Действительно, не работало потому что я прописывал число 5, т.е. выше 1. А так работает. Ща допишу в код, что если число меньше -1 или больше 1, то чтобы вводили в этом диапазоне.
0
28.11.2018, 20:51
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.11.2018, 20:51
Помогаю со студенческими работами здесь

Вычислить арксинус угла в градусах
x = asin(sin(y * (pi / 180))) * (180 / pi); Краткое описание: х - искомый результат (арксинус в...

Арккосинус
Нужно написать arccos(2х) я решил сделать через арктангенс но выдает -0 при значений (-0.5)...

Арккосинус комплексного числа
В данный момент изучаю комплексные числа, мне нравится самостоятельно выводить формулы, но с...

Записать арккосинус большого выражения в паскале
нужно записать в паскале arccos^2(1/(a-ln(x))) я записываю ...

Не переводит значение в арккосинус(градусы). acos
cout << "Данные углов косинуса: " << endl; cout << "Cos(β) = " << (b*b + c * c - a * a) / (2...

Как правильно прописать функцию, в которой используется арккосинус?
Заданы действительные числа a,b. Получить (y(a)-3y(b))/(1+y(a+b)), где y(x)=arccos(2x)/(x+x^2) ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru