Xem mẫu

  1. 4/3/2015 CHƯƠNG 4 HÀM CON 1 1
  2. CẤU TRÚC CHƯƠNG TRÌNH Khai báo thư viện hàm Khai báo hàm Khai báo Khai báo hằng số … CHƯƠNG TRÌNH C Cài đặt tất cả những hàm con Cài đặt hàm đã được khai báo Gọi thực hiện các hàm theo Hàm main() yêu cầu của bài toán 2
  3. KHÁI NIỆM  Hàm là một đoạn chương trình độc lập thực hiện trọn vẹn một công việc nhất định sau đó trả về giá trị cho chương trình gọi nó, hay nói cách khác hàm là sự chia nhỏ của chương trình.  Mục đích sử dụng hàm:  Khi có một công việc giống nhau cần thực hiện ở nhiều vị trí.  Khi cần chia một chương trình lớn phức tạp thành các đơn thể nhỏ (hàm con) để chương trình được trong sáng, dễ hiểu trong việc xử lý, quản lý việc tính toán và giải quyết vấn đề. 3 3
  4. Mẫu tổng quát của hàm TênHàm([ds các tham số]); Trong đó:  Kiểu dữ liệu trả về của hàm (kết quả của hàm/ đầu ra), gồm 2 loại – void: Không trả về giá trị – float / int / long / char */ kiểu cấu trúc / … : Trả về giá trị kết quả có kiểu dữ liệu tương ứng với bài toán (chỉ trả về được 1 giá trị theo kiểu dữ liệu) 4
  5. Ví dụ Tham số int Tong(int a, int b) { int s=a+b; return s; } void main() { Gọi hàm int kq = Tong (12, 3); Truyền đối số cout
  6.  TênHàm: Đặt tên theo qui ước sao cho phản ánh đúng chức năng thực hiện của hàm  Danh sách các tham số (nếu có): đầu vào của hàm (trong một số trường hợp có thể là đầu vào và đầu ra của hàm nếu kết quả đầu ra có nhiều giá trị - Tham số này gọi là tham chiếu) 6
  7. HÀM KHÔNG TRẢ VỀ GIÁ TRỊ Cài đặt void TênHàm([danh sách các tham số]) { Khai báo các biến cục bộ Các câu lệnh / khối lệnh hay lời gọi đến hàm khác. } Gọi hàm TênHàm(danh sách tên các đối số); Những phương thức loại này thường rơi vào những nhóm chức năng: Nhập / xuất dữ liệu , thống kê, sắp xếp, liệt kê 7
  8. VÍ DỤ 1 Viết chương trình nhập số nguyên dương n và in ra màn hình các ước số của n Phân tích bài toán: Input: n (Để xác định tham số) Kiểu dữ liệu: số nguyên dương (int). Output: In ra các ước số của n (Để xác định kiểu dữ liệu trả về của hàm) Xuất ra màn hình  Không trả về giá trị  Kiểu dữ liệu của hàm là void . Xác định tên hàm: Hàm này dùng in ra các ước số của n nên có thể đặt là LietKeUocSo void LietKeUocSo(int n); 8
  9. #include void LietKeUocSo(int n); Có dấu chấm phẩy void LietKeUocSo(int n) Không dấu chấm phẩy { for (int i = 1; i
  10. Kết quả chương trình 10
  11. HÀM TRẢ VỀ GIÁ TRỊ Cài đặt TênHàm([danh sách các tham số]) { kq; Khai báo các biến cục bộ Các câu lệnh / khối lệnh hay lời gọi đến hàm khác. return kq; } Gọi hàm Tên biến = TênHàm (danh sách tên các đối số); Những phương thức này thường rơi vào các nhóm: Tính tổng, tích, trung bình, đếm, kiểm tra, tìm kiếm 11
  12. VÍ DỤ 2 Viết chương trình nhập số nguyên dương n và tính tổng Sn  1  2  3    n ;n  0  Phân tích bài toán: Input: n (Để xác định tham số)  Kiểu dữ liệu: số nguyên dương (int). Output: Tổng S (Để xác định kiểu dữ liệu phương thức)  Trả về giá trị của S.  S là tổng các số nguyên dương nên S cũng là số nguyên dương  Kiểu trả về của hàm là int (hoặc long).  Xác định TênHàm: Dùng tính tổng S nên có thể đặt là TongS int TongS(int n); 12
  13. #include int TongS(int n); int TongS(int n) { int kq = 0; for (int i = 1; i
  14. TẦM VỰC CỦA BIẾN Phạm vi khối Phạm vi hàm Phạm vi chương trình Phạm vi tập tin 14
  15. PHẠM VI KHỐI Một khối được giới hạn bởi ngoặc {}. Biến khai báo trong khối đó có phạm vi khối, nghĩa là nó chỉ hoạt động trong khối đó mà thôi. Phạm vi này còn gọi là cục bộ, và biến đưọc gọi là biến cục bộ. 15
  16. PHẠM VI KHỐI (tt) void main() { int i=20; { int i=10; cout
  17. PHẠM VI HÀM  Biến hoạt động từ đầu đến cuối một hàm, chỉ có tác dụng trong hàm void main() { int k; float m; double x; //Các lệnh khác //… } 17
  18. PHẠM VI CHƯƠNG TRÌNH  Biến được khai báo bên ngoài int a, b; các hàm – còn được gọi là void Nhap() biến toàn cục, có tác dụng cho { toàn bộ chương trình couta;  Biến toàn cục mặc dù được coutb; toàn chương trình, nhưng } không nên khai báo sử dụng void main() { nhiều nếu không cần thiết, vì int c; nó sẽ gây trở ngại cho quá Nhap(); trình dò tìm lỗi khi debug c=a+b; chương trình cout
  19. PHẠM VI TẬP TIN  Biến được khai báo toàn cục và có kèm từ khóa static int x = 0; static int y = 0; static float z = 0.0; void main() { int i; //Các lệnh . . } 19
  20. THAM SỐ LÀ THAM CHIẾU Tham số làm kết quả đầu ra Tham số vừa làm đầu vào và đầu ra Dùng dấu & phía trước tên tham số khi cài đặt hàm 20
nguon tai.lieu . vn