PDA

View Full Version : Bài toán Cộng trừ nhân chia 2 Ma trận (Mảng 2 chiều)



ngoctam1011.new
03-04-2008, 15:23
Chào các anh chị Pro Borland C :D
Có thể giúp mình viết chương trình tính Cộng, trừ, nhân, chia 2 ma trận với nhau (Mảng 2 chiều).
Xin cám ơn trước!
Ví dụ:
Ma trận A
1 3 6 1 2
4 2 3 2 1
7 5 2 3 1
4 2 3 0 1
Ma trận B
4 5 6 3 1
4 2 9 3 0
2 3 0 0 1
7 5 6 3 2


Tính kết quả các phép tính Cộng trừ nhân chia hai Ma trận (dữ liệu đưa vào bất kì)
Rồi in ra kết quả của ma trận C = Ma trận A + Ma trận B
ma trận C = Ma trận A * Ma trận B
ma trận C = Ma trận A - Ma trận B
ma trận C = Ma trận A / Ma trận B

[=========> Bổ sung bài viết <=========]

Kính mong các Pro giúp đỡ!

[=========> Bổ sung bài viết <=========]

Giúp đỡ nhanh đi pro

that_is_lg
15-04-2008, 10:15
Cần thêm vài quy tắc nưã đi
Nói thế chung chung quá

thuytiensp
15-04-2008, 12:15
- Để cộng 2 ma trận (cùng cấp) duyệt qua từng phần tử rùi cộng lại với nhau thui:
for(int i = 0; i<dong; i++)
for(int j = 0; j<cot; j++)
c[i][j] = a[i][j] + b[i][j];
- Tương tự cho trừ 2 ma trận
- Để nhân 2 ma trận (vd: AxB) thì số dòng của A phải = số cột của B. Khi đó:
for(int i= 0; i<dongA; i++)
for(int j = 0; j<cotB; j++)
for(int k = 0; k<cotA; j++)
{
c[i][j] += a[i][k]*b[k][j];
}
- Chia 2 ma trận thì nhân cho ma trận nghịch đảo vd: A/B = AxB mũ(-1). Công việc của bạn là tính B mũ(-1).Cái này thì mình quên rùi.

VuongChieuQuan
17-04-2008, 18:20
http://ddth.com/showthread.php?t=181612

khanh11121988
18-04-2008, 06:57
thế còn cách đếm số phần tử và tổng phần tử đường chéo chính và đường chéo phụ thì tính làm sao , VCQ chỉ tui với. cái này tui bí rồi

VuongChieuQuan
18-04-2008, 11:35
Chỉ có ma trận vuông thì mới có chéo chính, chéo phụ:
a[0][0] a[0][1] a[0][2]
a[1][0] a[1][1] a[1][2]
a[2][0] a[2][1] a[2][2]

Đây là chéo chính, tính tổng cho nó thôi


s = 0;
for ( i = 0 ; i < n ; i++) s = s + a[i][i];

Đây là chéo phụ:
a[0][0] a[0][1] a[0][2]
a[1][0] a[1][1] a[1][2]
a[2][0] a[2][1] a[2][2]

Tính tổng cho nó :


s = 0;
for ( i = 0; i < n; i++) s = s + a[i][n-i]

kid 1412
18-04-2008, 12:26
Đây là chéo phụ:
a[0][0] a[0][1] a[0][2]
a[1][0] a[1][1] a[1][2]
a[2][0] a[2][1] a[2][2]

Tính tổng cho nó :


s = 0;
for ( i = 0; i < n; i++) s = s + a[i][n-i]
[/QUOTE]

Chỗ này bị sai rồi.


a[i][n-i-1]


[=========> Bổ sung bài viết <=========]


Đây là chéo phụ:
a[0][0] a[0][1] a[0][2]
a[1][0] a[1][1] a[1][2]
a[2][0] a[2][1] a[2][2]

Tính tổng cho nó :


s = 0;
for ( i = 0; i < n; i++) s = s + a[i][n-i]


Chỗ này bị sai rồi.
phải là


a[i][n-i-1]
[/QUOTE]

VuongChieuQuan
18-04-2008, 12:42
Ug, đúng là mình viết chỗ đó hơi ẩu. Sorry sorry ! Sửa lại dùm cái nhá a[i][n-i-1].
Nhưng sao bạn Kid post hai bài giống nhau rồi !

kid 1412
18-04-2008, 12:47
Uhm. Kid muốn thêm vô đấy mà. VuongChieuQuan học C++ good không, viết vài bài tut cho Kid đi, cách lưu file bằng fstream đấy. Cả hướng đối tượng nữa.
Thân ^_^

VuongChieuQuan
18-04-2008, 20:39
Hì, Mình cũng muốn viết một tut gì đó lắm, vì thấy trong box C/C++ này chả có bài nào hay cả. Các 4rum khác thường có nhiều tut rất hay ở đầu box, mong các bạn nào Pro, hay sưu tầm được kiến thức hay thì post lên cho mọi người cùng học tập.

Còn mình thì chưa dám tut đâu vì khả năng sư phạm hơi kém với lại cũng không có nhiều thời gian để tut hẳn một vấn đề một cách hoàn chỉnh.
( Nhưng khi nào rảnh mình sẽ thử xem sao ! Sợ các Pro lại cười chết !)

hoa_sua8x
20-04-2008, 09:31
Xin chào,vậy cộng trừ nhân chia 2 ma trận dùng con trỏ thì sao nhỉ, mấy bác chỉ giùm tui với. Cám ơn nhiu.

trhthong
20-04-2008, 19:08
http://ddth.com/showthread.php?t=181612
Anh vuongchieuquan đã đưa link nói về cách dùng con trỏ để thao tác với ma trận rồi mà. Anh hoa_sua8x ghé qua đó hen. Nếu thấy code của anh quan Pro quá, thì em code lại "bình dân" hơn cho. Mà nói chung, ảnh code vậy là được rồi, chẳng cần bàn thêm gì.