Найти линейную комбинацию трёх векторов - Pascal

Узнай цену своей работы

Формулировка задачи:

83. Даны три трехмерных вектора a, b и c, заданные своими координатами , вещественное число k. Найти вектор, равный ka + (1-k)b + k2c. Указание: реализовать функции умножения скаляра на вектор , суммы векторов.

Решение задачи: «Найти линейную комбинацию трёх векторов»

textual
Листинг программы
  1. const n=3; //размер векторов
  2. type vec=array[1..n] of real; //их тип
  3. //процедура ввода данных
  4. procedure vvod(var a:vec;c:char); //передаем вектор в программу (var)
  5. var i:byte;
  6. begin
  7. writeln('Введите элементы вектора ',c);
  8. for i:=1 to n do
  9. readln(a[i]);//вводим по 3 элемента в каждый вектор
  10. end;
  11. //процдура вывода вектора нв экран
  12. procedure vyvod(a:vec;c:char);
  13. var i:byte;
  14. begin
  15. writeln('Вектор ',c);
  16. for i:=1 to n do
  17. write(a[i]:6:2);
  18. writeln;
  19. end;
  20. //функция умножения вектора на скаляр
  21. function umn(a:vec;k:real):vec;
  22. var i:byte;
  23. begin
  24. for i:=1 to n do
  25. result[i]:=a[i]*k; //все элементы вектора умножаем на К
  26. end;
  27. //функция суммы двух векторов
  28. function sum(a,b:vec):vec;
  29. var i:byte;
  30. begin
  31. for i:=1 to n do
  32. result[i]:=a[i]+b[i];//элементы векторов с одинаковыми игдексами складываем,
  33.                      //получаем новый вектор-сумму
  34. end;
  35. var a,b,c,d:vec;
  36.     k:real;
  37. begin
  38. vvod(a,'A');
  39. vvod(b,'B');
  40. vvod(c,'C');
  41. vyvod(a,'A');
  42. vyvod(b,'B');
  43. vyvod(c,'C');
  44. write('Введите вещественное число k=');
  45. readln(k);
  46. //получаем сумму    k*a + (1-k)*b + k:2*2c.
  47. d:=sum(sum(umn(a,k),umn(b,(1-k))),umn(c,sqr(k)));
  48. vyvod(d,'D');
  49. 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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы