Помогите с блок схемой, пожалуйста.

[email protected] в категроии Информатика, вопрос открыт 11.07.2018 в 21:51

const t=0.001;
//функция определения площади треугольника по координатам его вершин
function Plosh(ax,ay,bx,by,cx,cy:real):real;
begin
Plosh:=abs(ax*(by-cy)+bx*(cy-ay)+cx*(ay-by))/2;
end;
//функция определения принадлежности точки треугольнику
function Prin(ax,ay,bx,by,cx,cy,mx,my:real):boolean;
var s,s1,s2,s3:real;
begin
s:=Plosh(ax,ay,bx,by,cx,cy);{площадь данного треугольника}
s1:=Plosh(ax,ay,bx,by,mx,my);{1 маленький}
s2:=Plosh(bx,by,cx,cy,mx,my);{2}
s3:=Plosh(ax,ay,cx,cy,mx,my);{3}
{если площади равны с заданной точностью}
Prin:=abs((s1+s2+s3)-s) end;
function Dist(ax,ay,bx,by,mx,my:real):real;
var s:real;
begin
//найдем площадь треугольника, образованного точкой и концами стороны
s:=Plosh(ax,ay,bx,by,mx,my);
//вычислим высоту из формулы s=h*a/2
Dist:=2*s/sqrt(sqr(ax-bx)+sqr(ay-by));
end;
var ax,ay,bx,by,cx,cy,mx,my,sa,sb,sc,mn:real;
begin
repeat
writeln('Введите координаты вершин треугольника:');
writeln('Вершина А:');
readln(ax,ay);
writeln('Вершина B:');
readln(bx,by);
writeln('Вершина C:');
readln(cx,cy);
if Plosh(ax,ay,bx,by,cx,cy)=0 then writeln('Точки расположены на 1 прямой, повторите ввод');
until Plosh(ax,ay,bx,by,cx,cy)>0;
repeat
writeln('Введите координаты точки M, лежащей внутри треугольника:');
readln(mx,my);
if not Prin(ax,ay,bx,by,cx,cy,mx,my) then writeln('Точка не в треугольнике, повторите ввод');
until Prin(ax,ay,bx,by,cx,cy,mx,my);
sa:=Dist(bx,by,cx,cy,mx,my);
sb:=Dist(ax,ay,cx,cy,mx,my);
sc:=Dist(ax,ay,bx,by,mx,my);
mn:=sa;
if sb if sc writeln('Расстояния от точки М до сторон треугльника:');
writeln(sa:0:2,' ',sb:0:2,' ',sc:0:2);
write('Минимальное расстояние=',mn:0:2);
readln
end.

0 ответов

Нет результатов.
Оставлять ответы могут только авторизированные пользователи.
Зарегистрируйтесь или  авторизируйтесь на сайте чтобы оставить ответ на вопрос.