Задача 2. Сессия

Задача 2. Сессия

Внутри папки 02_session этой папки создайте питоновский файл main.py и решите здесь задачу из четвёртого урока данного модуля. Вот текст самой задачи:

Для сдачи зачёта студент Пётр написал программу, которая по координатам двух точек определяет уравнение прямой, проходящей через эти две точки в виде y = k*x +b, где k и b — числа, означающие угловой коэффициент и вертикальное смещение прямой. Вот текст этой программы:

print("Введите первую точку")
x1 = float(input('X: '))
y1 = float(input('Y: '))
print("\nВведите вторую точку")
x2 = float(input('X: '))
y2 = float(input('Y: '))

x_diff = x1 - x2
y_diff = y1 - y2
k = y_diff / x_diff
b = y2 - k * x2

print("Уравнение прямой, проходящей через эти точки:")
print("y = ", k, " * x + ", b)


Пример работы программы (содержимое консоли):

Введите первую точку
X: 10
Y: 20

Введите вторую точку
X: 15
Y: 25
Уравнение прямой, проходящей через эти точки:
y =  1.0  * x +  10.0

Однако, вечером накануне сдачи Пётр обнаружил, что программа не всегда работает правильно. Например, она не выдаёт корректного уравнения, если координаты первой точки равны (10, 20), а координаты второй точки равны (10, 45). Отчаявшись и предвидя бессонную ночь, Пётр обратился к вам за помощью. Помогите ему найти и исправить ошибку в коде с помощью брейкпоинтов, чтобы уравнение прямой составлялось правильно во всех случаях.

Решение:

print("Введите первую точку")
x1 = float(input('X: '))
y1 = float(input('Y: '))
print("\nВведите вторую точку")
x2 = float(input('X: '))
y2 = float(input('Y: '))

x_diff = x1 - x2
y_diff = y1 - y2
if x_diff == 0:
    k = 1
else:
    k = y_diff / x_diff
b = y2 - k * x2

print("Уравнение прямой, проходящей через эти точки:")
print("y = ", k, " * x + ", b)


2690login-checkЗадача 2. Сессия

Добавить комментарий