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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.75
REALIST07
Автор FAQ
Автор FAQ
176 / 176 / 13
Регистрация: 11.06.2010
Сообщений: 932
#1

Вычислить сторону треугольника ABC, зная две другие стороны и угол между ними - C++

15.09.2010, 00:09. Просмотров 1788. Ответов 31
Метки нет (Все метки)

есть код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
{float a,b,c,x;
 
    setlocale(LC_ALL,"Russian");
    cout<<"Вычислить сторону треугольника ABC, зная две другие стороны и угол между ними;"<<endl;
    cout<<"Введите длину A:";
    cin>>a;
    cout<<"Введите длину B:";
    cin>>b;
    cout<<"Введите величину угла в градусах:";
    cin>>x;
    c=pow(a,2)+pow(b,2)-2*a*b*cos(x);
cout<<"Сторона С="<<c<<endl;
    system("pause");
 
 
}
вроде норм компилируется и запускается но при проверке выдает неправильные рез-ты почему?
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.09.2010, 00:09
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вычислить сторону треугольника ABC, зная две другие стороны и угол между ними (C++):

Найти заданный угол треугольника, зная две его стороны и периметр - C++
Всем привет. Что то я совсем туплю с этой тригонометрией, хотя школу всего 5 лет назад закончил. В общем даны две стороны треугольника a,...

Зная площадь прямоугольного треугольника и угол при основании, найти все стороны треугольника - C++
Требования к программе: - Входные данные ввести с помощью стандартных процедур ввода; - На печать вывести значение входной переменной и...

Заданы длины двух сторон треугольника и угол между ними. найти площадь треугольника? - C++
Заданы длины двух сторон треугольника и угол между ними. найти площадь треугольника?

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

Вычислить углы треугольника зная его стороны. - C++
Задание написать прогу но вместо переменной использовать ссылку на неё.Вычислить углы треугольника зная его стороны.Решил писать через...

В треугольнике заданы две стороны a, b ,c. Вычислить и вывести на экран остальные элементы треугольника. - C++
помогите пожалуйста дописать программу,по блок-схеме углы вроде написал,но правильно ли? #include &lt;iostream&gt; #include &lt;iomanip&gt; ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
asics
Freelance
Эксперт С++
2846 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
15.09.2010, 00:19 #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
А весь код викладывать уже не модно ?

Добавлено через 4 минуты
А если так ?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <math.h>
#include <iostream>
using namespace std;
#define M_PI 3.14159265
int main()
{
setlocale(LC_ALL,"Russian");
float a,b,c,x;
    cout<<"Вычислить сторону треугольника ABC, зная две другие стороны и угол между ними;"<<endl;
        cout<<"Введите длину A:";
        cin>>a;
        cout<<"Введите длину B:";
        cin>>b;
        cout<<"Введите величину угла в градусах:";
        cin>>x;
        c=pow(a,2)+pow(b,2)-2*a*b*cos(x)* M_PI / 180;
cout<<"Сторона С="<<c<<endl;
        system("pause");
}
REALIST07
Автор FAQ
Автор FAQ
176 / 176 / 13
Регистрация: 11.06.2010
Сообщений: 932
15.09.2010, 00:28  [ТС] #3
неа,там по формуле a^2+b^2-2abcosy

это и есть весь код
dihlofos
Бродяга
303 / 257 / 17
Регистрация: 27.08.2010
Сообщений: 553
15.09.2010, 07:44 #4
Правильная формула:
c=sqrt(a*a+b*b-2*a*b*cos(x*M_PI/180));

Ф-ция cos считается для радиан, их надо перевести в градусы. Ну и, естественно, корень надо брать. Проверка: a=3; b=4; x=90. Получается c=5.
asics
Freelance
Эксперт С++
2846 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
15.09.2010, 16:10 #5
Цитата Сообщение от dihlofos Посмотреть сообщение
Правильная формула:
c=sqrt(a*a+b*b-2*a*b*cos(x*M_PI/180));
Ну я так же написал,только не в скобках.
И pow() не надо.
REALIST07
Автор FAQ
Автор FAQ
176 / 176 / 13
Регистрация: 11.06.2010
Сообщений: 932
15.09.2010, 19:06  [ТС] #6
Объясните что значит
C++
1
#define M_PI 3.14159265
?

