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 11 - ĐH Bách khoa Hà Nội

Chia sẻ: Khang Duy | Ngày: | Loại File: PDF | Số trang:8

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

Bài 11 Hàm thuộc bài giảng "Tin học đại cương", cùng nắm kiến thức trong chương này thông qua các các nội dung sau: khái niệm hàm, khai báo và sử dụng hàm, phạm vi của biến.

Chủ đề:
Lưu

Nội dung Text: Bài giảng Tin học đại cương: Bài 11 - ĐH Bách khoa Hà Nội

  1. TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI Nội dung VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG 11.1. Khái niệm hàm 11.2. Khai báo và sử dụng hàm TIN HỌC ĐẠI CƯƠNG 11.3. Phạm vi của biến Phần 3. Lập trình C Bài 11. Hàm 2 Nội dung 11.1.1. Khái niệm chương trình con 11.1. Khái niệm hàm • Khái niệm 11.1.1. Khái niệm chương trình con – Là một chương trình nằm trong một chương trình lớn hơn nhằm thực hiện một nhiệm vụ cụ 11.1.2. Phân loại chương trình con thể 11.2. Khai báo và sử dụng hàm • Vai trò 11.3. Phạm vi của biến – Chia nhỏ chương trình ra thành từng 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 và bảo trì hơn 3 4 1
  2. 11.1.2. Phân loại chương trình con 11.1.2. Phân loại chương trình con • Phân loại chương trình con • Phân loại hàm Chương trình con HÀM Hàm Thủ tục (function) (procedure) – Hàm: trả về giá trị trong khi thủ tục thì không Hàm chuẩn Hàm tự viết – Trong C: (Có trong thư viện) (Người dùng định nghĩa) • Chỉ cho phép khai báo chương trình con là hàm. • Sử dụng kiểu “void” với ý nghĩa “không là kiểu dữ liệu nào cả” để chuyển thủ tục về dạng hàm 5 6 11.2. Khai báo và sử dụng hàm 11.2.1. Khai báo hàm 11.2.1. Khai báo hàm • Ví dụ: 11.2.2. Sử dụng hàm – Chương trình in ra bình phương của các số tự nhiên từ 1 đến 10 – Gồm 2 hàm: • Hàm binhphuong(int x): trả về bình phương của x • Hàm main(): với mỗi số nguyên từ 1 đến 10, gọi hàm binhphuong với một giá trị đầu vào và hiển thị kết quả. 7 8 2
  3. 11.2.1. Khai báo hàm 11.2.1. Khai báo hàm #include [] tên_hàm ([danh_sách_tham_số]) #include { int binhphuong(int x){ [] int y; [] Khai báo hàm } y = x * x; return y; • Dòng đầu hàm } – Là thông tin trao đổi giữa các hàm. Phân biệt void main(){ giữa các hàm với nhau. int i; – Kiểu giá trị trả về: kiểu dữ liệu bất kì, không for (i=0; i các tham số hình thức int giai_thua(int a)  Dong dau ham • Tham số cung cấp dữ liệu cho hàm lúc hoạt động: { tham số thực int ket_qua;  Cac khai bao – Ví dụ: int max(int a, int b, int c) int i; • Thân hàm ket_qua = 1; for(i = 1;i
  4. 11.2.1. Khai báo hàm 11.2.1. Khai báo hàm #include #include • Ý nghĩa của nguyên mẫu hàm Nguyên mẫu hàm int binhphuong(int x); – Cho phép định nghĩa sau khi sử dụng. Nhưng void main(){ phải khai báo trước (function int i; – Cho phép đưa ra lời gọi đến một hàm mà không prototype) for (i=0; i
  5. 11.3. Phạm vi của biến 11.3.1. Phạm vi của biến • 11.3.1. Phạm vi của biến • Phạm vi: khối lệnh, chương #include trình con, chương trình chính #include • 11.3.2. Phân loại biến • Biến khai báo trong phạm vi int i; • 11.3.3. Câu lệnh static và register nào thì sử dụng trong phạm int binhphuong(int x){ vi đó int y; y = x * x; • Trong cùng một phạm vi các return y; biến có tên khác nhau. } • Tình huống void main(){ – Trong hai phạm vi khác nhau int y; có hai biến cùng tên. Trong for (i=0; i
  6. Ví dụ 2 #include void main() #include { int a, b, c; clrscr(); int tich() { printf("\n Nhap gia tri cho 3 printf("\n Gia tri cac bien tong the so nguyen a, b, c: "); a, b, c: "); scanf("%d %d %d",&a,&b,&c); printf(" a = %-5d b = %-5d c = %- 5d“,a,b,c); printf("\n Tich cua 3 so la return a*b*c; %d",tich()); } getch(); 21 } 22 11.3.3. Câu lệnh static và register • Biến static – Xuất phát: biến cục bộ ra khỏi phạm vi thì bộ nhớ dành cho biến được giải phóng – Yêu cầu lưu trữ giá trị của biến cục bộ một cách lâu dài => sử dụng từ khóa static – So sánh với biến toàn cục? – Cú pháp: static tên_biến; 23 24 6
  7. 11.3.3. Câu lệnh static và register 11.3.3. Câu lệnh static và register # include Day la lan goi ham fct lan thu 1 # include Day la lan goi ham fct lan thu 2 void fct() { Day la lan goi ham fct lan thu 3 static int count = 1; Day la lan goi ham fct lan thu 4 printf("\n Day la lan goi ham fct lan thu Day la lan goi ham fct lan thu 5 %2d", count++); Day la lan goi ham fct lan thu 6 } Day la lan goi ham fct lan thu 7 Day la lan goi ham fct lan thu 8 void main(){ Day la lan goi ham fct lan thu 9 int i; Day la lan goi ham fct lan thu 10 for(i = 0; i < 10; i++) fct(); getch(); } 25 26 11.3.3. Câu lệnh static, register Bài tập • Biến register int i=10; – Thanh ghi có tốc độ truy cập nhanh hơn RAM, bộ nhớ ngoài printf (“ Gia tri cua i %d”, ++i); – Lưu biến trong thanh ghi sẽ tăng tốc độ thực hiện chương trình printf(“ Gia tri cua i %d”, i++); – Cú pháp printf (“Gia tri cua i %d “, i--); register tên_biến; – Lưu ý: số lượng biến register không nhiều và printf (“Gia tri cua i %d “, --i); thường chỉ với kiểu dữ liệu nhỏ như int, char 27 28 7
  8. Bài tập int a =10; int b, c; b = ++a *2; c= a++ *2; printf (“ b= %d “,b); printf (“ c= %d “, c); 29 30 8
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

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