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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 123, средняя оценка - 4.63
oakenfold04
Сообщений: n/a
#1

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

17.09.2009, 18:56. Просмотров 15702. Ответов 47
Метки нет (Все метки)

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

Выяснить, существует ли треугольник с длинами сторон x, y, z (цикл While) C++
C++ Треугольник ABC задан длинами свих сторон. Найти длину высоты, опущенной из вершины A.
Построить алгоритм, определяющий, существует ли треугольник с заданными длинами сторон a, b и c. C++
Даны положительные x, y, z. Выяснить, существует ли треугольник C++
C++ Существует ли треугольник с длинами сторон x, y, z
Треугольник АВС задан длинами своих сторон. Найти углы треугольника C++
C++ Определить, можно ли построить треугольник с длинами сторон, равным этим числам
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nikituki
0 / 0 / 0
Регистрация: 17.09.2009
Сообщений: 15
17.09.2009, 19:02     Выяснить существует ли треугольник с длинами сторон a,b,c #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
 int treug (int x, int y, int z)
{int k=1;
if (x>y+z)
  k=0; 
else
     if (y>x+z)
       k=0; 
     else
          if (z>x+y)
            k=0;
return k;
}
odip
Эксперт С++
7155 / 3295 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
17.09.2009, 20:39     Выяснить существует ли треугольник с длинами сторон a,b,c #3
Выложи сюда блок-схему - по блок-схеме программа пишется просто.
Недавно решали такую задачу.
Я предложил сначала отсортировать a,b,c, чтобы было a<=b<=c.
Тогда условие будет простое: k= (a+b>c);
M128K145
Эксперт С++
8282 / 3501 / 143
Регистрация: 03.07.2009
Сообщений: 10,707
17.09.2009, 21:41     Выяснить существует ли треугольник с длинами сторон a,b,c #4
согласен с odip'ом. Это самое простое. Только лучше реализовать массивом
Evg
Эксперт CАвтор FAQ
17383 / 5621 / 350
Регистрация: 30.03.2009
Сообщений: 15,402
Записей в блоге: 26
17.09.2009, 21:48     Выяснить существует ли треугольник с длинами сторон a,b,c #5
а можно просто

C
1
return (a+b>c) && (b+c>a) && (c+a>b);
odip
Эксперт С++
7155 / 3295 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
17.09.2009, 21:51     Выяснить существует ли треугольник с длинами сторон a,b,c #6
а можно просто
Как оказывается - не все так просто
C
1
return (a+b>c) || (b+c>a) || (c+a>b);
kravam
быдлокодер
1690 / 877 / 44
Регистрация: 04.06.2008
Сообщений: 5,394
17.09.2009, 22:04     Выяснить существует ли треугольник с длинами сторон a,b,c #7
В последнем случае всегда возвращается 1
galileopro
Пробующий
183 / 96 / 1
Регистрация: 28.04.2009
Сообщений: 1,040
17.09.2009, 22:07     Выяснить существует ли треугольник с длинами сторон a,b,c #8
Вроде можно и так и эдак. Только true/false местами поменяются.

Добавлено через 2 минуты
А нет так нельзя.
Цитата Сообщение от odip Посмотреть сообщение
2 return (a+b>c) || (b+c>a) || (c+a>b);
Тут если даже одно из условий не выполнится возвращается правда. А так быть не должно.
odip
Эксперт С++
7155 / 3295 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
17.09.2009, 22:09     Выяснить существует ли треугольник с длинами сторон a,b,c #9
Да - действительно - Evg был прав.

Добавлено через 46 секунд
Ну если подать a==b==c==0, то будет false
Evg
Эксперт CАвтор FAQ
17383 / 5621 / 350
Регистрация: 30.03.2009
Сообщений: 15,402
Записей в блоге: 26
17.09.2009, 22:19     Выяснить существует ли треугольник с длинами сторон a,b,c #10
Цитата Сообщение от odip Посмотреть сообщение
Да - действительно - Evg был прав.

Добавлено через 46 секунд
Ну если подать a==b==c==0, то будет false
C
1
return (a>=0) && (b>=0) && (c>=0) && (a+b>c) && (b+c>a) && (c+a>b);
Nikituki
0 / 0 / 0
Регистрация: 17.09.2009
Сообщений: 15
17.09.2009, 22:19     Выяснить существует ли треугольник с длинами сторон a,b,c #11
Цитата Сообщение от odip Посмотреть сообщение
Ну если подать a==b==c==0, то будет false
Сторона треугольника не может равняться 0....
Evg
Эксперт CАвтор FAQ
17383 / 5621 / 350
Регистрация: 30.03.2009
Сообщений: 15,402
Записей в блоге: 26
17.09.2009, 22:20     Выяснить существует ли треугольник с длинами сторон a,b,c #12
Цитата Сообщение от Nikituki Посмотреть сообщение
Сторона треугольника не может равняться 0....
Но пользователь может ввести
M128K145
Эксперт С++
8282 / 3501 / 143
Регистрация: 03.07.2009
Сообщений: 10,707
17.09.2009, 22:21     Выяснить существует ли треугольник с длинами сторон a,b,c #13
вот
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
int main()
{
    setlocale(LC_ALL, "Russian");
    float a, b, c;
    std::cout<<"Введите первую сторону:\n> ",std::cin>>a;
    std::cout<<"Введите вторую сторону:\n> ",std::cin>>b;
    std::cout<<"Введите третью сторону:\n> ",std::cin>>c;
    ((a+b>c) && (b+c>a) && (c+a>b)) ?
        std::cout<<"Треугольник\n" :
        std::cout<<"Не треугольник\n";
    system("pause");
    return 0;
}

Прикол в том, что Evg хорошо это все записал(я так понял для проверки логики) и возвращался только результат последней проверки.
Nikituki
0 / 0 / 0
Регистрация: 17.09.2009
Сообщений: 15
17.09.2009, 22:23     Выяснить существует ли треугольник с длинами сторон a,b,c #14
Цитата Сообщение от Evg Посмотреть сообщение
Но пользователь может ввести
Если введет, то будет false, все логично
M128K145
Эксперт С++
8282 / 3501 / 143
Регистрация: 03.07.2009
Сообщений: 10,707
17.09.2009, 22:31     Выяснить существует ли треугольник с длинами сторон a,b,c #15
ЗЫ. даже ноль не страшен проверке из 5 поста
galileopro
Пробующий
183 / 96 / 1
Регистрация: 28.04.2009
Сообщений: 1,040
18.09.2009, 17:38     Выяснить существует ли треугольник с длинами сторон a,b,c #16
Цитата Сообщение от Evg Посмотреть сообщение
return (a>=0) && (b>=0) && (c>=0) && (a+b>c) && (b+c>a) && (c+a>b);
Где Вы видели треугольник, у которого одна из сторон равна нулю?
C++
1
return (a>0) && (b>0) && (c>0) && (a+b>c) && (b+c>a) && (c+a>b);
Evg
Эксперт CАвтор FAQ
17383 / 5621 / 350
Регистрация: 30.03.2009
Сообщений: 15,402
Записей в блоге: 26
18.09.2009, 17:50     Выяснить существует ли треугольник с длинами сторон a,b,c #17
Цитата Сообщение от galileopro Посмотреть сообщение
Где Вы видели треугольник, у которого одна из сторон равна нулю?
Аользователь можжет ввести всё что угодно. Если в браузере вводишь неправильный адрес, то браузер же тебе выдаёт ошибку, а не ломается. Так и твоя программа должна адекватно реагировать на неправильно введённые данные
M128K145
Эксперт С++
8282 / 3501 / 143
Регистрация: 03.07.2009
Сообщений: 10,707
18.09.2009, 18:05     Выяснить существует ли треугольник с длинами сторон a,b,c #18
C++
1
(a && b && c)
вот это во всех вариантах решения >= или строго > просто лишнее. На самом деле Evg написал полностью правильную суть еще в пятом посте. В 13 посте полностью реализована его мысль. Проверка на ноль нам не нужна потому, что если хотя бы одна сторона равна 0, то это автоматически перестает делать его треугольником потому, что такая запись
C++
1
((a+b>c) && (b+c>a) && (c+a>b))
автоматически превращается в (0 && 0 && 1) (порядок не важен) и всегда равняется 0. Надо просто чтобы сума любых двух сторон была больше третьей, что Evg и написал. Вот скрин к 13 посту
Миниатюры
Выяснить существует ли треугольник с длинами сторон a,b,c  
Evg
Эксперт CАвтор FAQ
17383 / 5621 / 350
Регистрация: 30.03.2009
Сообщений: 15,402
Записей в блоге: 26
18.09.2009, 18:07     Выяснить существует ли треугольник с длинами сторон a,b,c #19
> Проверка на ноль нам не нужна потому...

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

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

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

Или воспользуйтесь поиском по форуму:
galileopro
Пробующий
183 / 96 / 1
Регистрация: 28.04.2009
Сообщений: 1,040
18.09.2009, 18:12     Выяснить существует ли треугольник с длинами сторон a,b,c #20
А понять не могу ну как не нужна проверка, тогда так
C++
1
2
3
4
if ((a>0) && (b>0) && (c>0))
{ return false;}
else{
return  (a+b>c) && (b+c>a) && (c+a>b);}
Yandex
Объявления
18.09.2009, 18:12     Выяснить существует ли треугольник с длинами сторон a,b,c
Ответ Создать тему
Опции темы

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