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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.58
Zverit
Уничтожитель печенек
 Аватар для Zverit
277 / 205 / 21
Регистрация: 07.02.2010
Сообщений: 723
#1

Теорема синусов - C++

18.06.2011, 23:22. Просмотров 1509. Ответов 8

C++
1
2
3
4
5
6
7
8
float y,a,b,u;
cin>>y;
y = M_PI * y / 180;
cin>>a;
cin>>b;
u = (b/a - cos(y))/sin(y);
u = cos(u)/sin(u);
cout<<u;
Выдает не то значение угла.
В чем ошибка?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jupiter
Каратель
Эксперт C++
6547 / 3967 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
18.06.2011, 23:27     Теорема синусов #2
а u в радианы кто переведет?
grizlik78
Эксперт С++
 Аватар для grizlik78
1890 / 1422 / 104
Регистрация: 29.05.2011
Сообщений: 2,977
18.06.2011, 23:31     Теорема синусов #3
А где здесь теорема синусов? Это ребус что ли?
Кто такие a, b, y, u?
Zverit
Уничтожитель печенек
 Аватар для Zverit
277 / 205 / 21
Регистрация: 07.02.2010
Сообщений: 723
18.06.2011, 23:33  [ТС]     Теорема синусов #4
Maxwe11, Дык здесь, вроде бы, нужно переводить только y в радианы

Добавлено через 1 минуту
grizlik78, ну это часть теоремы. вычисление только одного угла.
a,b - стороны. y - угол. u - вычисляемый угол
grizlik78
Эксперт С++
 Аватар для grizlik78
1890 / 1422 / 104
Регистрация: 29.05.2011
Сообщений: 2,977
18.06.2011, 23:35     Теорема синусов #5
Углы против этих сторон? Который из них против a, какой против b?
Zverit
Уничтожитель печенек
 Аватар для Zverit
277 / 205 / 21
Регистрация: 07.02.2010
Сообщений: 723
18.06.2011, 23:46  [ТС]     Теорема синусов #6
grizlik78, Угол y угол между ними. Угол u противолежащий стороне a

Добавлено через 7 минут
Можете не исправлять мои ошибки в программе. А просто дать алгоритм, как вычислять по теореме синусов
grizlik78
Эксперт С++
 Аватар для grizlik78
1890 / 1422 / 104
Регистрация: 29.05.2011
Сообщений: 2,977
19.06.2011, 00:16     Теорема синусов #7
У меня получается так. Без арксинуса не уверен, что можно обойтись
C
1
2
3
beta = asin( b*sin(u)/a );
c = b*cos(u)+a*cos(beta);
y = asin( c*sin(u)/a);
Вроде правильно, хотя мог и ошибиться при выводе

Добавлено через 1 минуту
То есть от первого-то можно избавиться с помощью квадрата и корня, а от второго никуда всё-равно

Добавлено через 1 минуту
А, блин. я углы попутал

Добавлено через 5 минут
В общем, как найти угол мне понятно, непонятно разрешают ли это условия задачи
По 2 сторонам и углу между ними находится 3-я используя теорему косинусов. А уж потом можно использовать теорему синусов, чтобы найти остальные два угла. Так пойдёт?

Добавлено через 4 минуты
C
1
2
с = sqrt(a*a+b*b-2*a*b*sin(y));
u = asin(a*sin(y)/c);
Zverit
Уничтожитель печенек
 Аватар для Zverit
277 / 205 / 21
Регистрация: 07.02.2010
Сообщений: 723
19.06.2011, 11:22  [ТС]     Теорема синусов #8
Цитата Сообщение от grizlik78 Посмотреть сообщение
с = sqrt(a*a+b*b-2*a*b*sin(y));
Как я понимаю, здесь вместо синуса должен быть косинус
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.06.2011, 11:56     Теорема синусов
Еще ссылки по теме:

Китайская теорема. Информ. безопасность C++
Программа выводит таблицу значений синусов или косинусов C++
C++ Методы построения простых больших чисел, теорема Поклингтона
C++ Теорема Пифагора
Теорема ферма для n>2 C++

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

Или воспользуйтесь поиском по форуму:
grizlik78
Эксперт С++
 Аватар для grizlik78
1890 / 1422 / 104
Регистрация: 29.05.2011
Сообщений: 2,977
19.06.2011, 11:56     Теорема синусов #9
Да, это же теорема косинусов. Негодяи какие-то там синус вписали
Yandex
Объявления
19.06.2011, 11:56     Теорема синусов
Ответ Создать тему
Опции темы

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