Точки A, B, C, заданные на плоскости координатами, соединяем между собой и получаем треугольник. Задача сводится к нахождению радиуса и координат центра окружности, описанной вокруг треугольника.Направим вдоль сторон треугольника ABC векторы:a от В к С, b от А к С, с от А к В.Радиус описанной окружности можно найти по формуле:
/(\bar{a}*\bar{b}))
В числителе последней дроби стоит скалярное произведение векторов, в знаменателе - произведение их модулей.Координаты центра вычисляются по формулам:

В приведенных формулах используются координаты точек, а не векторов.Площадь треугольника S может быть вычислена по формуле Герона:
(p-b)(p-c)}; \quad p= \frac{a+b+c}{2} )
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 точки Pbegin 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)) endend;function InnerProd(a: Vector; b: Vector): real;begin Result := a.x * b.x + a.y * b.yend;function Alpha(a: Vector; b: Vector): real; // Возвращает угол между векторами a,bbegin 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, c))); //радиус описанной окружности 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)