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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.87
кверти
4 / 4 / 1
Регистрация: 22.09.2013
Сообщений: 154
Завершенные тесты: 2
#1

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

22.09.2013, 13:40. Просмотров 1891. Ответов 6
Метки нет (Все метки)

Условие: По двум сторонам и углу между ними в треугольнике АВС найти
два остальных угла и третью сторону.
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");
}

Моя проблема в нахождении второго угла треугольника. Подскажите что я делаю не так?
0
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++
Доброго времени суток. В универе дали задание написать программу &quot;По двум сторонам и углу между ними в треугольнике АВС найти два остальных...

По длинам двух сторон и углу найти третью сторону треугольника и его площадь - C++
по длинам двух сторон некоторого треугольника и углу между ними найти длину третьей стороны и вычислить площадь этого треугольника

По двум сторонам a, b треугольника и углу между ними C найти третью сторону c , два других угла A,B и площадь - Matlab
Ребята,помогите!Не могу найти ошибку!Та же тема.Чего только не перепробовала,а считает неправильно. Формулы уже перепроверила... Вот...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Valentina
68 / 68 / 3
Регистрация: 13.05.2012
Сообщений: 130
22.09.2013, 14:17 #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");
}
0
кверти
4 / 4 / 1
Регистрация: 22.09.2013
Сообщений: 154
Завершенные тесты: 2
22.09.2013, 14:29  [ТС] #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 получается тупой угол. Хотя треугольник прямоугольный .Вывод неверно. Может есть другая формула для получения углов? У меня подозрение на арккосинус.
0
Valentina
68 / 68 / 3
Регистрация: 13.05.2012
Сообщений: 130
22.09.2013, 15:03 #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");
}
1
кверти
4 / 4 / 1
Регистрация: 22.09.2013
Сообщений: 154
Завершенные тесты: 2
22.09.2013, 15:22  [ТС] #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. В чем же проблема
0
Valentina
68 / 68 / 3
Регистрация: 13.05.2012
Сообщений: 130
22.09.2013, 15:43 #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");
}
1
кверти
4 / 4 / 1
Регистрация: 22.09.2013
Сообщений: 154
Завершенные тесты: 2
22.09.2013, 15:50  [ТС] #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");
}
Спасибо огромное
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.09.2013, 15:50
Привет! Вот еще темы с ответами:

По двум сторонам и одному углу найти третью сторону - Геометрия
Две стороны треугольника равны 3 и 7 см,а угол,противоположный большей из них,равен 600 а)Найти третью сторону б)Доказать,что угол...

По заданным длинам двух сторон треугольника и углу между ними найти длину третьей стороны и два остальных угла - PascalABC.NET
Даны действительные положительные числа a,b,c,которые задают длины сторон треугольника и угол между ними.Напишите программу,позволяющую...

Найти площадь треугольника по заданным двум сторонам и углу между ними. - Turbo Pascal
Предоставить возможность ввода угла в радианах или в градусах. Замечание: функция sin, встроенная в среду программирования СИ работает...

По двум сторонам и углу между ними найти остальные характеристики треугольника - Pascal
Помогите пожалуйста, кто сможет решить линейную задачу (во вложенной картинке). Заранее спасибо.


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

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

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