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

Выяснить существует ли треугольник с длинами сторон a,b,c - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 123, средняя оценка - 4.63
oakenfold04
Сообщений: n/a
17.09.2009, 18:56     Выяснить существует ли треугольник с длинами сторон a,b,c #1
Даны действительные положительные числа x,y,z.
Выяснить существует ли треугольник с длиннами сторон x,y,z? помогите сделать программу блок схему сделал а прогу не знаю как
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.09.2009, 18:56     Выяснить существует ли треугольник с длинами сторон a,b,c
Посмотрите здесь:

Построить алгоритм, определяющий, существует ли треугольник с заданными длинами сторон a, b и c. C++
C++ Существует ли треугольник с длинами сторон x, y, z
Треугольник АВС задан длинами своих сторон. Найти углы треугольника C++
C++ Определить, можно ли построить треугольник с длинами сторон, равным этим числам
Треугольник задан длинами сторон. Найти длины медиан C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
M128K145
Эксперт C++
 Аватар для M128K145
8272 / 3491 / 142
Регистрация: 03.07.2009
Сообщений: 10,707
18.09.2009, 18:12     Выяснить существует ли треугольник с длинами сторон a,b,c #21
Evg, хм... ну так он и не выполнит тогда все три условия. Если я ошибаюсь, то приведи три таких числа, чтобы твое же условие не выполнилось?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
galileopro
Пробующий
 Аватар для galileopro
183 / 96 / 1
Регистрация: 28.04.2009
Сообщений: 1,040
18.09.2009, 18:14     Выяснить существует ли треугольник с длинами сторон a,b,c #22
Ну если же он введет -1 0 0 ЄТО же не треугольник...
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16846 / 5267 / 323
Регистрация: 30.03.2009
Сообщений: 14,173
Записей в блоге: 26
18.09.2009, 18:19     Выяснить существует ли треугольник с длинами сторон a,b,c #23
Цитата Сообщение от M128K145 Посмотреть сообщение
Evg, хм... ну так он и не выполнит тогда все три условия. Если я ошибаюсь, то приведи три таких числа, чтобы твое же условие не выполнилось?
Привести не могу, ибо с математикой туго А потому подстраховываюсь дополнительной проверкой. Я её писал именно на случай отрицательных величин. Писать её или нет - пусть решают те, кто математики, а себе я бы проверочку написал, ибо хуже от этогоне станет

Добавлено через 49 секунд
Цитата Сообщение от galileopro Посмотреть сообщение
Ну если же он введет -1 0 0 ЄТО же не треугольник...
Введи в браузере "trampampam://qqq" - это не URL, но браузер ведь от этого не кердыкнулся

Добавлено через 23 секунды
Если пользователь введёт 1 1 100 - это тоже не треугольник
M128K145
Эксперт C++
 Аватар для M128K145
8272 / 3491 / 142
Регистрация: 03.07.2009
Сообщений: 10,707
18.09.2009, 18:21     Выяснить существует ли треугольник с длинами сторон a,b,c #24
galileopro, скомпилируй Выяснить существует ли треугольник с длинами сторон a,b,c
galileopro
Пробующий
 Аватар для galileopro
183 / 96 / 1
Регистрация: 28.04.2009
Сообщений: 1,040
18.09.2009, 18:39     Выяснить существует ли треугольник с длинами сторон a,b,c #25
Да все работает.
Я понял почему, вот подставьте а=0 в
Цитата Сообщение от galileopro Посмотреть сообщение
(a+b>c) && (b+c>a) && (c+a>b)
и получите
C++
1
(b>c) && (b+c>0) && (c>b)
противоречие здесь
C++
1
(b>c)&& (c>b)
и поэтому возвращает ложь. Вот так)
M128K145
Эксперт C++
 Аватар для M128K145
