Найти значение: min(P1, P2), где P1 – скалярное произведение векторов A и B. P2 –...

0 голосов
30 просмотров

Найти значение: 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);


Информатика (20 баллов) | 30 просмотров
0

Вы забыли указать язык и систему программирования.

Дан 1 ответ
0 голосов
Правильный ответ

Тогда будет Паскаль...

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



(142k баллов)
0

спасибо большое!!)))))

0

Спасибо тут принято выражать нажатием на специально созданную для этой цели кнопочку)))