Найти линейную комбинацию трёх векторов - 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
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д