Регистрация
Войти
Стать экспертом Правила
Информатика

Помогите, пожалуйста, нужно написать текст программу в Паскаль

Вычисление скалярного произведения
1)s = (Aq-Bp,r) - условие


Исходные данные:

A = 1 2 3
1 2 1
3 2 0

B = 4 1 2
0 4 3
1 1 1

P = 0.1
1.7
-1.5

q = -1.6
0.8
1.1

r = -0.7
1.3
0.2

ОТВЕТЫ
// PascalABC.NET 3.2, сборка 1338 от 16.11.2016
type
  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
    end
end;

procedure VecPrint(a:vector);
begin
  for var i:=1 to 3 do Write(a[i]:6:2);
  Writeln
end;

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
67
Контакты
Реклама на сайте
Спрошу
О проекте
Новым пользователям
Новым экспертам