![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
Павел |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 23 Пол: Мужской Репутация: ![]() ![]() ![]() |
Делаю перемножение матриц но не пойму как матрицу-произведение вывести на экран. И перемножение правильно-ли?
Код var a, b, c, d, e, f, g, h, i, j, k: integer; s: real; m1, m2, m3: array [1..50,1..50] of real; Begin Write('Vvedite kolichestvo strok matrici m1 '); readln(a); Write('Vvedite kolichestvo stolbcov matrici m1 '); readln(b); randomize; for i:=1 to a do for j:=1 to b do m1[i,j]:=random(5); Write('Vvedite kolichestvo strok matrici m2 '); readln(c); Write('Vvedite kolichestvo stolbcov matrici m2 '); readln(d); for i:=1 to c do for j:=1 to d do m2[i,j]:=random(5); for i:=1 to a do begin writeln; for j:=1 to b do write(m1[i,j]:4:0, ' '); writeln; end; writeln; for i:=1 to c do begin writeln; for j:=1 to d do write(m2[i,j]:4:0, ' '); writeln; end; writeln; begin s:=0; s:=m1[i,k]*m2[k,j]; m3[i,j]:=s; end; for i:=1 to e do begin writeln; for j:=1 to f do write(m3[i,j]:4:0, ' '); writeln; end; End. |
Павел |
![]()
Сообщение
#2
|
Новичок ![]() Группа: Пользователи Сообщений: 23 Пол: Мужской Репутация: ![]() ![]() ![]() |
Нашел ошибки и немного переделал, но все равно получаемая матрица состоит из нолей, только последнее значение - число.
Код Uses Crt; var a, b, c, d, e, f, g, h, i, j, k: integer; s: real; m1, m2, m3: array [1..50,1..50] of real; Begin Clrscr; Write('Vvesti kolichestvo strok matrici m1 '); readln(a); Write('Vvesti kolichestvo stolbcov matrici m1 '); readln(b); for i:=1 to a do for j:=1 to b do begin write('Vvesti m1[',i,',',j,']: '); readln(m1[i,j]); end; Write('Vvesti kolichestvo strok matrici m2 '); readln(c); Write('Vvesti kolichestvo stolbcov matrici m2 '); readln(d); for i:=1 to c do for j:=1 to d do begin write('Vvesti m2[',i,',',j,']: '); readln(m2[i,j]); end; for i:=1 to a do begin writeln; for j:=1 to b do write(m1[i,j]:4:0, ' '); writeln; end; writeln; for i:=1 to c do begin writeln; for j:=1 to d do write(m2[i,j]:4:0, ' '); writeln; end; writeln; readln; begin s:=0; for k:=1 to 3 do s:=s+m1[i,k]*m2[k,j]; m3[i,j]:=s; end; for i:=1 to a do begin writeln; for j:=1 to d do write(m3[i,j]:4:0, ' '); writeln; end; readln; End. |
AlaRic |
![]()
Сообщение
#3
|
... ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 347 Пол: Мужской Репутация: ![]() ![]() ![]() |
Код m3[i,k]:=m1[i,k]*m2[i,k]; |
Lik |
![]()
Сообщение
#4
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 24 Пол: Женский Репутация: ![]() ![]() ![]() |
to AlaRic>> перемножение не массивов а матриц.
to Павел>> Вот тут ошибка: Код begin s:=0; for k:=1 to 3 do s:=s+m1[i,k]*m2[k,j]; m3[i,j]:=s; end; Ты для себя программку пишешь ? |
Павел |
![]()
Сообщение
#5
|
Новичок ![]() Группа: Пользователи Сообщений: 23 Пол: Мужской Репутация: ![]() ![]() ![]() |
to Lik>> да, для себя.
а где здесь ошибка? как надо умножать? Код begin s:=0; for k:=1 to 3 do s:=s+m1[i,k]*m2[k,j]; m3[i,j]:=s; end; to AlaRic>> пробовал вставлял эту строку - нижняя строка состоит из чисел, остальное ноли. Код m3[i,k]:=m1[i,k]*m2[i,k]; |
Павел |
![]()
Сообщение
#6
|
Новичок ![]() Группа: Пользователи Сообщений: 23 Пол: Мужской Репутация: ![]() ![]() ![]() |
Все, разобрался. Только и не хватало перечисления.
Код for i:=1 to a do for j:=1 to d do begin s:=0; for k:=1 to a do s:=s+m1[i,k]*m2[k,j]; m3[i,j]:=s; end; |
![]() ![]() |
![]() |
Текстовая версия | 22.06.2025 6:46 |