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

Bài giảng Hệ thống máy tính và ngôn ngữ C: Chương 9 - TS. Nguyễn Phúc Khải

Chia sẻ: _ _ | Ngày: | Loại File: PDF | Số trang:49

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

Bài giảng Hệ thống máy tính và ngôn ngữ C - Chương 9: Hàm, được biên soạn gồm các nội dung chính sau: Khái niệm hàm; Khai báo hàm; Đối số của hàm - đối số là tham trị; Kết quả trả về của hàm - lệnh RETURN; PROTOTYPE của một hàm; Hàm đệ quy. Mời các bạn cùng tham khảo!

Chủ đề:
Lưu

Nội dung Text: Bài giảng Hệ thống máy tính và ngôn ngữ C: Chương 9 - TS. Nguyễn Phúc Khải

  1. om .c ng co an th o ng du u cu Company LOGO 1 CuuDuongThanCong.com https://fb.com/tailieudientucntt
  2. Các nội dung:  Khái niệm hàm om .c  Khai báo hàm ng  Đối số của hàm - đối số là tham trị co  Kết quả trả về của hàm - lệnh RETURN an  PROTOTYPE của một hàm th o ng  Hàm đệ quy du u cu CuuDuongThanCong.com © TS. Nguyễn Phúc Khải https://fb.com/tailieudientucntt 2
  3. KHÁI NIỆM HÀM  Chương trình con là đoạn chương trình đảm om nhận thực hiện một thao tác nhất định. .c ng  Đối với C, chương trình con chỉ ở một dạng là co hàm (function), không có khái niệm thủ tục an th (procedure). o ng du u cu CuuDuongThanCong.com © TS. Nguyễn Phúc Khải https://fb.com/tailieudientucntt 3
  4. KHÁI NIỆM HÀM  Hàm main() là hàm đặc biệt của C, nó là một om hàm mà trong đó các thao tác lệnh (bao gồm .c các biểu thức tính toán, gọi hàm, ...) được C ng co thực hiện theo một trình tự hợp logic để giải an quyết bài toán được đặt ra. th ng  Việc sử dụng hàm sẽ làm cho chương trình trở o nên rất dễ quản lý, dễ sửa sai. du u  Tất cả các hàm đều ngang cấp nhau. Các hàm cu đều có thể gọi lẫn nhau, dĩ nhiên hàm được gọi phải được khai báo trước hàm gọi. CuuDuongThanCong.com © TS. Nguyễn Phúc Khải https://fb.com/tailieudientucntt 4
  5. KHÁI NIỆM HÀM  Các hàm trong một chương trình có thể nằm om trên các tập tin khác nhau và khác với tập tin .c chính (chứa hàm main()), mỗi tập tin được gọi ng co là một module chương trình an  Các module chương trình sẽ được dịch riêng rẽ th ng và sau đó được liên kết (link) lại với nhau để o tạo ra được một tập tin thực thi duy nhất. du u  Cách tạo chương trình theo kiểu nhiều module cu như vậy trong C là project CuuDuongThanCong.com © TS. Nguyễn Phúc Khải https://fb.com/tailieudientucntt 5
  6. KHÁI NIỆM HÀM #include om #include .c #include ng main () co { an th double a, b, c, delta, n1, n2; ng clrscr(); o printf ("Nhap 3 he so phuong trinh bac hai; "); du scanf ("%lf %lf %lf", &a, &b, &c); u cu CuuDuongThanCong.com © TS. Nguyễn Phúc Khải https://fb.com/tailieudientucntt 6
  7. KHÁI NIỆM HÀM if (a ==0)/* phuong trinh suy bien ve bac nhat */ om { printf ("Phuong trinh suy bien ve bac nhat va "); .c if (b == 0) ng if (c == 0) co printf ("vo so nghiem\n"); an th else /* c != 0 */ ng printf ("vo nghiem\n"); o else / * b != 0 */ du { n1 = -c/b; u cu printf ("co 1 nghiem: = %5.2f \n", n1); } } CuuDuongThanCong.com © TS. Nguyễn Phúc Khải https://fb.com/tailieudientucntt 7
  8. KHÁI NIỆM HÀM else /* a != 0 */ om { .c printf ("Phuong trinh bac hai va "); ng delta = b*b - 4*a*c; co if (delta < 0) an th printf ("vo nghiem thuc\n"); ng else if (delta == 0) o { du n1 = n2 = -b/2/a; u cu printf ("co nghiem kep x1=x2 = %5.2f \n" ,n1); } CuuDuongThanCong.com © TS. Nguyễn Phúc Khải https://fb.com/tailieudientucntt 8
  9. KHÁI NIỆM HÀM else /* delta > 0 */ om { .c n1 = (-b + sqrt(delta))/2/a; ng n2 = (-b - sqrt(delta))/2/a; co printf ("co hai nghiem phan biet; \n"); an th printf ("x1 = %5.2f \n", n1); ng printf ( x2 = %5.2f \n", n2); o } du } u cu getch(); } CuuDuongThanCong.com © TS. Nguyễn Phúc Khải https://fb.com/tailieudientucntt 9
  10. KHÁI NIỆM HÀM #include om #include .c #include ng void gptb1 (double a, double b); co void gptb2 (double a, double b, double c); an th o ng du u cu CuuDuongThanCong.com © TS. Nguyễn Phúc Khải https://fb.com/tailieudientucntt 10
  11. KHÁI NIỆM HÀM void gptb1 (double a, double b) om { .c printf ("Phuong trinh suy bien ve bac nhat va "); ng if (a == 0) co if (b == 0) an th printf ("vo so nghiem\n"); ng else /* b != 0 */ o printf ("vo nghiem\n"); du else u cu printf ("co 1 nghiem: x = %5.2f \n",-b/a); } CuuDuongThanCong.com © TS. Nguyễn Phúc Khải https://fb.com/tailieudientucntt 11
  12. KHÁI NIỆM HÀM void gptb2 (double a,double b,double c) om { double delta, x1, x2; .c printf ("Phuong trinh bac hai va "); ng delta = b*b - 4*a*c; co if (delta < 0) printf ("vo nghiem thuc\n"); an th else if (delta == 0) ng printf ("co nghiem kep x1 = x2 = %5.2f \n", -b/2/a); else /* delta > 0 */ o du { x1 = (-b + sqrt(delta))/2/a; x2 = (-b - sqrt(delta))/2/a; u cu printf ("co hai nghiem phan biet: \n"); printf ("x1 = %5.2f \n ", x1); printf ("x2 = %5.2f \n" , x2); } } CuuDuongThanCong.com © TS. Nguyễn Phúc Khải https://fb.com/tailieudientucntt 12
  13. KHÁI NIỆM HÀM main() om { .c double a, b, c; ng clrscr(); co printf ("Nhap 3 he so phuong trinh bac hai: "); an th scant ("%lf %lf %lf", &a, &b, &c); ng if (a == 0) /* phuong trinh suy bien ve bac nhat */ o gptb1 (b, c); du else /* a != 0 */ u cu gptb2 (a, b, c); getch(); } CuuDuongThanCong.com © TS. Nguyễn Phúc Khải https://fb.com/tailieudientucntt 13
  14. KHAI BÁO HÀM  Khai báo một hàm là chỉ ra rõ rằng trả về kiểu om gì, đối số đưa vào cho hàm có bao nhiêu đối .c số, mỗi đối số có kiểu như thế nào và các lệnh ng co bên trong thân hàm xác định thao tác của hàm. an  Có hai loại hàm: hàm trong thư viện và hàm do th ng lập trình viên tự định nghĩa. o du u cu CuuDuongThanCong.com © TS. Nguyễn Phúc Khải https://fb.com/tailieudientucntt 14
  15. KHAI BÁO HÀM  Nếu hàm sử dụng là hàm chuẩn trong thư viện om thì việc khai báo hàm chỉ đơn giản là khai báo .c prototype của hàm, các prototype này đã được ng co phân loại và ở trong các file .h, lập trình viên an cần ra lệnh #include bao hàm các file này vào th chương trình hoặc module chương trình sử o ng dụng nó. du u cu CuuDuongThanCong.com © TS. Nguyễn Phúc Khải https://fb.com/tailieudientucntt 15
  16. KHAI BÁO HÀM  Nếu các hàm sử dụng là do lập trình viên tự om định nghĩa thì việc khai báo hàm bao gồm hai .c việc: khai báo prototype của hàm đầu chương ng co trình và định nghĩa các lệnh bên trong thân an hàm (hay thường được gọi tắt là định nghĩa th ng hàm). o du u cu CuuDuongThanCong.com © TS. Nguyễn Phúc Khải https://fb.com/tailieudientucntt 16
  17. KHAI BÁO HÀM  Cú pháp khai báo hàm: om .c kiểu tên_hàm ng (danh_sách_khai_báo_đối_số) co an { khai_báo_biến_cục_bộ th ng lệnh o du u } cu CuuDuongThanCong.com © TS. Nguyễn Phúc Khải https://fb.com/tailieudientucntt 17
  18. KHAI BÁO HÀM int so_sanh (int a, int b) om { .c int ket_qua; ng if (a >b) co ket_qua = 1: an th else if (a == b) ng ket_qua = 0; o else if (a < b) du ket_qua = -1; u cu return ket_qua; } CuuDuongThanCong.com © TS. Nguyễn Phúc Khải https://fb.com/tailieudientucntt 18
  19. KHAI BÁO HÀM #include om #include .c int so_sanh (int a, int b);  prototype của hàm so_sanh ng main() co { an th int a, b, ket_qua; ng clrscr(); o printf ("Moi nhap hai so "); du scanf ("%d %d" , &a, &b); u cu ket_qua = so_sanh (a, b);  gọi hàm CuuDuongThanCong.com © TS. Nguyễn Phúc Khải https://fb.com/tailieudientucntt 19
  20. KHAI BÁO HÀM switch (ket_qua) om { case -1: .c printf ("So %d nho hon so %d \n" , a, b); ng break; co case 0: an th printf ("So %d bang so %d \n", a, b); ng break; o case 1: du printf ("So %d lon hon so %d \n" , a, b); u cu break; } getch(); } CuuDuongThanCong.com © TS. Nguyễn Phúc Khải https://fb.com/tailieudientucntt 20
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

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