این برنامه مختصات سهنقطه A، B و C را از کاربر دریافت میکند.
سپس بررسی میکند که آیا این سهنقطه روی یک خط قرار دارند یا نه.
اگر همخط باشند، معادله خط بهصورت ax + by + c = 0 نمایش داده میشود.
در غیر اینصورت، خروجی No خواهد بود.
def slope(p1, p2):
x1, y1 = p1
x2, y2 = p2
if x2 - x1 == 0:
return None # خط عمودی
return (y2 - y1) / (x2 - x1)
def line_equation(p1, p2):
x1, y1 = p1
x2, y2 = p2
a = y2 - y1
b = x1 - x2
c = x2 * y1 - x1 * y2
return a, b, c
# دریافت ورودی
print("مختصات سهنقطه را وارد کنید:")
x1, y1 = map(float, input("نقطه A (x y): ").split())
x2, y2 = map(float, input("نقطه B (x y): ").split())
x3, y3 = map(float, input("نقطه C (x y): ").split())
# بررسی همخطی
m1 = slope((x1, y1), (x2, y2))
m2 = slope((x2, y2), (x3, y3))
if m1 == m2:
a, b, c = line_equation((x1, y1), (x2, y2))
print(f"معادله خط: {a}x + {b}y + {c} = 0")
else:
print("No")
نقطه A (x y): 1 2
نقطه B (x y): 2 4
نقطه C (x y): 3 6
معادله خط: 2x + -1y + 0 = 0
- ابتدا شیب دو خط AB و BC محاسبه میشود
- اگر شیبها برابر باشند، سهنقطه همخط هستند
- سپس با استفاده از دو نقطه اول، ضرایب a، b و c برای معادله خط محاسبه میشود
- اگر شیبها متفاوت باشند، خروجی No چاپ میشود