Tin học đại cương_ hàm
TRƢỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG TIN HỌC ĐẠI CƢƠNG Bài 11 Hàm Đỗ Bá Lâm @it-hut.edu.vn Nội dung 11.1 Khái niệm hàm 11.2 Khai báo sử dụng hàm 11.3 Phạm vi biến Nội dung 11.1 Khái niệm hàm 11.1.1 Khái niệm chƣơng trình 11.1.2 Phân loại chƣơng trình 11.2 Khai báo sử dụng hàm 11.3 Phạm vi biến 11.1.1 Khái niệm chƣơng trình • Khái niệm – Là chƣơng trình nằm chƣơng trình lớn nhằm thực nhiệm vụ cụ thể • Vai trị – Chia nhỏ chƣơng trình thành phần để quản lý => Phƣơng pháp lập trình có cấu trúc – Có thể sử dụng lại nhiều lần: printf, scanf… – Chƣơng trình dễ dàng đọc bảo trì 11.1.2 Phân loại chƣơng trình • Phân loại chƣơng trình Chƣơng trình Hàm (function) Thủ tục (procedure) – Hàm: trả giá trị thủ tục khơng – Trong C: • Chỉ cho phép khai báo chƣơng trình hàm • Sử dụng kiểu “void” với ý nghĩa “không kiểu liệu cả” để chuyển thủ tục dạng hàm 11.1.2 Phân loại chƣơng trình • Phân loại hàm HÀM Hàm chuẩn (Có thƣ viện) Hàm tự viết (Ngƣời dùng định nghĩa) 11.2 Khai báo sử dụng hàm 11.2.1 Khai báo hàm 11.2.2 Sử dụng hàm 11.2.1 Khai báo hàm • Trong chƣơng trình lớn có nhiều chƣơng trình con, điểm bắt đầu thực chƣơng trình thuộc chƣơng trình nào? • Main chƣơng trình con? • Khai báo chƣơng trình độc lập nhau/lồng lẫn nhau? • Muốn “lắp ráp” công việc khác để thực hiện, cần phải đƣa “lời gọi” hàm “Lời gọi” cần cung cấp gì? 11.2.1 Khai báo hàm • Ví dụ: – Chƣơng trình in bình phƣơng số tự nhiên từ đến 10 – Gồm hàm: • Hàm binhphuong(int x): trả bình phƣơng x • Hàm main(): với số nguyên từ đến 10, gọi hàm binhphuong với giá trị đầu vào hiển thị kết 11.2.1 Khai báo hàm Khai báo chƣơng trình Gọi chƣơng trình #include #include int binhphuong(int x){ int y; y = x * x; return y; } void main(){ int i; for (i=0; i tham số hình thức • Tham số cung cấp liệu cho hàm lúc hoạt động: tham số thực – Ví dụ: int max(int a, int b, int c) • Thân hàm – return • Gọi hàm thơng qua tên hàm tham số thực cung cấp cho hàm • Sau thực xong, trở điểm mà hàm đƣợc gọi thông qua câu lệnh return kết thúc hàm • Cú pháp chung: return biểu_thức; 12 11.2.2 Sử dụng hàm • Cú pháp: tên_hàm (danh_sách_tham_số); • Ví dụ: binhphuong(0), binhphuong(1)… • Lƣu ý: – Nếu hàm nhận nhiều tham số tham số ngăn cách dấu phẩy – Luôn cần cặp dấu ngoặc đơn sau tên hàm – Các tham số hàm nhận giá trị từ tham số truyền vào – Thực lần lƣợt lệnh gặp lệnh return/kết thúc chƣơng trình 13 11.3 Phạm vi biến • 11.3.1 Phạm vi biến • 11.3.2 Phân loại biến • 11.3.3 Câu lệnh static register 14 11.3.1 Phạm vi biến • Phạm vi: khối lệnh, chƣơng trình con, chƣơng trình • Biến khai báo phạm vi sử dụng phạm vi • Trong phạm vi biến có tên khác • Tình – Trong hai phạm vi khác có hai biến tên Trong phạm vi nằm phạm vi kia? #include #include int i; int binhphuong(int x){ int y; y = x * x; return y; } void main(){ int y; for (i=0; i sử dụng từ khóa static – So sánh với biến tồn cục? – Cú pháp: static tên_biến; 17 11.3.3 Câu lệnh static register # include # include void fct() { static int count = 1; printf("\n Day la lan goi ham fct lan thu %2d", count++); } void main(){ int i; for(i = 0; i < 10; i++) fct(); getch(); } 18 11.3.3 Câu lệnh static register Day la lan goi ham fct lan thu Day la lan goi ham fct lan thu Day la lan goi ham fct lan thu Day la lan goi ham fct lan thu Day la lan goi ham fct lan thu Day la lan goi ham fct lan thu Day la lan goi ham fct lan thu Day la lan goi ham fct lan thu Day la lan goi ham fct lan thu Day la lan goi ham fct lan thu 10 19 11.3.3 Câu lệnh static, register • Biến register – Thanh ghi có tốc độ truy cập nhanh RAM, nhớ – Lƣu biến ghi tăng tốc độ thực chƣơng trình – Cú pháp register tên_biến; – Lƣu ý: số lƣợng biến register không nhiều thƣờng với kiểu liệu nhỏ nhƣ int, char 20 ... tục dạng hàm 11.1.2 Phân loại chƣơng trình • Phân loại hàm HÀM Hàm chuẩn (Có thƣ viện) Hàm tự viết (Ngƣời dùng định nghĩa) 11.2 Khai báo sử dụng hàm 11.2.1 Khai báo hàm 11.2.2 Sử dụng hàm 11.2.1... } 10 11.2.1 Khai báo hàm [] tên _hàm ([danh_sách_tham_số]) { [] [] } • Dịng đầu hàm – Là thông tin trao đổi hàm Phân biệt hàm với – Kiểu giá trị... int b, int c) • Thân hàm – return • Gọi hàm thông qua tên hàm tham số thực cung cấp cho hàm • Sau thực xong, trở điểm mà hàm đƣợc gọi thông qua câu lệnh return kết thúc hàm • Cú pháp chung: return