Вот, получите:
Код:
Type
Vector=Array[1..3] of real;
Var
A,B:Vector;
i:Byte;
Function RadGr(X:Real):Real;
begin
RadGr:=(X/Pi)*180;
end;
Function ArcCos(X:Real):Real;
begin
if X=1 then ArcCos:=0 else
if X=-1 then ArcCos:=Pi else
ArcCos:=(Pi/2)-ArcTan(X/Sqrt(1-X*X));
end;
Function Norm(T:Vector):Real;
begin
Norm:=Sqrt(Sqr(T[1])+Sqr(T[2])+Sqr(T[3]));
end;
Function Scal_Prod(T1,T2:Vector):Real;
var
k:byte;
S:Real;
begin
S:=0;
for k:=1 to 3 do S:=S+T1[k]*T2[k];
Scal_Prod:=S;
end;
Function Angle(T1,T2:Vector):Real;
begin
Angle:=RadGr(ArcCos(Scal_Prod(T1,T2)/(Norm(T1)*Norm(T2))));
end;
Begin
Randomize;
for i:=1 to 3 do
begin
A[i]:=(Random-0.5)*10;
B[i]:=(Random-0.5)*10;
end;
Writeln('Vector A:');
Writeln('(',A[1]:6:3,',',A[2]:7:3,',',A[3]:7:3,')');
Writeln('Vector B:');
Writeln('(',B[1]:6:3,',',B[2]:7:3,',',B[3]:7:3,')');
Writeln('Angle: ',Angle(A,B):0:3,' deg.');
Readln
End.