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

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

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

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

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

textual
Листинг программы
  1. const n=10;
  2. var
  3.   a,b,c:array [1..n] of integer;
  4.   s:real;
  5.   i:integer;
  6. procedure rndarr(var t:array of integer;s:string);
  7. var
  8.   i:integer;
  9. begin
  10.   write(s+':[');
  11.   for i:=low(t) to high(t) do
  12.     begin
  13.       t[i]:=random(10);
  14.       write(t[i],' ');
  15.     end;
  16.   writeln(']');
  17. end;
  18. function scal(x,y:array of integer):real;
  19. var
  20.   i:integer;
  21.   s:real;
  22. begin
  23.   s:=0.0;
  24.   for i:=low(x) to high(x) do s:=s+x[i]*y[i];
  25.   scal:=s;
  26. end;
  27. begin
  28.   randomize;
  29.   rndarr(a,'A');
  30.   rndarr(b,'B');
  31.   rndarr(c,'C');
  32.   writeln('S=(b,c)-(a,a)=',scal(b,c)-scal(a,a):0:4);
  33.   readln;
  34. 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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы