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

Danil111112 Danil111112    1   17.06.2019 02:00    0

Ответы
polinas6661 polinas6661  13.07.2020 20:36
Тогда будет Паскаль...

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
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика