Форум программистов, компьютерный форум, киберфорум
Python: Решение задач
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
1200 / 769 / 128
Регистрация: 10.03.2012
Сообщений: 4,968

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

22.02.2023, 11:27. Показов 1375. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Даны два уравнения прямых вида у = kx + b и виде строки. Проверить, пересекаются ли данные прямые?
Примеры уравнений: "y = 2x + 4" "y = -12x - 12"
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
print("Введите первую точку")
x1 = float(input('X: '))
y1 = float(input('Y: '))
print("\nВведите вторую точку")
x2 = float(input('X: '))
y2 = float(input('Y: '))
 
x = x1 - x2
y = y1 - y2
if x == 0:
    print("Уравнение вида y=kx +b составить нельзя, уравнение прямой x=", x1)
else:
    k = y / x
    b = y2 - k * x2
    print("Уравнение прямой, проходящей через эти точки:")
    print("y = ", k, " * x + ", b)
Как правильно если уравнения в виде строк?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
22.02.2023, 11:27
Ответы с готовыми решениями:

Составить уравнение прямой, отстоящей от двух точек
Составить уравнение прямой,отстоящей от точки A(1;1)на расстоянии равном 2,а от точки B(2;3) на расстоянии 4.

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

Дано координаты точек x1x2x3. и уравнение прямой y=ax+b вывести масив С в котором координаты точек этой прямой
Пытался сделать так потому что забыл как решение примера занести в масив на выводе огромные числа подскажите где ошыбка #include...

9
 Аватар для rim41
1045 / 313 / 78
Регистрация: 16.03.2020
Сообщений: 954
22.02.2023, 11:49
Я предпочитаю ООП, так что
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
class Line:
    def __init__(self, p1, p2):
        self.point1 = p1
        self.point2 = p2
    
    def get_params(self) -> tuple:
        x1, y1 = self.point1
        x2, y2 = self.point2
        
        a = y2 - y1
        b = x1 - x2
        c = x2 * y1 - x1 * y2
        
        return a, b, c
 
    def is_parallel_to(self, other: "Line"):
        a1, b1, _ = self.get_params()
        a2, b2, _ = other.get_params()
 
        return a1 * b2 == a2 * b1
Насколько я понимаю, точки вводятся как 2 точки, принадлежащие графику линейной функции? Тогда
Python
1
2
3
4
5
6
# Твой код, который принимает две точки и проверяет, можно ли составить уравнение.
# Затем ещё 2 точки - вторая линия
 
line1 = Line((x1, y1), (x2, y2))
line2 = Line(...)
print(line1.is_parallel_to(line2))
0
Эксперт Python
8851 / 4502 / 1864
Регистрация: 27.03.2020
Сообщений: 7,317
22.02.2023, 12:02
Whitecolor,
Как правильно если уравнения в виде строк?

Python
1
2
3
4
5
6
7
 lst = [ "y = -12x - 12", "y = -12x", "y = -5", "y = 2x+6", "y = 0x - 0"]
for s in lst:
    ss = s.replace(' ', '').split("=")[1].split('x')
    k, b = int(ss[0]) if 'x' in s else 0, int(ss[-1] or 0)
    print(k, b)
…
…
0
 Аватар для rim41
1045 / 313 / 78
Регистрация: 16.03.2020
Сообщений: 954
22.02.2023, 12:10
Whitecolor, Перечитав вопрос, я подумал, что мог неправильно понять задание. Если вводятся уже готовые графики и надо составить линии по ним, то может пригодиться
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
g1 = input("Enter the 1st: ").split('=')[1].strip()
g2 = input("Enter the 2nd: ").split('=')[1].strip()
# Подразумевается, что вводятся уравнения вида y = ax + b, но можно регулярку прикрутить чтобы проверяла корректность уравнения
 
 
get_y(formula, x):
    return eval(formula.replace('x', str(x)))  # Вот чтобы сюда не ввели гадость какую лучше регулярку приделать
 
 
# Берем по 2 точки с каждой линии
p1 = (1, get_y(g1, 1))
p2 = (10, get_y(g1, 10))
p3 = (1, get_y(g2, 1))
p4 = (10, get_y(g2, 10))
 
l1 = Line(p1, p2)
l2 = Line(p3, p4)
 
print(l1.is_parallel_to(l2))
Добавлено через 4 минуты
А вообще если нигде кроме этого не используются линии, то можно не изобретать велосипед и вспомнить алгебру за 6 класс. Линейные графики параллельны при одинаковом коэффициенте a в уравнении ax + b. Т.е. находим a у обоих графиков и сравниваем
Python
1
2
3
4
a1 = input("Enter the 1st: ").split('=')[1].strip().split('x')[0]
a2 = input("Enter the 2nd: ").split('=')[1].strip().split('x')[0]
 
