Thông tin tài liệu:
Bài giảng Phương pháp lập trình - Chương 3: Hàm trình bày khái niệm và tính chất, dạng tổng quát của hàm, lời gọi hàm, nguyên tắc hoạt động của hàm, truyền tham số cho hàm, tham số mặc định, biến cục bộ, biến toàn cục,... Mời các bạn cùng tham khảo.
Nội dung trích xuất từ tài liệu:
Bài giảng Phương pháp lập trình - Chương 3: Hàm (2016)NộidungtrìnhbàyKhái niệm và tính chấtDạng tổng quát của hàmLời gọi hàmNguyên tắc hoạt động của hàmTruyền tham số cho hàmTham số mặc địnhBiến cục bộ, biến toàn cụcNguyên mẫu hàmĐệ quiMột số bài toán đệ qui thông thườngKháiniệmvàtínhchấtTrong những chương trình lớn, có những đoạn chương trình cần lặp lại nhiều lầnĐể tránh sự lặp lại và để việc kiểm tra chương trình được thuận lợi, khi viết chương trình người ta thường phân chia chương trình thành nhiều module, mỗi module giải quyết một công việcCác module như vậy gọi là các hàmHàm là một khối lệnh được đặt tên và có thể được thực thi nhiều lần trong chương trình khi được gọiKháiniệmvàtínhchấtHàm có thể được gọi từ chương trình chính (hàm main) hoặc từ một hàm khácHàm có thể được gọi nhiều lần trong chương trìnhHàm có thể trả về giá trị cho chương trình gọi hoặc khôngHàm còn gọi là chương trình con (subroutine)KháiniệmvàtínhchấtCó hai loại hàm Hàm thư viện Là những hàm đã được xây dựng sẵn trong C/C++ Muốn sử dụng các hàm thư viện phải khai báo thư viện chứa nó trong phần khai báo #include Ví dụ: Hàm do người lập trình định nghĩaNộidungtrìnhbàyKhái niệm và tính chấtDạng tổng quát của hàmLời gọi hàmNguyên tắc hoạt động của hàmTruyền tham số cho hàmTham số mặc địnhBiến cục bộ, biến toàn cụcNguyên mẫu hàmĐệ quiMột số bài toán đệ qui thông thườngDạngtổngquátcủahàm returnType functionName ( [parameterList] ) { // body of the function } returnType: Tiêu đề hàm (header) Kiểu dữ liệu trả về của hàm Nếu hàm không trả về giá trị thì returnType là void functionName: Tên hàm, cách đặt giống như tên biến parameterList: Danh sách các tham số hình thức, có thể để trống Mỗi tham số gồm kiểu dữ liệu và tên biến, các tham số phân cách nhau bởi dấu phẩy Thân hàm (nội dung hàm) nằm trong cặp dấu ngoặc { }Vídụ:Hàmtínhcv,dthìnhtrònvoid CV_DT_HTron(float bk) Tên hàm là gì?{ Hàm có bao nhiêu tham float cv, dt; số? Mỗi tham số có kiểu gì? cv = 2*3.14*bk; Hàm có trả về giá trị nào dt = 3.14*bk*bk; không? coutCácdạnghàmHàm không trả về giá trị returnType là void Thân hàm không được trả về giá trịHàm trả về giá trị returnType khác void Thân hàm phải trả về giá trị (dùng lệnh return gia_tri) Một hàm chỉ trả về được 1 giá trịVídụ:Hàmtìmgiátrịlớnnhấtcủa2số // Cách 1 // Cách 2intTimMax(inta,intb) voidTimMax(inta,intb){ { intmax; intmax; if(a>b)max=a; if(a>b)max=a; elsemax=b; elsemax=b; returnmax; coutLệnhreturnCó 2 cách dùng lệnh return (GT 90): 1. Để kết thúc sự thi hành của hàm chứa nó Cú pháp: return ; 1. Để trả về một giá trị cho hàm gọi Cú pháp: return biểu_thức; Kiểu giá trị của biểu_thức phải giống với kiểu trả về của hàm Tại nơi gọi hàm, có thể dùng giá trị trả về của hàm để tiếp tục thực hiện công việc Trong hàm, khi lệnh return được thi hành thì các lệnh sau nó sẽ không được thực thiVídụ:Dùngreturnđểkếtthúchàm#includevoid divide(float arg1, float arg2){ if(arg2==0.0){ coutVídụ:Dùngreturnđểtrảvềgiátrị#includeint square(int num){ return num*num;}void main(){ int number, result; coutnumber; result = square(number); coutVídụ:Dùngreturntrảvềgiátrị float CV_DT_HTron(float bk) { float cv, dt; const float PI=3.14; cv = 2*PI*bk; dt = PI*bk*bk; return cv; return dt; } 14Lờigọihàm(functioncall)Một hàm khi đã định nghĩa nhưng chúng vẫn chưa được thực thi (trừ hàm chính)Hàm chỉ được thực thi khi trong chương trình có một lời gọi đến hàm đóHàm có thể được gọi từ nhiều chỗ khác nhau trong chương trìnhCú pháp: functionName([parameterList]) Mỗi tham số cách nhau bởi dấu phẩy Không được có kiểu dữ liệu trước mỗi tham số functionName phải khớp với hàm muốn gọi Số lượng tham số và kiểu dữ liệu của từng tham số trong parameterList phải giống với số lượng tham số và kiểu dữ liệu tương ứng của từng tham số trong hàm muốn gọiCácbướcgọihàm1. Chuẩn bị tất cả các tham số của hàm nếu có: khai báo biến; gán giá trị cho biến hoặc cho nhập giá trị cho biến2. Gọi hàm tùy theo dạng hàm: Hàm không trả về giá trị (hàm void) Chỉ cần: functionName([parameterList]) Chú ý không có từ void trong lời gọi hàm ...