Добавлено через 5 минут
Цитата Сообщение от Asics^ Посмотреть сообщение
И pow() не надо.
почему?
dihlofos
Бродяга
303 / 257 / 17
Регистрация: 27.08.2010
Сообщений: 553
15.09.2010, 19:17 #7
REALIST07
M_PI - константа, чтобы задать значение числа пи. Правда зачем она здесь, когда M_PI уже определено в библиотеке math. Так что можно удалить.

Можно и pow, просто для квадрата лучше x*x.

Asics^
Ну да, между cos(x*y) и cos(x)*y прямо никакой разницы
REALIST07
Автор FAQ
Автор FAQ
176 / 176 / 13
Регистрация: 11.06.2010
Сообщений: 932
15.09.2010, 19:29  [ТС] #8
все равно не получается в углы перевести,вот мой код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include "stdafx.h"
#include <iostream>
#include<math.h>
#define M_PI 3.14159265
using namespace std;
void main()
 
{float a,b,c,x;
    setlocale(LC_ALL,"Russian");
    cout<<"Вычислить сторону треугольника ABC, зная две другие стороны и угол между ними;"<<endl;
    cout<<"Введите длину A:";
    cin>>a;
    cout<<"Введите длину B:";
    cin>>b;
    cout<<"Введите величину угла в градусах:";
    cin>>x;
    c=sqrt(a*a+b*b-2*a*b*cos(x*M_PI/180));
 
cout<<"Сторона С="<<c<<endl;
    system("pause");
 
 
}
dihlofos
Бродяга
303 / 257 / 17
Регистрация: 27.08.2010
Сообщений: 553
15.09.2010, 19:44 #9
Что получается-то? Пример приведите хоть.
asics
Freelance
Эксперт С++
2846 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
15.09.2010, 19:50 #10
Цитата Сообщение от dihlofos Посмотреть сообщение
Правда зачем она здесь, когда M_PI уже определено в библиотеке math
Я сам удивилсо и не мог долго понять почему если я не обявлю ету константу,мне выбивает ошыбку.
REALIST07
Автор FAQ
Автор FAQ
176 / 176 / 13
Регистрация: 11.06.2010
Сообщений: 932
15.09.2010, 19:51  [ТС] #11
попробуйте ввести 1,1 и 90 по идее ответ должен быть 2!а он равен 1.всякая хрень
dihlofos
Бродяга
303 / 257 / 17
Регистрация: 27.08.2010
Сообщений: 553
15.09.2010, 19:57 #12
Так ведь корень берётся!

Цитата Сообщение от REALIST07 Посмотреть сообщение
попробуйте ввести 1,1 и 90 по идее ответ должен быть 2!
Проверьте по Т.Пифагора, где вы видели такой треугольник? По идее ответ должен быть корень из 2.
REALIST07
Автор FAQ
Автор FAQ
176 / 176 / 13
Регистрация: 11.06.2010
Сообщений: 932
15.09.2010, 20:03  [ТС] #13
А там хоть бери хоть не бери корень все равно получается 1.41421 при а=1 в=1 х=90
asics
Freelance
Эксперт С++
2846 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
15.09.2010, 20:24 #14
Я так понимаю,ето стандартная теорема косинусов ?

Добавлено через 13 минут
Ну так всё правильно,корень из 2.
TheMachinist
242 / 174 / 15
Регистрация: 14.06.2010
Сообщений: 422
15.09.2010, 20:53 #15
зачем она здесь, когда M_PI уже определено в библиотеке math. Так что можно удалить.
а у меня M_PI - undeclared identifier.Получается нет у меня в math.h функции M_PI? (VS Express)

Интуресно чем #define M_PI 3.14 лучше чем const float M_PI = 3.14 ?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.09.2010, 20:53
Привет! Вот еще темы с ответами:

В треугольнике заданы две стороны a, b и площадь S. Вычислить и вывести на экран остальные элементы треугольника. - C++
В треугольнике заданы две стороны a, b и площадь S. Вычислить и вывести на экран остальные элементы треугольника. Помогите...

Найти стороны треугольника, зная его углы и радиус описанной окружности - C++
2)Треугольник задан величинами своих углов и радиусом описанной окружности. Найти стороны треугольника.

Найти площадь прямоугольного треугольника, зная гипотенузу и прилежащий угол - C++
Подскажите, пожалуйста, что нужно изменить, чтобы заработало? #include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;math.h&gt; using...

Зная три стороны, определить, являются ли они сторонами треугольника и является ли он прямоугольным - C++
Есть три длины сторон треугольника (например 5,4,3) Нужно выяснить, существует ли такой треугольник, и прямоугольный он или нет. Прогу...


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

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

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