print(a1 == a2)
1
 Аватар для Aviz__
2759 / 2066 / 509
Регистрация: 17.02.2014
Сообщений: 9,492
22.02.2023, 12:22
Whitecolor, не полное решение, но принцип уловишь:
Python
1
2
3
4
5
6
7
8
9
def isintersection(eq_line1: str, eq_line2: str):
    begin_cat_ind10 = eq_line1.index('=') + 1
    end_cat_ind11 = eq_line1.index('x')
    begin_cat_ind20 = eq_line2.index('=') + 1
    end_cat_ind21 = eq_line2.index('x')
    return int(eq_line1[begin_cat_ind10 : end_cat_ind11].strip()) != int(eq_line2[begin_cat_ind20 : end_cat_ind21].strip())
 
 
print(isintersection("y = 2x + 4", "y = -12x - 12"))
Добавлено через 2 минуты

Не по теме:

rim41, ты чего так суетишься, тебе 11 лет, чтоль?

1
 Аватар для rim41
1045 / 313 / 78
Регистрация: 16.03.2020
Сообщений: 954
22.02.2023, 12:25
Aviz__, А зачем? Что-то слишком сложно по сравнению с проверкой на равенство a.
Python
1
2
3
4
5
6
7
def areintersection(l1, l2):
    a1 = l1.split('=')[1].strip().split('x')[0]
    a2 = l2.split('=')[1].strip().split('x')[0]
    
    return a1 == a2
 
print(areintersection("y = 2x + 4", "y = -12x - 12"))
Добавлено через 2 минуты
Цитата Сообщение от Aviz__ Посмотреть сообщение
ты чего так суетишься

Не по теме:

Я просто проектом занимаюсь, где это уже делал, обрадовался что где-то пригодилось. Можешь последние пару тем моих посмотреть, они связаны с ним



Не по теме:

Цитата Сообщение от Aviz__ Посмотреть сообщение
тебе 11 лет
Но... Как ты узнал???

0
 Аватар для Aviz__
2759 / 2066 / 509
Регистрация: 17.02.2014
Сообщений: 9,492
22.02.2023, 12:30

Не по теме:

Цитата Сообщение от rim41 Посмотреть сообщение
А зачем?
и далее
Цитата Сообщение от Aviz__ Посмотреть сообщение
ты чего так суетишься, тебе 11 лет, чтоль?



Добавлено через 4 минуты

Не по теме:

Цитата Сообщение от rim41 Посмотреть сообщение
Но... Как ты узнал???
анекдот про молодого и не очень быков напомнила твоя суета))
Цитата Сообщение от rim41 Посмотреть сообщение
Можешь последние пару тем моих посмотреть
не, мне 15, уже лень.

1
 Аватар для rim41
1045 / 313 / 78
Регистрация: 16.03.2020
Сообщений: 954
22.02.2023, 12:50
Цитата Сообщение от Aviz__ Посмотреть сообщение
анекдот про молодого и не очень быков напомнила твоя суета))

Не по теме:

Да просто время появилось понабивать репутацию немного, выходной у меня

0
22.02.2023, 12:57

Не по теме:

Цитата Сообщение от rim41 Посмотреть сообщение
репутацию немного
это все пустое! 13 стукнет, поймешь))

0
 Аватар для rim41
1045 / 313 / 78
Регистрация: 16.03.2020
Сообщений: 954
22.02.2023, 13:01
Цитата Сообщение от Aviz__ Посмотреть сообщение
13 стукнет, поймешь

Не по теме:

Эх, долго ждать ещё


1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.02.2023, 13:01
Помогаю со студенческими работами здесь

На данной прямой найти точку с минимальной суммой длин от неё до двух данных точек вне прямой
Задача на построение, можно пользоваться циркулем и линейкой (без откладывания точных углов и длин). Есть две точки, A и B. Есть...

По координатам трех точек на плоскости определить, лежат ли они на одной прямой
По координатам трех точек на плоскости определить, лежат ли они на одной прямой.

По координатам трех точек на плоскости (в пространстве) определить, лежат ли они на одной прямой
По координатам трех точек на плоскости (в пространстве) определить, лежат ли они на одной прямой.помогите. пожалуйста

Уравнение для плоскости по координатам 3 точек
Помогите, пожалуйста, написать программу на C#, которая по координатам 3-ех точек плоскости (x1,x2,x3, y1,y2,y3,z1,z2,z3) находит...

Найти уравнение прямой содержащие наибольшее количество точек содержащие на прямой
Всем привет, кто может написать программу по условию, удалено модератором Вот условие На плоскости N точек заданы своими координатами. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru