Bài 3 : Lập TRÌNH C CƠ BẢN – HÀM TRONG C (Funtions-P1)

865

Hàm  Trong C (Funtions)

Một chương trình được viết trong ngôn ngữ C gọi là một dãy các hàm, trong đó có một hàm chính ( hàm main()). Hàm chia các bài toán lớn thành các công việc nhỏ hơn giúp thực hiện những công việc lặp lại nào đó một cách nhanh chóng mà không phải viết lại đoạn chương trình. Thứ tự các hàm trong chương trình C  là bất kỳ, song chương trình bao giờ cũng đi thực hiện từ hàm main(). Hàm có thể xem là một đơn vị độc lập của chương trình. Hàm trong C có vai trò ngang nhau, vì vậy không có phép xây dựng một hàm bên trong các hàm khác.

  • „ Chương trình con„
  • Khai báo và sử dụng hàm
  • „ Truyền thông tin giữa các hàm
  • „ Hàm đệ quy
  • „ Các hàm toán học trong thư viện <math.h>
  • „ Xây dựng thư viện các hàm và sử dụng chúng

Chương trình con

  • Là một module chương trình, giải quyết một công việc hoàn chỉnh, được dùng nhiều lần trong chương trình
  • Sử dụng chương trình con
    • „ Tránh việc viết lại các đoạn trình giống nhau trong chương trình
    • „ Phân cấp (chia) chương trình theo tư tưởng: chia để trị => chương trình dễ hiểu, dễ quản lý, dễ bảo trì
  • „ Có hai loại chương trình con
    • „ Thủ tục (procedure): là chương trình con không có giá trị trả về thông qua tên của nó
    • „ Hàm (function): giống hàm trong toán học, có các tham số và trả về giá trị thông qua tên hàm
  • „ Trong C
    • „ Chỉ có duy nhất 1 loại chương trình con: HÀM (function)

Khai báo hàm trong c

 

  • Trong đó :
    • kieu_ham : là một kiểu dữ liệu chuẩn của C, hoặc kiểu do người dùng tự định nghĩa
    • ten_ham : được đặt theo quy tắc của tên biến, có phân biệt chữ hoa với chữ thường
    • danh sach tham so : các tham số hình thức của  các hàm trong c

Ví Dụ 1 : hàm trả về tổng hai số thực 

 

  • Lệnh return
    • Trả về giá trị của hàm, có thể trả về là giá trị của một biểu thức
    • Có thể có nhiều lệnh return trong một biểu thức
    • Đối với hàm có giá trị trả về phải có ít nhất một lệnh return
  • Trường hợp hàm không có giá trị
    • Sử dụng từ khóa void để mô tả kiểu của hàm
    • void ten_ham(danh sach tham so){…}
    • void : là một kiểu dữ liệu đặc biệt của C để mô tả sự việc không có giá trị
  • Trường hợp hàm không có tham số
    • Sử dụng từ khóa void để mô tả tham số, hoặc để trống
    • kieu_ham ten_ham (void) hoặc kieu_ham ten_ham()
  • Trường hợp hàm không khai báo kiểu tường minh
    • Sẽ sử dụng kiểu ngầm định là int

Vị trí của hàm

  • Có thể khai báo sau hoặc trước hàm main() trong c.
  • Nếu khai báo sau hàm main() thì phải khai báo prototype của hàm ở đầu chương trình, sau đó phần triển khai nội dung hàm được đặt sau hàm main()
  • Funtion prototype:
    • Khai báo kiểu hàm, tên hàm và các tham số , kết thúc bằng dấu chấm phẩy.
    • Ví dụ : int SUM (int x , int y);        => prototype của hàm SUM
    • Chú ý : Trong phần triển khai của hàm , thì danh sách tham biến và kiểu dữ liệu của hàm phải trùng khớp với những gì đã khai báo trong phần prototype

Lời gọi hàm

  • „ Hàm được gọi bất kì nơi đâu trong chương trình, có thể từ hàm main() hoặc một hàm khác trong chương trình.
  • Khi hàm A muốn gọi hàm B thì hoặc là B phải triển khai trước A hoặc là B đã khai báo prototype ở đầu chương trình.
  • „ Hàm được gọi thông qua tên hàm và danh sách các tham số. Ví dụ : Sum(10,20) hoặc Sum(20,a),..
  • „ Hàm có thể được gọi theo nhiều cách khác nhau
  • „ Trong C, không có các hàm lồng nhau

Ví Dụ 2 : Chương trình in ra bình phương các số từ 1 đến 10

 

Truyền tham số cho hàm

  • „ Tham số trị: Về bản chất khi gọi hàm với tham số trị thì chỉ truyền cho hàm giá trị thực của các hàm hoặc các biến, sau khi ra khỏi hàm thì giá trị của các biến đã truyền vào không hề thay đổi.
  • Tham số biến: Về bản chất khi gọi hàm với tham số biến là truyền cho hàm địa chỉ của các biến, khi đó các thao tác trong hàm sẽ là thao tác trực tiếp tại địa chỉ của biến. Nên khi ra khỏi hàm giá trị của các biến sẽ thay đổi theo các thao tác trong hàm.
  • „ Những khai báo trên đây đều là khai báo tham số trị.

Truyền tham biến

  • Sử dụng tham chiếu (thêm toán tử & trước tham biến )
  • Ví dụ 3 : hàm đổi giá trị 2 biến
  • Sử dụng con trỏ (bài tiếp theo)

Phần 2 : Hàm Đệ Quy

BÌNH LUẬN

Please enter your comment!
Please enter your name here