Xét chương trình nhập vào số nguyên dương n, in ra màn hình các số nguyên tố nhỏ hơn n
Ví dụ:
Nhập n = 10
Kết quả in ra màn hình là: 2, 3, 5, 7
46 trang |
Chia sẻ: Mr Hưng | Lượt xem: 933 | Lượt tải: 0
Bạn đang xem trước 20 trang nội dung tài liệu Ngôn ngữ lập trình C# - Chương 4: Hàm con, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
CHƯƠNG 4. HÀM CON11TRẦN MINH THÁIEmail: minhthai@itc.edu.vnWebsite: www.minhthai.edu.vn Cấu trúc chương trình2Khai báoCài đặt hàmHàm main()CHƯƠNG TRÌNH CKhai báo thư viện hàmKhai báo hàmKhai báo hằng số Cài đặt tất cả những hàm con đã được khai báoGọi thực hiện các hàm theo yêu cầu của bài toánXét chương trình nhập vào số nguyên dương n, in ra màn hình các số nguyên tố nhỏ hơn nVí dụ: Nhập n = 10 Kết quả in ra màn hình là: 2, 3, 5, 73Ví dụvoid main(){ int n; cout>n; cout>n;}bool LaSNT(int k){ int d=0; for(int i=1; i TênHàm([ds tham số]);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àmDanh 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)11Hàm không trả về giá trịCài đặtvoid 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àmTê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ê12Ví dụ 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 nPhân tích bài toán: Input: n (Để xác định tham số) KDL: số nguyên dương (int).Output: In ra các ước số của n (Để xác định KDL trả về của hàm)Xuất ra màn hình Không trả về giá trị KDL 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à LietKeUocSovoid LietKeUocSo(int n);13#include void LietKeUocSo(int n);void LietKeUocSo(int n){ for (int i = 1; i >n; cout 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 hàm 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 15Ví dụ Viết chương trình nhập số nguyên dương n và tính tổng Phân tích bài toán: Input: n (Để xác định tham số)KDL: số nguyên dương (int). Output: Tổng S (Để xác định KDL 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 KDL trả về của hàm là int (hoặc long). TênHàm: Dùng tính tổng S nên có thể đặt là TongSint TongS(int n);16#include int TongS(int n);int TongS(int n){ int kq = 0; for (int i = 1; i >n; S = TongS(n); cout>a;cout>b;}void main(){int c;Nhap();c=a+b;cout TenHam (){ if (điều kiện dừng) { . . . //Trả về giá trị hay kết thúc công việc } //Thực hiện một số công việc (nếu có) . . . TenHam (); //Thực hiện một số công việc (nếu có)}36Ví dụ: Tính - Điều kiện dừng: S(0) = 0.- Qui tắc (công thức) tính: S(n) = S(n-1) + n.long TongS (int n){ if(n==0) return 0; return ( TongS(n-1) + n );}37Đệ qui nhị phânTrong thân của hàm có hai lời gọi hàm gọi lại chính nó một cách tường minh. TenHam (){ if (điều kiện dừng) { . . . //Trả về giá trị hay kết thúc công việc } //Thực hiện một số công việc (nếu có) . . .TenHam (); //Giải quyết vấn đề nhỏ hơn //Thực hiện một số công việc (nếu có) . . . TenHam (); //Giải quyết vấn đề còn lại //Thực hiện một số công việc (nếu có)}38Ví dụ: Tính số hạng thứ n của dãy Fibonaci được định nghĩa như sau:f1 = f0 =1 ; fn = fn-1 + fn-2 ; (n>1)Điều kiện dừng: f(0) = f(1) = 1.long Fibonaci (int n){ if(n==0 || n==1) return 1; return Fibonaci(n-1) + Fibonaci(n-2);}39Đệ qui phi tuyếnTrong thân của hàm có lời gọi hàm gọi lại chính nó được đặt bên trong vòng lặp. TenHam (){ for (int i = 1; i); } }}40Ví dụ: Tính số hạng thứ n của dãy {Xn} được định nghĩa như sau:X0 =1 ; Xn = n2X0 + (n-1)2X1 + + 12Xn-1 ; (n≥1)Điều kiện dừng:X(0) = 1.long TinhXn (int n){ if(n==0) return 1; long s = 0; for (int i=1; i TenHam2 (); TenHam1 (){//Thực hiện một số công việc (nếu có)TenHam2 (); //Thực hiện một số công việc (nếu có)} TenHam2 (){//Thực hiện một số công việc (nếu có)TenHam1 (); //Thực hiện một số công việc (nếu có)}43Ví dụ: Tính số hạng thứ n của hai dãy {Xn}, {Yn} được định nghĩa như sau:X0 =Y0 =1 ; Xn = Xn-1 + Yn-1; (n>0)Yn = n2Xn-1 + Yn-1; (n>0)- Điều kiện dừng:X(0) = Y(0) = 1.long TinhYn(int n);long TinhXn (int n){ if(n==0) return 1; return TinhXn(n-1) + TinhYn(n-1);}long TinhYn (int n){ if(n==0) return 1; return n*n*TinhXn(n-1) + TinhYn(n-1);}44Cách hoạt động hàm đệ quiVí dụ tính n! với n=545Q&A
Các file đính kèm theo tài liệu này:
- chuong4_hamcon_4492.pptx