Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 21 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
21
Dung lượng
853,55 KB
Nội dung
Ph Thế Bả Ph ạm Thế Bả o http://www.math.hcmuns.edu.vn/~ptbao/KTLT/ ptbao@hcmuns.edu.vn T ờ Đ ih Kh h T hiê T HCM T rư ờ ng Đ ạ i h ọc Kh oa h ọc T ự n hiê n T p. HCM N Ộ IDUNG Ộ 1. Thiếtkế chương trình M ả ộ hi ề hi hi ề à hi ề hi ề 2. M ả ng m ộ tc hi ề u, h a i c hi ề uv à n hi ề uc hi ề u 3. Contrỏ 4. Chuỗik ý t ự 5. Cấutrúc 6. Tậptin 7. Đ ệ quy 7. Đ ệ quy 8. Mộtsố thuật toán thông dụng Cách tính điểm y Điểmthựchành50%tổng điểm y Điểmlýthuyết50%tổng đi ểm y Điểmc ộ n g thêm 10 –20% tổn g điểm ộ g g Tài li ệ uthamkhảo ệ 1. Quách TuấnNgọc,Ng ôn Ngữ LậpTrìnhC.Nhà Xuất Bả n Giáo Dục,1998. 2. MarkAllenWeiss,EfficientCprogramming PrenticeHall,1998. 3 YaleN Patt SanjayJ Patel Introductionto 3 . YaleN . Patt ,SanjayJ . Patel , Introductionto ComputingSystem,fromBitsandGatesto Cand Beyond McGrawHill,1999. 4 T ầ Đ Th Giá tìh lậ tìh C( Tậ 1&2 ) NXB 4 . T r ầ n Đ an Thư , Giá o t r ì n h lậ p t r ì n h C ( Tậ p 1 & 2 ) . NXB ĐH QG TPHCM –2003. 5. N g u y ễn Thanh Thu ỷ , Nh ập môn l ập trình n g ôn n gữ C. gy ỷ , ập ập g g NXB KH-KT – 2005. 6. Phạm Văn Ất -Kỹ thuậtlậptrìnhC cơ sở và nâng cao. NXB KH - KT - 2006 NXB KH - KT - 2006 . Ebook 1. Beginning C From Novice to Professional. 2 CPrimerPlus5 th Edition 2 . C Primer Plus 5 th Edition . 3. Mastering Algorithms with C. 4 Practical C Programming 4 . Practical C Programming . 5. Expert C Programming - Deep C Secrets. 6 The Complete Reference 6 . The Complete Reference . 7. C Reference Card (ANSI). Website 1. http://www.congdongcviet.com 2 htt // i / 2 . htt p: // www.cprogramm i ng.com / 3. http://www.programmingtutorials.com/c.aspx 4 htt // d / 4 . htt p: // www.co d eguru.com / 5. http://www.thecodeproject.com/ 6 htt // 4 i t 6 . htt p: // c 4 sw i mmers.ne t 7. http://www.vocw.edu.vn/ 8 h// l / 8 . h ttp: // www.goog l e.com.vn / Phạm Thế Bảo Trường Đạihọc Khoa họcTự nhiên Tp HCM Trường Đại học Khoa học Tự nhiên Tp . HCM Phân lọai 1. Phương pháp trựctiếp 2. Phương pháp gián tiếphoặc tìm kiếmlờigiải Phương pháp trực tiếp Phương pháp trực tiếp • Xác định trựctiếp đượclờigiải qua mộtthủ tục tính toán (công thức hệ thức định luật ) hoặc qua các bước căn bản để có thức , hệ thức , định luật , … ) hoặc qua các bước căn bản để có đượclờigiải. • Việc g iải q u yế tv ấ n đ ề trên má y tính chỉ là thao tác lậ p trình ha y ể ổ g qy y p y là s ự chuy ể n đ ổ ilờigiảit ừ ngôn ng ữ t ự nhiên sang ngôn ngữ máy tính Æ kỹ thuậtlập trình trên máy tính. Có ba loại cơ bản : • Có ba loại cơ bản : o Lọai thứ nhất, dùng để biểudiễn cho các bài toán đãcólờigiảichính xác bằng một công thứctoánhọcnàođó. (1) 12 nn n + ++ += ví dụ: tính tổng n số nguyên dương. o Loạithứ hai, biểudiễn cho các bài toán có công thứcgiảigần đúng ( công thức tính sin cos giải phương trình siêu việt ) 12 2 n ++ += ( công thức tính sin , cos , giải phương trình siêu việt ,… ) . ví dụ:giảiphương trình bậc2 o Loạicuối cùng, biểudiễn các lờigiải không tường minh bằng kỹ thuật đệ quy. Chuyển đổidữ liệu bài toán thành dữ liệuchương trình Nguyên lý 1: Dữ liệucủabàitoánsẽđượcbiểudiễnlạidướidạng các biến của chương trình thông qua các quy tắc xác định của các biến của chương trình thông qua các quy tắc xác định của ngôn ngữ lập trình cụ thể 1 Biến phương tiện biểi diễn dữ liệu của chương trình 1 . Biến - phương tiện biểi diễn dữ liệu của chương trình 2. Thay đổi giá trị củabiến-lệnh gán 3 Kiểu dữ liệu 3 . Kiểu dữ liệu 4. Hằng số 5 Cấu trúc một chương trình 5 . Cấu trúc một chương trình [...]... đư c cây kim Thuật giải: gọi D là không gian bài toán (tập tất c khả năng xảy ra), D={(x1, x2, ,xn)/xi∈Di với Di là tập hữu hạn c mi phần tử} gọi f: D {true, false} là quy t c x c định lời giải Ví dụ: một đàn gà và một bầy chó c tổng c ng N chân, đàn gà đông hơn bầy chó M con Hỏi c bao nhiêu gà và chó? 2 Nguyên lý mắt lưới: lưới bắt c chỉ bắt đư c những con c c kích thư c lớn hơn kích thư c mắt...Chuyển đổi quá trình tính toán c a bài toán thành c c cấu tr c của chương trình 1 2 2 Nguyên lý 2 (Định lý Bohn-Jacopini): Mọi quá trình tính toán đều c thể mô tả và th c hiện dựa trên ba c u tr c cơ bản: tuần tự, rẽ nhánh và lặp C u tr c tuần tự C u tr c ẽ há h C t ú rẽ nhánh 1 Rẽ nhánh c điều kiện: if (condition) rẽ nhánh đơn: if () rẽ nhánh đôi if... c c: tìm điều kiện để rút gọn tập khả năng đề c trong một bư c xây dựng một thành phần ầ Ví dụ: tìm tổ hợp chặp n c a k Dựa trên đánh giá c c bộ: xây dựng phép kiểm tra đơn giản để nhanh chóng loại bỏ đư c c c khả năng cho thành phần x[i] mà không phải xây dựng toàn bộ n-i thành phần c n lại c a lời giải Ví d cho sáu số tự nhiên A= {1, 7,2,9,3,5} Tìm d con c a A sao dụ: h ố hi { } dãy cho tổng c c phần. .. Rẽ nhiều nhánh: case Rẽ nhánh không c điều kiện: LABEL và GOTO C u tr c lặp: ấ 1 2 2 Lặp x c định Lặp không x c định Phân chia bài toán ban đầu thành những bài toán nhỏ hơn Nguyên lý 3: Mọi bài toán lớn đều c thể giải quyết bằng c ch phân chia thành những bài toán nhỏ hơn 1 Thủ t c và hàm - phương pháp phân chia chương trình thành những chương trình con 2 Biến c c bộ và biến toàn c c 3 3 Tham số -... kết quả tính toán c a bư c trư c: tổ hợp chỉnh hợp, heap sort, ổ Kỹ thuật c m canh: mã đi tuần, số âm đầu tiên trong mảng: điều kiện while(x[i]>0&&i0) do 3 Nguyên lý thu gọn không gian tìm kiếm: loại bỏ những trường hợp ho c hó trường hợp hắ hắ không dẫn đến t ờ h h ặ nhóm t ờ h ch c chắn khô dẫ đế lời giải Quy t c rút gọn: 1 2 2 4 4 Dựa trên... đầu vào/đầu ra c a hàm Biểu diễn tính toán không tường minh bằng đệ quy Nguyên lý 4: quá trình đệ quy trong máy tính không đơn giản như c c biểu th c quy nạp trong toán h c Sẽ t ì h bà sau này trình bày à Phương pháp gián tiếp gp pg p Đư c sử dụng khi chưa tìm ra lời giải chính x c của vấn đề đề Đây là c ch tiếp c n chủ yếu c a loài người từ xưa đến nay nay Lời giải tr c tiếp bao giờ c ng tốt hơn, nhưng... đúng (ho c gần đúng) sẽ phụ thu c vào chiến lư c chọn ngẫu nhiên và một số điề kiệ c thể l h ẫ hiê à ột ố điều kiện thể Ví dụ: kiểm tra chất lượng trong quá trình sản xuất c a một đoàn kiểm tra Một lô hàng c 10 00 thùng, chọn ngẫu nhiên 10 thùng, mỗi thùng c 24 sản phNm, chọn ngẫu nhiên 5 sản phNm, ả hN h ẫ hiê ả hN 3 g y ý ợ p p gp p Nguyên lý đư c phát triên thành phương pháp Monté-Carlos C ng ngày... nghĩ ra đư c một c ch thật hay thì c vi c rút từng c ng rơm cho đến khi rút đư c cây kim” Phương pháp này d t ê 3 nguyên lý Ph há à dự trên ê lý: 1 Nguyên lý vét c n (duyệt toàn bộ): liệt kê tất c c c trường hợp xảy ra và xem xét chúng y g Ví dụ: liệt kê tất c số nguyên tố từ m đến n 2 Nguyên lý ngẫu nhiên: dựa trên vi c thử một số khả năng đư c chọn một c ch ngẫu nhiên trong tập khả năng (thường... nhiên c ng phát triển mạnh mẽ, trong số đó c một phương pháp nổi bật là phươn gpháp Genetic G ti Nguyên lý mê cung: nguyên lý này đư c áp dụng khi chúng ta không biết chính x c "hình dạng" c a lời giải, mà phải xây hình dạng dựng lời giải dần qua từng bư c, giống như tìm đư c ra khỏi mê cung Thử sai - hệ thống 1 Nguyên lý vét c n toàn bộ: muốn tìm c y kim trong đống rơm, rơm hãy lần lượt rút từng c ng... nào c ng c hải l c à ũ ó Phân lọai phương pháp gián tiếp â ọa p ươ g p áp g á t ếp 1 Phương pháp thử - sai 1 1 Thử - sai hệ thố i thống 2 Thử - sai phân lớp 3 Thử - sai ngẫu nhiên i ẫ hiê 2 Phương pháp Heuristic 3 Phương pháp trí tuệ nhân tạo Ph há i Phương pháp thử - sai p y g g Thomas Edison – phát biểu c ch tìm một c y kim trong một đống rơm: “trong khi chưa nghĩ ra đư c một c ch thật hay thì c . liệucủabàitoánsẽđượcbiểudiễnlạidướidạng c c biến c a chương trình thông qua c c quy t c x c định c a c c biến c a chương trình thông qua c c quy t c x c định c a ngôn ngữ lập trình c thể 1 Biến phương tiện biểi diễn dữ liệu c a chương trình 1 . Biến - phương tiện biểi diễn dữ liệu c a chương trình 2 số 5 C u tr c một chương trình 5 . C u tr c một chương trình Chuyển đổi quá trình tính toán c a bài toán thành c c cấu tr c của chương trình c c cấu tr c của chương trình y Nguyên lý 2 (Định lý Bohn-Jacopini): Mọi quá trình tính toán đều c th ể mô. tính Æ kỹ thuậtlập trình trên máy tính. C ba loại c bản : • C ba loại c bản : o Lọai thứ nhất, dùng để biểudiễn cho c c bài toán đ c lờigiảichính x c bằng một c ng thứctoánhọcnàođó. (1) 12 nn n + ++