xây dựng chương trình mô phỏng các phép toán cơ bản trên ma trận - Pdf 15

Xây dựng chương trình mô phỏng các phép toán cơ bản trên ma trận

BÁO CÁO
Xây dựng chương trình mô phỏng các
phép toán cơ bản trên ma trận
PHẠM THỊ LÝ
1
Xây dựng chương trình mô phỏng các phép toán cơ bản trên ma trận
MỤC LỤC
LỜI NÓI ĐẦU Trang 1
LỜI MỞ ĐẦU
Trang 3
PHẦN I: LÝ THUYẾT CƠ SỞ Trang 4
1) Các định nghĩa về ma trận Trang 4
2) Khái niệm các phép toán trên ma trận
Trang 5
PHẦN II: XÂY DỰNG CHƯƠNG TRÌNH MÔ PHỎNG CÁC
PHÉP TOÁN CƠ BẢN TRÊN MA TRẬN Trang 7
1) Lựa chọn ngôn ngữ Trang 7
2) Các module chính Trang 8
3) Xây dựng giải thuật Trang 10
KẾT LUẬN Trang 15
TÀI LIỆU THAM KHẢO Trang 16
PHẠM THỊ LÝ
2
Xây dựng chương trình mô phỏng các phép toán cơ bản trên ma trận
LỜI NÓI ĐẦU
Thực tiễn đã chứng mỉnh rằng thực tập là một phần không thể thiếu trong hành
trong trang tri thức của học sinh, sinh viên. Đây là phương pháp thực tế hóa kiến thức
giúp cho chúng ta khi ra trường có thể vững vàng, tự tin hơn để đáp ứng được yêu cầu
cuả xã hội nói chung và của các công việc nói riêng.

Thực hiện vẽ các ma trận trên màn hình máy tính, thực hiện nhập ma trận với m
hàng, n cột một cách trực quan, sau đó thực hiện phép cộng và phép nhân ma trận. Mô
phỏng chúng bằng đồ họa sử dụng ngôn ngữ lập trình . Trong toán học, ma trận chỉ là
một tập hợp, nó gồm nhiều phần tử để diễn tả một thành quả, dùng để giải hệ phương
trình tuyến tính, ứng dụng trong giải thuật đường đi, sử dụng trong các Tenxo trong
vật lý, biểu thị cho hình ảnh trong tin học. Ma trận được ứng dụng rất nhiều trong cuộc
sống, hỗ trợ cho nhiều ngành nghề, thể hiện rõ nhất là lập trình vi tính Ứng dụng của
việc mô phỏng giúp chúng ta hiểu rõ về bản chất của ma trận và các phép toán được
thực hiện trên ma trận.Chương trình mô phỏng giúp chúng ta dễ dàng hiểu được bản
chất của các phép tính toán(cộng,nhân ma trận) được thực hiện giữa các dòng hay giữa
các cột diễn ra như thế nào. Có thể ứng dụng chương trình mô phỏng ma trận vào việc
giảng dạy cho học sinh,giúp các em có thể nhanh chóng tiếp thu các kiến thức về ma
trận.
Sử dụng ngôn ngữ lập trình C để mô phỏng ma trận:Ngôn ngữ lập trình C là một
ngôn ngữ mệnh lệnh được phát triển từ đầu thập niên 1970 bởi Ken Thompson và
Dennis Ritchie để dùng trong hệ điều hành UNIX. Từ dó, ngôn ngữ này đã lan rộng ra
nhiều hệ điều hành khác và trở thành một những ngôn ngữ phổ dụng nhất. C là ngôn
ngữ rất có hiệu quả và được ưa chuộng nhất để viết các phần mềm hệ thống, mặc dù
nó cũng được dùng cho việc viết các ứng dụng. Ngoài ra, C cũng thường được dùng
làm phương tiện giảng dạy trong khoa học máy tính mặc dù ngôn ngữ này không dược
thiết kế dành cho người nhập môn.
PHẠM THỊ LÝ
4
Xây dựng chương trình mô phỏng các phép toán cơ bản trên ma trận
PHẦN I: LÝ THUYẾT CƠ SỞ
1.1 Các định nghĩa về ma trận:
1.1.1 Định nghĩa 1:
Một ma trận A loại (cấp) m x n trên trường K (K – là trường thực R, hoặc phức
C) là một bảng chữ nhật gồm m x n phần tử trong K được viết thành m dòng và n cột
như sau:

) để chỉ một ma trận đường chéo cấp n
có các phần tử trên đường chéo lần lượt là a
1
, a
2
, …, a
n
Ma trận chéo có a
ii
= 1, ∀i (nghĩa là các phần tử trên đường chéo chính đều
bằng 1) được gọi là ma trận đơn vị. Ký hiệu: I
n

