43 lines
1.4 KiB
Python
43 lines
1.4 KiB
Python
|
import matplotlib.pyplot as plt
|
|||
|
|
|||
|
print("Введите минимальное значение (первое основание треугольника) :")
|
|||
|
min_value = float(input())
|
|||
|
|
|||
|
print("Введите максимальное значение (второе основание треугольника) :")
|
|||
|
max_value = float(input())
|
|||
|
|
|||
|
if max_value < min_value:
|
|||
|
max_value, min_value = min_value, max_value
|
|||
|
|
|||
|
print("Введите центральное значение (вершина треугольника) :")
|
|||
|
center_value = float(input())
|
|||
|
|
|||
|
print("Введите значение объекта для проверки степени принадлежности:")
|
|||
|
x = float(input())
|
|||
|
|
|||
|
if min_value <= x <= center_value:
|
|||
|
membership = (x - min_value) / (center_value - min_value)
|
|||
|
elif center_value < x <= max_value:
|
|||
|
membership = (max_value - x) / (max_value - center_value)
|
|||
|
elif x < min_value or x > max_value:
|
|||
|
membership = 0
|
|||
|
else:
|
|||
|
membership = -1
|
|||
|
|
|||
|
|
|||
|
if membership == -1:
|
|||
|
print("Не удалось рассчитать степень принадлежности объекта")
|
|||
|
|
|||
|
|
|||
|
print(f"Минимум: {min_value}")
|
|||
|
print(f"Максимум: {max_value}")
|
|||
|
print(f"Центр: {center_value}")
|
|||
|
print(f"Степень принадлежности {x}: {membership:.2f}")
|
|||
|
|
|||
|
X = [min_value, center_value, max_value]
|
|||
|
Y = [0, 1, 0]
|
|||
|
|
|||
|
plt.plot(X, Y)
|
|||
|
plt.plot(x, membership, 'ro')
|
|||
|
plt.show()
|