Bài giảng Tin học đại cương - Chương 4: Cấu trúc

TIN HỌC ĐẠI CƯƠNG  
Chương 4: Cấu trúc  
1
Nội dung  
1. Định nghĩa cấu trúc và khai báo biến cấu trúc  
2. Kết hợp định nghĩa và khai báo biến cấu trúc  
3. Sử dụng typedef  
4. Truy cập thành phần của cấu trúc  
5. Mảng cấu trúc  
6. Bài tập thực hành  
2
4.1. Định nghĩa và khai báo  
Kiểu cấu trúc cho phép tạo ra kiểu dữ liệu mới gồm  
các phần tử dữ liệu kiểu khác nhau nhưng liên  
kết với nhau.  
Kiểu cấu trúc (structure) hay còn được gọi kiểu  
bản ghi (record).  
Kiểu cấu trúc gồm nhiều phần tử dữ liệu khác nhau  
Các phần tử dữ liệu được gọi là các trường (field).  
Dùng từ khóa struct để định nghĩa kiểu cấu trúc.  
3
4.2. Định nghĩa và khai báo  
Khai báo kiểu cấu trúc  
dụ: cần tả dữ liệu “địa chỉ”  
- Địa chỉ gồm các thông tin: số nhà, tên đường, tên thành phố:  
struct dia_chi {  
int so_nha;  
char duong[40];  
char thanh_pho[30];  
};  
Sau đó khai báo biến cấu trúc:  
struct dia_chi ong_A, ba_B;  
4
4.2. Định nghĩa và khai báo (tt)  
• Hoặc thể khai báo các biến cấu trúc trực tiếp không cần khai  
báo tên cấu trúc.  
struct dia_chi{  
int so_nha;  
struct{  
int so_nha;  
char duong[40];  
Char thanh_pho[30];  
}ong_A, ba_B;  
char duong[40];  
Char thanh_pho[30];  
}ong_A, ba_B;  
5
4.2. Định nghĩa và khai báo (tt)  
□ Kiểu cấu trúc lồng nhau  
struct thoi_gian {  
int nam, thang, ngay;  
} ong_A, ba_B;  
struct dia_chi {  
int so_nha;  
char duong[40];  
char thanh_pho[30];  
};  
ì
struct sinh_vien {  
char hoten [40];  
int phai;  
struct thoi_gian ng_sinh;  
struct dia_chi noi_o;  
} svA, svB;  
6
4.3. Sử dụng typedef  
• Sử dụng typedef để khai báo kiểu cấu trúc  
typedef struct thoi_gian  
typedef struct  
{
{
int nam, thang, ngay;  
int nam, thang, ngay;  
} TIME;  
} TIME;  
Khai báo biến  
struct sinh_vien {  
char hoten[40];  
int phat;  
TIME startDate, endDate;  
TIME ngaysinh;  
struct dia_chi noi_o;  
}svA, svB;  
7
4.4. Truy cập các thành phần cấu trúc  
• Chỉ truy cập được các field của biến cấu trúc  
• Sử dụng dấu chấm “.” để truy cập  
Tên_biến_cu_trúc.tên_thành_phần  
dụ:  
svA.hoten  
svA.noi_o.so_nha  
svA.phai  
puts(svA.hoten);  
8
4.4. Truy cập thành phần cấu trúc (tt)  
• Nếu biến con trỏ cấu trúc  
• Sử dụng dấu chấm “->” để truy cập  
Tên_biến_con_tr_cu_trúc -> tên_thành_phần  
dụ:  
svA->hoten  
svA->noi_o.so_nha  
svA->phai  
puts(svA->hoten);  
9
Gán 2 cấu trúc  
• Chỉ được phép gán 2 cấu trúc cùng kiểu  
Có 2 cách gán:  
- Gán trực tiếp hai biến cấu trúc cho nhau  
- Gán các thành phần (trường) tương ứng của hai cấu trúc  
dụ  
struct dia_chi d1, d2;  
d1 = d2;  
Hoặc:  
d1.so_nha = d2.so_nha;  
d1.duong = d2.duong;  
d1.thanh_pho = d2.thanh_pho;  
10  
4.5. Mảng cấu trúc  
Khai báo mảng gồm các phần tử kiểu cấu  
trúc  
dụ  
struct sinh_vien dsLop[100];  
• Sử dụng  
for (i = 0; i < 100; i++)  
puts(dsLop[i].ho_ten);  
11  
4.6. Hàm có tham số kiểu cấu trúc  
12  
4.6. Hàm có tham số kiểu cấu trúc (tt)  
13  
Bài tập cấu trúc  
1. Viết chương trình nhập 1 danh sách sinh viên. In ra  
màn hình danh sách sinh viên sắp xếp theo họ tên tăng  
dần. Biết rằng thông tin về 1 sinh viên gồm  
- Họ tên  
- Phái  
- Điểm TB  
2. Viết chương trình tính độ dài đường gấp khúc đi qua  
N điểm trên mặt phẳng. Biết rằng mỗi điểm thể biểu  
diễn bởi kiểu cấu trúc gồm 2 trường:  
- Hoành độ x  
- Tung độ y  
14  
Bài tập cấu trúc (tt)  
Thông tin về một đội bóng gồm:  
- Tên đội  
- Số lượng cầu thủ  
- Điểm  
Hãy viết chương trình cho phép nhập N đội bóng từ bàn  
phím, sau đó  
- in ra màn hình 3 đội điểm cao nhất.  
- In ra màn hình 3 đội số lượng cầu thủ nhiều nhất.  
- In ra danh sách đội bóng theo thứ tự ABC của tên đội  
bóng.  
15  
pdf 15 trang yennguyen 13/04/2022 3620
Bạn đang xem tài liệu "Bài giảng Tin học đại cương - Chương 4: Cấu trúc", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfbai_giang_tin_hoc_dai_cuong_chuong_4_cau_truc.pdf