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.
Const n=10; m=5; var i,j,k:integer; A:array[1..n] of integer; B,C:array[1..m] of integer; begin writeln('Введите элкменты массива'); for i:=1 to n do readln(a[i]); j:=0; k:=0; for i:=1 to n do if i mod 2=1 then begin j:=j+1; B[j]:=A[i] end else begin k:=k+1; C[k]:=A[i] end; writeln('Массив А'); for i:=1 to n do write(A[i],' '); writeln; writeln('Массив B'); for i:=1 to j do write(B[i],' '); writeln; writeln('Массив C'); for i:=1 to k do write(C[i],' '); writeln end.
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.
var
i,j,k:integer;
A:array[1..n] of integer;
B,C:array[1..m] of integer;
begin
writeln('Введите элкменты массива');
for i:=1 to n do readln(a[i]);
j:=0; k:=0;
for i:=1 to n do
if i mod 2=1 then begin j:=j+1; B[j]:=A[i] end
else begin k:=k+1; C[k]:=A[i] end;
writeln('Массив А');
for i:=1 to n do write(A[i],' ');
writeln;
writeln('Массив B');
for i:=1 to j do write(B[i],' ');
writeln;
writeln('Массив C');
for i:=1 to k do write(C[i],' ');
writeln
end.