Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.74/323: Рейтинг темы: голосов - 323, средняя оценка - 4.74
-27 / 13 / 0
Регистрация: 29.12.2018
Сообщений: 214

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

17.01.2019, 20:48. Показов 67968. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как известно, через любые две различные точки на плоскости проходит прямая, и только одна. Напишите функцию 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
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.01.2019, 20:48
Ответы с готовыми решениями:

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

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

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

11
Эксперт Python
1356 / 653 / 207
Регистрация: 23.03.2014
Сообщений: 3,057
17.01.2019, 22:48
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)
Простой вариант.
1
67 / 64 / 3
Регистрация: 02.11.2019
Сообщений: 227
15.01.2020, 19:44
Не совсем подходит к условию. И ещё ты в конце намудрил, что-о вообще странное.
Вот вменяемое решение:
Python
1
2
3
4
5
6
7
8
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)
0
34 / 25 / 8
Регистрация: 16.11.2019
Сообщений: 179
18.01.2020, 19:05
при 0 программа крашится
0
Эксперт Python
1356 / 653 / 207
Регистрация: 23.03.2014
Сообщений: 3,057
18.01.2020, 19:45
если https://www.cyberforum.ru/cgi-bin/latex.cgi?y=k*x+b, чего б ей не крашиться?)

Добавлено через 56 секунд
а если брать формулу из задачи, и подавно сломается, Вы в нее 0 подставлять пробовали?
0
5519 / 2872 / 571
Регистрация: 07.11.2019
Сообщений: 4,764
19.01.2020, 09:06
Dax, необходимо добавить до расчета k проверку на неравенство нулю (y1 - y2) или (x1 - x2).
В этом случае выводить только одно число.
1
Эксперт Python
1356 / 653 / 207
Регистрация: 23.03.2014
Сообщений: 3,057
19.01.2020, 09:49
u235, когда я решал данную задачу, к ней были заявлены такие условия, я по ним решил, претензии не было(да, уравнеие прямой, возможно, чуть другое, но , условия к задаче были таковы и решение устроило ТС на тот момент )
u235, Вы из я.Лицея, да(похоже)?
Цитата Сообщение от u235 Посмотреть сообщение
необходимо добавить до расчета k проверку на неравенство нулю (y1 - y2) или (x1 - x2).
В этом случае выводить только одно число.
Так вперед, я не против)))

Добавлено через 4 минуты
Вот тут все про уравнение прямой поподробнее
https://younglinux.info/python/task/equation-line
Потому, решение и такое)))
0
5519 / 2872 / 571
Регистрация: 07.11.2019
Сообщений: 4,764
19.01.2020, 10:25
Dax, какие условия были раньше - не знаю, я описал то, что вижу сейчас. В настоящий момент ваше решение неполное. Это факт.
Dax, вы блондин(ка), да(похоже)?
Только блондинки делают далеко идущие выводы без достаточных на то оснований.
Нет, я не из лицея.
0
Эксперт Python
1356 / 653 / 207
Регистрация: 23.03.2014
Сообщений: 3,057
19.01.2020, 10:54
u235, Вы бы знали, сколько человек из я.Лицея приходит на форум с формулировкой: надо...., без попыток решить задачу(для этого есть раздел freelance,там за денежку, решают, ежели "барину с утра не пишется"), а в бесплатной састи форума, код надо показывать, чтоб помогли, Вашего кода я не видел, только критика, это - основание №1, для того, того,чтоб подумать, что Вы лицеист(ка)
По даной мною выше ссылке, дано решение, приводящее уравнение прямой, к тому виду, в коем я его описал на python
Решение основано на чистой математике, подкреплено примерами,но, Вами, видимо, прочитано не было, это - основание №2
Задача достаточно простая, проходят в школе, но, видимо забылось))), это основание №3.
Ну, и наконец, маленькая репутация свидетельствует о том, что, Вы только начали изучать python и, либо новичок в языке, либо - в программировании вовсе(бывает и так, не страшно)))
Как видите, оснований достаточно, вот только с лицеем не угадал,потому, про блондинистость - не ко мне .)
Чувство юмора в людях ценю

Добавлено через 3 минуты
u235, ну так что, Вы допишите if\else, или поспорим об основаниях,на которых я построил выводы)?
0
1 / 1 / 0
Регистрация: 27.12.2020
Сообщений: 10
20.03.2021, 16:10
Python
1
2
3
4
5
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 минут
Я НЕ ЗНАЮ КАК ЭТО РАБОТАЕТ. Но это работает
Python
1
2
3
4
5
6
7
8
9
10
11
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)
Добавлено через 1 минуту
Однако, последнии ответ также неправильный
0
4 / 4 / 0
Регистрация: 24.03.2021
Сообщений: 3
24.03.2021, 23:35
Вот, Яндекс у меня такое принял

Python
1
2
3
4
5
6
7
8
9
10
11
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 x1 == x2:
        print(x1)
    else:
        if y1 == y2:
            print(y1)
        else:
            k = (y2 - y1) / (x2 - x1)
            print(k, y2 - k * x2)
3
 Аватар для Artemii25
0 / 0 / 0
Регистрация: 13.01.2023
Сообщений: 2
13.01.2023, 20:36
Python
1
2
3
4
5
6
7
8
9
10
11
12
def equation(a, b):
    a = a.split(";")
    b = b.split(";")
    try:
        k = (float(a[1]) - float(b[1])) / (float(a[0]) - float(b[0]))
        b = float(a[1]) - (k * float(a[0]))
        if k == 0:
            print(b)
        else:
            print(k, b)
    except ZeroDivisionError:
        print('0.0')
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
13.01.2023, 20:36
Помогаю со студенческими работами здесь

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

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

Постройте уравнение прямой, являющейся биссектрисой угла
Даны координаты трех точек O, A, B. Постройте уравнение прямой, являющейся биссектрисой угла ∠AOB. Ввод Вывод 1 1 1 0 0 1 ...

Подсчитать, сколько из введённых точек попало в полуплоскость выше прямой, ниже прямой, а сколько - на прямую
Ограничение времени 1 секунда Ограничение памяти 64Mb Ввод стандартный ввод или input.txt Вывод стандартный вывод или output.txt ...

По данным коэффициентами уравнения прямой и координатами некоторой точки, вычислить абс. отклонение точки от прямой
По данным коэффициентами уравнения прямой на плоскости (Ах + Ву + С = 0) и координатами некоторой точки K (x0, y0) вычислить абсолютное...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
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. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru