Форум программистов, компьютерный форум, киберфорум
Наши страницы
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
Gismarti
0 / 0 / 3
Регистрация: 17.12.2015
Сообщений: 62
1

Найти произведение матрицы на вектор

18.05.2016, 17:49. Просмотров 543. Ответов 6

Помогите исправить ошибку в программе. Пишу на pascal.
Надо найти произведение матрицы размером m n = на вектор размером
n.
Вот что я написал:

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
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.
Добавлено через 59 секунд
Ругается на 11-ю строку
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.05.2016, 17:49
Ответы с готовыми решениями:

Произведение матрицы на вектор
Помогите в решении этой задачки, пожалуйста(( Дана вещественная квадратная матрица А порядка n....

Произведение матрицы на простой вектор
с программированием не дружу, пожалуйста помогите с кодом программы. Задание простое: Дана матрица...

Сформировать вектор, элементами которого есть произведение столбцов матрицы А
Помогите пожалуйста решить задачу Сформулировать вектор,элементами которого есть произведение...

Найти произведение элементов матрицы расположенных на главной диагонали матрицы А
Матрица А (4,4) Помогите пожалуйста!

Найти сумму элементов матрицы и запихать их в вектор
Дана матрица, надо сумму элементов 1,1 1,2 1,3 1,4 1,5 ...

6
JokeR.BY
CAPITAL OF ROCK!
1278 / 705 / 982
Регистрация: 03.03.2010
Сообщений: 2,286
Завершенные тесты: 2
18.05.2016, 18:24 2
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
type
    TSize = Byte;
    TLine = Array[TSize] Of Real;
    TArray = Array[TSize] Of TLine;
procedure PrintArray(const ar: TArray; const n, m: TSize);
var
    i, j: TSize;
begin
    for i := Low(TSize) to n - 1 do
    begin
        for j := Low(TSize) to m - 1 do
            Write(' ', ar[i, j]:0:2);
        WriteLn;
    end;
    WriteLn;
end;
procedure GenerateArray(var ar: TArray; const n, m: TSize);
var
    i, j: TSize;
begin
    for i := Low(TSize) to n - 1 do
        for j := Low(TSize) to m - 1 do
            ar[i, j] := Random * 198 - 99;
    PrintArray(ar, n, m);
end;
procedure MultArrays(const ar1: TArray; const n1, m1: TSize; const ar2: TArray; const n2, m2: Byte; var ar3: TArray; var n3, m3: TSize);
var
    i, j, k: TSize;
begin
    n3 := n1; m3 := m2;
    for i := Low(TSize) to n3 - 1 do
        for j := Low(TSize) to m3 - 1 do
        begin
            ar3[i, j] := 0;
            for k := Low(TSize) to n1 - 1 do
                ar3[i, j] := ar3[i, j] + ar1[i, k] * ar2[k, j];
        end;
    PrintArray(ar3, n3, m3);
end;
var
    ar1, ar2, ar3: TArray;
    n1, m1, n2, m2, n3, m3: TSize;
begin
    repeat
        Write('Input m=');
        ReadLn(n1);
    until (n1 > 0);
    repeat
        Write('Input n=');
        ReadLn(m1);
    until (m1 > 0);
    n2 := m1; m2 := 1;
    Randomize();
    GenerateArray(ar1, n1, m1);
    GenerateArray(ar2, n2, m2);
    MultArrays(ar1, n1, m1, ar2, n2, m2, ar3, n3, m3);
end.
0
Gismarti
0 / 0 / 3
Регистрация: 17.12.2015
Сообщений: 62
19.05.2016, 14:34  [ТС] 3
Не работает
0
JokeR.BY
CAPITAL OF ROCK!
1278 / 705 / 982
Регистрация: 03.03.2010
Сообщений: 2,286
Завершенные тесты: 2
19.05.2016, 14:37 4
работает.
0
Gismarti
0 / 0 / 3
Регистрация: 17.12.2015
Сообщений: 62
19.05.2016, 14:44  [ТС] 5
Найти произведение матрицы на вектор
0
JokeR.BY
CAPITAL OF ROCK!
1278 / 705 / 982
Регистрация: 03.03.2010
Сообщений: 2,286
Завершенные тесты: 2
19.05.2016, 15:34 6
вы в общем разделе паскаля. во всех (fpc, turbo, delphi) нормальных диалектах low(<диапазон>)=наименьшее значение диапазона. на что заменить в pabc.net - без понятия. может быть там есть что-то в стиле TSize.MinValue.
0
Gismarti
0 / 0 / 3
Регистрация: 17.12.2015
Сообщений: 62
19.05.2016, 16:41  [ТС] 7
Спасибо за помощь! Сделал так:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
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.
Добавлено через 58 секунд
Просто записал переменную в цикл.
0
19.05.2016, 16:41
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.05.2016, 16:41

Найти минимальный элемент последней строки матрицы А. Сформировать вектор Z.
Помогите написать программу: Найти минимальный элемент последней строки матрицы А. Сформировать...

найти среднее арифметическое строки матрицы А сформировать из них вектор В
найти среднее арифметическое строки матрицы А сформировать из них вектор В 1 2,5 4,3...

Найти среднее арифметическое каждой строки матрицы и записать в вектор
найти среднее арифметическое каждой строки матрицы А . Сформировать из них вектор В 1...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru