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