Задача уравнение прямой python

Уравнение прямой

Как известно, через любые две различные точки на плоскости проходит прямая, и только одна. Напишите функцию equation(a, b), которая по двум заданным точкам находит уравнение прямой, проходящей через них.

В функцию передаются две строки — координаты точек в формате x;y, функция должна выводить на экран два числа через пробел — коэффициенты k и b найденной прямой.

Если в решении получается прямая вида y=c или x=c, функция должна печатать эту константу с.

Пример 1
Ввод

equation(«0;0», «1;1»)
Вывод

1.0 0.0
Пример 2
Ввод

equation(«0;0», «0;4»)
Вывод
0.0
Пример 3
Ввод

equation(«4;6.9», «-5.2;6.9»)
Вывод
6.9

def equation(a, b): x1, y1, x2, y2 = map(float, (a + ";" + b).replace(',', '.').split(';')) if x1 == x2: print(x1) else: if y1 == y2: print(y1) else: k = (x2 - x1) / (y2 - y1) print(k, y1 - k * x1)

при 7 тесте неправильно работает

Источник

Уравнение прямой

Как известно, через любые две различные точки на плоскости проходит прямая, и только одна. Напишите функцию equation(a, b), которая по двум заданным точкам находит уравнение прямой, проходящей через них.

В функцию передаются две строки — координаты точек в формате x;y, функция должна выводить на экран два числа через пробел — коэффициенты k и b найденной прямой.

Если в решении получается прямая вида y=c или x=c, функция должна печатать эту константу с.

Пример 1
Ввод

equation(«0;0», «1;1»)
Вывод
1.0 0.0
Пример 2
Ввод

equation(«0;0», «0;4»)
Вывод
0.0
Пример 3
Ввод

equation(«4;6.9», «-5.2;6.9»)
Вывод
6.9

def equation(a, b): x1, y1, x2, y2 = [float(i)for i in a.replace(',', '.').split(';')] + [float(i)for i in b.replace(',', '.').split(';')] if x1 == x2: print(x1) if y1 == y2: print(y1) else: k = (x2 - x1) / (y2 - y1) print(k, y1 - k * x1)

Источник

Вывести уравнение прямой по координатам двух точек

По введенным пользователем координатам двух точек вывести уравнение прямой, проходящей через эти точки.

Общее уравнение прямой имеет вид y = kx + b . Для какой-то конкретной прямой в уравнении коэффициенты k и b заменяются на числа, например, y = 4x — 2 . Задача сводится именно к нахождению этих коэффициентов.

Так как координаты точки это значения x и y , то мы имеем два уравнения. Пусть, например, координаты точки А(3;2), а координаты B(-1;-1). Получаем уравнения:
2 = k*3 + b,
-1 = k*(-1) + b.
Решая полученную систему уравнений находим значения k и b :
b = 2 — 3k
-1 = -k + 2 — 3k
4k = 3
k = 3/4 = 0.75
b = 2 — 3 * 0.75 = 2 — 2.25 = -0.25
Таким образом, получается уравнение конкретной прямой, проходящей через указанные точки: y = 0.75x — 0.25.

Алгоритм решения данной задаче на языке программирования будет таков:

  1. Получить значения координат первой точки и присвоить их переменным, например x1 и y1 .
  2. Получить значения координат ( x2, y2 ) второй точки.
  3. Вычислить значение k по формуле k = (y1 — y2) / (x1 — x2) .
  4. Вычислить значение b по формуле b = y2 — k * x2 .
  5. Вывести на экран полученное уравнение.

Pascal

 
var
x1,y1,x2,y2: real;
k, b: real;

begin
write('A(x1;y1): '); readln(x1, y1);
write('B(x2;y2): '); readln(x2, y2);

k := (y1 - y2) / (x1 - x2);
b := y2 - k * x2;

writeln('y = ',k:0:2,'x + ',b:0:2);
end.
 

A(x1;y1):
1.2
5.6
B(x2;y2):
-3.45 8.2
y = -0.56x + 6.27

Язык Си

 
#include

main() float x1, y1, x2, y2, k, b;

printf("A(x1;y1): ");
scanf("%f%f", &x1,&y1);
printf("A(x2;y2): ");
scanf("%f%f", &x2,&y2);

k = (y1 - y2) / (x1 - x2);
b = y2 - k * x2;

printf("Уравнение прямой: y = %.2fx + %.2f\n", k, b);
>
 

A(x1;y1): 5.67 -1.45
A(x2;y2): -3.12 4.00
Уравнение прямой: y = -0.62x + 2.07

Python

 
print("Координаты точки A(x1;y1):")
x1 = float(input("\tx1 \ty1 Координаты точки B(x2;y2):")
x2 = float(input("\tx2 \ty2 Уравнение прямой, проходящей через эти точки:")
k = (y1 - y2) / (x1 - x2)
b = y2 - k*x2
print(" y = %.2f*x + %.2f" % (k, b))
 

Координаты точки A(x1;y1):
x1 = 4.3
y1 = -1.2
Координаты точки B(x2;y2):
x2 = -8.5
y2 = 4
Уравнение прямой, проходящей через эти точки:
y = -0.41*x + 0.55

КуМир

 
алг уравнение_прямой
нач
вещ x1, y1, x2, y2, k, b
вывод "Координаты точки A(x1;y1): "
ввод x1, y1
вывод "Координаты точки B(x2;y2): "
ввод x2, y2
k := (y1 - y2) / (x1 - x2)
b := y2 - k * x2
вывод "Уравнение прямой: y = " + вещ_в_лит(k) + "x + " + вещ_в_лит(b)
кон
 

Координаты точки A(x1;y1): 4 9
Координаты точки B(x2;y2): -1 -3
Уравнение прямой: y = 2.4x + -0.6

Basic-256

 
input "x1 y1 x2 y2 y = " + k + "x + " + b
 

x1 = 7.45
y1 = -1
x2 = -3.4
y2 = 3
y = -0.37x + 1.75

Источник

Уравнение прямой по двум точкам

Как известно, через любые две точки на плоскости проходит прямая, и только одна. Напишите функцию equation(), которая по двум заданным точкам находит уравнение прямой, проходящей через них. На вход подаются две строки — координаты точек в формате x;y, функция должна выводить два числа через пробел — коэффициенты k и b найденной прямой. Если в решении получается прямая вида y=c или x=c, функция должна печатать эту константу с.

Уравнение прямой по двум точкам
#include <iostream> using namespace std; void main() < setlocale (LC_ALL, "rus"); int x1.

Определить функцию, позволяющую построить уравнение прямой по двум точкам
Определить функцию, позволяющую построить уравнение прямой по двум точкам. как это вообще? 🙁

Как найти угол поворота прямой, по двум точкам другой прямой?
Здравствуйте, не думаю что правильно сформулировал заголовок темы, но стоит следующая задача: .

Вывести функцию прямой по двум точкам
Необходимо вывести функцию прямой по двум точкам, у меня получился следующий код: import.

х1, х2, у1, у2 известны дальше как в школе учили работать с уравнениями. Результат и и будет уравнением прямой.
Дальше берёшь от балды неизвестное значение справа и получаешь парное ему слева.

1 2 3 4 5 6 7 8 9 10 11 12
print("Координаты точки A(x1;y1):") x1 = float(input("\tx1 = ")) y1 = float(input("\ty1 = ")) print("Координаты точки B(x2;y2):") x2 = float(input("\tx2 = ")) y2 = float(input("\ty2 = ")) print("Уравнение прямой, проходящей через эти точки:") k = (y1 - y2) / (x1 - x2) b = y2 - k*x2 print(" y = %.2f*x + %.2f" % (k, b))
1 2 3 4 5 6 7 8 9 10 11 12 13
def equation(a, b): xa = float(a[:a.find(';')]) ya = float(a[a.find(';') + 1:]) xb = float(b[:b.find(';')]) yb = float(b[b.find(';') + 1:]) if xa == xb: print(a[:a.find(';')]) elif ya == yb: print(a[a.find(';') + 1:]) else: k = (ya - yb) / (xa - xb) b = yb - k * xb print(k, b)

Эксперт Python

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

Составить уравнение параболы по двум точкам
Что я уже на час подзавис. Коэффициент c нашел, а что дальше делать не знаю. Вообще нужно решить.

Составить уравнение прямой, симметричной прямой 3x-y+5=0, относительно прямой x+y=0
Помогите решить задачку: Знаю как сделать относительно точки с координатами. Но в данном.

Линия по двум точкам
Ребята, помогите пожалуйста. Нужно создать оси координат (икс и игрек) от -5 до 5 на каждой оси.

Направление по двум точкам
— Здравствуйте Все, Все после праздников! — Возникла задачка, скорее по математике: Есть.

Прямоугольники по двум точкам
На канве задать 2 точки для создания прямоугольника и потом построить этот прямоугольник.

Квадрат по двум точкам
Необходимо построить максимальный квадрат по двум точкам без поворотов с неихменной первой тчокой.

Источник

Уравнение прямой

Как известно, через любые две различные точки на плоскости проходит прямая, и только одна. Напишите функцию equation(a, b), которая по двум заданным точкам находит уравнение прямой, проходящей через них.

В функцию передаются две строки — координаты точек в формате x;y, функция должна выводить на экран два числа через пробел — коэффициенты k и b найденной прямой.

Если в решении получается прямая вида y=c или x=c, функция должна печатать эту константу с.

Пример 1
Ввод
equation(«0;0», «1;1»)
Вывод
1.0 0.0
Пример 2
Ввод
equation(«0;0», «0;4»)
Вывод
0.0
Пример 3
Ввод
equation(«4;6.9», «-5.2;6.9»)
Вывод
6.9

Уравнение прямой
Как известно, через любые две различные точки на плоскости проходит прямая, и только одна. Напишите.

Уравнение прямой
Как известно, через любые две различные точки на плоскости проходит прямая, и только одна. Напишите.

Уравнение прямой
Как известно, через любые две различные точки на плоскости проходит прямая, и только одна. Напишите.

Найти уравнение прямой
На плоскости N различных точек заданы своими координатами. Найти уравнение прямой, делящей это.

Эксперт Python

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
def pryam(x1,y1,x2,y2): print("Координаты точки A(x1;y1):") print("Координаты точки B(x2;y2):") print("Уравнение прямой, проходящей через эти точки:") k = (y1 - y2) / (x1 - x2) b = y2 - k * x2 print(" y = %.2f*x + %.2f" % (k, b)) if __name__ == '__main__': x1 = float(input("\tx1 = ")) y1 = float(input("\ty1 = ")) x2 = float(input("\tx2 = ")) y2 = float(input("\ty2 = ")) pryam(x1,y1,x2,y2)

Не совсем подходит к условию. И ещё ты в конце намудрил, что-о вообще странное.
Вот вменяемое решение:

def equation(xy1, xy2): x1 = int(xy1.split(";")[0]) y1 = int(xy1.split(";")[1]) x2 = int(xy2.split(";")[0]) y2 = int(xy2.split(";")[1]) k = (y1 - y2) / (x1 - x2) b = y2 - k * x2 print(k, b)

Эксперт Python

если , чего б ей не крашиться?)

Добавлено через 56 секунд
а если брать формулу из задачи, и подавно сломается, Вы в нее 0 подставлять пробовали?

Dax, необходимо добавить до расчета k проверку на неравенство нулю (y1 — y2) или (x1 — x2).
В этом случае выводить только одно число.

Эксперт Python

u235, когда я решал данную задачу, к ней были заявлены такие условия, я по ним решил, претензии не было(да, уравнеие прямой, возможно, чуть другое, но , условия к задаче были таковы и решение устроило ТС на тот момент )
u235, Вы из я.Лицея, да(похоже)?

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

необходимо добавить до расчета k проверку на неравенство нулю (y1 — y2) или (x1 — x2).
В этом случае выводить только одно число.

Добавлено через 4 минуты
Вот тут все про уравнение прямой поподробнее
https://younglinux.info/python/task/equation-line
Потому, решение и такое)))

