Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 19, средняя оценка - 4.89
Craw
235 / 46 / 4
Регистрация: 10.06.2012
Сообщений: 268
Записей в блоге: 1
#1

Вычислить арксинус угла в градусах - C++

02.11.2013, 23:42. Просмотров 2599. Ответов 8
Метки нет (Все метки)

C++
1
x = asin(sin(y * (pi / 180))) * (180 / pi);
Краткое описание:
х - искомый результат (арксинус в градусах), у - угол в градусах.
В качестве параметра функции asin нужно передать синус угла в радианах, который вычисляется функцией sin, параметром которой является угол в радианах (поэтому мы переводим градусы в радианы). Т.к. asin возвращает значение в радианах, то переводим в градусы.

Компилируется без проблем, но во время работы возникает ошибка - входная строка имела неверный формат. Честно говоря, никак не могу понять, в чём дело, может быть ошибка где-то в вычислении?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.11.2013, 23:42
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вычислить арксинус угла в градусах (C++):

Рассчитать квадрат синуса угла, значение угла вводится с клавиатуры в градусах - C++
Помогите. Нужно написать программу на СИ(в Visual Studio) которая расчитывает синус угла в квадрате , значение угла вводится с клавиатуры в...

Дано значение угла alfa в радианах (0 < alfa < 2*pi). Определить значение этого же угла в градусах - C++
Здравствуйте я тока начинаю юзать с++ помоги пожалуйста заранее спасибо Дано значение угла alfa в радианах (0 &lt; alfa &lt; 2*pi). Определить...

Найти значение угла в градусах, минутах и секундах - C++
Задано значение угла в радианах. Найти его величину в градусах, минутах и секундах.

Описать функцию, которая вычисляет тангенс угла, введенного в градусах - C++
Описать функцию, которая вычисляет тангенс угла, введенного в градусах.

Описать Функцию RadToDeg(R) вещественного типа, находящую величину угла в градусах - C++
Описать Функцию RadToDeg(R) вещественного типа, находящую величину угла в градусах, если дана его величина R в радианах ( R- вещественное...

Даны два угла треугольника (в градусах ). Определить существует ли такой треугольник - C++
2. Даны два угла треугольника (в градусах ). Определить существует ли такой треугольник. Если да, то будет ли он прямоугольным.,,, что...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
chedman
81 / 80 / 2
Регистрация: 30.10.2013
Сообщений: 251
03.11.2013, 08:43 #2
У меня это работает
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include <math.h>
 
using namespace std;
 
int main()
{
    double y,x;
    cin >> y;
    x = asin(sin(y * (M_PI / 180))) * (180 / M_PI);
    cout << x << endl;
    return 0;
}
Craw
235 / 46 / 4
Регистрация: 10.06.2012
Сообщений: 268
Записей в блоге: 1
03.11.2013, 14:53  [ТС] #3
х и у должны быть равны: arcsin (sin x) = x, но у меня это не получается никак. Например, если у = 45, то х = -62217693,87. Всё верно только при у = 0 (х = 0).

Прилагаю проект, чтобы могли увидеть проблему и помочь с решением.
Вложения
Тип файла: zip Arcsin x.zip (2.47 Мб, 8 просмотров)
chedman
81 / 80 / 2
Регистрация: 30.10.2013
Сообщений: 251
03.11.2013, 15:56 #4
А почему у тебя
C++
1
#define pi 3,141592653
А не
C++
1
#define pi 3.141592653
Craw
235 / 46 / 4
Регистрация: 10.06.2012
Сообщений: 268
Записей в блоге: 1
03.11.2013, 20:50  [ТС] #5
Да, спасибо, а то я и не заметил.

Проблема теперь немного иного характера. Вычисляю arcsin x я так:
C++
1
x = asin(y) * (180 / pi);
где y = sin a, x = a. При у = 1 ответ верный - х = 90. А вот при 0,5 (или 0.5) вместо 45 выдает ошибку - неверный формат строки. Не могу понять, почему отказывается работать с разделителями?
chedman
81 / 80 / 2
Регистрация: 30.10.2013
Сообщений: 251
03.11.2013, 21:05 #6
Вроде нормальная строка кода, может вместо "180" написать "180.", хотя врятли.
Может проблема в другом месте, ну там с типами данных или командами ввода/вывода чета не то.
Craw
235 / 46 / 4
Регистрация: 10.06.2012
Сообщений: 268
Записей в блоге: 1
03.11.2013, 21:15  [ТС] #7
Скорее всего это так, где-то с типами. Но никак не могу найти. Вот проект (делаю калькулятор), буду очень благодарен, если посмотрите ошибку:
Вложения
Тип файла: zip Калькулятор.zip (3.30 Мб, 10 просмотров)
chedman
81 / 80 / 2
Регистрация: 30.10.2013
Сообщений: 251
03.11.2013, 21:25 #8
поменяй 180 на 180.0
у себя это не могу проверить т.к. не использую Visual С++
Craw
235 / 46 / 4
Регистрация: 10.06.2012
Сообщений: 268
Записей в блоге: 1
03.11.2013, 21:35  [ТС] #9

У меня было
C++
1
double y = Convert::ToInt32(txtNumber->Text);
причиной всех бед!

Но всё равно спасибо за помощь, иногда бывает очень трудно разглядеть такие ошибки. Да и компилятор не помог, хотя тут явная ошибка, ничего не заподозрил.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.11.2013, 21:35
Привет! Вот еще темы с ответами:

Даны два угла треугольника (в градусах). Определить существует ли такой треугольник - C++
10 Даны два угла треугольника (в градусах). Определить существует ли такой треугольник, и если да, то будет ли он прямоугольным. Результаты...

Найти (в градусах, минутах и секундах) все угла треугольника, вершины которого заданы координатами (x1, y1), (x2, y2), (x3, y3) - C++
Найти (в градусах, минутах и секундах) все угла треугольника, вершины которого заданы координатами (x1, y1), (x2, y2), (x3, y3).

Даны два угла треугольника (в градусах ). Определить существует ли такой треугольник. Если да, то будет ли он прямоугольным. - C++
Даны два угла треугольника (в градусах ). Определить существует ли такой треугольник. Если да, то будет ли он прямоугольным. (заранее...

В заданном прямоугольном треугольнике вычислить гипотенузу и величины двух углов в градусах - C++
#include &lt;iostream&gt; #include&lt;math.h&gt; using namespace std; int main () { float a,b,с,B,A; const float...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
03.11.2013, 21:35
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru