intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Bài giảng Tin học đại cương - Bài 5: Hàm

Chia sẻ: Nguyễn Thanh Hồng | Ngày: | Loại File: PPT | Số trang:46

47
lượt xem
1
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Bài giảng trình bày khái niệm hàm; khai báo và sử dụng hàm; phạm vi biến; nguyên mẫu hàm; hệ đệ qui. Mời các bạn cùng tham khảo bài giảng "Tin học đại cương - Bài 5: Hàm" để nắm chi tiết nội dung kiến thức.

Chủ đề:
Lưu

Nội dung Text: Bài giảng Tin học đại cương - Bài 5: Hàm

  1. VIỆN  CÔNG NGHỆ  THÔNG TIN S CHOOL  OF  INFORMATION COMMUNICATION TECHNOLOGY  TIN HỌC ĐẠI CƯƠNG PHẦN 2: LẬP TRÌNH BẰNG NGÔN NGỮ C BÀI 5: HÀM Ts. Nguyễn Thanh Hùng 1
  2. BÀI 5: HÀM 5.1. Khái niệm hàm 5.2. Khai báo và sử dụng hàm 5.3. Phạm vi biến 5.4. Nguyên mẫu hàm 5.5. Hàm đệ qui 2
  3. 5.1. Khái niệm hàm Còn được gọi là chương trình con Những đoạn chương trình lặp đi lặp lại nhiều lần ở những chỗ khác nhau:   Viết thành hàm để khi cần chỉ cần gọi ra chứ không phải viết lại toàn bộ.  Ví dụ: Các hàm toán học: sin(x), pow(x,y), sqrt(x),... Các hàm do người dùng viết ra. 3
  4. 5.1. Khái niệm hàm Giải quyết một bài toán lớn thì chương trình của ta có thể rất lớn và dài  Chia thành các công việc nhỏ hơn được viết thành các hàm  Dễ viết, kiểm tra và sửa lỗi. Việc chia nhỏ một chương trình thành các chương trình con đảm nhận những công việc nhỏ khác nhau chính là tư tưởng chính cho phương pháp lập trình cấu trúc (structured programming). 4
  5. BÀI 5: HÀM 5.1. Khái niệm hàm 5.2. Khai báo và sử dụng hàm 5.3. Phạm vi biến 5.4. Nguyên mẫu hàm 5.5. Hàm đệ qui 5
  6. 5.2.1. Khai báo hàm Cú pháp: [kieu_gia_tri_tra_ve] ([danh_sach_tham_so,…]) { //Than ham` bao gom: //Cac khai bao ... //Cac cau lenh } 6
  7. 5.2.1. Khai báo hàm (tiếp) Ví dụ: long giai_thua(int a) Dong dau ham { long ket_qua; Cac khai bao int i; ket_qua = 1; for(i = 1;i
  8. 5.2.1. Khai báo hàm (tiếp) Kiểu dữ liệu trả về của hàm:  Kiểu dữ liệu của giá trị tính toán mà hàm trả về sau khi thực hiện.  Hàm có thể có giá trị trả về hoặc không có giá trị trả về. Nếu có giá trị trả về, trong thân hàm có ít nhất một lệnh return. Nếu không có giá trị trả về cần khai báo cho hàm đó có kiểu trả về là void. 8
  9. 5.2.1. Khai báo hàm (tiếp) Tên hàm  Có thể là bất kì một định danh hợp lệ nào.  Thường mang nghĩa gợi ý chức năng công  việc mà hàm thực hiện. Ví dụ: Một hàm có chức năng tính và trả về bình  phương của một số thực x thì nên có tên là  binh_phuong.  Các hàm không được đặt tên trùng nhau. 9
  10. 5.2.1. Khai báo hàm (tiếp) Tham số của hàm:  Các thông tin cần cho hoạt động của hàm và các thông tin, kết quả tính toán được hàm trả lại. Tham số chứa dữ liệu vào cung cấp cho hàm Tham số chứa dữ liệu ra mà hàm tính toán được.  Tham số trong lời khai báo hàm được gọi là tham số  hình thức, tham số giả định của hàm. Cần chỉ ra tên của tham số và kiểu dữ liệu của tham số.  Một hàm có thể không có tham số, hoặc có nhiều tham số. 10
  11. 5.2.1. Khai báo hàm (tiếp) Lệnh return  Cú pháp: return bieu_thuc;  Khi gặp lệnh này, chương trình sẽ tính toán  giá trị của bieu_thuc, lấy kết quả tính toán  được làm giá trị trả về cho lời gọi hàm rồi kết  thúc việc thực hiện hàm, trở về chương trình  đã gọi nó.  Nếu thiếu bieu_thuc   Kết thúc việc thực  hiện hàm mà không trả về giá trị nào cả. 11
  12. Ví dụ về các hàm trong thư viện Math.h 12
  13. 5.2.2. Sử dụng hàm Sử dụng hàm hay gọi hàm  Cú pháp:  Ten_ham([danh_sach_doi_so]) Tham số được cung cấp cho hàm trong quá trình thực hiện được gọi là tham số thực. Kiểu dữ liệu của tham số hình thức và tham số thực phải giống nhau. 13
  14. Ví dụ #include #include int max(int x, int y, int z) { int max; max = x>y?x:y; max = max>z?max:z; return max; } void main() { int a,b,c; clrscr(); printf("\n Nhap gia tri cho 3 so nguyen a, b, c: "); scanf("%d %d %d",&a,&b,&c); printf("\n Gia tri cac so vua nhap: "); printf(" a = %-5d b = %-5d c = %-5d“, a, b, c); printf("\n Gia tri lon nhat trong 3 so la %d",max(a,b,c)); getch(); } 14
  15. Lưu ý Trong chương trình, khi gặp một lời gọi hàm thì hàm bắt đầu thực hiện bằng cách chuyển các lệnh thi hành đến hàm được gọi. Quá trình diễn ra như sau:  Nếu hàm có tham số, trước tiên các tham số sẽ được gán giá trị thực tương ứng.  Chương trình sẽ thực hiện tiếp các câu lệnh trong thân hàm bắt đầu từ lệnh đầu tiên đến câu lệnh cuối cùng.  Khi gặp lệnh return hoặc dấu } cuối cùng trong thân hàm, chương trình sẽ thoát khỏi hàm để trở về chương trình gọi nó và thực hiện tiếp tục những câu lệnh của chương trình này. 15
  16. #include #define KT 1000 int nhap_so_pt() { int n; do { printf("Nhap vao so phan tu cua mang: "); scanf("%d", &n); if (n KT) printf("Nhap sai\n"); } while (n KT); return n; } void hien_thi_mang(int *a, int n) { int i; for (i = 0; i < n; i++) printf( "%4d", a[i]); } 16
  17. void nhap_mang(int *a, int n) { int i; for (i = 0; i < n; i++) { printf("Nhap phan tu thu %d: ", i+1); scanf("%d", &a[i]); } } void sap_xep_mang(int *a, int n) { int i, j, temp; for (i=0; i
  18. void main() { int a[KT]; int n; clrscr(); n = nhap_so_pt(); nhap_mang(a, n); printf("Mang theo thu tu ban dau\n"); hien_thi_mang(a, n); sap_xep_mang(a, n); printf("\nMang theo thu tu giam dan\n"); hien_thi_mang(a, n); getch(); } 18
  19. Viết hàm để hoán đổi giá trị hai biến? void trao_doi(int so1, int so2) { int temp; temp = so1; so1 = so2; so2 = temp; } void sap_xep_mang(int *a, int n) { int i, j, temp; for (i=0; i
  20. Gọi hàm: tham chiếu và tham trị Khi gọi hàm cần truyền đối số (tham số) cho hàm. 2 phương pháp truyền giá trị:  Tham chiếu (biến)  Tham trị 20
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2