Trong C/C++, các hàm (function) có thể thiết kế ngòai các lớp
Trong C#, các hàm phải nằm trong 1 lớp gọi là phương thức
Trong phần này, ta sẽ gọi là phương thức hay hàm : đều có cùng 1 nghĩa
31 trang |
Chia sẻ: Mr Hưng | Lượt xem: 804 | Lượt tải: 0
Bạn đang xem trước 20 trang nội dung tài liệu Kỹ thuật lập trình - Hàm (phương thức), để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
HÀM (Phương Thức)DateLưu ÝTrong C/C++, các hàm (function) có thể thiết kế ngòai các lớpTrong C#, các hàm phải nằm trong 1 lớp gọi là phương thứcTrong phần này, ta sẽ gọi là phương thức hay hàm : đều có cùng 1 nghĩaDateMục đích sử dụng phương thức-Chia và Trị (Divide & Conquer)-Sử dụng lại (Reusability)Dùng lại các lớp và phương thức để xây dựng các ứng dụng mới-Giảm sự lặp lạiCác phương thức có thể gọi thi hành từ bất kỳ nơi đâu trong chương trìnhDateKhai báo 1 “hàm”Phần tiêu đề[static] [phạm vi] ( Danh sách tham số)Phần thânChứa các mã lệnh mà phương thức thi hànhTrả về kết quả sau khi thực hiện (bằng phát biểu return)DateMột số đề nghịTạm thời khai báo các “hàm” với từ khóa staticTrong phạm vi môn học, có thể khai báo “hàm” là public hay không tuỳ ý !!!Ví dụ có các khai báo “hàm” static void Test ( ) { .. } static public int Exam (int k) {. } static string MyStr( char c) {.}DateVí dụ khaí báo “hàm”static void Test() { . }static int Exam(int x) { . }static string Dummy (string s, float f) {..}static float ViDu ( ) {......}Lưu ý : Nếu không có static thông báo lỗi Sẽ giải thích vào buổi sauDateKhai báo biến trong “hàm”Biến (Variables)Khai báo trong 1 phương thức = biến địa phương/cục bộChỉ có phương thức chứa khai báo biến mới có thể truy cập nó Sử dụng p/pháp gửi tham số nhằm giao tiếp với cá phương thức khácDateVí dụ :static string MySubStr(string s, int pos, int length){string rs="";for (int i=1,j=pos;i nếu n thuộc tập NX(n)= X(n’) nếu n không thuộc tập NVí dụN! = 1 nếu N=0 N*(N-1)! nếu N>0;DateĐệ quiTừ đó xây dựng khuôn dạng cho phương thức đệ quiPhương thức đệ qui X(n) if (n thuộc tập N) thì trả về kết quả xác định else trả về X(n’)Ví dụstatic long Factorial(int n){ if (n==0) return 1; else return n*Factorial(n-1);}DateVí dụstatic float Factorial(int k){if (k==1) return 1;else return Factorial(k-1)*k;}static long Sum (int k){long s=0;for (int i=1;i<=k;i++) s+=i;return s;}static public void Main(){int n=10;Console.WriteLine(Factorial(n));Console.WriteLine(Sum(n)); }DateĐệ qui cho giải thuật n! với n=5(a) Procession of recursive calls.5!5 * 4!4 * 3!3 * 2!2 * 1!1(b) Values returned from each recursive call.Final value = 1205! = 5 * 24 = 120 is returned4! = 4 * 6 = 24 is returned2! = 2 * 1 = 2 is returned3! = 3 * 2 = 6 is returned1 returned5!5 * 4!4 * 3!3 * 2!2 * 1!1Date“Độ phức tạp” khi dùng đệ quireturn 1return 0F( 1 )F( 0 )return 1F( 3 )F( 2 )F( 1 )+returnreturn+Date
Các file đính kèm theo tài liệu này:
- cosolaptrinh_csharp_bai6_3194.ppt