Найти значение: min(p1, p2), где p1 – скалярное произведение векторов a и b. p2 – скалярное произведение векторов c и d. вычисление скалярного произведения векторов оформить подпрограммой. исходные данные: а=(-5.1, 2.7, 3.4, 6.2); в=(1.2, 3.4, 0, 2.5); с=(2.7, 3.4, 2.5, 6.3, 7.8); d=(1.7, -1.3, 2.8, 0, 7.2);
const
nm = 5;
type
V = array[1..nm] of real;
function SP(var a, b: V; n: integer): real;
var
i: integer;
s: real;
begin
s := 0;
for i := 1 to n do s := s + a[i] * b[i];
SP := s
end;
var
A, B, C, D: V;
P1, P2, min: real;
i, n: integer;
begin
Write('Введите размерность вектора A: '); Readln(n);
Write('Введите координаты вектора A через пробел: ');
for i := 1 to n do Read(A[i]);
Write('Введите координаты вектора B через пробел: ');
for i := 1 to n do Read(B[i]);
P1 := SP(A, B, n);
Write('Введите размерность вектора C: '); Readln(n);
Write('Введите координаты вектора C через пробел: ');
for i := 1 to n do Read(C[i]);
Write('Введите координаты вектора D через пробел: ');
for i := 1 to n do Read(D[i]);
P2 := SP(C, D, n);
if P1 > P2 then min := P2 else min := P1;
Writeln('Меньшее из скалярных произведений (A*B),(C*D) равно ', min);
end.
Результаты выполнения:
Введите размерность вектора A: 4
Введите координаты вектора A через пробел: -5.1 2.7 3.4 6.2
Введите координаты вектора B через пробел: 1.2 3.4 0 2.5
Введите размерность вектора C: 5
Введите координаты вектора C через пробел: 2.7 3.4 2.5 6.3 7.8
Введите координаты вектора D через пробел: 1.7 -1.3 2.8 0 7.2
Меньшее из скалярных произведений (A*B),(C*D) равно 18.56