Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 57 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
57
Dung lượng
526 KB
Nội dung
Hàm – Chương trình con NGÔN NGỮ LẬP TRÌNH C Trường Cao Đẳng Công Nghiệp Tuy Hòa Khoa Công nghệ Thông tin o0o Hàm - CT con Lập trình C Wednesday, July 9, 2014 2 Nội dung 1. Giới thiệu 2. Khai báo hàm 3. Xây dựng hàm 4. Danh sách tham số 5. Lời gọi hàm 6. Vấn đề truyền tham số cho hàm 7. Tham số là mảng 8. Các loại biến trong chương trình Hàm - CT con Lập trình C Wednesday, July 9, 2014 3 Giới thiệu • Chương trình sẽ thế nào nếu có 1000 lệnh, tất cả đều nằm trong hàm main? • Nếu có nhiều người cùng viết 1 chương trình thì phân chia ra sao? • Nếu muốn thực hiện cùng 1 đoạn lệnh, 1 chức năng nhiều lần, tại nhiều thời điểm khác nhau trong chương trình thì phải làm thế nào? Hàm - CT con Lập trình C Wednesday, July 9, 2014 4 Giới thiệu(2) • Vấn đề có thể được giải quyết nếu ta chia chương trình ra thành nhiều phần nhỏ. 11 12 2 31 32 4 Hàm - CT con Lập trình C Wednesday, July 9, 2014 5 Giới thiệu(3) • Mỗi phần được gọi là 1 HÀM – hay 1 chương trình con. • Ưu điểm của cách tiếp cận này: – Giảm độ phức tạp của chương trình – Tối ưu hóa mã chương trình – Tăng tính tái sử dụng của CT – Hỗ trợ khả năng làm việc tập thể Hàm - CT con Lập trình C Wednesday, July 9, 2014 6 Nguyên mẫu hàm Một số tính chất: • Khai báo cú pháp và cách sử dụng của hàm được xây dựng • Thường được đặt ở đầu CT, sau các khai báo tiền xử lý • Mỗi hàm chỉ có 1 nguyên mẫu, được viết trên 1 dòng duy nhât • Còn được gọi là khai báo hàm • Có thể có hay không có Hàm - CT con Lập trình C Wednesday, July 9, 2014 7 Nguyên mẫu hàm(2) Vị trí trong chương trình: • Tiền xử lý • Các khai báo toàn cục – Kiểu, hằng – Biến – Nguyên mẫu hàm • Hàm main() • Thân các hàm tự xây dựng Hàm - CT con Lập trình C Wednesday, July 9, 2014 8 Nguyên mẫu hàm(3) • Cú pháp khai báo: [ret_type] FuncName([parameter list]); • Ghi chú: – ret_type có thể là void, 1 kiểu bình thường hay 1 kiểu tự định nghĩa. – Kiểu trả về mặc định (không chỉ định rõ) là int. – FuncName: Tên hàm, do LTV tự đặt. Hàm - CT con Lập trình C Wednesday, July 9, 2014 9 Nguyên mẫu hàm(4) – Parameter list là tùy chọn, có thể không có nếu hàm không cần thêm thông tin gì. – Các tham số được ngăn cách nhau bằng dấu phẩy (,) và có dạng như sau: typename parametername – Tên tham số là tùy chọn trong nguyên mẫu hàm, nhưng là bắt buộc trong phần định nghĩa hàm Hàm - CT con Lập trình C Wednesday, July 9, 2014 10 Nguyên mẫu hàm(5) Một số ví dụ: 1. void DoIt(); 2. int Func(); 3. int round(float x); 4. int USCLN(unsigned a, unsigned b); 5. void GB2(float a, float b, float c); [...]... khai báo toàn c c • Trư c ho c sau hàm main() • Thứ tự c a c c hàm là không quan trong nếu nguyên mẫu c a chúng đã đư c khai báo đầy đủ • Không c khái niệm hàm lồng nhau trong C Lập trình C Hàm - CT con 11 Wednesday, July 9, 2014 Định nghĩa hàm (2) C u tr c chung c a 1 hàm: [ret_type] FuncName([parameter list]) { / /C c khai báo c c bộ statements; … [return (value);] } Lập trình C Hàm - CT con 12 Wednesday,... lệnh nhập trong hàm • Hạn chế vi c sử dụng c c biến toàn c c bên trong hàm Lập trình C Hàm - CT con 18 Wednesday, July 9, 2014 Danh sách tham số (3) Chú ý quan trọng: • Tất c c c kết quả c a hàm c n đư c trả ra bên ngoài, thông qua tham số và thông qua c u lệnh return • Hạn chế tối đa vi c dùng c c lệnh xuất trong hàm Lập trình C Hàm - CT con 19 Wednesday, July 9, 2014 Danh sách tham số (4) Ví dụ 1:... int USCLN(int a, int b) { int r; r = a%b; while (r){ a = b; b = r; r = a%b; } return (b); } Lập trình C Hàm - CT con 16 Wednesday, July 9, 2014 Danh sách tham số inputs outputs Function A Lập trình C Hàm - CT con 17 Wednesday, July 9, 2014 Danh sách tham số (2) Chú ý quan trọng: • Tất c c c thông tin c n cho hàm để nó làm vi c cần đư c truyền cho nó thông qua tham số • Hạn chế tối đa vi c dùng c c lệnh... bởi: – Nêu tên c a hàm c n th c thi – Truyền cho nó tất c c c tham số mà nó c n – Nhận lấy kết quả trả về c a hàm (nếu c ) Lập trình C Hàm - CT con 24 Wednesday, July 9, 2014 Lời gọi hàm(2) • Một hàm c thể đư c gọi bởi: – Hàm main() – Một hàm kh c • Hàm gọi: hàm gọi th c hiện hàm kh c và nhận kết quả • Hàm bị gọi: hàm bị hàm kh c gọi th c thi để ph c vụ hàm đó Lập trình C Hàm - CT con 25 Wednesday,... thích: • ret_type: kiểu trả về c a hàm, là 1 trong c c kiểu c bản • ret_type cannot be an array • ret_type là void nếu hàm không trả về 1 giá trị c thể nào • FuncName: tên tự đặt, theo nguyên t c đặt tên Lập trình C Hàm - CT con 13 Wednesday, July 9, 2014 Định nghĩa hàm (4) Giải thích : • parameter list: tập c c giá trị mà hàm c n c để th c hiện c ng vi c của nó • Khai báo c c bộ: Khai báo tất c c c. .. bản chính Lập trình C Hàm - CT con 32 Wednesday, July 9, 2014 Truyền tham số cho hàm (6) Truyền theo tham biến: • C pháp: [ret_type] FuncName(type &name) • Một tên kh c đư c gán cho tham số truyền cho hàm bị gọi • Tất c thay đổi đư c th c hiện tr c tiếp trên tham số truyền cho hàm • Tất c thay đổi sẽ đư c ghi nhận lại Lập trình C Hàm - CT con 33 Wednesday, July 9, 2014 Truyền tham số cho hàm (7) Ví... //function call if (kq) printf(“%5d”, i); } } Lập trình C Hàm - CT con 26 Wednesday, July 9, 2014 Lời gọi hàm(4) void main() { //declarations A(…); //calls } Lập trình C void A(…) { //declarations B(…); //calls } void B(…) { //declarations } Hàm - CT con 27 Wednesday, July 9, 2014 Truyền tham số cho hàm • Tham số hình th c: là c c tham số trong phần định nghĩa hàm • Tham số thật: là c c. .. before call x=15 and y=6 Swap(x,y); //function call // after call, which value of // x and y do we expect? } Lập trình C Hàm - CT con 34 Wednesday, July 9, 2014 Tham số là mảng Mảng 1 chiều: • C pháp khai báo: [ret_type] FuncName(type arr[ ]) [ret_type] FuncName(type arr[MAX]) • C pháp gọi hàm: [var=]FuncName(arrName); Lập trình C Hàm - CT con 35 Wednesday, July 9, 2014 Tham số là mảng (2) Mảng 1 chiều:... which value of // x and y do we expect? } Lập trình C Hàm - CT con 31 Wednesday, July 9, 2014 Truyền tham số cho hàm (5) Truyền theo tham trị: • C pháp: [ret_type] FuncName(type name) • Một bản sao sẽ đư c tạo ra để lưu trữ giá trị c a tham số truyền vào • Tất c c c thay đổi đều đư c ghi nhận lên bản sao • Bản sao bị hủy đi khi hàm kết th c • Tất c c c thay đổi không đư c ghi nhận lên bản chính Lập. .. Khai báo tất c c c hằng, biến, … đư c sử dụng trong hàm, không đư c biết đến bởi c c hàm kh c • C u lệnh return: trả về kết quả cuối c ng, sau khi hàm đã tính toán xong Lập trình C Hàm - CT con 14 Wednesday, July 9, 2014 Định nghĩa hàm (5) Ví dụ: int isPrime(int N) { int i, flag; flag = (N . nhỏ. 11 12 2 31 32 4 Hàm - CT con Lập trình C Wednesday, July 9, 2014 5 Giới thiệu(3) • Mỗi phần đư c gọi là 1 HÀM – hay 1 chương trình con. • Ưu điểm c a c ch tiếp c n này: – Giảm độ ph c tạp c a chương trình – Tối. Hàm – Chương trình con NGÔN NGỮ LẬP TRÌNH C Trường Cao Đẳng C ng Nghiệp Tuy Hòa Khoa C ng nghệ Thông tin o0o Hàm - CT con Lập trình C Wednesday, July 9, 2014 2 Nội. thích : • parameter list: tập c c giá trị mà hàm c n c để th c hiện c ng vi c của nó. • Khai báo c c bộ: Khai báo tất c c c hằng, biến, … đư c sử dụng trong hàm, không đư c biết đến bởi c c