Найти произведение матрицы на вектор - Pascal
Формулировка задачи:
Помогите исправить ошибку в программе. Пишу на pascal.
Надо найти произведение матрицы размером m n = на вектор размером
n.
Вот что я написал:
const n=6; type Matrica=Array[1..n,1..n] of Real; Wector=Array[1..n] of Real; var i,j: Integer; a: Matrica; b,c: Wector; Procedure Dobutoc(x: Matrica; y: Wector); begin for i:=1 to n do begin c[i]:=0; for j:=1 to n do c[i]:=c[i]+x[i,j]*y[i]; end; end; Procedure Out(x: Wector); begin for i:=1 to n do writeln(x[i]:8:2); end; begin for i:=1 to n do for j:=1 to n do begin a[i,j]:=random(100)/10-j; b[i]:=random(100)/10-1; end; writeln('Матрица А:'); for i:=1 to n do begin for j:=1 to n do write(a[i,j]:5:1); writeln; end; writeln('Вектор В:'); out(b); writeln('Вектор С:'); Dobutoc(a,b); Out(c); end.
Ругается на 11-ю строку
Решение задачи: «Найти произведение матрицы на вектор»
textual
Листинг программы
const n=6; type Matrica=Array[1..n,1..n] of Real; Wector=Array[1..n] of Real; var i,j: Integer; a: Matrica; b,c: Wector; Procedure Dobutoc(x: Matrica; y: Wector); begin var i,j:integer; for i:=1 to n do begin c[i]:=0; for j:=1 to n do c[i]:=c[i]+x[i,j]*y[i]; end; end; Procedure Out(x: Wector); begin var i:integer; for i:=1 to n do writeln(x[i]:8:2); end; begin for i:=1 to n do for j:=1 to n do begin a[i,j]:=random(100)/10-j; b[i]:=random(100)/10-1; end; writeln('Матрица А:'); for i:=1 to n do begin for j:=1 to n do write(a[i,j]:5:1); writeln; end; writeln('Вектор В:'); out(b); writeln('Вектор С:'); Dobutoc(a,b); Out(c); end.
Объяснение кода листинга программы
- Объявляется константа
n
со значением 6. - Определяются типы данных
Matrica
(матрица) иWector
(вектор) как массивы реальных чисел. - Объявляются переменные
i
иj
типа Integer для использования в циклах. - Создаются переменные
a
(матрица),b
иc
(вектора) типаMatrica
иWector
соответственно. - Объявляется процедура
Dobutoc
, которая принимает матрицу и вектор в качестве параметров и выполняет операцию умножения матрицы на вектор. - В процедуре
Dobutoc
объявляются переменныеi
иj
типа Integer для использования в циклах. - В цикле происходит вычисление произведения матрицы на вектор и сохранение результата в вектор
c
. - Объявляется процедура
Out
, которая выводит вектор на экран. - В процедуре
Out
объявляется переменнаяi
типа Integer для использования в цикле. - Выполняется основная часть программы, в которой:
a. Генерируется случайное значение для каждого элемента матрицы
a
и вектораb
. b. Выводится матрицаa
на экран. c. Выводится векторb
на экран. d. Выполняется умножение матрицыa
на векторb
с помощью процедурыDobutoc
. e. Выводится векторc
(результат умножения) на экран.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д