Bài giảng Kỹ thuật lập trình C: Bài 5 Hàm và cấu trúc chương trình, cung cấp cho người học những kiến thức như: Hàm và chương trình; Ví dụ về chương trình có hàm; Cách viết một hàm. Mời các bạn cùng tham khảo!
KỸ THUẬT LẬP TRÌNH C BÀI 5: HÀM VÀ CẤU TRÚC CHƯƠNG TRÌNH Hồng Quốc Tuấn tuanhq@fpt.edu.vn http://hoangquoctuanpro.wordpress.com Nội dung Hàm chương trình II Ví dụ chương trình có hàm III Cách viết hàm IV Bài tập minh họa I I – Hàm chương trình Khái niệm chương trình Khái niệm hàm Tổ chức chương trình C Khái niệm chương trình Chương trình bao gồm nhiều hàm Hàm main() hàm bắt buộc phải có chương trình Chương trình bắt đầu thực từ câu lệnh hàm main() kết thúc hàm Trong hàm main() chứa đựng câu lệnh lời gọi thực hàm khác Khái niệm hàm Hàm (Function) đoạn chương trình độc lập thực trọn vẹn công việc định, trả giá trị cho nơi gọi Hàm đơn vị độc lập chương trình, khơng cho phép định nghĩa hàm bên hàm khác Tổ chức chương trình C Các khai báo hàm main hàm hàm hàm n #include #define MAX 10 int luy_thua(int n); void main() { } int luy_thua(int n) { } Tổ chức chương trình C Ở phần khai báo, ta đặt toán tử #include, #define, định nghĩa kiểu liệu, khai báo mẫu hàm, khai báo biến toàn cục Việc truyền liệu kết từ hàm sang hàm khác thực theo hai cách: − Sử dụng tham số (đối số) hàm − Sử dụng biến tồn cục II – Ví dụ chương trình có hàm #include //khai báo thư viện long lap_phuong(int a); //khai báo mẫu hàm (prototype) void main() { int n; printf(“\nNhap n: ”); scanf(“%d”, &n); long kq = lap_phuong(n); printf(“\n%d lap phuong la: %ld”, n,kq); } long lap_phuong(int a) { long kq; kq = a*a*a; return kq; } II – Ví dụ chương trình có hàm Kết chạy chương trình: Nhap n: 5 lap phuong la: 125 III – Cách viết hàm Xác định mục đích hàm Xác định thành phần hàm 10 Tên hàm Tên hàm đặt theo quy định với tên Tên hàm nên đặt ngắn gọn phản ánh mục đích hàm Tên hàm nguyên mẫu định nghĩa phải giống Tên hàm dùng để gọi thực hàm sau 17 Tên hàm #include //khai báo thư viện long lap_phuong(int); //khai báo mẫu hàm (prototype) void main() { int n; printf(“\nNhap n: ”); scanf(“%d”, &n); long kq = lap_phuong(n); printf(“\n%d lap phuong la: %ld”, n,kq); } long lap_phuong(int a) { long kq; kq = a*a*a; return kq; } 18 Tham số hàm Tham số hình thức tham số ghi mẫu hàm hay ghi lúc định nghĩa hàm Tham số thực giá trị, biến mà ta truyền vào hàm gọi hàm 19 Tham số hàm #include //khai báo thư viện long lap_phuong(int a); //khai báo mẫu hàm (prototype) void main() { tham số thực int n; printf(“\nNhap n: ”); scanf(“%d”, &n); long kq = lap_phuong(n); printf(“\n%d lap phuong la: %ld”, n,kq); } long lap_phuong(int a) { long kq; kq = a*a*a; tham số hình thức return kq; 20 } Tham số hàm Có loại truyền tham số Truyền tham chiếu Truyền tham trị 21 Tham số hàm Truyền tham chiếu: Là truyền tham số cho hàm dạng trỏ, dạng địa Trong trường hợp truyền tham chiếu dạng địa chỉ, ta thêm dấu & trước tên biến Mọi thay đổi giá trị tham số hàm làm thay đổi giá trị biến gốc ban đầu 22 Tham số hàm #include void tang_truong(int &a); n=5 void main() thay { đổi thành n = 15 int n = 5; tang_truong(n); printf(“n = %d”, n); // n = 15 } void tang_truong(int &a) { a = a + 10; return; truyền tham chiếu } 23 Tham số hàm Truyền tham trị: Là truyền tham số cho hàm dạng giá trị Khi tham số thực truyền vào cho hàm Mọi thay đổi giá trị tham số hàm không làm thay đổi giá trị biến gốc ban đầu 24 Tham số hàm #include giữ nguyên void tang_truong(int a); giá trị n = void main() kết thúc hàm { int n = 5; tang_truong(n); printf(“n = %d”, n); // n = } void tang_truong(int a) { a = a + 10; return; truyền tham trị } 25 Nội dung hàm Phần nội dung hàm gọi thân hàm Thân hàm khối lệnh - bao bọc cặp dấu {} Trong thân hàm chứa thị lệnh, cấu trúc điều khiển lời gọi hàm Hàm kết thúc thực xong vừa thực câu lệnh return 26 VII – Bài tập minh họa Bài 1: − Viết hàm int lon_nhat(int a, int b , int c) nhận vào ba số nguyên, trả kết số nguyên lớn − Viết hàm int nho_nhat(int a, int b , int c) nhận vào ba số nguyên, trả kết số nguyên nhỏ − Ứng dụng hàm viết chương trình nhập vào ba số nguyên a Xuất hình giá trị số nguyên lớn giá trị số nguyên lớn 27 VII – Bài tập minh họa Bài 2: − Viết hàm long giai_thua(int n) nhận vào số nguyên dương n, trả kết n! − Ứng dụng hàm viết chương trình nhập vào số nguyên a Xuất hình bảng danh sách giá trị tương ứng n với n! với n số nguyên từ đến a 28 VII – Bài tập minh họa Bài 3: − Viết hàm int la_so_nguyen_to(int n) nhận vào số nguyên dương n Nếu n số nguyên tố trả giá trị 1; ngược lại, trả − Ứng dụng hàm viết chương trình nhập vào số nguyên a Xuất hình bảng danh sách số nguyên tố đoạn [0, a], xuất tổng số nguyên tố 29 VII – Bài tập minh họa Bài 4: − Viết hàm hoan_chuyen nhận vào hai số nguyên a b Hàm thực hoán chuyển giá trị hai biến − Ứng dụng hàm viết chương trình nhập vào hai số nguyên vào hai biến Xuất giá trị vừa nhập hai biến Thực hoán chuyển giá trị hai biến xuất kết hình 30 BÀI 5: HÀM VÀ CẤU TRÚC CHƯƠNG TRÌNH Hỏi - Đáp Hồng Quốc Tuấn tuanhq@fpt.edu.vn http://hoangquoctuanpro.wordpress.com 31 ... chương trình II Ví dụ chương trình có hàm III Cách viết hàm IV Bài tập minh họa I I – Hàm chương trình Khái niệm chương trình Khái niệm hàm Tổ chức chương trình C Khái niệm chương trình Chương trình. .. chương trình nhập vào hai số nguyên vào hai biến Xuất giá trị vừa nhập hai biến Thực hoán chuyển giá trị hai biến xuất kết hình 30 BÀI 5: HÀM VÀ CẤU TRÚC CHƯƠNG TRÌNH Hỏi - Đáp Hoàng Quốc Tuấn. .. lap_phuong(int a) { long kq; kq = a*a*a; return kq; } II – Ví dụ chương trình có hàm Kết chạy chương trình: Nhap n: 5 lap phuong la: 1 25 III – Cách viết hàm Xác định mục đích hàm Xác định thành phần