8272 / 3491 / 142
Регистрация: 03.07.2009
Сообщений: 10,707
18.09.2009, 18:44     Выяснить существует ли треугольник с длинами сторон a,b,c #26
Цитата Сообщение от M128K145 Посмотреть сообщение
автоматически превращается в (0 && 0 && 1) (порядок не важен)
вот о чем я и говорил, а чтобы это был треугольник надо только (1 && 1 && 1) и никаких других вариантов.
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16846 / 5267 / 323
Регистрация: 30.03.2009
Сообщений: 14,173
Записей в блоге: 26
18.09.2009, 18:55     Выяснить существует ли треугольник с длинами сторон a,b,c #27
Цитата Сообщение от galileopro Посмотреть сообщение
поэтому возвращает ложь. Вот так)
Убедительно. А на случай отрицательных чисел оно доказывается?
M128K145
Эксперт C++
 Аватар для M128K145
8272 / 3491 / 142
Регистрация: 03.07.2009
Сообщений: 10,707
18.09.2009, 19:12     Выяснить существует ли треугольник с длинами сторон a,b,c #28
Цитата Сообщение от Evg Посмотреть сообщение
Убедительно. А на случай отрицательных чисел оно доказывается?
берем то же доказательство galileopro
C++
1
(b-n > c) && (b+c > -n) && (c-n > b)
противоречие то же самое
C++
1
(b-n > c)&& (c-n > b)
galileopro
Пробующий
 Аватар для galileopro
183 / 96 / 1
Регистрация: 28.04.2009
Сообщений: 1,040
18.09.2009, 19:43     Выяснить существует ли треугольник с длинами сторон a,b,c #29
Цитата Сообщение от M128K145 Посмотреть сообщение
(b-n > c)&& (c-n > b)
Да это то же самое, что
C++
1
(b-c>n)&&(b-c<-n)
Если n>0 то как может некоторое число b-c быть больше положительного и меньше отрицательного?
Если n<0 то -n>0 и тут никаких противоречий не будет но это равносильно a=-n>0 и все вроде нормально.
Тихон Медведкин
0 / 0 / 0
Регистрация: 17.09.2009
Сообщений: 5
19.09.2009, 03:49     Выяснить существует ли треугольник с длинами сторон a,b,c #30
Вот так, наверное, самое правильное и будет:
C++
1
2
3
4
5
template <class T>
bool If_Triang(T a, T b, T c)
{
return (a>=0) && (b>=0) && (c>=0) && (a+b>c) && (b+c>a) && (c+a>b);
}
M128K145
Эксперт C++
 Аватар для M128K145
8272 / 3491 / 142
Регистрация: 03.07.2009
Сообщений: 10,707
19.09.2009, 09:06     Выяснить существует ли треугольник с длинами сторон a,b,c #31
Тихон Медведкин, самое правильное было в 5 посте
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16846 / 5267 / 323
Регистрация: 30.03.2009
Сообщений: 14,173
Записей в блоге: 26
19.09.2009, 11:07     Выяснить существует ли треугольник с длинами сторон a,b,c #32
Цитата Сообщение от M128K145 Посмотреть сообщение
берем то же доказательство galileopro
Со скрипом, но вроде бы понимаю. Надеюсь, что для двух и трёх отрицательных чисел так же всё логично
BRONXSTYLE
1 / 1 / 0
Регистрация: 19.05.2011
Сообщений: 4
22.05.2011, 06:56     Выяснить существует ли треугольник с длинами сторон a,b,c #33
попробывал так создать, но у меня ничерта не работает
Javascript
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
27
28
29
30
31
32
33
34
35
<HTML>
 <HEAD>
 <TITLE>треугольник</TITLE>
 <script language="JavaScript">
 <!-- //
 function srec (obj )
 {
 var a = Number(obj.num1.value);
 var b = Number(obj.num2.value);
 var c = Number(obj.num3.value);
 var k=1 
if (a=>0) k=0 
else if(b>=0) k=0
else if (c>=0)k=0 
else if (a+b>c)k=0 
else if (b+c>a)k=0 
else if (c+a>b)k=0 
else  
obj.res.value=k  }
 //-->
 </script>
 </HEAD>
 <BODY>
 <H4>Возможен ли треугольник</H4>
 <FORM name="form1">
 A: <input type="text" size=8 name="num1"><hr>
 B: <input type="text" size=8 name="num2"><hr>
 C: <input type="text" size=8 name="num3"><hr>
 результат
 <input type="button" value=Определить onClick="maxval(form1)">
 <input type="text" size=8 name="res"><hr>
 <input type="reset">
 </FORM>
 </BODY>
 </HTML>[JS]
