Lời m ở đầ u L ỜI M Ở ĐẦ U ! Khi b ắt đầ u làm quen v ớ i ngôn ng ữ lậ p trình – C ụ thể là ngôn ng ữ C – Sinh Viên thườ ng g ặp khó kh ă n trong vi ệ c chuy ể n v ấ n đề lý thuy ế t sang cài đặt c ụ th ể trên máy. Sách “Giáo Trình Bài T ậ p K ỹ Thu ậ t L ậ p Trình” nh ằ m cung c ấ p cho các H ọ c Sinh - Sinh Viên Trường C Đ Công Nghệ Thông Tin Tp. Hồ Chí Minh h ệ th ố ng các bài t ậ p, nhữ ng kỹ năng th ự c hành c ơ b ả n và nâng cao v ề ngôn ng ữ l ậ p trình C . Cu ố n sách này đượ c xem như tài li ệ u hướng d ẫ n t ừ ng bước cho H ọ c Sinh - Sinh Viên c ủ a Trường trong việc h ọ c và áp d ụ ng ki ế n thức lý thuyế t trên l ớp m ộ t cách thành th ạ o và sâu r ộ ng. Giáo trình đượ c chia thành 10 ch ươ ng theo t ừ ng n ộ i dung ki ế n th ứ c, kèm theo Các đề thi m ẫ u và 1 ph ụ lục h ướng dẫn vi ế t ch ươ ng trình, chu ẩ n đ oán l ỗ i và sửa l ỗ i . M ỗi chương g ồ m 2 ph ầ n: v Ph ầ n lý thuy ế t : đượ c tóm t ắt ng ắ n g ọ n v ớ i đầ y đủ ví d ụ minh ho ạ kèm theo. v Phần bài t ậ p : với nhi ề u bài t ậ p đượ c chia làm hai m ứ c độ c ơ b ả n và luyện t ậ p nâng cao, bài tập có đ ánh d ấ u * là bài t ậ p khó dành cho sinh viên luy ệ n t ậ p thêm. v Ph ầ n k ế t lu ậ n : Tóm tắt n ộ i dung và các thao tác mà sinh viên c ầ n nắm hay nh ữ ng l ư u ý c ủa ch ương đó. Trong quá trình biên so ạ n, chúng tôi đ ã c ố g ắ ng trích l ọ c những kiến th ứ c rất c ơ bả n, những l ỗ i hay gặp đố i v ớ i ng ườ i m ớ i lập trình. Bên c ạ nh đó chúng tôi c ũ ng b ổ sung thêm m ộ t s ố bài t ậ p nâng cao để rèn luy ện thêm k ỹ n ă ng lập trình. Tuy nhiên, ch ủ đ ích chính c ủ a giáo trình này là ph ụ c v ụ cho m ộ t môn h ọ c nên ch ắc ch ắn không thể tránh khỏi những thi ế u sót, vì th ế , r ấ t mong nhận đượ c những góp ý quý báu của các th ầ y cô, các đồng nghi ệ p và các b ạ n H ọ c Sinh – Sinh Viên để giáo trình này ngày càng hoàn thi ệ n hơ n. Chân thành c ảm ơn. Giáo trình Bài T ậ p K ỹ Thu ậ t L ậ p Trình Trang 1 Lịch trình th ự c hành LỊ CH TRÌNH TH Ự C HÀNH » T ổ ng th ời gian: 90 ti ế t . STT NỘI DUNG SỐ TIẾ T 1 Chương 1: Lư u đồ thuật toán 03 2 Chương 2: C ấ u trúc đ iều khiể n 06 3 Chương 3: Hàm con 12 4 Chương 4 : M ảng m ộ t chi ề u 24 5 Chương 5: Chu ỗ i ký tự 06 6 Chương 6 : M ảng hai chiề u 12 7 Chương 7: Ki ể u dữ li ệ u có cấu trúc 12 8 Chương 8 : T ập tin 06 9 Chương 9: Đệ qui 06 10 Chương 10: H ướ ng d ẫ n lập trình bằ ng ph ươ ng pháp Project 03 Giáo trình Bài T ậ p K ỹ Thu ậ t L ậ p Trình Trang 2 L ưu đồ thu ậ t toán C H Ư Ơ N G 1 L Ư U ĐỒ THUẬT TOÁN (FLOWCHART) Các ký hi ệ u biểu di ễ n l ư u đồ thu ậ t toán, cách bi ể u di ễ n các c ấ u trúc đ i ề u khi ể n r ẽ nhánh, c ấ u trúc l ặ p và các k ỹ thu ậ t liên quan đến l ư u đồ thu ật toán. I . TÓM TẮT LÝ THUY ẾT I.1 . Khái niệm Lưu đồ thu ậ t toán là công c ụ dùng để bi ể u diễn thu ậ t toán, vi ệ c mô t ả nh ậ p (input), dữ li ệu xu ất (output) và lu ồ ng xữ lý thông qua các ký hi ệ u hình h ọc. I.2 . Phươ ng pháp duy ệ t • Duyệ t t ừ trên xu ống. • Duyệ t t ừ trái sang ph ải. DIỄN GIẢ I Bắ t đầ u chương trình K ết thúc ch ương trình Lu ồ ng x ử lý Đ i ề u khi ể n l ựa ch ọ n Nh ập Xu ấ t X ử lý, tính toán ho ặ c gán Tr ả v ề giá tr ị (return) Đ iểm n ố i liên k ế t ti ế p theo (Sử d ụ ng khi lư u đồ v ượ t quá trang) Trang 3 I.3 . Các ký hiệu STT KÝ HI Ệ U 1 2 3 4 5 6 7 8 9 Giáo trình Bài T ậ p K ỹ Thu ậ t L ậ p Trình