Dax, какие условия были раньше — не знаю, я описал то, что вижу сейчас. В настоящий момент ваше решение неполное. Это факт.
Dax, вы блондин(ка), да(похоже)?
Только блондинки делают далеко идущие выводы без достаточных на то оснований.
Нет, я не из лицея.

Эксперт Python

u235, Вы бы знали, сколько человек из я.Лицея приходит на форум с формулировкой: надо. без попыток решить задачу(для этого есть раздел freelance,там за денежку, решают, ежели «барину с утра не пишется»), а в бесплатной састи форума, код надо показывать, чтоб помогли, Вашего кода я не видел, только критика, это — основание №1, для того, того,чтоб подумать, что Вы лицеист(ка)
По даной мною выше ссылке, дано решение, приводящее уравнение прямой, к тому виду, в коем я его описал на python
Решение основано на чистой математике, подкреплено примерами,но, Вами, видимо, прочитано не было, это — основание №2
Задача достаточно простая, проходят в школе, но, видимо забылось))), это основание №3.
Ну, и наконец, маленькая репутация свидетельствует о том, что, Вы только начали изучать python и, либо новичок в языке, либо — в программировании вовсе(бывает и так, не страшно)))
Как видите, оснований достаточно, вот только с лицеем не угадал,потому, про блондинистость — не ко мне .)
Чувство юмора в людях ценю

Добавлено через 3 минуты
u235, ну так что, Вы допишите if\else, или поспорим об основаниях,на которых я построил выводы)?

def equation(a, b): x1, y1 = float(a.split(';')[0]), float(a.split(';')[1]) x2, y2 = float(b.split(';')[0]), float(b.split(';')[1]) k = (y2 - y1) / (x2 - x1) b = y1 - (k * x1)

Вот мое решение. Находит все правильно, но я никак не пойму как реализовать проверку условий y=c или x=c. И когда я проверяю работу последним примером: equation(«4;6.9», «-5.2;6.9») , у меня в ответе получается -0.0 6.9.
P.s y=c я понял, там к == 0, остальное до сих пор не понимаю

Добавлено через 10 минут
Я НЕ ЗНАЮ КАК ЭТО РАБОТАЕТ. Но это работает

def equation(a, b): x1, y1 = float(a.split(';')[0]), float(a.split(';')[1]) x2, y2 = float(b.split(';')[0]), float(b.split(';')[1]) if x2 - x1 != 0: k = (y2 - y1) / (x2 - x1) b = y1 - (k * x1) print(k, b) elif y1 == y2: print(y1) elif x1 == x2: print(x1)

Источник

Читайте также:  Python calling private method
Оцените статью