Bài giảng Kỹ thuật lập trình - Phạm Thế Bảo
lượt xem 32
download
Bài giảng kỹ thuật lập trình do thầy Nguyễn Thế Bảo giảng viên trường đại học Khoa học Tự nhiên biên soạn. Nội dung cơ bản của giáo trình gồm thiết kế chương trình lập trình, kiến thức về mảng một chiều, hai chiều và nhiều chiều, khái niệm về con trỏ, chuỗi kí tự, cấu trúc. Ngoài ra giáo trình còn cung cấp kiến thức liên quan đến tập tin, đệ quy và một số thuật toán thông dụng. Lập trình máy tính là kỹ thuật cài đặt một hoặc nhiều thuật toán trừu tượng có liên quan với nhau bằng một hoặc nhiều ngôn ngữ lập trình để tạo ra một chương trình máy tính. Lập trình có các thành tố nghệ thuật, khoa học, toán học, và kỹ nghệ. Với những nội dung trên, giáo trình sẽ giúp ích rất nhiều cho sinh viên ngành công nghệ thông tin trong việc học tập môn học này.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Kỹ thuật lập trình - Phạm Thế Bảo
- Phạm Thế Bảo Ph Bả http://www.math.hcmuns.edu.vn/~ptbao/KTLT/ ptbao@hcmuns.edu.vn T ờ Đại Trường Đ i học h Khoa Kh hhọc T Tự nhiên hiê TTp.HCM HCM
- Ộ NỘI DUNG 1. Thiết kế chương trình 2. Mả một Mảng ộ chiều, hai hiề h i chiều hiề vàà nhiều hiề chiều hiề 3. Con trỏ 4. Chuỗi ký tự 5. Cấu trúc 6. Tập tin 7. Đệ quy 8. Một số thuật toán thông dụng
- Cách tính điểm y Điểm thực hành 50% tổng điểm y Điểm lý thuyết 50% tổng điểm ộ g thêm 10 – 20% tổng y Điểm cộng g điểm
- ệ tham khảo Tài liệu 1. Quách Tuấn Ngọc, Ngôn Ngữ Lập Trình C. Nhà Xuất Bản Giáo Dục, 1998. 2. Mark Allen Weiss, Efficient C programming.. Prentice Hall, 1998. 3 3. Yale N Patt Sanjay J Patel Introduction to Yale N. Patt, Sanjay J. Patel, Introduction to Computing System, from Bits and Gates to C and Beyond.. McGrawHill, 1999. 4 4. T ầ Đan Trần Đ Thư, Th Giáo Giá trình t ì h lập lậ trình t ì h C (Tậ (Tập 1 & 2 ). ) NXB ĐH QG TPHCM –2003. 5. Nguyễn g y Thanh Thuỷ, ỷ, Nhập ập môn lập ập trình ngôn g ngữg C. NXB KH-KT – 2005. 6. Phạm Văn Ất - Kỹ thuật lập trình C cơ sở và nâng cao. NXB KH-KT- 2006. 2006
- Ebook 1. Beginning C From Novice to Professional. 2 2. C Primer Plus 5th Edition. Edition 3. Mastering Algorithms with C. 4 4. Practical C Programming. Programming 5. Expert C Programming - Deep C Secrets. 6 6. The Complete Reference Reference. 7. C Reference Card (ANSI).
- Website 1. http://www.congdongcviet.com 2 2. htt // http://www.cprogramming.com/ i / 3. http://www.programmingtutorials.com/c.aspx 4 4. htt // http://www.codeguru.com/ d / 5. http://www.thecodeproject.com/ 6 6. htt // 4 i http://c4swimmers.net t 7. http://www.vocw.edu.vn/ 8 8. h http://www.google.com.vn/ // l /
- Phạm Thế Bảo Trường Đại học Khoa học Tự nhiên Tp.HCM Tp HCM
- Phân lọai 1. Phương pháp trực tiếp 2. Phương pháp gián tiếp hoặc tìm kiếm lời giải
- Phương pháp trực tiếp • Xác định trực tiếp được lời giải qua một thủ tục tính toán (công thức hệ thức, thức, thức định luật, luật …)) hoặc qua các bước căn bản để có được lời giải. • Việc ggiải qquyết y vấn đề trên máyy tính chỉ là thao tác lậpp trình hayy là sự chuyển ể đổiổ lời giải từ ngôn ngữ tự nhiên sang ngôn ngữ máy tính Æ kỹ thuật lập trình trên máy tính. • Có ba loại cơ bản: o Lọai thứ nhất, dùng để biểu diễn cho các bài toán đã có lời giải chính xác bằng một công thức toán học nào đó. 1 + 2 + ... + n = n(n + 1) 2 ví dụ: tính tổng n số nguyên dương. o Loại thứ hai, biểu diễn cho các bài toán có công thức giải gần đúng (công thức tính sin, sin cos, cos giải phương trình siêu việt, việt …). ) ví dụ: giải phương trình bậc 2 o Loại cuối cùng, biểu diễn các lời giải không tường minh bằng kỹ thuật đệ quy.
- Chuyển đổi dữ liệu bài toán thành dữ liệu chương trình Nguyên lý 1: Dữ liệu của bài toán sẽ được biểu diễn lại dưới dạng 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. 2. Thay đổi giá trị của biến - lệnh gán 3 Kiểu dữ liệu 3. 4. Hằng số 5 Cấu trúc một chương trình 5.
- 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 y 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. 1. Cấu trúc tuần tự 2 2. Cấ trúc Cấu t ú rẽẽ nhánh há h 1. Rẽ nhánh có điều kiện: if (condition) y rẽ nhánh đơn: if () y rẽẽ nhánh há h đôi: đôi if () ... else l ... 2. Rẽ nhiều nhánh: case 3. Rẽ nhánh không có điều kiện: LABEL và GOTO 3. Cấu ấ trúc lặp: 1. Lặp xác định 2 2. 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 y 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 Tham số - dữ liệu đầu vào/đầu ra của hàm 3.
- Biểu diễn tính toán không tường minh bằng đệ quy y 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 y Sẽ trình t ì h bày bà sau này. à
- Phương gpphápp g gián tiếp p y Được sử dụng khi chưa tìm ra lời giải chính xác của vấn đề. đề y Đây là cách tiếp cận chủ yếu của loài người từ xưa đến nay. nay y Lời giải trực tiếp bao giờ cũng tốt hơn, nhưng không phải hải lúc lú nào à cũng ũ có ó
- Phân â lọai ọa pphương ươ g ppháp áp ggián á ttiếp ếp 1. Phương pháp thử - sai 1 Thử - saii hệ thống 1. thố 2. Thử - sai phân lớp 3. Thử - saii ngẫu ẫ nhiên hiê 2. Phương pháp Heuristic 3. Phương pháp trí tuệ nhân tạo
- Ph Phương há thử - saii pháp Thomas Edison – pphát biểu cách tìm một câyy kim trongg một đốngg rơm: “trong khi chưa 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 Phương pháp há nàyà dự d trên t ê 3 nguyên ê lý: 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ảyy ra và xem xét chúng. 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 rất lớn, lớn nếu áp dụng nguyên lý toàn bộ sẽ tốn nhiều thời gian). Khả năng tìm lời giải đúng (hoặc gần đúng) sẽ phụ thuộc vào chiến l lược chọn h ngẫu ẫ nhiên hiê vàà một ột sốố điều điề kiện kiệ cụ thể. 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ó 1000 thùng, chọn ngẫu nhiên 10 thùng, mỗi thùng có 24 sản ả phNm, hN chọnh ngẫu ẫ nhiên hiê 5 sản ả phNm, hN ...
- g y lýý được Nguyên ợ pphát triên thành pphương g ppháp p Monté-Carlos. Càng ngày nguyên lý ngẫu 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 G ti . Genetic 3. 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 hình dạng dạng" của lời giải, mà phải xây 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 hãy lần lượt rút từng cọng rơm đến khi rút được cây rơm, 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 lưới. Ví dụ: Tìm nghiệm g ệ p phươngg trình trong g một ộ đoạn ạ Khử nhiễu trong ảnh 3. Nguyên lý mê cung: Muốn thóat khỏi mê cung thì phải biết quay lui và biết đánh dấu những nơi đã đi qua. Ví dụ: Tìm đường đi ngắn nhất
- Thử hử - saii phân hâ lớp lớ 1 1. Nguyên lý chung về giảm độ phức tạp của thử - sai: thu hẹp tập trường hợp trước và trong khi duyệt, đồng thời đơn giản hóa tối đa điều kiện chấp nhận một trường hợp. 2. Quy tắc: 1. đơn giản điều kiện: tránh tính lại trong vòng lặp và thừa kế kết quả tính toán của bước trước: tổ ổ hợp chỉnh hợp, heap sort, .... 2. Kỹ thuật cầm canh: mã đi tuần, y số âm đầu tiên trong mảng: điều kiện while(x[i] 0&&i n) do cách khác 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 t ờ hợp trường h hoặc h ặ nhóm hó trường t ờ hợp h chắc hắ chắn hắ không khô dẫndẫ đến đế lời giải.
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Kỹ thuật lập trình: Chương 1 - Trần Quang
39 p | 10 | 2
-
Bài giảng Kỹ thuật lập trình: Chương 8 - Trần Quang
34 p | 9 | 2
-
Bài giảng Kỹ thuật lập trình: Chương 7 - Trần Quang
28 p | 10 | 2
-
Bài giảng Kỹ thuật lập trình: Chương 6 - Trần Quang
37 p | 12 | 2
-
Bài giảng Kỹ thuật lập trình: Chương 4 - Trần Quang
32 p | 8 | 2
-
Bài giảng Kỹ thuật lập trình: Chương 3 - Trần Quang
52 p | 11 | 2
-
Bài giảng Kỹ thuật lập trình: Chương 2 - Trần Quang
25 p | 11 | 2
-
Bài giảng Kỹ thuật lập trình: Hàm nâng cao (Phần 1) - ThS. Đặng Bình Phương
26 p | 0 | 0
-
Bài giảng Kỹ thuật lập trình: Các kỹ thuật thao tác trên bit - ThS. Đặng Bình Phương
29 p | 1 | 0
-
Bài giảng Kỹ thuật lập trình: Tập tin - ThS. Đặng Bình Phương
48 p | 3 | 0
-
Bài giảng Kỹ thuật lập trình: Kỹ thuật lập trình đệ quy - ThS. Đặng Bình Phương
44 p | 2 | 0
-
Bài giảng Kỹ thuật lập trình: Dữ liệu kiểu cấu trúc - ThS. Đặng Bình Phương
33 p | 2 | 0
-
Bài giảng Kỹ thuật lập trình: Chuỗi ký tự - ThS. Đặng Bình Phương
20 p | 3 | 0
-
Bài giảng Kỹ thuật lập trình: Danh sách liên kết - ThS. Đặng Bình Phương
20 p | 2 | 0
-
Bài giảng Kỹ thuật lập trình: Chuyển đổi kiểu dữ liệu và cấp phát bộ nhớ động - ThS. Đặng Bình Phương
28 p | 3 | 0
-
Bài giảng Kỹ thuật lập trình: Dữ liệu kiểu con trỏ (Nâng cao) - ThS. Đặng Bình Phương
48 p | 1 | 0
-
Bài giảng Kỹ thuật lập trình: Giới thiệu môn học - ThS. Đặng Bình Phương
7 p | 1 | 0
-
Bài giảng Kỹ thuật lập trình: Hàm nâng cao (Phần 2) - ThS. Đặng Bình Phương
30 p | 0 | 0
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