Bài giảng Tin học đại cương - Chương 5: Cấu trúc - Nguyễn Lê Minh

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

Bài giảng Tin học đại cương - Chương 5: Cấu trúc - Nguyễn Lê Minh trang 1

Trang 1

Bài giảng Tin học đại cương - Chương 5: Cấu trúc - Nguyễn Lê Minh trang 2

Trang 2

Bài giảng Tin học đại cương - Chương 5: Cấu trúc - Nguyễn Lê Minh trang 3

Trang 3

Bài giảng Tin học đại cương - Chương 5: Cấu trúc - Nguyễn Lê Minh trang 4

Trang 4

Bài giảng Tin học đại cương - Chương 5: Cấu trúc - Nguyễn Lê Minh trang 5

Trang 5

Bài giảng Tin học đại cương - Chương 5: Cấu trúc - Nguyễn Lê Minh trang 6

Trang 6

Bài giảng Tin học đại cương - Chương 5: Cấu trúc - Nguyễn Lê Minh trang 7

Trang 7

Bài giảng Tin học đại cương - Chương 5: Cấu trúc - Nguyễn Lê Minh trang 8

Trang 8

Bài giảng Tin học đại cương - Chương 5: Cấu trúc - Nguyễn Lê Minh trang 9

Trang 9

Bài giảng Tin học đại cương - Chương 5: Cấu trúc - Nguyễn Lê Minh trang 10

Trang 10

Tải về để xem bản đầy đủ

pdf 28 trang xuanhieu 8840
Bạn đang xem 10 trang mẫu của tài liệu "Bài giảng Tin học đại cương - Chương 5: Cấu trúc - Nguyễn Lê Minh", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng Tin học đại cương - Chương 5: Cấu trúc - Nguyễn Lê Minh

Bài giảng Tin học đại cương - Chương 5: Cấu trúc - Nguyễn Lê Minh
 TIN HỌC ĐẠI CƯƠNG
 Chương 5: Cấu trúc
 GV: Nguyễn Lê Minh
 Bộ môn: Công nghệ thông tin
3/6/2020
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
6.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 có 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 là 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
 6.2. Định nghĩa và khai báo
Khai báo kiểu cấu trúc
■ Ví dụ: cần mô 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
 6.2. Định nghĩa và khai báo (tt)
 ■ Hoặc 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{ struct{
 int so_nha; int so_nha; 
 char duong[40]; char duong[40]; 
 Char thanh_pho[30]; Char thanh_pho[30];
}ong_A, ba_B; }ong_A, ba_B;
 5
6.2. Định nghĩa và khai báo (tt)
 □ Kiểu cấu trúc lồng nhau
 struct thoi_gian { struct sinh_vien {
 int nam, thang, ngay; char hoten [40];
 int phai;
 } ong_A, ba_B; struct thoi_gian ng_sinh
 struct dia_chi noi_o;
 } svA, svB;
 struct dia_chi {
 int so_nha;
 char duong[40];
 char thanh_pho[30];
 };
 ì
 6
6.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; 
 } TIME; {
 int nam, thang, ngay; 
 } TIME;
 • Khai báo biến
 struct sinh_vien {
 TIME startDate, endDate; char hoten[40]; 
 int phat;
 TIME ngaysinh;
 struct dia_chi noi_o;
 }svA, svB;
 7
6.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_cấu_trúc.tên_thành_phần
 ■ Ví dụ:
 svA.hoten
 svA.noi_o.so_nha
 svA.phai
 puts(svA.hoten);
 8
 6.4. Truy cập thành phần cấu trúc (tt)
■ Nếu có biến con trỏ cấu trúc
■ Sử dụng dấu chấm “->” để truy cập
 Tên_biến_con_trỏ_cấu_trúc -> tên_thành_phần
■ Ví 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
■ Ví 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
6.5. Mảng cấu trúc
■ Khai báo mảng gồm các phần tử có kiểu cấu trúc
■ Ví dụ
 struct sinh_vien dsLop[100];
■ Sử dụng
 for (i = 0; i < 100; i++)
 puts(dsLop[i].ho_ten);
 11
6.6. Hàm có tham số kiểu cấu trúc
 12
6.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 có 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 có điểm cao nhất.
- In ra màn hình 3 đội có 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
16
17
18
19
20
21
22
23
24
25
26
27
28

File đính kèm:

  • pdfbai_giang_tin_hoc_dai_cuong_chuong_5_cau_truc_nguyen_le_minh.pdf