Есть ответ 👍

Даны три точки а(х1,y1), b(x2,y2) и c(x3,y3). определить, будут ли они расположены на одной прямой. если да, то указать координаты точки попавшей внутрь отрезка. напишите программу в pascal, .

109
452
Посмотреть ответы 2

Ответы на вопрос:

alexstew1
4,6(83 оценок)

Известно уравнение прямой, проходящей через две точки 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

  • Быстро
    Мгновенный ответ на твой вопрос
  • Точно
    Бот обладает знаниями во всех сферах
  • Бесплатно
    Задай вопрос и получи ответ бесплатно

Популярно: Информатика

Caktus Image

Есть вопросы?

  • Как otvet5GPT работает?

    otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса.
  • Сколько это стоит?

    Проект находиться на стадии тестирования и все услуги бесплатны.
  • Могу ли я использовать otvet5GPT в школе?

    Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое!
  • В чем отличия от ChatGPT?

    otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.

Подпишись на наш телеграмм канал

GTP TOP NEWS