Форум программистов, компьютерный форум, киберфорум
Python: Решение задач
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/25: Рейтинг темы: голосов - 25, средняя оценка - 4.72
1026 / 627 / 87
Регистрация: 10.03.2012
Сообщений: 4,241
1

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

13.12.2022, 11:00. Показов 4850. Ответов 12
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
По длинам трех отрезков, определить возможность существования треугольника, составленного из этих отрезков. Даны три целые положительные числа, длины сторон треугольника. Вывести "Существует", если можно построить треугольник с заданными длинами сторон, и "Не существует", если невозможно.
Python
1
2
3
4
5
6
7
8
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("Не существует")
Как определить, какая из сторон больше суммы двух других?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.12.2022, 11:00
Ответы с готовыми решениями:

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

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

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

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

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

12
398 / 255 / 98
Регистрация: 04.11.2022
Сообщений: 378
13.12.2022, 11:10 2
Whitecolor, замените and на or.
2
1026 / 627 / 87
Регистрация: 10.03.2012
Сообщений: 4,241
13.12.2022, 11:12  [ТС] 3
Цитата Сообщение от Vigilant Mole Посмотреть сообщение
замените and на or.
И всё что ли?
0
228 / 225 / 220
Регистрация: 03.07.2012
Сообщений: 466
13.12.2022, 11:41 4
Если треугольник не существует, то найти наибольшую из трёх сторон: max(a, b, c)
1
735 / 617 / 151
Регистрация: 04.03.2022
Сообщений: 1,267
13.12.2022, 12:51 5
Python
1
2
l = sorted(list(map(float, input().split())))
print(('Не существует', 'Существует')[l[0] + l[1] > l[2]])
2
1026 / 627 / 87
Регистрация: 10.03.2012
Сообщений: 4,241
13.12.2022, 16:31  [ТС] 6
Python
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)
0
1026 / 627 / 87
Регистрация: 10.03.2012
Сообщений: 4,241
14.12.2022, 14:14  [ТС] 7
Добавил на проверки равнобедренный и равносторонний треугольник. Как сделать чтобы не выводилось сразу разносторонний и равнобедренный или равносторонний?
Python
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("Треугольник равносторонний")
Пока додумал до такого решения, но можно как-то еще по-другому решить?
Python
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("Треугольник равнобедренный")
0
735 / 617 / 151
Регистрация: 04.03.2022
Сообщений: 1,267
14.12.2022, 14:41 8
Whitecolor, всё дело в очередности условий:
Python
1
2
3
4
5
6
7
8
9
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
1026 / 627 / 87
Регистрация: 10.03.2012
Сообщений: 4,241
14.12.2022, 14:43  [ТС] 9
Parramon, Тоже к этому пришёл
Python
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("Треугольник разносторонний")
0
Status 418
Эксперт Python
4581 / 2348 / 602
Регистрация: 26.11.2017
Сообщений: 5,264
Записей в блоге: 3
14.12.2022, 18:34 10
Python
1
2
3
4
5
6
*p, = map(int, input().split())
print(2 * max(p) < sum(p))
print(len(set(p)))
# 1 - равносторонний
# 2 - равнобедренный
# 3 - разносторонний
Добавлено через 2 минуты
Цитата Сообщение от Whitecolor Посмотреть сообщение
Даны три целые положительные числа
надо еще определиться 0 это положительное число.
2
1026 / 627 / 87
Регистрация: 10.03.2012
Сообщений: 4,241
14.12.2022, 18:45  [ТС] 11
Цитата Сообщение от eaa Посмотреть сообщение
надо еще определиться 0 это положительное число.
Так у меня нету в решении проверок на ввод положительного или отрицательного числа
0
1026 / 627 / 87
Регистрация: 10.03.2012
Сообщений: 4,241
27.01.2023, 11:06  [ТС] 12
Python
1
2
3
4
5
6
7
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
Python
1
2
def can_triangle(p1, p2, p3):
    return (p1 + p2) > p3 or (p1 + p3) > p2
Python
1
2
3
4
def can_triangle(p1, p2, p3):
    if p1[0] == p2[0] == p3[0] or p1[1] == p2[1] == p3[1]:
        return False
    return True
Python
1
2
3
4
def can_triangle(p1, p2, p3):
    if p1 != p2 and p2 != p3 and p3 != p1:
        return True
    return False
Python
1
2
def can_triangle(p1, p2, p3):
    return (p3[2] - p1[2]) / (p2[2] - p1[2]) == (p3[1] - p1[1]) / (p2[1] - p1[1])
0
1026 / 627 / 87
Регистрация: 10.03.2012
Сообщений: 4,241
29.01.2023, 20:18  [ТС] 13
Python
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('Треугольник не получается-прямая линия')
Python
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("Не треугольник")
Python
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)
Python
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("Невозможно построить треугольник с ненулевой площадью")
Python
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)
Python
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'Периметр треугольника = {per_half*2:.2f}, площадь треугольника = {s:.2f}')
0
29.01.2023, 20:18
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.01.2023, 20:18
Помогаю со студенческими работами здесь

Существует ли треугольник с заданными длинами сторон? Не могу найти ошибку
Входные данные: 3 действительных числа.a, b, c.передаются в программу как аргументы командной...

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

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

Выяснить, существует ли треугольник с длинами сторон x, y, z, если существует, то определить его тип
Здравствуйте пользователи этого форума !Необходима срочная помощь в решении семестровых задач по...

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

Существует треугольник со сторонами длиной a, b, c и, если существует, то найти его периметр и площадь
Помогите решить задачи на языке Паскаль. Дело в том что это задали на практике в колледже, когда...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru