Найти линейную комбинацию трёх векторов - 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.

Объяснение кода листинга программы

  1. Объявляется константа n и устанавливается её значение как 3, что означает, что размерность векторов равна 3.
  2. Объявляется пользовательский тип vec как массив из 1 до n элементов типа real - вектор.
  3. Объявляется процедура vvod, принимающая вектор а и символ c в качестве параметров. В процедуре вводятся элементы вектора а размерности n с помощью ввода с клавиатуры.
  4. Объявляется процедура vyvod, которая выводит вектор a размерности n на экран.
  5. Объявляется функция umn, передающая вектор a и вещественное число k в качестве параметров. Она возвращает вектор, умноженный на скаляр k.
  6. Объявляется функция sum, принимающая два вектора a и b в качестве параметров и возвращающая их сумму.
  7. Объявляются переменные a, b, c, d - векторы, и k - вещественное число.
  8. Вводятся векторы a, b и c с клавиатуры с помощью вызова процедуры vvod.
  9. Выводятся векторы a, b и c на экран с помощью процедуры vyvod.
  10. Пользователю предлагается ввести вещественное число k.
  11. Вычисляется линейная комбинация векторов и выводится результат на экран с помощью процедуры vyvod.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 3.8 из 5
Похожие ответы