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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 18, средняя оценка - 5.00
Рустам-ВЛ
1 / 1 / 0
Регистрация: 06.10.2012
Сообщений: 45
#1

Определение наличия тупого угла в треугольнике - C++

21.10.2012, 11:20. Просмотров 2526. Ответов 13

Параметрами функций являются длины сторон треугольника a, b, c. Дальше определяете, есть ли в треугольнике тупой угол, или все острые. Если есть - возвращаете 1, если нет - 0. Во второй функции проверяете неравенство треугольника. Если треугольник с заданными сторонами существует - возвращаете 1, если нет - 0.

как это всё сделать в одной программе?

Добавлено через 2 часа 46 минут
вроде сделал проверку неравенства треугольника.

помогите написать пожалуйста код для определения, есть ли в треугольнике тупой угол, или все острые
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.10.2012, 11:20
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Определение наличия тупого угла в треугольнике (C++):

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

Определение наличия одинаковых элементов масива - C++
Здравствуйте, помогите определить есть ли в данном масиве одинаковые элементы. #include <iostream> #include <ctime> using namespace...

Рассчитать квадрат синуса угла, значение угла вводится с клавиатуры в градусах - C++
Помогите. Нужно написать программу на СИ(в Visual Studio) которая расчитывает синус угла в квадрате , значение угла вводится с клавиатуры в...

Дано значение угла alfa в радианах (0 < alfa < 2*pi). Определить значение этого же угла в градусах - C++
Здравствуйте я тока начинаю юзать с++ помоги пожалуйста заранее спасибо Дано значение угла alfa в радианах (0 &lt; alfa &lt; 2*pi). Определить...

Точка в треугольнике - C++
Помогите! даны три вершины треугольника с координатами(коорд вводятся с клавиатуры) А(х1,y1) B(х2,y2) и С(х3,y3). И вводятся координаты...

Треугольник в треугольнике - C++
Даны действительный числа x1,y1,x2,y2,...,x6,y6. Точки с координатами (x1,y1), (x2,y2), (x3,y3) рассматриваются как вершины первого...

13
taras atavin
3570 / 1753 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
21.10.2012, 11:34 #2
Первая проверка лишена смысла в том случае, если треугольник вообще не существует и при возможности таких исходных данных может быть только второй. Для несуществующего треугольника просто нельзя вывести алгоритм проверки. Треугольник существует в том случае, если удовлетворяет правилу:
Сторона его большая, даже самая большая меньше суммы двух других сторон.
И если все длины строго положительны.
C++
1
2
3
4
bool posible (double a, double b, double c)
{
 return (a<(b+c))&&(b<(a+c))&&(c<(a+b))&&(a>0.0)&&(b>0.0)&&(c>0.0);
}
.
1
nonedark2008
931 / 670 / 147
Регистрация: 28.07.2012
Сообщений: 1,827
21.10.2012, 11:43 #3

Не по теме:


Цитата Сообщение от taras atavin Посмотреть сообщение
Сторона его большая, даже самая большая меньше суммы двух других сторон.
xD Ты почти вывел неравенство треугольника))



Добавлено через 3 минуты
А про углы - это все выводится из теоремы косинусов.
a^2=b^2+c^2-2bc*cos(альфа)
Угол альфа лежит напротив стороны a. Отсюда видно, что если альфа-тупой, то a^2 < b^2 + c^2
Если острый, то a^2>b^2+c^2, ну и прямой если a^2=b^2+c^2
1
taras atavin
3570 / 1753 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
21.10.2012, 11:44 #4
C++
1
2
3
4
bool obtuse(double a, double b, double c)
{
 return (((a*a+b*b-c*c)/2/a/b)<0.0)||(((b*b+c*c-a*a)/2/b/c)<0.0)||(((a*a+c*c-b*b)/2/a/c)<0.0);
}
1
grizlik78
Эксперт С++
1966 / 1459 / 120
Регистрация: 29.05.2011
Сообщений: 3,018
21.10.2012, 12:04 #5
Ну и мой вариант, про который, впрочем, рассказали уже.
C++
1
2
3
4
5
6
7
8
9
10
11
12
bool have_obtuse_angle(double a, double b, double c)
{
    if (a > b)
    {
        if (a > c)
            return b*b + c*c < a*a;
        return a*a + b*b < c*c;
    }
    if (b > c)
        return a*a + c*c < b*b;
    return a*a + b*b < c*c;
}
Разумеется результат имеет смысл только если треугольник существует.
1
taras atavin
3570 / 1753 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
21.10.2012, 13:06 #6
Оптимизированная версия?
0
Рустам-ВЛ
1 / 1 / 0
Регистрация: 06.10.2012
Сообщений: 45
21.10.2012, 15:22  [ТС] #7
Спасибо за помощь, а как так же функцию сделать для "Во второй функции проверяете неравенство треугольника. Если треугольник с заданными сторонами существует - возвращаете 1, если нет - 0."
0
taras atavin
3570 / 1753 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
21.10.2012, 15:25 #8
Функция posible.
0
Рустам-ВЛ
1 / 1 / 0
Регистрация: 06.10.2012
Сообщений: 45
21.10.2012, 15:27  [ТС] #9
Цитата Сообщение от taras atavin Посмотреть сообщение
Функция posible.
по подробнее можно пожалуйста
0
taras atavin
3570 / 1753 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
21.10.2012, 15:34 #10
А что там комментировать?
0
Рустам-ВЛ
1 / 1 / 0
Регистрация: 06.10.2012
Сообщений: 45
21.10.2012, 15:39  [ТС] #11
как эту функцию применить
0
taras atavin
3570 / 1753 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
21.10.2012, 15:46 #12
Ты вообще умеешь пользоваться функциями?
0
Рустам-ВЛ
1 / 1 / 0
Регистрация: 06.10.2012
Сообщений: 45
21.10.2012, 16:23  [ТС] #13
Нет , но функции уже сделал вроде у себя
0
taras atavin
3570 / 1753 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
21.10.2012, 18:29 #14
функция вызывается просто по имени с указанием фактических параметров. Фактический параметр есть переменная, или константа явная, или именованная, подставляемая на место формального параметра при конкретном вызове функции. Формальный параметр есть переменная, указанная для связи с вызывающей программой в заголовке функции. Под её именем параметр известен функции, причем, функция может считать его константой. Вызывающая программа вообще не знает этого имени.
1
21.10.2012, 18:29
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.10.2012, 18:29
Привет! Вот еще темы с ответами:

Уравнение биссектрисы тупого угла между прямыми - Геометрия
Здравствуйте. Есть 2 канонически заданных уравнения прямых в трёхмерном пространстве. Подскажите пожалуйста, как можно найти уравнение...

Уравнение биссектрисы тупого угла при пересечении двух прямых в пространстве - Геометрия
Проверить что две прямые x=1+2t ,y=2t, z=t и x=11+8t,y=6+4t,z=2+t пересекаются и написать уравнение биссектрисы тупого угла между ними. ...

Провести сечение, проходящее через вершину пирамиды и высоту ромба, опущенную из тупого угла - Turbo Pascal
1)Основание пирамиды ромб. Вершина пирамиды проектируется в вершину острого угла ромба. Провести сечение, проходящее через вершину пирамиды...

Провести сечение, проходящее через вершину пирамиды и высоту ромба, опущенную из тупого угла - Turbo Pascal
Помогите решить. Добавлено через 21 минуту Основание пирамиды ромб. Вершина пирамиды проектируется в вершину острого угла ромба....


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

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

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