Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
AndrewWhite
0 / 0 / 0
Регистрация: 29.01.2014
Сообщений: 16
#1

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

27.04.2014, 23:36. Просмотров 320. Ответов 2
Метки нет (Все метки)

Здравствуйте, есть задача:
найти площадь треугольника разными способами. Во втором способе не правильно вычисляется синус угла, иногда выдает отрицательные значения. Как исправить?

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;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.04.2014, 23:36
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Не правильно работает sin() (C++):

Подскажите как написать в С++: Вывести «столбиком» значения sin 0,l, sin 0,2, ., sin l,l - C++
Вот такое задание Вывести «столбиком» значения sin 0,l, sin 0,2, ..., sin l,l.

Найти сумму 1/sin(1)+1/(sin(1)+sin(2))+... - C++
Нужно найти сумму S=1/sin(1)+1/(sin(1)+sin(2))+1/(sin(1)+sin(2) ... +sin(n)) ПОЖАЛУЙСТА! ПОМОГИТЕ!

Вычислить выражение sin(sin(sin...(x))...) - C++
Вычислить y=sinsin...sinx, где количество повторений sin=n. #include &lt;iostream&gt; #include &lt;cmath&gt; using namespace std; int...

Не могу понять почему не работает (или правильно не работает) - C++
#include &lt;iostream.h&gt; #include &lt;conio.h&gt; #define N 5 #define M 3 void main() { int a; int i,j; cout&lt;&lt;&quot;nachalnya...

задача! S = sin X + sin X^2 + sin x^3 + sin X^4+…+sin X^n - 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++
я как то писал уже на форуме эту тему, простите если повторяюсь! спасибо большое за помощь в задаче, но возниакает новый вопрос, правильно...

2
Chernobyl
214 / 214 / 67
Регистрация: 30.09.2012
Сообщений: 545
27.04.2014, 23:42 #2
AndrewWhite, sin с math в качестве аргумента принимает угол в радианах. Если вписываете градусы, то переведите их програмно в радианы.
1
AndrewWhite
0 / 0 / 0
Регистрация: 29.01.2014
Сообщений: 16
27.04.2014, 23:56  [ТС] #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;
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.04.2014, 23:56
Привет! Вот еще темы с ответами:

Цикл: 1/sin(n!)-2/sin((n-1)!)-3/sin((n-2)!)-4/sin((n-3)!) - C++
Решите плз задачку надо написать цыкл 1/sin(n!)-2/sin((n-1)!)-3/sin((n-2)!)-4/sin((n-3)!).......и тд.

Функция sin(x+y)=sin(x)cos(y)+cos(x)sin(y) - C++
как её записать на языке с++?

Не правильно работает! - C++
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;math.h&gt; #include &lt;stdio.h&gt; using namespace std; double...

Не правильно работает! - C++
Дана матрица размера M × N. Найти номера строки и столбца для элемента матрицы, наиболее близкого к среднему значе-нию всех ее...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

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