Пусть даны вещественные числа x^1, x^2, x^3, y^1, y^2, y^3 принадлежит ли начало координат треугольнику с вершинами (x^1,y^1) (x^2,y^2) (x^3, y^3)
243
380
Ответы на вопрос:
Var a: array[1..3,1..2]of real; b: array[1..3]of real; //массив для координат пересечения сторон с ох i,j,z: integer; // (y1-y2)x+(x2-x1)y+(x1y2-x2y1)=0 - ур-е прямой, прохоходящей через 2 точки // тогда x=(x2y1-x1y2)/(y1-y2) - координата ее пересечения с осью х // найдем координаты пересечения сторон с осью х function cross(x1,x2,y1,y2: real): real; begin result: =(x2*y1-x1*y2)/(y1-y2); if ((result> x1) and (result> x2)) or ((result< x1) and (result< x2)) then result: =1 //это точка пересечения не самой стороны, а ее продолжения //поскольку в дальнейшем нам нужны будут знаки координат, //ей приписываем положительной значение, чтобы она не влияла //на конечный результат end; begin for i: =1 to 3 do begin writeln('введите координаты х,у вершины: '); readln(a[i,1],a[i,2]); end; z: =1; for i: =1 to 3 do begin j: =i+1; if j> 3 then j: =1; b[i]: =cross(a[i,1],a[j,1],a[i,2],a[j,2]); z: =sign(b[i])*z; end; write('начало координат '); if z< 0 then writeln('принадлежит треугольнику') else writeln('не принадлежит треугольнику'); end.
Популярно: Информатика
-
juliazxcvb10.12.2022 00:11
-
katirina61171Rfn30.04.2022 12:12
-
crosser00127.11.2021 15:46
-
samininav116.06.2023 02:30
-
mityatimofeev02.12.2020 10:48
-
7Селестина02.07.2020 03:29
-
asemgul10120512.03.2022 04:09
-
бобикбарбос07.11.2020 13:17
-
алиярсик18.09.2021 20:36
-
Arinka2605200522.05.2020 14:31