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

Условие: По двум сторонам и углу между ними в треугольнике АВС найти два остальных угла и третью сторону. c^2 = a^2 + b^2 - 2 ab cos A - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.87
кверти
4 / 4 / 1
Регистрация: 22.09.2013
Сообщений: 133
Завершенные тесты: 2
22.09.2013, 13:40     Условие: По двум сторонам и углу между ними в треугольнике АВС найти два остальных угла и третью сторону. c^2 = a^2 + b^2 - 2 ab cos A #1
Условие: По двум сторонам и углу между ними в треугольнике АВС найти
два остальных угла и третью сторону.
c^2 = a^2 + b^2 - 2 ab cos A


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
#include <stdio.h>
#include <windows.h>
#include <math.h>
#include <iostream>
void main () {
    const float pi = 3.14159;
    setlocale (0,"");
    float a,b,c,angle_1,angle_2,angle_3;
printf ("Введите две стороны и угол \n");
scanf  ("%f%f%f", &a,&b,&angle_1); 
angle_1 = (angle_1 * pi) / 180;
c = a*a + b*b - 2 * a * b * cos(angle_1);
c = sqrt(c);
printf ("Третья сторона равна: %6.3f \n", c);
 
angle_2 = (pow(b,2) + pow(a,2) - pow(c,2)) / (2*b*c) ;
angle_2 = cos(angle_2);
angle_2 = acos(angle_2)+ 2 * pi ;
angle_3 = 180 - angle_1 - angle_2 ;
printf ("Второй угол = %6.3f \n", angle_2);
printf ("Третий угол = %6.3f \n", angle_3);
 
    system ("pause");
}

Моя проблема в нахождении второго угла треугольника. Подскажите что я делаю не так?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.09.2013, 13:40     Условие: По двум сторонам и углу между ними в треугольнике АВС найти два остальных угла и третью сторону. c^2 = a^2 + b^2 - 2 ab cos A
Посмотрите здесь:

В треугольнике найти длину и координаты основания высоты, опущенной из вершины А на сторону ВС C++
Найти площадь треугольника по заданным двум сторонам и углу между ними. C++
По длинам двух сторон некоторого треугольника и углу между ними найти длину третьей стороны и площадь этого треугольника C++
C++ По длинам двух сторон и углу найти третью сторону треугольника и его площадь
C++ Помогите найти ошибку: По двум сторонам и углу найти все остальное
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Valentina
66 / 66 / 3
Регистрация: 13.05.2012
Сообщений: 130
22.09.2013, 14:17     Условие: По двум сторонам и углу между ними в треугольнике АВС найти два остальных угла и третью сторону. c^2 = a^2 + b^2 - 2 ab cos A #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
#include <stdio.h>
#include <windows.h>
#include <math.h>
#include <iostream>
void main () {
    const float pi = 3.14159;
    setlocale (0,"");
    float a,b,c,angle_1,angle_2,angle_3;
printf ("Введите две стороны и угол \n");
scanf  ("%f%f%f", &a,&b,&angle_1); 
angle_1 = (angle_1 * pi) / 180;
c = a*a + b*b - 2 * a * b * cos(angle_1);
c = sqrt(c);
printf ("Третья сторона равна: %6.3f \n", c);
 
angle_2 = (pow(b,2) + pow(a,2) - pow(c,2)) / (2*b*c) ;
//angle_2 = cos(angle_2);
angle_2 = acos(angle_2)/ pi*180 ;
angle_3 = 180 - angle_1 - angle_2 ;
printf ("Второй угол = %6.3f \n", angle_2);
printf ("Третий угол = %6.3f \n", angle_3);
 
    system ("pause");
}
кверти
4 / 4 / 1
Регистрация: 22.09.2013
Сообщений: 133
Завершенные тесты: 2
22.09.2013, 14:29  [ТС]     Условие: По двум сторонам и углу между ними в треугольнике АВС найти два остальных угла и третью сторону. c^2 = a^2 + b^2 - 2 ab cos A #3
Цитата Сообщение от Valentina Посмотреть сообщение
Как-то так
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
#include <stdio.h>
#include <windows.h>
#include <math.h>
#include <iostream>
void main () {
    const float pi = 3.14159;
    setlocale (0,"");
    float a,b,c,angle_1,angle_2,angle_3;
printf ("Введите две стороны и угол \n");
scanf  ("%f%f%f", &a,&b,&angle_1); 
angle_1 = (angle_1 * pi) / 180;
c = a*a + b*b - 2 * a * b * cos(angle_1);
c = sqrt(c);
printf ("Третья сторона равна: %6.3f \n", c);
 
angle_2 = (pow(b,2) + pow(a,2) - pow(c,2)) / (2*b*c) ;
//angle_2 = cos(angle_2);
angle_2 = acos(angle_2)/ pi*180 ;
angle_3 = 180 - angle_1 - angle_2 ;
printf ("Второй угол = %6.3f \n", angle_2);
printf ("Третий угол = %6.3f \n", angle_3);
 
    system ("pause");
}
При вводе 3 3 90 получается тупой угол. Хотя треугольник прямоугольный .Вывод неверно. Может есть другая формула для получения углов? У меня подозрение на арккосинус.
Valentina
66 / 66 / 3
Регистрация: 13.05.2012
Сообщений: 130
22.09.2013, 15:03     Условие: По двум сторонам и углу между ними в треугольнике АВС найти два остальных угла и третью сторону. c^2 = a^2 + b^2 - 2 ab cos A #4
Цитата Сообщение от кверти Посмотреть сообщение
При вводе 3 3 90 получается тупой угол. Хотя треугольник прямоугольный .Вывод неверно. Может есть другая формула для получения углов? У меня подозрение на арккосинус.
так работает
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
#include <stdio.h>
#include <windows.h>
#include <math.h>
#include <iostream>
void main () {
    const float pi = 3.14159;
    setlocale (0,"");
    float a,b,c,angle_1,angle_2,angle_3,angle_4;
printf ("Введите две стороны и угол \n");
scanf  ("%f%f%f", &a,&b,&angle_1); 
angle_4=angle_1;
angle_1 = (angle_1 * pi) / 180;
float angle2=angle_1;
c = a*a + b*b - 2 * a * b * cos(angle_1);
c = sqrt(c);
printf ("Третья сторона равна: %6.3f \n", c);
 
angle_2 = acos((pow(a,2) - pow(b,2) - pow(c,2)) / (-2*b*c) );
//angle_2 = cos(angle_2);
angle_2 = acos(angle_2)/ pi*180 ;
angle_3 = 180 - angle_4 - angle_2 ;
printf ("Второй угол = %6.3f \n", angle_2);
printf ("Третий угол = %6.3f \n", angle_3);
 
    system ("pause");
}
кверти
4 / 4 / 1
Регистрация: 22.09.2013
Сообщений: 133
Завершенные тесты: 2
22.09.2013, 15:22  [ТС]     Условие: По двум сторонам и углу между ними в треугольнике АВС найти два остальных угла и третью сторону. c^2 = a^2 + b^2 - 2 ab cos A #5
Цитата Сообщение от Valentina Посмотреть сообщение
так работает
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
#include <stdio.h>
#include <windows.h>
#include <math.h>
#include <iostream>
void main () {
    const float pi = 3.14159;
    setlocale (0,"");
    float a,b,c,angle_1,angle_2,angle_3,angle_4;
printf ("Введите две стороны и угол \n");
scanf  ("%f%f%f", &a,&b,&angle_1); 
angle_4=angle_1;
angle_1 = (angle_1 * pi) / 180;
float angle2=angle_1;
c = a*a + b*b - 2 * a * b * cos(angle_1);
c = sqrt(c);
printf ("Третья сторона равна: %6.3f \n", c);
 
angle_2 = acos((pow(a,2) - pow(b,2) - pow(c,2)) / (-2*b*c) );
//angle_2 = cos(angle_2);
angle_2 = acos(angle_2)/ pi*180 ;
angle_3 = 180 - angle_4 - angle_2 ;
printf ("Второй угол = %6.3f \n", angle_2);
printf ("Третий угол = %6.3f \n", angle_3);
 
    system ("pause");
}
Спасибо, ошибку понял. Но считает всё равно не правильно=( . пусть вводим с клавы 3 3 и 90 где 3 3 стороны 90 угол . По некоторым расчетам два неизвестных угла будут равны по 45 градусов . (180-90)\2 А выводит. 38 и 51. В чем же проблема
Valentina
66 / 66 / 3
Регистрация: 13.05.2012
Сообщений: 130
22.09.2013, 15:43     Условие: По двум сторонам и углу между ними в треугольнике АВС найти два остальных угла и третью сторону. c^2 = a^2 + b^2 - 2 ab cos A #6
Цитата Сообщение от кверти Посмотреть сообщение
Спасибо, ошибку понял. Но считает всё равно не правильно=( . пусть вводим с клавы 3 3 и 90 где 3 3 стороны 90 угол . По некоторым расчетам два неизвестных угла будут равны по 45 градусов . (180-90)\2 А выводит. 38 и 51. В чем же проблема
вот так
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
#include <stdio.h>
#include <windows.h>
#include <math.h>
#include <iostream>
void main () {
    const float pi = 3.14159;
    setlocale (0,"");
    float a,b,c,angle_1,angle_2,angle_3,angle_4;
printf ("Введите две стороны и угол \n");
scanf  ("%f%f%f", &a,&b,&angle_1); 
angle_4=angle_1;
angle_1 = (angle_1 * pi) / 180;
float angle2=angle_1;
c = a*a + b*b - 2 * a * b * cos(angle_1);
c = sqrt(c);
printf ("Третья сторона равна: %6.3f \n", c);
 
angle_2 = acos((pow(a,2) - pow(b,2) - pow(c,2)) / (-2*b*c) );
//angle_2 = cos(angle_2);
angle_2 = angle_2/ pi*180 ;
angle_3 = 180 - angle_4 - angle_2 ;
printf ("Второй угол = %6.3f \n", angle_2);
printf ("Третий угол = %6.3f \n", angle_3);
 
    system ("pause");
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.09.2013, 15:50     Условие: По двум сторонам и углу между ними в треугольнике АВС найти два остальных угла и третью сторону. c^2 = a^2 + b^2 - 2 ab cos A
Еще ссылки по теме:

C++ В одномерном массиве найти два максимальных элемента и удалить все элементы между ними
Идентификация трапеции по двум сторонам и углу между ними C++
C++ Найти максимальную площадь треугольника по двум его сторонам

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

Или воспользуйтесь поиском по форуму:
кверти
4 / 4 / 1
Регистрация: 22.09.2013
Сообщений: 133
Завершенные тесты: 2
22.09.2013, 15:50  [ТС]     Условие: По двум сторонам и углу между ними в треугольнике АВС найти два остальных угла и третью сторону. c^2 = a^2 + b^2 - 2 ab cos A #7
Цитата Сообщение от Valentina Посмотреть сообщение
вот так
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
#include <stdio.h>
#include <windows.h>
#include <math.h>
#include <iostream>
void main () {
    const float pi = 3.14159;
    setlocale (0,"");
    float a,b,c,angle_1,angle_2,angle_3,angle_4;
printf ("Введите две стороны и угол \n");
scanf  ("%f%f%f", &a,&b,&angle_1); 
angle_4=angle_1;
angle_1 = (angle_1 * pi) / 180;
float angle2=angle_1;
c = a*a + b*b - 2 * a * b * cos(angle_1);
c = sqrt(c);
printf ("Третья сторона равна: %6.3f \n", c);
 
angle_2 = acos((pow(a,2) - pow(b,2) - pow(c,2)) / (-2*b*c) );
//angle_2 = cos(angle_2);
angle_2 = angle_2/ pi*180 ;
angle_3 = 180 - angle_4 - angle_2 ;
printf ("Второй угол = %6.3f \n", angle_2);
printf ("Третий угол = %6.3f \n", angle_3);
 
    system ("pause");
}
Спасибо огромное
Yandex
Объявления
22.09.2013, 15:50     Условие: По двум сторонам и углу между ними в треугольнике АВС найти два остальных угла и третью сторону. c^2 = a^2 + b^2 - 2 ab cos A
Ответ Создать тему
Опции темы

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