Уравнение прямой
Как известно, через любые две различные точки на плоскости проходит прямая, и только одна. Напишите функцию 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(), которая по двум заданным точкам находит уравнение прямой, проходящей через них. На вход подаются две строки — координаты точек в формате 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)
Сообщение от LiKin
Составить уравнение параболы по двум точкам
Что я уже на час подзавис. Коэффициент c нашел, а что дальше делать не знаю. Вообще нужно решить.
Составить уравнение прямой, симметричной прямой 3x-y+5=0, относительно прямой x+y=0
Помогите решить задачку: Знаю как сделать относительно точки с координатами. Но в данном.
Линия по двум точкам
Ребята, помогите пожалуйста. Нужно создать оси координат (икс и игрек) от -5 до 5 на каждой оси.
Направление по двум точкам
— Здравствуйте Все, Все после праздников! — Возникла задачка, скорее по математике: Есть.
Прямоугольники по двум точкам
На канве задать 2 точки для создания прямоугольника и потом построить этот прямоугольник.
Квадрат по двум точкам
Необходимо построить максимальный квадрат по двум точкам без поворотов с неихменной первой тчокой.
Вывести уравнение прямой по координатам двух точек
По введенным пользователем координатам двух точек вывести уравнение прямой, проходящей через эти точки.
Общее уравнение прямой имеет вид 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.
Алгоритм решения данной задаче на языке программирования будет таков:
- Получить значения координат первой точки и присвоить их переменным, например x1 и y1 .
- Получить значения координат ( x2, y2 ) второй точки.
- Вычислить значение k по формуле k = (y1 — y2) / (x1 — x2) .
- Вычислить значение b по формуле b = y2 — k * x2 .
- Вывести на экран полученное уравнение.
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(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 различных точек заданы своими координатами. Найти уравнение прямой, делящей это.
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)
если , чего б ей не крашиться?)
Добавлено через 56 секунд
а если брать формулу из задачи, и подавно сломается, Вы в нее 0 подставлять пробовали?
Dax, необходимо добавить до расчета k проверку на неравенство нулю (y1 — y2) или (x1 — x2).
В этом случае выводить только одно число.
u235, когда я решал данную задачу, к ней были заявлены такие условия, я по ним решил, претензии не было(да, уравнеие прямой, возможно, чуть другое, но , условия к задаче были таковы и решение устроило ТС на тот момент )
u235, Вы из я.Лицея, да(похоже)?
Сообщение от u235
необходимо добавить до расчета k проверку на неравенство нулю (y1 — y2) или (x1 — x2).
В этом случае выводить только одно число.
Добавлено через 4 минуты
Вот тут все про уравнение прямой поподробнее
https://younglinux.info/python/task/equation-line
Потому, решение и такое)))
Dax, какие условия были раньше — не знаю, я описал то, что вижу сейчас. В настоящий момент ваше решение неполное. Это факт.
Dax, вы блондин(ка), да(похоже)?
Только блондинки делают далеко идущие выводы без достаточных на то оснований.
Нет, я не из лицея.
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)
Прямая через две точки
Напишите функцию line(), которая по двум точкам выводит уравнение прямой, проходящей через них. Аргументы функции: x1, y1, x2, y2 – координаты точек, через которые проходит прямая. Уравнение вывести в виде:
y = k * x + b
Если b < 0, то вместо плюса вывести минус. Коэффициенты округлить до 2 знаков после запятой.
Пример 1
Ввод Вывод
line(0, 2, 2, 0)
y = -1.0 * x + 2.0
Пример 2
Ввод Вывод
line(0, -1, 4, 0)
y = 0.25 * x — 1.0
Если что у меня есть программа
def line(x1, y1, x2, y2): k = (y2 - y1) / (x2 - x1) b = y1 - x1 * k print(f'y = * x', end='') print(f' + ' if b > 0 else f' < b>')
Line 1 differs: out:
>y = 0.25 * x -1.0 corr:
>y = 0.25 * x — 1.0
минусик не понимаю как сдвинуть
Прямая через две точки
Напишите функцию line(), которая по двум точкам выводит уравнение прямой, проходящей через них.
Уравнение прямой, проходящей через две точки
Прошу помочь, не могу никак понять как решить задачу. Заранее спасибо. Чтобы сдать зачёт.
Как построить прямую через две точки?
У меня есть две координаты (x1,y1) и (x2,y2). Как можно нарисовать прямую в matplotlib.pyplot через.
Прямая через две точки
Напишите функцию line(), которая по двум точкам выводит уравнение прямой, проходящей через них.