PHẠM THỊ LÝ
5
Xây dựng chương trình mô phỏng các phép toán cơ bản trên ma trận
Một ma trận đường chéo với tất cả các phần tử trên đường chéo chính đều bằng
nhau được gọi là ma trận vô hướng.
Nếu a
ij
= 0, ∀i >j (nghĩa là tất cả các phần tử nằm bên dưới đường chéo chính
của A đều bằng 0) thì ta nói A là ma trận tam giác trên.
Nếu a
ij
= 0, ∀i <j (nghĩa là tất cả các phần tử nằm bên trên đường chéo chính
của A đều bằng 0) thì ta nói A là ma trận tam giác dưới.
Ma trận tam giác trên hay tam giác dưới được gọi chung là ma trận tam giác.
1.2 Khái niệm các phép toán trên ma trận:
1.2.1 Phép cộng ma trận
Có thể cộng hai hoặc nhiều ma trận có cùng kích thước m x n. Cho các ma trận

6
Xây dựng chương trình mô phỏng các phép toán cơ bản trên ma trận
i, cột thứ j xác định bởi: C
i,j
= a
i,1
b
1,j
+ a
i,2
b
2,j
+ + a
i,n
b
n,j
với mọi cặp (i,j)=1 m; j
=1 p.
Chẳng hạn:

1.2.4 Phép nhân ma trận có các tính chất sau:
(AB)C = A(BC) với mọi ma trận cấp k xm A, ma trận m x n B và ma trận n xp
C ("kết hợp").
(A + B)C = AC + BC với mọi ma trận cấp m xn các ma trận A và B và ma trận
cấp n x k C ("phân phối bên phải").
C(A + B) = CA + CB ("phân phối bên trái").
**Cần chú ý rằng phép nhân ma trận không giao hoán.
PHẦN ll:
PHẠM THỊ LÝ
7

8
Xây dựng chương trình mô phỏng các phép toán cơ bản trên ma trận
• Hàm các con trỏ cho phép hình thành một nền tảng ban đầu cho tính
đóng và tính đa hình.
• Hỗ trợ các bản ghi hay các kiểu dữ liệu kết hợp do người dùng từ khóa
định nghĩa struct cho phép các dữ liệu liên hệ nhau có thể được tập hợp lại và
được điều chỉnh như là toàn bộ.
Một số chức năng khác mà C không có (hay còn thiếu) nhưng có thể tìm thấy ở
các ngôn ngữ khác bao gồm:
• An toàn kiểu
• Tự động Thu dọn rác
• Các lớp hay các đối tượng cùng với các ứng xử của chúng (xem thêm
OOP)
• Các hàm lồng nhau
• Lập trình tiêu bản hay Lập trình phổ dụng
• Quá tải và Quá tải toán tử
• Các hỗ trợ cho đa luồng, đa nhiệm và ).
2.2 CÁC MODULE CHÍNH
//Khởi tạo đồ họa
- Để khởi tạo đồ họa ta dùng hàm initgraph() được khai báo trong graphics.h với
cú pháp:
Void far initgraph( int *graphdrive, int *graphmode, char *path);
Với các biến Graphdrive chứa trình điều khiển đồ họa
Graphmode kiểu đồ họa
Path đường dẫn đến thư mục chứa các drive đồ họa. Trong phần
này ta phải dùng 2 dấu \\ vì dấu \ đã được dùng cho ký tự escape.
Để thuận tiện ta khởi tạo đồ họa tự động bằng cách viết:
Graphdrive = detect;
PHẠM THỊ LÝ
9

{
setfillstyle(t,2);
delay(200);
bar(x,y,x+23,y+23);
outtextxy(x+8,y+8,ch) ;
}
PHẠM THỊ LÝ
10
Xây dựng chương trình mô phỏng các phép toán cơ bản trên ma trận
//danh dau va viet vao o tren cung
Setfillstyle(11,15);
Floodfill(tx-dx/2+10,45,1);
Setcolor(2);
Outtextxy(tx-dx/2+10,45,s);
Delay(800);
//xoa dau vet
Setfillstyle(11,15);
Floodfill(x1+j*dx-20,y1+i*dy-15,1);//c
Setcolor(2);
Outtextxy(x1+j*dx-20,y1+i*dy-15,s);
Setfillstyle(11,15);
Floodfill(xx+j*dx-20,yy+i*dy-15,1);//a
Floodfill(xo+j*dx-20,yo+i*dy-15,1);//b
Setcolor(2);
Outtextxy(xx+j*dx-20,yy+i*dy-15,sa);
Outtextxy(xo+j*dx-20,yo+i*dy-15,sb);
Delay(1000);
2.3 Giải thuật được xây dựng trên C như sau:
// khởi tạo đồ họa
int gdriver=DETECT,gmode,maxx,maxy,errorcode;

}
void dctraiphai(int xa,int xb,int y,int so1,int so2)
{
int x=(xa+xb)/2;
for(int t=xa;t<=x;)
{
ve(t,y,so1);
ve(xb+xa-t,y,so2);
delay(20);
setviewport(0,0,639,280,0);
clearviewport();
outtextxy(n*14+20,(m+3)*28,"ma tran A");
outtextxy(n*14+410,(m+3)*28,"ma tran B");
outtextxy(120,20,"chuong trinh mo phong cong hai ma tran");
vemtb(m,n,b);
vemtd(m,n,d);
t=t+3;
}
}
void congmt(int m,int n)
{
for (int i=0;i<m;i++)
{
for(int j=0;j<n;j++)
PHẠM THỊ LÝ
12
Xây dựng chương trình mô phỏng các phép toán cơ bản trên ma trận
c[i][j]=b[i][j]+d[i][j];
}
}

int t;//bien trung gian
itoa(so1,ch1,10);
itoa(so2,ch2,10);
for(t=1;t<=11;t++)
{
PHẠM THỊ LÝ
13
Xây dựng chương trình mô phỏng các phép toán cơ bản trên ma trận
setfillstyle(t,2);
delay(100);
bar(x1,y1,x1+23,y1+23);
outtextxy(x1+8,y1+8,ch1) ;
bar(x2,y2,x2+23,y2+23) ;
outtextxy(x2+8,y2+8,ch2);
}
}
void nhanmt()
{
for(int i=0;i<m;i++)
for(int j=0;j<h;j++)
{
s[i][j]=0;
for(int k=0;k<n;k++)
s[i][j]=s[i][j]+b[i][k]*d[k][j];
}
}
void nhan_mt()
{
clrscr();
setfillstyle(1,1);

vemtd(l,h,d);
}
outtextxy((n+1)*14+7*29,(m+11)*28,"Ma tran C");
}
KẾT LUẬN
PHẠM THỊ LÝ
15
Xây dựng chương trình mô phỏng các phép toán cơ bản trên ma trận
Bài thực tập “Xây dựng chương trình mô phỏng các phép toán cơ bản trên ma
trận” phần nào hệ thống lại kiến thức đã học trong C và tiếp thu thêm phần đồ họa và
văn bản.
Qua bài báo cáo thực tập cơ bản này ta có thể hiểu được cách tạo một hình ảnh
và tạo hình chuyển động theo những khoảng thời gian nhanh, chậm khác nhau.
Như vậy trong chế độ graphic ta hoàn toàn có thể vẽ bất kỳ hình thù gì kể cả việc
vẽ chữ với kích thước và hình dáng khác nhau bằng cách vẽ từng điểm theo chương
trình chứ không là mạch cứng như trong chế độ Text.
Trong chế độ graphics, ưu điểm của màn hình đồ họa là khi viết chữ ta có thể
thay đổi dáng chữ, kiểu chử, cỡ chữ. trong màn hình văn bản cỡ chữ và kiểu chữ bị cố
định.
☺ Những điều đã làm được trong bài báo cáo:
+ Sử dụng đồ họa vẽ các ma trận
+ Mô phỏng các phép toán cộng, nhân hai ma trận
+ Làm cho các phần tử trong ma trận di chuyển linh động
trên màn hình với nhiều màu sắc.
+ Hệ thống lại được các lý thuyết cơ bản về ma trận, định
nghĩa ma trận và các phép toán cơ bản trong ma trận
+ Hiểu thêm được các hàm, các lệnh trong ngôn ngữ C, chế
độ đồ họa trong C
☺ Những điều hạn chế:
+ Còn nhiều phép toán chưa được thực hiện trên ma trận


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status