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

Не правильно работает sin() - C++

Восстановить пароль Регистрация
 
AndrewWhite
0 / 0 / 0
Регистрация: 29.01.2014
Сообщений: 16
27.04.2014, 23:36     Не правильно работает sin() #1
Здравствуйте, есть задача:
найти площадь треугольника разными способами. Во втором способе не правильно вычисляется синус угла, иногда выдает отрицательные значения. Как исправить?

C++
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#include <iostream.h>
#include <conio.h>
#include <math.h>
 
double ploschad_1(double, double);
double ploschad_2(double, double, double);
double ploschad_3(double, double, double);
 
int main()
{
double a, b, c, h, p, angle;
cout << "Enter a, b, c: " << endl;
   cin >> a >> b >>c;
cout << "Enter H(a): " << endl;
   cin >> h;
cout << "Enter angle: " << endl;
   cin >> angle;
cout << "\n------Results------" << endl;
 
p=ploschad_1(a,h);
   cout << "a*H(a)/2 = " << p << endl;
p=ploschad_2(b,c,angle);
   cout << "b*c*sin(angle)/2 = " << p << endl;
p=ploschad_3(a,b,c);
   cout << "sqrt( p(p-a)(p-b)(p-c) ) = " << p << endl;
 
getch();
return 0;
}
 
double ploschad_1(double d1, double d2)
{
   double s;
   s=d1*d2/2;
   return s;
}
 
double ploschad_2(double d1, double d2, double d3)
{
   double s;
   s=(d1*d2/2)*sin(d3);
   return s;
}
 
double ploschad_3(double d1, double d2, double d3)
{
   double s, p;
   p=(d1+d2+d3)/2;
   s=sqrt((p*(p-d1)*(p-d2)*(p-d3)));
   return s;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.04.2014, 23:36     Не правильно работает sin()
Посмотрите здесь:

C++ Не правильно работает. s = (a/(b*(c/(d*(e/(f*h))))));
C++ Цикл: 1/sin(n!)-2/sin((n-1)!)-3/sin((n-2)!)-4/sin((n-3)!)
C++ задача! S = sin X + sin X^2 + sin x^3 + sin X^4+…+sin X^n
задачка S = sin X + sin X^2 + sin x^3 + sin X^4+…+sin X^n C++
C++ Не правильно работает if C++
Не правильно работает! C++
C++ Подскажите как написать в С++: Вывести «столбиком» значения sin 0,l, sin 0,2, ., sin l,l
Вычислить выражение sin(sin(sin...(x))...) C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Chernobyl
211 / 211 / 67
Регистрация: 30.09.2012
Сообщений: 526
27.04.2014, 23:42     Не правильно работает sin() #2
AndrewWhite, sin с math в качестве аргумента принимает угол в радианах. Если вписываете градусы, то переведите их програмно в радианы.
AndrewWhite
0 / 0 / 0
Регистрация: 29.01.2014
Сообщений: 16
27.04.2014, 23:56  [ТС]     Не правильно работает sin() #3
Chernobyl, а как это сделать ?

Добавлено через 7 минут
Все, вопрос снят.

C++
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#include <iostream.h>
#include <conio.h>
#include <math.h>
#define pi 3.14159
 
double ploschad_1(double, double);
double ploschad_2(double, double, double);
double ploschad_3(double, double, double);
 
int main()
{
double a, b, c, h, p, angle, rad;
 
cout << "Enter a, b, c: " << endl;
   cin >> a >> b >>c;
cout << "Enter H(a): " << endl;
   cin >> h;
cout << "Enter angle: " << endl;
   cin >> angle;
cout << "\n------Results------" << endl;
 
rad=(angle*(pi/180));
 
p=ploschad_1(a,h);
   cout << "a*H(a)/2 = " << p << endl;
p=ploschad_2(b,c,rad);
   cout << "b*c*sin(angle)/2 = " << p << endl;
p=ploschad_3(a,b,c);
   cout << "sqrt( p(p-a)(p-b)(p-c) ) = " << p << endl;
 
getch();
return 0;
}
 
double ploschad_1(double d1, double d2)
{
   double s;
   s=d1*d2/2;
   return s;
}
 
double ploschad_2(double d1, double d2, double d3)
{
   double s;
   s=(d1*d2*sin(d3))/2;
   return s;
}
 
double ploschad_3(double d1, double d2, double d3)
{
   double s, p;
   p=(d1+d2+d3)/2;
   s=sqrt((p*(p-d1)*(p-d2)*(p-d3)));
   return s;
}
Yandex
Объявления
27.04.2014, 23:56     Не правильно работает sin()
Ответ Создать тему
Опции темы

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