Найти скалярное произведение векторов - Free Pascal (205)
Формулировка задачи:
заданы три вектора A, B, C размерности n найти скалярное произведение АВ, ВС, СА. ввод вектора оформить как процедуру, а вычисление скалярного произведения как функцию.Помогите пожалуйста.
Решение задачи: «Найти скалярное произведение векторов»
textual
Листинг программы
var n:byte;
type vec=array[1..20] of real;
procedure vvod(var a:vec;c:char);
var i:byte;
begin
writeln('Вектор ',c);
for i:=1 to n do
begin
a[i]:=5*random;
write(a[i]:5:2);
end;
writeln;
end;
function scal(a,b:vec):real;
var i:byte;
s:real;
begin
s:=0;
for i:=1 to n do
s:=s+a[i]*b[i];
scal:=s;
end;
var a,b,c:vec;
begin
repeat
write('Размер векторов от до 20 n=');
readln(n);
until n in [1..20];
vvod(a,'A');
vvod(b,'B');
vvod(c,'C');
writeln('Скалярное произведение АВ=',scal(a,b):0:2);
writeln('Скалярное произведение ВC=',scal(b,c):0:2);
writeln('Скалярное произведение CА=',scal(c,a):0:2);
readln
end.
Объяснение кода листинга программы
- Объявлены переменные: n (размер векторов), a, b, c (векторы), i (для цикла).
- Определены типы данных: vec (массив векторов).
- Определены процедуры: vvod (ввод вектора), scal (нахождение скалярного произведения).
- Введен цикл repeat-until для проверки корректности размера векторов.
- Введен ввод векторов a, b, c с помощью процедуры vvod.
- Вычислено и выведено скалярное произведение векторов a и b с помощью функции scal.
- Вычислено и выведено скалярное произведение векторов b и c с помощью функции scal.
- Вычислено и выведено скалярное произведение векторов c и a с помощью функции scal.
- Завершение работы программы.