Определить существует ли треугольник питон

Существует ли треугольник

По длинам трех отрезков, определить возможность существования треугольника, составленного из этих отрезков. Даны три целые положительные числа, длины сторон треугольника. Вывести «Существует», если можно построить треугольник с заданными длинами сторон, и «Не существует», если невозможно.

print("Стороны:") a = float(input("Сторона a: ")) b = float(input("Сторона b: ")) c = float(input("Сторона c:")) if a + b > c and a + c > b and b + c > a: print("Cуществует") else: print("Не существует")

Существует ли треугольник со сторонами
Для действительных чисел а, b, c проверить существует ли триугольник с такими сторонами

Определить, существует ли прямоугольный треугольник
Определить, существует ли прямоугольный треугольник со сторонами x,y,z. Если – да, вычислить его.

Определить существует ли треугольник с такими длинами сторон
15. Даны действительные числа: Х, Y, Z. Определить существует ли треугольник с такими длинами.

Функция, которая проверяет, существует ли треугольник с введенными сторонами a, b, c
Нужно написать ФУНКИЮ, которая проверяет, существует ли треугольник с введенными сторонами a, b, c.

Определить, существует ли треугольник с заданными сторонами (ошибка в коде)
Помоги пожалуйста,скажите где ошибка. Сириус не пропускает мое решение. А я там проверял, вроде все.

ЦитатаСообщение от Vigilant Mole Посмотреть сообщение

l = sorted(list(map(float, input().split()))) print(('Не существует', 'Существует')[l[0] + l[1] > l[2]])
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
print("Длины сторон треугольника:") a = float(input("Сторона a: ")) b = float(input("Сторона b: ")) c = float(input("Сторона c: ")) flag = "" if a + b  c: flag = c elif a + c  b: flag = b elif b + c  a: flag = a else: print("Треугольник есть") if flag != "": print("Треугольника нет") print("'%s' > суммы других " % flag)

Добавил на проверки равнобедренный и равносторонний треугольник. Как сделать чтобы не выводилось сразу разносторонний и равнобедренный или равносторонний?

1 2 3 4 5 6 7 8 9 10 11 12
print("Стороны:") a = float(input("Сторона a: ")) b = float(input("Сторона b: ")) c = float(input("Сторона c: ")) if a + b > c and a + c > b and b + c > a: print("Треугольник разносторонний") else: print("Треугольник не существует") if a == b or a == c or b == c: print("Треугольник равнобедренный") if a == b == c: print("Треугольник равносторонний")
1 2 3 4 5 6 7 8 9 10 11 12
print("Стороны:") a = float(input("Сторона a: ")) b = float(input("Сторона b: ")) c = float(input("Сторона c: ")) if a + b  c or a + c  b or b + c  a: print("Треугольник не существует") elif a != b and a != c and b != c: print("Треугольник разносторонний") elif a == b == c: print("Треугольник равносторонний") else: print("Треугольник равнобедренный")
a, b, c = sorted(list(map(float, input('Стороны треугольника (a b c):').split()))) if a + b  c: print("Треугольник не существуе") elif a == b == c: print("Треугольник равносторонний") elif a == b: print("Треугольник равнобедренный") else: print("Треугольник разносторонний")
1 2 3 4 5 6 7 8 9 10 11 12
print("Стороны:") a = float(input("Сторона a: ")) b = float(input("Сторона b: ")) c = float(input("Сторона c: ")) if a + b  c or a + c  b or b + c  a: print("Треугольник не существует") elif a == b == c: print("Треугольник равносторонний") elif a == b or a == c or b == c: print("Треугольник равнобедренный") else: print("Треугольник разносторонний")

Эксперт Python

*p, = map(int, input().split()) print(2 * max(p)  sum(p)) print(len(set(p))) # 1 - равносторонний # 2 - равнобедренный # 3 - разносторонний

ЦитатаСообщение от Whitecolor Посмотреть сообщение

ЦитатаСообщение от eaa Посмотреть сообщение

