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ượt xem 72
download
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. Trong khoảng thời gian thực tập, kiến thức cơ bản giảng dạy của nhà trường đã được vận dụng vào công việc thực tập của em cột một cách trực quan, sau đó thực...
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: 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
- 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. Trong khoảng thời gian thực tập, kiến thức cơ bản giảng dạy của nhà trường đã được vận dụng vào công việc thực tập của em. Với sự giúp đỡ nhiệt tình của cô giáo đã giúp em hoàn thành bản báo cáo thực tập này. Bài báo cáo thực tập bao gồm các phần sau: Lời mở đầu: Giới thiệu về đề tài “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ở. Phần II : Xây dựng chương trình. Phần III: Kết luận. Tài liệu tham khảo. Bài báo cáo đã bám sát và góp phần làm rõ, cụ thể hóa những nội dung chủ yếu trong các chương của đề tài 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. Trong đó có những kiến thức về ma trận như khái niệm ma trận, phép toán cộng, nhân... mà chúng ta đã được học từ những năm học phổ thông. Mở rộng hơn là việc sử dụng ngôn ngữ lập trình máy tính kết hợp với kỹ năng đồ họa để tạo ra các ma trận với những màu sắc biến hóa, sự di chuyển của các phần tử trong hàng hay cột của ma trận sẽ giúp chúng ta dễ dàng hình dung được sự kết hợp các phần tử để tạo ra một ma trận mới là kết quả của việc thực hiện tính toán trên các ma trận ban đầu. Trong quá trình làm bài báo cáo,em đã có nhiều cố gắng, song không tránh khỏi những thiếu sót. Em rất mong được sự đóng góp ý kiến của thầy cô và bạn bè để em có những kiến thức và kinh nghiệm tốt hơn trong những bài báo cáo thực tập lần sau. Em xin chân thành cảm ơn! Hà nội,tháng 1 năm 2012 PHẠM THỊ LÝ 3
- 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 MỞ ĐẦU: GIỚI THIỆU ĐỀ TÀI Đề tài: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. 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: Trong đó aij Є K là phần tử ở vị trí dòng i, cột j của A. Đôi khi A được viết ngắn gọn là A = (aij)mxn hay (A)mxn. Các ma trận thường được ký hiệu bởi A, B, C và tập hợp tất cả các ma trận loại m x n trên trường K được ký hiệu bởi Mm x n(K) 1.1.2 Định nghĩa 2: Cho A = (aij) Є Mn(K). Khi đó: Nếu aij = 0, i ≠ j (nghĩa là tất cả các phần tử bên ngoài đường chéo chính của A đều bằng 0) thì ta nói A là ma trận đường chéo. Ta thường dùng ký hiệu diag(a1, a2,…, an) để 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à a1, a2, …, an Ma trận chéo có aii = 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: In 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. 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 Nếu aij = 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 aij = 0,i
- 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: Ci,j = ai,1b1,j + ai,2b2,j + ... + ai,nbn,j với mọi cặp (i,j)=1..m; j =1..p. Chẳng hạn: 1.2.4Phé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
- 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 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 2.1 LỰA CHỌN NGÔN NGỮ 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. Tổng quan C đã được tạo ra với một mục tiêu là làm cho nó thuận tiện để viết các chương trình lớn với số lỗi ít hơn trong mẫu hình lập trình thủ tục mà lại không đặt gánh nặng lên vai người viết ra trình dịch C, là những người bề bộn với các đặc tả phức tạp của ngôn ngữ. Cuối cùng C có thêm những chức năng sau: Mộ t ngôn ngữ cốt lõi đơn giản, với các chức năng quan trọng chẳng hạn như là những hàm hay việc xử lý tập tin sẽ được cung cấp bởi các bộ thư viện các thủ tục . Tập trung trên mẫu hình lập trình thủ tục, với các phương tiện lập trình theo kiểu cấu trúc. Một hệ thống kiểu đơn giản nhằm loại bỏ nhiều phép toán không có ý nghĩa thực dụng. Dùng ngôn ngữ tiền xử lý, tức là các câu lệnh tiền xử lý C, cho các nhiệm vụ như là định nghĩa các macro và hàm chứa nhiều tập tin mã nguồn (bằng cách dùng câu lệnh tiền xử lý dạng #include chẳng hạn). Mức thấp của ngôn ngữ cho phép dùng tới bộ nhớ máy tính qua việc sử dụng kiểu dữ liệu pointer. Số lượng từ khóa rất nhỏ gọn. Các tham số được đưa vào các hàm bằng giá trị, không bằng địa chỉ. 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. PHẠM THỊ LÝ 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 ỗ 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; Initgraph( graphdrive,graphmode,path); PHẠM THỊ LÝ 9
- 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 //Vẽ ma trận. //ve khung ma tran r dong,c cot –bat dau tai (x,y) Void vekhung(int x,int y,int c,int dx,int dy); //nhap ma tran tai vi tri(x,y) Void nhap(int x,int y); Void nhap(); //in ma tran tai vi tri (x,y) Void in(int x,int y); // tạo màu cho ma trận ta dùng hàm setcolor(int color) // Nhập ma trận - Sử dụng lệnh gọi các hàm để vẽ ma trận {…………. vemta(); vemtb(); vemtc(); vemtd(); vemts(); vemtx(); vemtw(); ……… } - Xác định phần tử đang nhập: //danh dau char *ch; int t; itoa(so,ch,10); for(t=1;t
- 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 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; initgraph(&gdriver,&gmode,"C:\\TC\\BGI"); midx=getmaxx()/2; midy=getmaxy()/2; setbkcolor(1); //ve khung ma tran r dong,c cot –bat dau tai (x,y) Void vekhung(int x,int y,int c,int dx,int dy); //nhap ma tran tai vi tri(x,y) Void nhap(int x,int y); Void nhap(); //in ma tran tai vi tri (x,y) Void in(int x,int y); //ve ma tran m hang, n cot PHẠM THỊ LÝ 11
- 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 void vemta(int m,int n ,int q[10][10]) { for (int i=0;i
- 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 void tong_mt(int m,int n) { clrscr(); setfillstyle(1,1); bar(0,0,640,479); outtextxy(120,20,"chuong trinh mo phong cong hai ma tran"); vemtc(m,n); vemtb(m,n,b); vemtd(m,n,d); for(int i=0;i
- 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 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
- 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 clearviewport(); outtextxy(100,20,"Chuong trinh mo phong nhan hai ma tran"); outtextxy(n*10+25,(m+3)*28,"ma tran A"); outtextxy(h*10+415,(l+3)*28,"ma tran B"); vemtb(m,n,b); 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 +Giao diện và hình vẽ còn đơn giản…. + Còn gặp nhiều khó khăn trong việc sử dụng các thủ tục của đồ họa trong C ☺ Định hướng phát triển: + Mô phỏng được tất cả mọi phép toán trên ma trận, làm cho chương trình được hoàn chỉnh, đầy đủ hơn. + Thay đổi giao diện và vẽ hình chi tiết hơn. Để hoàn thành bản báo cáo này em chân thành cảm ơn cô NGUYỄN THỊ VÂN ANH đã giúp đỡ, cho ý kiến giúp em hoàn thành đợt thực tập đúng thời hạn. Em xin chân thành cảm ơn! PHẠM THỊ LÝ 16
- 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 Tài liệu tham khảo: 1. Giáo trình lý thuyết và bài tập ngôn ngữ C [ tập 1 & tập 2 ] Nguyễn Đình Tê – Hoàng Đức Hải – Nhà xuất bản lao động xã hội 2. Ngôn ngữ lập trình C Quách Tuấn Ngọc – Nhà xuất bản thống kê 3. Cộng động C việt congdongcviet.com PHẠM THỊ LÝ 17
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Đề tài: Xây dựng chương trình mô phỏng các giải thuật định thời cho CPU
32 p | 816 | 119
-
Báo cáo "Xây Dựng Chương Trình Mô Phỏng Hệ Thống ViBa Số Bằng Phần Mềm MATLAB "
8 p | 311 | 110
-
Đề tài tốt nghiệp: Xây dựng chương trình quản lý sinh viên cho trường Cao đẳng Phát Thanh Truyền Hình II
87 p | 337 | 81
-
Báo cáo tốt nghiệp: Tìm hiểu mật mã lượng tử
77 p | 278 | 78
-
LUẬN VĂN: Tìm hiểu về xử lý ngôn ngữ tự nhiên và máy dịch. Viết chương trình mô phỏng từ điển Việt-Anh
70 p | 268 | 76
-
Báo cáo khoa học: "nghiên cứu xác định các đặc trưng dao động của máy sàng rung có h-ớng và xây dựng chương trình mô phỏng hoạt động trên máy tính điện tử"
8 p | 149 | 36
-
BÁO CÁO "XÂY DỰNG CHƯƠNG TRÌNH GAMESHOW MÔ PHỎNG CHƯƠNG TRÌNH “AI LÀ TRIỆU PHÚ” "
4 p | 363 | 32
-
Báo cáo: Nghiên cứu xây dựng không gian mô phỏng dao động con lắc đơn
30 p | 142 | 21
-
Luận văn thạc sĩ: Xây dựng công cụ mô phỏng thuật toán hỗ trợ học ngôn ngữ lập trình tại trường THPT
13 p | 123 | 17
-
Tạp chí khoa học và công nghệ: Nghiên cứu xây dựng chương trình tính toán lựa chọn vị trí lắp đặt thiết bị SVC cho hệ thống điện Việt Nam
6 p | 107 | 16
-
Đồ án tốt nghiệp: Xây dựng chương trình quản lý kho thuốc khoa Dược BVPS Hải Phòng
66 p | 105 | 16
-
Đề tài nghiên cứu khoa học cấp trường: Phân tích và mô phỏng động học rôbốt 6 bậc tự do cấp phôi cho các máy phay CNC
49 p | 44 | 16
-
Khóa luận tốt nghiệp Đại học: Xây dựng chương trình mô phỏng vận chuyển Photon Electron bằng phương pháp Monte Carlo
71 p | 93 | 11
-
Tóm tắt khóa luận tốt nghiệp: Nghiên cứu xây dựng chương trình điều khiển với hệ thống thí nghiệm PLC hãng Mitsubishi (16 mô đun mô hình đóng chai, dây chuyền dán nhãn,…)
11 p | 57 | 9
-
Xây dựng chương trình mô phỏng hệ thống chia chọn thư tự động (quyển 2A)
54 p | 95 | 7
-
Tóm tắt khóa luận tốt nghiệp Công nghệ kỹ thuật cơ điện tử: Xây dựng chương trình với PLC hãng OMRON phục vụ đào tạo (hệ thống điều khiển máy giặt, hệ thống máy bơm, hệ thống khoan tự động,…)
9 p | 56 | 4
-
Tóm tắt Khóa luận tốt nghiệp khoa Văn hóa du lịch: Xây dựng chương trình du lịch Học tập và làm theo tấm gương đạo đức Hồ Chí Minh
11 p | 93 | 3
-
Luận văn Thạc sĩ Khoa học máy tính: Xây dựng chương trình mô phỏng 3D hướng dẫn các kỹ năng xử lý thoát hiểm khi gặp hỏa hoạn trong các trường học
58 p | 29 | 3
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn