Bài giảng Kỹ thuật lập trình do GV. Hà Đại Dương biên soạn trình bày về dữ liệu có cấu trúc, cụ thể: kiểu có cấu trúc (structure), danh sách liên kết (linked list), hàng đợi (Queue) và ngăn xếp (Stack). . | 10/25/2016 Kỹ thuật lập trình Tuần 11 - Dữ liệu có cấu trúc Giáo viên: Hà Đại Dương duonghd@ 10/25/2016 1 Vấn đề • Các đối tượng phức tạp như: – Điểm trên mặt phẳng, Phân số, Ngày (tháng, năm) – Sinh viên Thì mô tả (dữ liệu) như thế nào? • Mô tả mỗi loại đối đó dưới dạng một kiểu dữ liệu có cấu trúc. • Mỗi thành phần của đối tượng, ví dụ toạ độ x, toạ độ y của 1 điểm gọi là trường (field). 10/25/2016 2 Nội dung • • • • Kiểu có cấu trúc (structure) Danh sách liên kết (linked list) Hàng đợi (Queue) Ngăn xếp (Stack) 10/25/2016 3 1 10/25/2016 Kiểu có cấu trúc (structure) 10/25/2016 4 Khai báo kiểu cấu trúc • Cú pháp 1 struct Tên_cấu_trúc { Kiểu Tên_trường_1; Kiểu Tên_trường_2; Kiểu Tên_trường_n; }; 10/25/2016 5 Khai báo kiểu cấu trúc • Cú pháp 2 typedef struct { Kiểu Tên_trường_1; Kiểu Tên_trường_2; Kiểu Tên_trường_n; } Tên_cấu_trúc; 10/25/2016 6 2 10/25/2016 Trong đó • • • • struct, typedef struct: từ khoá Tên_cấu_trúc: Tên cấu trúc cần định nghĩa Kiểu: Kiểu dữ liệu đã có Tên_trường_k: Tên trường (dữ liêu) 10/25/2016 7 Ví dụ 10/25/2016 8 Khai báo biến kiểu cấu trúc • Đối với cấu trúc khai báo theo cách 1: struct Tên_cấu_trúc Tên_biến,; • Đối với các cấu khai báo theo cách 2: Tên_cấu_trúc Tên_biến, ; • Ví dụ: struct DiemPhang A, B, C; struct PhanSo P, Q; NgayThang NS; 10/25/2016 9 3 10/25/2016 Truy cập các trường của biến • Với các biến thường (không phải con trỏ) cú pháp: • Ví dụ với biến: NS (NgayThang) 10/25/2016 10 Ví dụ 1 • Viết chương trình cho phép nhập vào toạ độ 3 đỉnh của tam giác ABC, tính khoảng cách A, B. 10/25/2016 11 Khai báo biến cấu trúc Truy cập trường 10/25/2016 12 4 10/25/2016 Ví dụ 2 • Viết chương trình cho phép nhập vào 2 phân số A, B; tính và in kết quả phép cộng 2 phân số đó. • Viết chương trình (15 phút) 10/25/2016 13 10/25/2016 14 Biến cấu trúc dạng con trỏ • Như các biến khác, các biến có cấu trúc cũng có thể khai báo .