def can_triangle(p1, p2, p3): a = ((p1[0] - p2[0]) ** 2 + (p1[1] - p2[1]) ** 2) ** 0.5 b = ((p2[0] - p3[0]) ** 2 + (p2[1] - p3[1]) ** 2) ** 0.5 c = ((p3[0] - p1[0]) ** 2 + (p3[1] - p1[1]) ** 2) ** 0.5 if ((a + b) > c or (b + c) > a or (c + a) > b): return True return False
def can_triangle(p1, p2, p3): return (p1 + p2) > p3 or (p1 + p3) > p2
def can_triangle(p1, p2, p3): if p1[0] == p2[0] == p3[0] or p1[1] == p2[1] == p3[1]: return False return True
def can_triangle(p1, p2, p3): if p1 != p2 and p2 != p3 and p3 != p1: return True return False
def can_triangle(p1, p2, p3): return (p3[2] - p1[2]) / (p2[2] - p1[2]) == (p3[1] - p1[1]) / (p2[1] - p1[1])
1 2 3 4 5 6 7 8 9 10 11 12
def can_triangle(p1, p2, p3): length1 = ((p2[0] - p1[0]) ** 2 + (p2[1] - p1[1]) ** 2) ** 0.5 length2 = ((p3[0] - p1[0]) ** 2 + (p3[1] - p1[1]) ** 2) ** 0.5 length3 = ((p3[0] - p2[0]) ** 2 + (p3[1] - p2[1]) ** 2) ** 0.5 if length1 + length2 != length3 and length2 + length3 != length1 and length1 + length3 != length2: perimeter = length1 + length2 + length3 p = perimeter / 2 s = (p * (p - length1) * (p - length2) * (p - length3)) ** 0.5 print('Периметр: ', perimeter) print('Площадь: ', s) else: print('Треугольник не получается-прямая линия')
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
def can_triangle(p1, p2, p3): return (p1[0] == p2[0] and p2[0] == p3[0] or p1[1] == p2[1] and p2[1] == p3[1]) != True def distance(p1, p2): return ((p1[0] - p2[0]) ** 2 + (p1[1] - p2[1]) ** 2) ** .5 def perimetr(p1, p2, p3): return distance(p1, p2) + distance(p2, p3) + distance(p1, p3) def square(p1, p2, p3): p_2 = perimetr(p1, p2, p3) / 2 return (p_2*(p_2-distance(p1, p2))*(p_2-distance(p2, p3))*(p_2-distance(p1, p3)))**.5 if can_triangle((10, 12), (14, 18), (12, 12)): print("Периметр =", perimetr((10, 12), (14, 18), (12, 12))) print("Площадь =", square((10, 12), (14, 18), (12, 12))) else: print("Не треугольник")
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
import math def dist(x1,y1,x2,y2): return math.sqrt((x1-x2)**2+(y1-y2)**2) def perimeter(l1,l2,l3): return(l1+l2+l3) def square(l1,l2,l3): p = perimeter(l1,l2,l3)/2 return(math.sqrt(p*(p-l1)*(p-l2)*(p-l3))) xa = float(input("xa = ")) ya = float(input("ya = ")) xb = float(input("xb = ")) yb = float(input("yb = ")) xc = float(input("xc = ")) yc = float(input("yc = ")) l1 = dist(xa,ya,xb,yb) l2 = dist(xa,ya,xc,yc) l3 = dist(xc,yc,xb,yb) p = perimeter(l1,l2,l3) s = square(l1,l2,l3) if s == 0: print("Точки не образуют треугольник") else: print("Периметр:", p) print("Площадь:", s)
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
def can_triangle(p1, p2, p3): return not (p3[0] - p1[0]) * (p2[1] - p1[1]) - (p2[0] - p1[0]) * (p3[1] - p1[1]) == 0 def distance(x1, y1, x2, y2): return ((x1 - x2) ** 2 + (y1 - y2) ** 2) ** (1/2) def triangle_perimeter(a, b, c): return a + b + c def triangle_area_heron(p, a, b, c): p_2 = p / 2 return (p_2 * (p_2 - a) * (p_2 - b) * (p_2 - c)) ** 0.5 p1 = (0, 0) p2 = (0, 3) p3 = (2, 0) if can_triangle(p1, p2, p3): a = distance(*p1, *p2) b = distance(*p1, *p3) c = distance(*p2, *p3) p = triangle_perimeter(a, b, c) print("Периметр:", p) print("Площадь:", triangle_area_heron(p, a, b, c)) else: print("Невозможно построить треугольник с ненулевой площадью")
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
def distance(x1, y1, x2, y2): return ((x2 - x1) ** 2 + (y2 - y1) ** 2) ** 0.5 def can_triangle(p1, p2, p3): a = distance(*p1, *p2) b = distance(*p3, *p2) c = distance(*p1, *p3) return (c  a + b) and (b  a + c) and (a  b + c) def perimeter(p1, p2, p3): a = distance(*p1, *p2) b = distance(*p3, *p2) c = distance(*p1, *p3) return a + b + c def area(p1, p2, p3): a = distance(*p1, *p2) b = distance(*p3, *p2) c = distance(*p1, *p3) p = perimeter(p1, p2, p3) return (p * (p - a) * (p - b) * (p - c)) ** 0.5 a = (2, 12) b = (3, 3) c = (4, 4) abc_perimeter = perimeter(a, b, c) if can_triangle(a, b, c) else 'can`t make triangle' abc_area = area(a, b, c) if can_triangle(a, b, c) else 'can`t make triangle' print('area',abc_area) print('perimeter',abc_perimeter)
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
def can_triangle(p1, p2, p3): x1, y1 = p1 x2, y2 = p2 x3, y3 = p3 if x2 - x1 == 0 and x3 - x1 == 0: return False elif x3 - x1 != 0: x2, x3 = x3, x2 # меняем местами 2 и 3 точки y2, y3 = y3, y2 k = (y2 - y1) / (x2 - x1) b = y2 - x2 * k return y3 != k * x3 + b if not can_triangle(p1, p2, p3): print('Не построить треугольник') else: x1, y1 = p1 x2, y2 = p2 x3, y3 = p3 len_lin_1 = ((x2 - x1) ** 2 + (y2 - y1) ** 2) ** 0.5 len_lin_2 = ((x3 - x1) ** 2 + (y3 - y1) ** 2) ** 0.5 len_lin_3 = ((x3 - x2) ** 2 + (y3 - y2) ** 2) ** 0.5 per_half = (len_lin_1 + len_lin_2 + len_lin_3) / 2 s =(per_half*(per_half-len_lin_1)*(per_half-len_lin_2)*(per_half-len_lin_3))**0.5 print(f'Периметр треугольника = , площадь треугольника = ')

Источник

Определить существование треугольника по трем сторонам

У треугольника сумма любых двух сторон должна быть больше третьей. Иначе две стороны просто «лягут» на третью и треугольника не получится.

Пользователь вводит длины трех сторон. Программа должна определять, может ли существовать треугольник при таких длинах. Это значит, необходимо сравнить суммы всех пар сторон с оставшейся третьей стороной. Чтобы треугольник существовал, сумма всегда должна быть больше отдельной стороны или, по крайней мере, не меньше, если учитывать так называемый вырожденный треугольник.

Поскольку всего три стороны, то можно составить три варианта сложения двух сторон: a + b , b + c , a + c . Первую сумму сравниваем с оставшейся стороной c , вторую — с a и третью — с b . Если хотя бы в одном случае сумма окажется не больше третьей стороны, то делается вывод, что треугольник не существует.

print("Стороны:") a = float(input("a = ")) b = float(input("b = ")) c = float(input("c = ")) if a + b > c and a + c > b and b + c > a: print("Треугольник существует") else: print("Треугольник не существует")

Можно решить задачу сложнее. Если требуется также определить, какая из сторон больше суммы двух других, то решение может быть таким:

print("Длины сторон треугольника:") a = float(input("a = ")) b = float(input("b = ")) c = float(input("c = ")) flag = '' if a + b > c: if a + c > b: if b + c > a: print("Треугольник есть") else: flag = 'a' else: flag = 'b' else: flag = 'c' if flag != '': print("Треугольника нет") print("'%s' > суммы других" % flag)

Особого смысла использовать переменную flag здесь нет. Она просто позволяет лишний раз не писать в программе строки, информирующие о том, что треугольник не существует.

Пример выполнения программы:

Длины сторон треугольника: a = 4 b = 5 c = 10 Треугольника нет 'c' > суммы других

Более изящным решением является использование оператора множественного ветвления языка программирования Python: if-elif-else.

print("Длины сторон треугольника:") a = float(input("a = ")) b = float(input("b = ")) c = float(input("c = ")) flag = '' if a + b  c: flag = 'c' elif a + c  b: flag = 'b' elif b + c  a: flag = 'a' else: print("Треугольник есть") if flag != '': print("Треугольника нет") print("'%s' > суммы других" % flag) 

Здесь сравнение происходит от обратного: утверждается, что сумма двух сторон меньше или равна третьей. Если это так (утверждение верно), то треугольника не существует. «Слишком длинная сторона» определяется в зависимости от того, в заголовке какой ветки логическое выражение возвращает истину.

Источник

Существует ли треугольник с заданными сторонами на Python

Статьи

Введение

В ходе статьи напишем код на языке программирования Python, который сможет определить, существует ли треугольник с заданными сторонами.

Написание кода

Для начала дадим пользователю возможность ввести три стороны треугольника:

a = float(input('a = ')) b = float(input('b = ')) c = float(input('c = '))

Как мы знаем, треугольник существует только в том случае, если сумма двух его сторон больше третьей. Зададим условие, в котором проверим сразу все три стороны:

a = float(input('a = ')) b = float(input('b = ')) c = float(input('c = ')) if a + b > c and a + c > b and b + c > a: print('Треугольник существует') else: print('Треугольник не существует') # a = 3 # b = 3 # c = 3 # Треугольник существует

and – логический оператор “И”

Также стоит отметить, что существует понятие выраженного треугольника. Следуя данному понятию сумма двух сторон может равняться третьей, и в таком случае в условии нужно будет использовать не просто знак больше (>), а больше или равно (>=):

a = float(input('a = ')) b = float(input('b = ')) c = float(input('c = ')) if a + b >= c and a + c >= b and b + c >= a: print('Треугольник существует') else: print('Треугольник не существует')

Заключение

В ходе статьи мы с Вами написали код на языке программирования Python, который может определить, существует ли треугольник с заданными сторонам. Надеюсь Вам понравилась статья, желаю удачи и успехов! 🙂

Источник

Читайте также:  border-bottom-style
Оцените статью