"Даны координаты вершин треугольника и окружность, заданная уравнением x^2+y^2=r^2. Определить, является ли окружность вписанной или описанной по отношению к треугольнику."
Помогите ришить пожалуйста.

Program laba2;
var x1,x2,x3,y1,y2,y3,r,p1,p2,p3,o1,o2,ras1,ras2,ras3:real;
begin
writeln('Введите координаты вершин треугольника');
write('A'); readln(x1, y1);
write('B'); readln(x2, y2);
write('C'); readln(x3, y3);
writeln('Введите координаты цетра окружности');
write('O'); readln(o1,o2);
r:=SQRT(SQR(o1)+SQR(o2));
p1:=SQRT(SQR(o1-x1)+SQR(o2-y1));
p2:=SQRT(SQR(o1-x2)+SQR(o2-y2));
p3:=SQRT(SQR(o1-x3)+SQR(o2-y3));
if (p1=r) and (p2=r) and (p3=r) then
writeln('Окружность описана около треугольника')
else
begin
ras1:=abs((o1-x1)*(y2-y1)-(o2-y1)*(x2-x1))/sqrt(sqr(x2-x1)+sqr(y2-y1));
writeln(ras1);
ras2:=abs((o1-x2)*(y3-y2)-(o2-y2)*(x3-x2))/sqrt(sqr(x3-x2)+sqr(y3-y2));
writeln(ras2);
ras3:=abs((o1-x1)*(y3-y1)-(o2-y1)*(x3-x1))/sqrt(sqr(x3-x1)+sqr(y3-y1));
writeln(ras3);
if (ras1=r) and (ras2=r) and (ras3=r) then
writeln('Окружность вписана в треугольник')
else writeln('Ничего не описано и не вписано!:)')
end;
readln;
end.