Найти скалярное произведение векторов - Free Pascal (483)

Узнай цену своей работы

Формулировка задачи:

Даны три одномерных массива A, B и C (три вектора) с одинаковым количеством элементов. Получить S=(b, c) – (a,a), где (x,y) – скалярное произведение векторов x и y:

Решение задачи: «Найти скалярное произведение векторов»

textual
Листинг программы
const n=10;
var
  a,b,c:array [1..n] of integer;
  s:real;
  i:integer;
procedure rndarr(var t:array of integer;s:string);
var
  i:integer;
begin
  write(s+':[');
  for i:=low(t) to high(t) do
    begin
      t[i]:=random(10);
      write(t[i],' ');
    end;
  writeln(']');
end;
function scal(x,y:array of integer):real;
var
  i:integer;
  s:real;
begin
  s:=0.0;
  for i:=low(x) to high(x) do s:=s+x[i]*y[i];
  scal:=s;
end;
begin
  randomize;
  rndarr(a,'A');
  rndarr(b,'B');
  rndarr(c,'C');
  writeln('S=(b,c)-(a,a)=',scal(b,c)-scal(a,a):0:4);
  readln;
end.

Объяснение кода листинга программы

  1. Объявлены константа n=10 и переменные a, b, c типа array [1..n] of integer (массивы a, b, c для хранения 10 целых чисел).
  2. Также объявлена переменная s типа real (для хранения скаляр), а также переменная i типа integer (для служебных целей).
  3. Определена процедура rndarr, которая принимает два аргумента: массив t и строку s (для вывода информации о массиве).
  4. Внутри процедуры происходит вывод информации о массиве (его элементах) в формате [a: [1, 2, 3, ..., 10]].
  5. Каждый элемент массива t инициализируется случайным числом от 1 до 10 с помощью функции random(10).
  6. Определена функция scal, которая принимает два аргумента: массивы x и y и возвращает скаляр.
  7. Внутри функции происходит итерация по всем элементам массивов x и y и суммирование произведений этих элементов в переменную s.
  8. Затем функция возвращает значение переменной s.
  9. В основной части программы вызываются процедуры rndarr для инициализации массивов a, b и c случайными числами.
  10. Выводится результат вычисления скалярного произведения векторов b и c и вычитания из него скалярного произведения векторов a и a (то есть, результат вычисления скалярного произведения одного и того же вектора).
  11. Программа ожидает ввода пользователя (нажатия клавиши) для завершения работы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 3.286 из 5
Похожие ответы