Из текста даны 3 точки, нужно найти окружность, которая охватывает все точки к примеру три точки с координатами: a(100 100) b(300 300) c(100 300) а вывести координаты центра и на котором лежат все точки. какой код будет на pascal?
179
230
Ответы на вопрос:
Точки a, b, c, заданные на плоскости координатами, соединяем между собой и получаем треугольник. сводится к нахождению радиуса и координат центра окружности, описанной вокруг треугольника. направим вдоль сторон треугольника abc векторы: a от в к с, b от а к с, с от а к в. радиус описанной окружности можно найти по формуле: в числителе последней дроби стоит скалярное произведение векторов, в знаменателе - произведение их модулей. координаты центра вычисляются по формулам: в формулах используются координаты точек, а не векторов. площадь треугольника s может быть вычислена по формуле герона: type vector = record x: real; y: real; l: real end; point = record x: real; y: real end; procedure initpoint(s: string; var p: point); //вводит координаты x,y точки p begin write('введите координаты x,y точки ' + s, ' '); readln(p.x, p.y) end; procedure getvector(a: point; b: point; var ab: vector); // определяет координаты вектора и его длину по пвре точек begin with ab do begin x : = b.x - a.x; y : = b.y - a.y; l : = sqrt(sqr(x) + sqr(y)) end end; function innerprod(a: vector; b: vector): real; begin result : = a.x * b.x + a.y * b.y end; function alpha(a: vector; b: vector): real; // возвращает угол между векторами a,b begin result : = arccos(abs(innerprod(a, b)) / (a.l * b.l)); end; function trianglesq(a: real; b: real; c: real): real; // возвращает площадь треугольника, найденную по трем сторонам // (формула герона) var p: real; begin p : = (a + b + c) / 2; result : = sqrt(p * (p - a) * (p - b) * (p - c)) end; procedure getcenter(a: point; b: point; c: point; s: real; var d: point); // помещает в запись d координаты центра окружности площадью s, // описанной вокруг треугольника с вершинами а,в и с var la2, lb2, lc2, detx, dety: real; begin la2 : = sqr(a.x) + sqr(a.y); lb2 : = sqr(b.x) + sqr(b.y); lc2 : = sqr(c.x) + sqr(c.y); detx : = lb2 * c.y - lc2 * b.y - la2 * c.y + lc2 * a.y + la2 * b.y - lb2 * a.y; dety : = lb2 * c.x - lc2 * b.x - la2 * c.x + lc2 * a.x + la2 * b.x - lb2 * a.x; d.x : = detx / (4 * s); d.y : = -dety / (4 * s) end; var ap, bp, cp: point; a, b, c: vector; r, s: real; op: point; begin //ввод координат точек initpoint('a', ap); initpoint('b', bp); initpoint('c', cp); //вычисление векторов a=bc, b=ab, c=ac getvector(bp, cp, a); getvector(ap, bp, b); getvector(ap, cp, c); r : = a.l / (2 * sin(alpha(b, ; //радиус описанной окружности s : = trianglesq(a.l, b.l, c.l); getcenter(ap, bp, cp, s, op); writeln('радиус описанной окружности r=', r: 0: 2); writeln('координаты центра этой окружности: о(', op.x: 0: 1, '; ', op.y: 0: 1, ')') end. тестовое решение (проверено построением): введите координаты x,y точки a 100 100 введите координаты x,y точки b 300 300 введите координаты x,y точки c 100 300 радиус описанной окружности r=141.42 координаты центра этой окружности: о(200.0; 200.0)
Реши свою проблему, спроси otvet5GPT
-
Быстро
Мгновенный ответ на твой вопрос -
Точно
Бот обладает знаниями во всех сферах -
Бесплатно
Задай вопрос и получи ответ бесплатно
Популярно: Информатика
-
Ovhinoco16.06.2021 16:22
-
Mirajanesan26.06.2021 07:39
-
LenaED25.01.2021 02:09
-
саша342134210.07.2020 01:20
-
bioboy21.08.2020 10:12
-
Алиса54782817.06.2022 14:43
-
GoldHorse22.01.2020 18:36
-
Юлясруля02.01.2022 09:10
-
Nisson124.07.2022 18:24
-
валерия85218.09.2022 13:54
Есть вопросы?
-
Как otvet5GPT работает?
otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса. -
Сколько это стоит?
Проект находиться на стадии тестирования и все услуги бесплатны. -
Могу ли я использовать otvet5GPT в школе?
Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое! -
В чем отличия от ChatGPT?
otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.