giáo trình C chương 4

42 319 0
giáo trình C chương 4

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Chương 4: Sử dụng hàm trong C Mục tiêu của bài học Khái niệm hàm. Cấu trúc của một hàm trong C. Sử dụng hàm. Nguyên mẫu hàm. Định nghĩa hàm. Gọi hàm. Truyền tham số cho hàm Truyền theo tham trị. Truyền theo tham chiếu. Các qui tắc về phạm vi của hàm. Hàm trong các chương trình có nhiều tập tin. Các lớp lưu trữ.

Chương 4 Sử dng hm trong C Mục tiêu của bài học  Khi nim hm.  Cấu trúc của mt hàm trong C.  S dng hm.  Nguyên mu hm.  Đnh ngha hm.  Gi hm.  Truyền tham s cho hm  Truyền theo tham tr.  Truyền theo tham chiu.  Cc qui tắc về phạm vi của hm.  Hm trong cc chương trình có nhiều tập tin.  Cc lớp lưu trữ. 1. Khi nim hm Hàm là mt đoạn chương trình thực hin mt tác v được đnh ngha c thể.  Dng để rút gn cho mt chuỗi cc chỉ th được thực hin nhiều lần  Hm dễ vit v dễ hiểu  Vic g lỗi chương trình trở nên dễ dng hơn .  Dễ dng bảo trì (sự sa đổi khi có yêu cầu được giới hạn trong từng hm của chương trình). 2. Cấu trúc hàm Cú pháp của hm:  Hm không trả về gi tr: Kiu tr v được xc đnh l void.  Hm có thể trả về cc gi tr thuc cc kiểu dữ liu sau:  Kiểu dữ liu cơ sở: char, int, float, double.  Kiểu con tr.  Kiểu dữ liu nâng cao: class, struct. <Kiểu giá trị trả về> Tên_hàm (Danh sách các tham số) { Khai báo: biến, hằng; . . . Các câu lệnh xử lý; . . . Lệnh return; } 2. Cấu trúc hàm S tr v t mt hm:  Lnh return: Kt thúc hm, trả về 1 giá tr cho hm gi nó.  Sử dng lnh return:  return;  return (hằng);  return (bin);  return (biểu thức);  return (câu lnh đnh gi); V d: return ( (a>b) ? a:b ); 3. Sử dụng hm  Mt chương trình C luôn bắt đầu từ hm main().  Mi hm trong C bắt buc phải được gi trực tip hoc gin tip từ hm main(). V d: Mt chương trình4 hm: main, func1, func2, func3. main() { func1(…); func2 (…); } func1(…) { . . . func3 (…); }  Hm func1, func2 được gi trực tip từ hm main().  Hm func3 được gi gin tip từ hm main().  Hm phải được đnh ngha hoc khai bo trước khi được gi. 3.1 Nguyên mu hm, đnh ngha hm  Mi hm phải được khai bo nguyên mu hoc đnh ngha trước khi được gi (trước hm gi nó). func1 ( ); int main(){ func1(); } func1( ) { return ( ); } func1( ) { return ( ); } int main(){ func1(); } Hoc: Khai bo nguyên mu hm Đnh ngha hm Gi hm 3.2 Gọi hàm C php: Tên_hm (gi tr ca cc đi s truyn vo hm);  Hm gi có thể khai bo 1 bin cng kiểu để lưu lại gi tr trả về của hm được gi, v d: int func1(…) { . . . return (…); } int main(){ int s; . . . s = func1(…); } Hm gi Hm được gi  Mt li gi hm có thể đt trong mt biểu thức tnh ton hoc mt câu lnh hiển th: printf (“Ket qua = %d”, func(…)) 3.3 Truyn đi số vo hm  Truyền tham tr  Truyền tham chiu A. Truyn tham tr  Mc đnh trong C, tất cả các đi s được truyền bằng tham tr.  Giá tr của bin được truyền tới hm gi thông qua bin tạm.  Mi sự thao tác chỉ được thực hin trên các bin tạm.  Bất k sự thay đổi bo trên gi tr ny đều không ảnh hưởng đn gi tr của bin gc được truyền. V d: [...]...  Ví dụ: Ca c biến  Biến cu c bộ    Tham số hình th c    Đư c khai báo bên trong một hàm Đư c tạo tại điểm vào c a một khối và bị hủy tại điểm ra khỏi khối đó Đư c khai báo trong định nghĩa hàm Hoạt động như một biến cu c bộ bên trong một hàm Biến toàn cu c   Đư c khai báo bên ngoài tất c c c hàm Lưu c c giá trị tồn tại suốt thời gian th c thi c a chương trình Lớp... c thể truy xuất đến một đoạn mã lệnh hoă c dữ liệu kh c hay không?     Mã lệnh bên trong một hàm là cu c bộ với hàm đó Hai hàm c phạm vi kh c nhau Hai hàm c c ng m c phạm vi Một hàm không thể đư c định nghĩa bên trong một hàm kh c Sự lồng nhau c a lời gọi hàm main() { … Sum(); … } Sum() { … CheckPrime(); Display(); … } Ca c hàm trong chương trình c nhiều tập tin  C c hàm c ng... C c hàm c ng c thể đư c định nghĩa là static (hàm tĩnh) hoă c external (hàm ngoại) Hàm tĩnh: static Tên hàm (danh sách đối số);  Chỉ đư c nhận biết bên trong tập tin chương trình  Phạm vi c a hàm không vượt ra khỏi tập tin chương trình Hàm ngoại: extern Tên hàm (danh sách đối số);  Đư c nhận biết bởi tất c c c tập tin c a chương trình Hàm đệ quy... 1: Viết chương c chứa hàm đệ quy cho phép tính giai thừa c a một số nguyên dương n n * (n - 1)! n!  0!  1  Bài 2: Viết chương c chứa hàm đệ quy cho phép tính ra số Fibonacy thứ n 1, n = 1,2 Fn= Fn-2 + Fn-1 , n>2 Bài tập về hàm đệ quy  Bài 3: Viết chương c chứa hàm đệ quy cho phép tính c ng th c đệ quy lặp sau: 1, n = 1,2 Fn=  Fn-2 + Fn-1 , n>2 Bài 4: Viết chương c chứa hàm... lưu trữ  Mỗi biến trong C có một tính chất đư c gọi là lớp lưu trữ  Lớp lưu trữ định nghĩa hai đă c tính c a biến:  Thời gian sống: Là khoảng thời gian biến duy trì một giá trị xa c định  Phạm vi: Xa c định ca c phần c a một chương trình c thể nhận ra biến đó Lớp lưu trữ - tt  auto  extern  static  register Ca c qui luật phạm vi c a hàm  Ca c qui luật phạm vi: Quyết... Truyền tham chiếu   Truyền thông qua con trỏ (đề c p trong chương 6) Truyền biến tham chiếu A Truyền tham chiếu (tt)  Biến tham chiếu (reference)     Là bí danh c a một đối tượng Dùng để tham chiếu tới một biến c ng kiểu trong bộ nhớ C c thao ta c trên biến tham chiếu th c chất là thao ta c đến biến mà nó tham chiếu đến Khai báo: & =

Ngày đăng: 12/05/2014, 13:02

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan