Даны три точки а(х1,y1), b(x2,y2) и c(x3,y3). определить, будут ли они расположены на одной прямой. если да, то указать координаты точки попавшей внутрь отрезка. напишите программу в pascal, .
109
452
Ответы на вопрос:
Известно уравнение прямой, проходящей через две точки a(x₁,y₁) и b(x₂,y₂). если третья точка c(x₃,y₃) лежит на этой же прямой, то после подстановки её координат уравнение обращается в тождество следовательно, нужно проверить, выполняется ли это тождество для заданных координат. в этом тождестве есть одна неприятная вещь: если y₂=y₁ и/или x₂=x₁, то в знаменателе получается ноль, чему компьютер уж точно не обрадуется. поэтому такой случай надо рассмотреть отдельно, исходя из смысла. если же y₂≠y₁ и x₂≠x₁, можно тождество к более удобному виду: поскольку координаты могут быть и не целыми, а такие нецелые ("вещественные") числа представляются в компьютере с ограниченной точностью, тождество может оказаться ложным по причине такой неточности. для обхода такого случая будем полагать, что два значения равны друг-другу, если их разность по модулю не превышает некоторой малой величины, т.е.: вернемся к случаю y₂=y₁. в этом случае прямая параллельна оси х, т.е. тогда условием принадлежности третьей точки данной прямой будет y₃=y₁ при любом х. то же можно сказать и про случай х₂=х₁, когда следует проверить, что х₃=х₁. если все три точки лежат на одной прямой, то у средней из них значение любой из координат должно находиться между значениями двух одноименных координат крайних точек. // pascalabc.net 3.0, сборка 1160 от 05.02.2016 var x1,y1,x2,y2,x3,y3,p1,p2: real; on_line: boolean; begin // без проверки считаем, что у двух любых точек // не может быть одинаковых координат write('координаты точки а: '); read(x1,y1); write('координаты точки b: '); read(x2,y2); write('координаты точки c: '); read(x3,y3); if x3=x1 then on_line: =(x2=x1); if (not on_line) then if y3=y1 then on_line: =(y2=y1); if not on_line then begin p1: =(x3-x1)/(x2-x1); p2: =(y3-y1)/(y2-y1); on_line: =(abs(p1-p2)< 1e-8) end; if on_line then begin writeln('точки лежат на одной прямой'); if (x2> x1) and (x2< x3) or (x2> x3) and (x2< x1) then writeln('точка b внутри') else if (x3> x1) and (x3< x2) or (x3> x2) and (x3< x1) then writeln('точка c внутри') else writeln('точка a внутри') end else writeln('точки не лежат на одной прямой') end. тестовое решение: координаты точки а: 1 2.5 координаты точки b: 3 3.5 координаты точки c: -4 0 точки лежат на одной прямой точка a внутри
Раз это все условие и оно верное, то тут возможно маленькую брошюрку написать в кач-ве решения. 1) начать с определения понятия "дорога". например, дорога из а в с, проходящая через в - это а) одна дорога, или б) две дороги (одна дорога ав и еще одна вс) в) три дороги: (ав, вс и ас) 2) разработать типы решения . например: а) опрос населения (типа узнать, сколько дорог выходит из каждого города и проводить расчеты исходя из этой инфы) б) путешествие по дорогам с подсчетом посещенных городов (тут надо учесть возможность того, что могут быть некоторые дороги, не связаные с другими, например есть дорога ав и сд но нет ас, ад, вс и вд) в) карта царства - проводить подсчет, помечая дороги, соединяющие пары городов крестиком или, например, цветом г) выяснение потраченных на дороги денег. чтоб путем деления общей суммы на стоимость одной дороги получить нужное число 3) в зависимости от выводов пункта (1) разработать методику подсчета дорог исходя из информации, собранной в пункте (2) думается, что пока не выбраны подпункты а, б, в и г из пунктов 1 и 2 вариантов программ видно возможных 3х4 = 12 штук. потому надо определиться с понятием дороги (пункт 1) и видом инфы. которую надо будет обрабатывать (пункт 2). и тока тогда приступать к программе. иначе не вижу перспектив. вот как-то
Реши свою проблему, спроси otvet5GPT
-
Быстро
Мгновенный ответ на твой вопрос -
Точно
Бот обладает знаниями во всех сферах -
Бесплатно
Задай вопрос и получи ответ бесплатно
Популярно: Информатика
-
Саляриум09.03.2023 04:52
-
milanagorbovsk20.03.2021 10:20
-
yyuyuy11.02.2020 13:04
-
gazizullinnafi14.03.2021 19:19
-
Fgreep23.12.2021 07:19
-
Digger200126.03.2020 16:27
-
ИринаЭлина1119.09.2021 00:22
-
Evelina30060629.08.2022 07:20
-
никита344711.05.2023 04:34
-
alinaskinAS14.07.2022 09:17
Есть вопросы?
-
Как otvet5GPT работает?
otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса. -
Сколько это стоит?
Проект находиться на стадии тестирования и все услуги бесплатны. -
Могу ли я использовать otvet5GPT в школе?
Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое! -
В чем отличия от ChatGPT?
otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.