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

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

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

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

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

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

Выяснить, существует ли треугольник с длинами сторон x, y, z (цикл While) - C++
Даны действительные положительные числа x,y,z. а)Выяснить существует ли треугольник с длинами сторон x,y,z. б)Если треугольник...

Существует ли треугольник с длинами сторон x, y, z - C++
Даны действительные числа x, y, z. Выяснить, существует ли треугольник с длинами сторон x, y, z, если существует, то определить его тип:...

Построить алгоритм, определяющий, существует ли треугольник с заданными длинами сторон a, b и c. - C++
1.Построить алгоритм, определяющий, существует ли треугольник с заданными длинами сторон a, b и c. 2.Даны три вещественных...

Объект «равносторонний треугольник, заданный длинами сторон» - C++
ПОМОГИТЕ РЕШИТЬ - Объект «равносторонний треугольник, заданный длинами сторон». Предусмотреть возможность операции присваивания,...

Треугольник задан длинами сторон. Найти длины медиан - C++
Помогите решить задачу. Треугольник задан длинами сторон.Найти длины медиан.

Проверить, можно ли построить треугольник с заданными длинами сторон - C++
Ребят помогите с решением задачи. Задание надо сделать на языке C++ Даны произвольные числа a,b,c. Если нельзя построить треугольник с...

47
galileopro
Пробующий
183 / 96 / 1
Регистрация: 28.04.2009
Сообщений: 1,040
18.09.2009, 17:38 #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);
0
Evg
Эксперт CАвтор FAQ
18246 / 6371 / 438
Регистрация: 30.03.2009
Сообщений: 17,629
Записей в блоге: 28
18.09.2009, 17:50 #17
Цитата Сообщение от galileopro Посмотреть сообщение
Где Вы видели треугольник, у которого одна из сторон равна нулю?
Аользователь можжет ввести всё что угодно. Если в браузере вводишь неправильный адрес, то браузер же тебе выдаёт ошибку, а не ломается. Так и твоя программа должна адекватно реагировать на неправильно введённые данные
0
M128K145
Эксперт С++
8297 / 3517 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
18.09.2009, 18:05 #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 посту
1
Миниатюры
Выяснить существует ли треугольник с длинами сторон a,b,c  
Evg
Эксперт CАвтор FAQ
18246 / 6371 / 438
Регистрация: 30.03.2009
Сообщений: 17,629
Записей в блоге: 28
18.09.2009, 18:07 #19
> Проверка на ноль нам не нужна потому...

Так ведь пользователь и отрицательное значение может ввести
0
galileopro
Пробующий
183 / 96 / 1
Регистрация: 28.04.2009
Сообщений: 1,040
18.09.2009, 18:12 #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);}
0
M128K145
Эксперт С++
8297 / 3517 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
18.09.2009, 18:12 #21
Evg, хм... ну так он и не выполнит тогда все три условия. Если я ошибаюсь, то приведи три таких числа, чтобы твое же условие не выполнилось?
0
galileopro
Пробующий
183 / 96 / 1
Регистрация: 28.04.2009
Сообщений: 1,040
18.09.2009, 18:14 #22
Ну если же он введет -1 0 0 ЄТО же не треугольник...
0
Evg
Эксперт CАвтор FAQ
18246 / 6371 / 438
Регистрация: 30.03.2009
Сообщений: 17,629
Записей в блоге: 28
18.09.2009, 18:19 #23
Цитата Сообщение от M128K145 Посмотреть сообщение
Evg, хм... ну так он и не выполнит тогда все три условия. Если я ошибаюсь, то приведи три таких числа, чтобы твое же условие не выполнилось?
Привести не могу, ибо с математикой туго А потому подстраховываюсь дополнительной проверкой. Я её писал именно на случай отрицательных величин. Писать её или нет - пусть решают те, кто математики, а себе я бы проверочку написал, ибо хуже от этогоне станет

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

Добавлено через 23 секунды
Если пользователь введёт 1 1 100 - это тоже не треугольник
0
M128K145
Эксперт С++
8297 / 3517 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
18.09.2009, 18:21 #24
galileopro, скомпилируй Выяснить существует ли треугольник с длинами сторон a,b,c
0
galileopro
Пробующий
183 / 96 / 1
Регистрация: 28.04.2009
Сообщений: 1,040
18.09.2009, 18:39 #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)
и поэтому возвращает ложь. Вот так)
2
M128K145
Эксперт С++
8297 / 3517 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
18.09.2009, 18:44 #26
Цитата Сообщение от M128K145 Посмотреть сообщение
автоматически превращается в (0 && 0 && 1) (порядок не важен)
вот о чем я и говорил, а чтобы это был треугольник надо только (1 && 1 && 1) и никаких других вариантов.
1
Evg
Эксперт CАвтор FAQ
18246 / 6371 / 438
Регистрация: 30.03.2009
Сообщений: 17,629
Записей в блоге: 28
18.09.2009, 18:55 #27
Цитата Сообщение от galileopro Посмотреть сообщение
поэтому возвращает ложь. Вот так)
Убедительно. А на случай отрицательных чисел оно доказывается?
0
M128K145
Эксперт С++
8297 / 3517 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
18.09.2009, 19:12 #28
Цитата Сообщение от Evg Посмотреть сообщение
Убедительно. А на случай отрицательных чисел оно доказывается?
берем то же доказательство galileopro
C++
1
(b-n > c) && (b+c > -n) && (c-n > b)
противоречие то же самое
C++
1
(b-n > c)&& (c-n > b)
1
galileopro
Пробующий
183 / 96 / 1
Регистрация: 28.04.2009
Сообщений: 1,040
18.09.2009, 19:43 #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 и все вроде нормально.
1
Тихон Медведкин
0 / 0 / 0
Регистрация: 17.09.2009
Сообщений: 5
19.09.2009, 03:49 #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);
}
0
19.09.2009, 03:49
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.09.2009, 03:49
Привет! Вот еще темы с ответами:

Определить, можно ли построить треугольник с длинами сторон, равным этим числам - C++
1)Даны три положительных числа. Определить, можно ли построить треугольник с длинами сторон, равным этим числам. Если можно, то ответить на...

Треугольник АВС задан длинами своих сторон. Найти углы треугольника - C++
помогите составить программу в С++ Треугольник АВС задан длинами своих сторон. Найти углы треугольника.

Треугольник задан длинами сторон; найти радиусы вписанной и описанной окружностей - C++
Добрый вечер! Помогите пожалуйста написать простенькую программу на с++ Не могу разобраться, может по вашему коду получится, заранее...

Треугольник ABC задан длинами свих сторон. Найти длину высоты, опущенной из вершины A. - C++
помогите пожалуйста решить задачки...очень надо а я незнаю и не понимаю как решить...заранее большое спасибо... задачки надо решить не...


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

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

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