// PascalABC.NET 3.2, сборка 1338 от 16.11.2016type matrix=array[1..3,1..3] of real; vector=array[1..3] of real; procedure MatPrint(a:matrix);begin for var i:=1 to 3 do begin for var j:=1 to 3 do Write(a[i,j]:6:2); Writeln endend;procedure VecPrint(a:vector);begin for var i:=1 to 3 do Write(a[i]:6:2); Writelnend;procedure MV(a:matrix; v:vector; var t:vector);// Умножение матрицы на векторbegin for var i:=1 to 3 do begin var s:=0.0; for var j:=1 to 3 do s+=a[i,j]*v[j]; t[i]:=s end;end;procedure VS(a,b:vector; var t:vector);// Вычитание векторовbegin for var i:=1 to 3 do t[i]:=a[i]-b[i]end;function SP(a,b:vector):real;// Скалярное произведение векторовbegin Result:=0.0; for var i:=1 to 3 do Result+=a[i]*b[i]end; begin var A:matrix:=((1,2,3),(1,2,1),(3,2,0)); var B:matrix:=((3,1,2),(0,4,3),(1,1,1)); var p:vector:=(0.1,1.7,-1.5); var q:vector:=(-1.6,0.8,1.1); var r:vector:=(-0.7,1.3,0.2); Writeln('Матрица А'); MatPrint(A); Writeln('Матрица B'); MatPrint(B); Writeln('Вектор p'); VecPrint(p); Writeln('Вектор q'); VecPrint(q); Writeln('Вектор r'); VecPrint(r); var t1,t2,t3:vector; MV(A,q,t1); MV(B,p,t2); VS(t1,t2,t3); Writeln('Скалярное произведение равно ',SP(t3,r))end.РезультатыМатрица А 1.00 2.00 3.00 1.00 2.00 1.00 3.00 2.00 0.00Матрица B 3.00 1.00 2.00 0.00 4.00 3.00 1.00 1.00 1.00Вектор p 0.10 1.70 -1.50Вектор q -1.60 0.80 1.10Вектор r -0.70 1.30 0.20Скалярное произведение равно -5.27