Решить информатику решить на паскале по нахождению количества отрезков по 1,5 метра из бруска длиной 20 метров
286
303
Ответы на вопрос:
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.
Популярно: Информатика
-
Йошино111.01.2021 11:22
-
Dag18y5557hvvhi18.03.2022 15:43
-
arslanmax11.04.2022 07:15
-
hromovaalyona228.07.2020 00:59
-
0katushka030.12.2022 22:39
-
jdavidkina07.06.2020 20:12
-
Nikuiii05.11.2021 22:14
-
varta23.07.2020 17:07
-
katemur696920.02.2020 21:18
-
таня192409.02.2022 07:28