Найти линейную комбинацию трёх векторов - Pascal
Формулировка задачи:
83. Даны три трехмерных вектора a, b и c, заданные своими координатами , вещественное число k. Найти вектор, равный ka + (1-k)b + k2c. Указание: реализовать функции умножения скаляра на вектор , суммы векторов.
Решение задачи: «Найти линейную комбинацию трёх векторов»
textual
Листинг программы
- const n=3; //размер векторов
- type vec=array[1..n] of real; //их тип
- //процедура ввода данных
- procedure vvod(var a:vec;c:char); //передаем вектор в программу (var)
- var i:byte;
- begin
- writeln('Введите элементы вектора ',c);
- for i:=1 to n do
- readln(a[i]);//вводим по 3 элемента в каждый вектор
- end;
- //процдура вывода вектора нв экран
- procedure vyvod(a:vec;c:char);
- var i:byte;
- begin
- writeln('Вектор ',c);
- for i:=1 to n do
- write(a[i]:6:2);
- writeln;
- end;
- //функция умножения вектора на скаляр
- function umn(a:vec;k:real):vec;
- var i:byte;
- begin
- for i:=1 to n do
- result[i]:=a[i]*k; //все элементы вектора умножаем на К
- end;
- //функция суммы двух векторов
- function sum(a,b:vec):vec;
- var i:byte;
- begin
- for i:=1 to n do
- result[i]:=a[i]+b[i];//элементы векторов с одинаковыми игдексами складываем,
- //получаем новый вектор-сумму
- end;
- var a,b,c,d:vec;
- k:real;
- begin
- vvod(a,'A');
- vvod(b,'B');
- vvod(c,'C');
- vyvod(a,'A');
- vyvod(b,'B');
- vyvod(c,'C');
- write('Введите вещественное число k=');
- readln(k);
- //получаем сумму k*a + (1-k)*b + k:2*2c.
- d:=sum(sum(umn(a,k),umn(b,(1-k))),umn(c,sqr(k)));
- vyvod(d,'D');
- end.
Объяснение кода листинга программы
- Объявляется константа
n
и устанавливается её значение как3
, что означает, что размерность векторов равна 3. - Объявляется пользовательский тип
vec
как массив из 1 доn
элементов типаreal
- вектор. - Объявляется процедура
vvod
, принимающая вектора
и символc
в качестве параметров. В процедуре вводятся элементы вектораа
размерностиn
с помощью ввода с клавиатуры. - Объявляется процедура
vyvod
, которая выводит векторa
размерностиn
на экран. - Объявляется функция
umn
, передающая векторa
и вещественное числоk
в качестве параметров. Она возвращает вектор, умноженный на скалярk
. - Объявляется функция
sum
, принимающая два вектораa
иb
в качестве параметров и возвращающая их сумму. - Объявляются переменные
a
,b
,c
,d
- векторы, иk
- вещественное число. - Вводятся векторы
a
,b
иc
с клавиатуры с помощью вызова процедурыvvod
. - Выводятся векторы
a
,b
иc
на экран с помощью процедурыvyvod
. - Пользователю предлагается ввести вещественное число
k
. - Вычисляется линейная комбинация векторов и выводится результат на экран с помощью процедуры
vyvod
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д