[/JS]
nikitapel
 Аватар для nikitapel
36 / 36 / 4
Регистрация: 20.03.2011
Сообщений: 331
22.05.2011, 10:42     Выяснить существует ли треугольник с длинами сторон a,b,c #34
А вот и код (Я сделал по формуле герона =)) По геометрии в 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
24
25
26
27
28
29
30
//---------------------------------------------------------------------------
#include <nik.h>
#include <vcl.h>
#pragma hdrstop
#include <math.h>
#include <tchar.h>
//---------------------------------------------------------------------------
 
#pragma argsused
float a,b,c,s,p,S;
int main()
{
cout << "Введите 3 стороны треугольника \n";
cin >> a >> b >> c;
p=(a+b+c) / 2;
s = p * (p-a) * (p-b) * (p-c);
S=sqrt(s);
 
if (S==0) {
cout << "Такого треугольника не существеует \n";
}
else
{
cout << "Такой треугольник существеует \n";
cout << "И его площадь" << S << "кв см";
}
system("Pause >> void");
    return 0;
}
//---------------------------------------------------------------------------
Liss29
 Аватар для Liss29
20 / 9 / 2
Регистрация: 18.11.2012
Сообщений: 402
Завершенные тесты: 1
11.03.2016, 23:15     Выяснить существует ли треугольник с длинами сторон a,b,c #35
А такой вариант имеет право на существование?
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
27
28
29
30
31
#include <iostream>
 
using namespace std;
int main()
{
    /*int x = 2;
    int y = 2;
    cout << (++x + y);*/
 
    double a; // катет 
    double b; //катет
    double c; //гипотенуза
 
    cout << "Введите три ненулевых значения: ";
    cin >> a >> b >> c;
 
    if((a + b) > c)
    {
        if((a + c) > b)
        {
            if((b + c) > a)
            {
                cout << "Такой треугольник существует!" << endl;
            }
        }
    }
    else 
        cout << "Такой треугольник не существует!" << endl;
        
    return 0;
}
TheCalligrapher
С чаем беда...
Эксперт С++
 Аватар для TheCalligrapher
2913 / 1449 / 398
Регистрация: 18.10.2014
Сообщений: 2,676
12.03.2016, 02:44     Выяснить существует ли треугольник с длинами сторон a,b,c #36
Цитата Сообщение от Liss29 Посмотреть сообщение
А такой вариант имеет право на существование?
Это зависит от того, что вы хотели получить в результате. В вашем варианте в случае несрабатывания второго или третьего 'if' на выход не будет выведено вообще ничего. Пользователь будет подвешен в состоянии мучительной неопределенности, как кот Шредингера.

Добавлено через 4 минуты
Цитата Сообщение от nikitapel Посмотреть сообщение
По геометрии в 8 классе изучали формулу Герона, по ней можно найти площадь треугольника. В итоге если площадь равна нулю то такой треугольник не существует
Если вы тупо примените формулу Герона к набору длин, для которых не выполняется неравенство треугольника, то запросто схлопочете отрицательное число под корнем и какой-то малопредсказуемый результат (определяется реализацией), а отнюдь не нуль.
Liss29
 Аватар для Liss29
20 / 9 / 2
Регистрация: 18.11.2012
Сообщений: 402
Завершенные тесты: 1
12.03.2016, 03:27     Выяснить существует ли треугольник с длинами сторон a,b,c #37
Цитата Сообщение от TheCalligrapher Посмотреть сообщение
Это зависит от того, что вы хотели получить в результате.
Дано задание, условие описано в начале темы, я по этой же книжке учу, там про проверки ничего не сказано. Просто хотелось узнать, как вариант потянет или нет.

т.е. во втором и третем If нужно пункт, например, else и высти собщение , и перейти к началу ввода новых значений. Может так, хотя я не претендую на особую оригинальность, но всё же.

Стоит, думаю, тогда и проверку при вводе добавить чтобы введённые числа не были 0, а возможно и отрицательные тоже.
TheCalligrapher
С чаем беда...
Эксперт С++
 Аватар для TheCalligrapher
2913 / 1449 / 398
Регистрация: 18.10.2014
Сообщений: 2,676
12.03.2016, 03:33     Выяснить существует ли треугольник с длинами сторон a,b,c #38
Цитата Сообщение от Liss29 Посмотреть сообщение
Дано задание, условие описано в начале темы,
Совершено верно. Требование "Выяснить существует ли треугольник", я понимаю так: по введенным данным надо дать ответ, типа "Да, существует" или "Нет, не существует". Ваша же программа иногда вообще ничего не говорит, а просто заканчивается молча.

Как это может соответствовать условию? По-моему это не соответствует условию. Если вы как-то по другому поняли условие - поясните.

Если я введу: 1 1 10, то ваша программа скажет "Такой треугольник не существует!". Замечательно. А вот если я введу: 10 1 1, то ваша программа ничего не скажет вообще. Как это понимать?

Цитата Сообщение от Liss29 Посмотреть сообщение
и перейти к началу ввода новых значений.
Цитата Сообщение от Liss29 Посмотреть сообщение
проверку при вводе добавить чтобы введённые числа не были 0, а возможно и отрицательные тоже.
Об этом пока речи не идет. Речь идет об основной функциональности программы - ответе на вопрос о том, существует ли такой треугольник.
Liss29
 Аватар для Liss29
20 / 9 / 2
Регистрация: 18.11.2012
Сообщений: 402
Завершенные тесты: 1
12.03.2016, 04:05     Выяснить существует ли треугольник с длинами сторон a,b,c #39
Цитата Сообщение от TheCalligrapher Посмотреть сообщение
просто заканчивается молча.
Я ввёл пару значений у меня молча не заканчивалась, как обработать, я нашёл более понятный мне вариант это сравнение сумму двух членов с третим. Честно, не знаю.

А намёк хоть возможен, в какую сторону копать чтобы усовершенствовать прогу)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.03.2016, 04:18     Выяснить существует ли треугольник с длинами сторон a,b,c
Еще ссылки по теме:

Проверить, можно ли построить треугольник с заданными длинами сторон C++
C++ N треугольников плоскости заданы длинами своих сторон. Найдите треугольник максимальной площади

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

Или воспользуйтесь поиском по форуму:
TheCalligrapher
С чаем беда...
Эксперт С++
 Аватар для TheCalligrapher
2913 / 1449 / 398
Регистрация: 18.10.2014
Сообщений: 2,676
12.03.2016, 04:18     Выяснить существует ли треугольник с длинами сторон a,b,c #40
Цитата Сообщение от Liss29 Посмотреть сообщение
Я ввёл пару значений у меня молча не заканчивалась,
Я вам привел вариант, при котором ваша программа не говорит ни "да", ни "нет", а просто заканчивается молча: 10 1 1.

Цитата Сообщение от Liss29 Посмотреть сообщение
в какую сторону копать чтобы усовершенствовать прогу
Так куда уж толще намек-то: посмотрите на структуру ваших if-ов и обратите внимание, что не все логические пути ведут к выдаче ответа пользователю.
Yandex
Объявления
12.03.2016, 04:18     Выяснить существует ли треугольник с длинами сторон a,b,c
Ответ Создать тему
Опции темы

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