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

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

21.10.2012, 11:20. Просмотров 2739. Ответов 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
Условие: По двум сторонам и углу между ними в треугольнике АВС найти два...

Определение наличия одинаковых элементов масива
Здравствуйте, помогите определить есть ли в данном масиве одинаковые элементы....

Определение угла точки относительно центра фигуры
Здравствуйте. Мне необходимо реализовать поворот фигуры вокруг её центра, но я...

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

Дано значение угла в градусах. Найти величину смежного с ним угла в градусах. Результат вывести в градусах и минутах
Дано значение угла в градусах. Найти величину смежного с ним угла в градусах....

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

13
taras atavin
4204 / 1763 / 212
Регистрация: 24.11.2009
Сообщений: 27,565
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
1022 / 762 / 210
Регистрация: 28.07.2012
Сообщений: 2,118
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
4204 / 1763 / 212
Регистрация: 24.11.2009
Сообщений: 27,565
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
Эксперт С++
1983 / 1476 / 191
Регистрация: 29.05.2011
Сообщений: 3,048
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
4204 / 1763 / 212
Регистрация: 24.11.2009
Сообщений: 27,565
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
4204 / 1763 / 212
Регистрация: 24.11.2009
Сообщений: 27,565
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
4204 / 1763 / 212
Регистрация: 24.11.2009
Сообщений: 27,565
21.10.2012, 15:34 #10
А что там комментировать?
0
Рустам-ВЛ
1 / 1 / 0
Регистрация: 06.10.2012
Сообщений: 45
21.10.2012, 15:39  [ТС] #11
как эту функцию применить
0
taras atavin
4204 / 1763 / 212
Регистрация: 24.11.2009
Сообщений: 27,565
21.10.2012, 15:46 #12
Ты вообще умеешь пользоваться функциями?
0
Рустам-ВЛ
1 / 1 / 0
Регистрация: 06.10.2012
Сообщений: 45
21.10.2012, 16:23  [ТС] #13
Нет , но функции уже сделал вроде у себя
0
taras atavin
4204 / 1763 / 212
Регистрация: 24.11.2009
Сообщений: 27,565
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
Привет! Вот еще темы с решениями:

Точка в треугольнике
Помогите! даны три вершины треугольника с координатами(коорд вводятся с...

Треугольник в треугольнике
Даны действительный числа x1,y1,x2,y2,...,x6,y6. Точки с координатами (x1,y1),...

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

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


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

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

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