Thông tin 1 SV MSSV : kiểu chuỗi Tên SV : kiểu chuỗi NTNS : kiểu chuỗi Phái : ký tự Điểm Toán, Lý, Hóa : số thực Yêu cầu Lưu thông tin n SV? Tuyền thông tin n SV vào hàm?Thông tin 1 SV MSSV : kiểu chuỗi Tên SV : kiểu chuỗi NTNS : kiểu chuỗi Phái : ký tự Điểm Toán, Lý, Hóa : số thực Yêu cầu Lưu thông tin n SV? Tuyền thông tin n SV vào hàm?Thông tin 1 SV MSSV : kiểu chuỗi Tên SV : kiểu chuỗi NTNS : kiểu chuỗi Phái : ký tự Điểm Toán, Lý, Hóa : số thực Yêu cầu Lưu thông tin n SV? Tuyền thông tin n SV vào hàm?Thông tin 1 SV MSSV : kiểu chuỗi Tên SV : kiểu chuỗi NTNS : kiểu chuỗi Phái : ký tự Điểm Toán, Lý, Hóa : số thực Yêu cầu Lưu thông tin n SV? Tuyền thông tin n SV vào hàm?Thông tin 1 SV MSSV : kiểu chuỗi Tên SV : kiểu chuỗi NTNS : kiểu chuỗi Phái : ký tự Điểm Toán, Lý, Hóa : số thực Yêu cầu Lưu thông tin n SV? Tuyền thông tin n SV vào hàm?Thông tin 1 SV MSSV : kiểu chuỗi Tên SV : kiểu chuỗi NTNS : kiểu chuỗi Phái : ký tự Điểm Toán, Lý, Hóa : số thực Yêu cầu Lưu thông tin n SV? Tuyền thông tin n SV vào hàm?Thông tin 1 SV MSSV : kiểu chuỗi Tên SV : kiểu chuỗi NTNS : kiểu chuỗi Phái : ký tự Điểm Toán, Lý, Hóa : số thực Yêu cầu Lưu thông tin n SV? Tuyền thông tin n SV vào hàm?
Trang 1Trường Đại Học Tôn Đức Thắng Khoa Công nghệ thông tin
Bộ môn Khoa học máy tính
Trang 2Nội dung
Chương 10: Kiểu dữ liệu cấu trúc
Khái niệm kiểu cấu trúc (struct)
Trang 3Chương 10: Kiểu dữ liệu cấu trúc
19/05/2014
Trang 4 Truyền thông tin 1 SV cho hàm
char phai, float toan, float ly, float hoa);
Chương 10: Kiểu dữ liệu cấu trúc
19/05/2014
Trang 5Đặt vấn đề
Nhận xét
Ý tưởng
Chương 10: Kiểu dữ liệu cấu trúc
19/05/2014
Trang 6Khai báo kiểu cấu trúc
Cú pháp
Ví dụ
Chương 10: Kiểu dữ liệu cấu trúc
struct <tên kiểu cấu trúc>
Trang 7Khai báo biến cấu trúc
Cú pháp tường minh
Ví dụ
Chương 10: Kiểu dữ liệu cấu trúc
struct <tên kiểu cấu trúc>
{
<kiểu dữ liệu> <tên thành phần 1>;
…
<kiểu dữ liệu> <tên thành phần n>;
} <tên biến 1>, <tên biến 2>;
Trang 8Khai báo biến cấu trúc
Cú pháp không tường minh
Ví dụ
Chương 10: Kiểu dữ liệu cấu trúc
struct <tên kiểu cấu trúc>
Trang 9<kiểu dữ liệu> <tên thành phần n>;
} <tên kiểu cấu trúc>;
<tên kiểu cấu trúc> <tên biến>;
Trang 101 0
1 0
Khởi tạo cho biến cấu trúc
Cú pháp tường minh
Ví dụ
Chương 10: Kiểu dữ liệu cấu trúc
struct <tên kiểu cấu trúc>
{
<kiểu dữ liệu> <tên thành phần 1>;
…
<kiểu dữ liệu> <tên thành phần n>;
} <tên biến> = {<giá trị 1>,…,<giá trị n>};
Trang 111 1
1 1
Truy xuất dữ liệu kiểu cấu trúc
Đặc điểm
Ví dụ
Chương 10: Kiểu dữ liệu cấu trúc
<tên biến cấu trúc> <tên thành phần>
Trang 121 2
1 2
Gán dữ liệu kiểu cấu trúc
Có 2 cách
Ví dụ
Chương 10: Kiểu dữ liệu cấu trúc
<biến cấu trúc đích> = <biến cấu trúc nguồn>;
<biến cấu trúc đích>.<tên thành phần> = <giá trị>;
Trang 131 3
1 3
Cấu trúc phức tạp
Thành phần của cấu trúc là cấu trúc khác
Chương 10: Kiểu dữ liệu cấu trúc
Trang 141 4
1 4
Trang 151 5
1 5
Cấu trúc phức tạp
Cấu trúc đệ quy (tự trỏ)
Chương 10: Kiểu dữ liệu cấu trúc
Trang 161 6
1 6
Cấu trúc phức tạp
Thành phần của cấu trúc có kích thước theo bit
Chương 10: Kiểu dữ liệu cấu trúc
Trang 171 7
1 7
Kích thước của struct
Trang 181 8
1 8
Generation Structure Alignment
Chương 10: Kiểu dữ liệu cấu trúc
#pragma pack(push, 1)
struct MYSTRUCT { … };
#pragma pack(pop)
19/05/2014
Trang 191 9
1 9
#pragma pack
Ví dụ: không có #pragma pack (1)
Chương 10: Kiểu dữ liệu cấu trúc
Trang 202 0
2 0
Các lưu ý về cấu trúc
Lưu ý
Kiểu cấu trúc được định nghĩa để làm khuôn
dụng khuôn dạng đã định nghĩa
Trong C++ , có thể bỏ từ khóa struct khi khai
Khi nhập các biến kiểu số thực trong cấu trúc phải nhập thông qua một biến trung gian.
Chương 10: Kiểu dữ liệu cấu trúc
struct DIEM { float x, y;} d1;
float temp; scanf(“%f”, &temp ); d1.x = temp ;
19/05/2014
Trang 212 1
2 1
Mảng cấu trúc
Mảng cấu trúc
(char, int, float, …)
Chương 10: Kiểu dữ liệu cấu trúc
Trang 222 2
2 2
Truyền cấu trúc cho hàm
Truyền cấu trúc cho hàm
void xuat1(int x, int y) { … };
void xuat2(DIEM diem) { … };
void xuat3(DIEM &diem) { … };
void xuat4(DIEM *diem) { … };
19/05/2014
Trang 232 3
2 3
Hợp nhất – union
Khái niệm
Các thành phần của union có chung địa chỉ đầu (nằm chồng lên nhau trong bộ nhớ)
Khai báo
Chương 10: Kiểu dữ liệu cấu trúc
union <tên kiểu union>
Trang 242 4
2 4
Trang 252 5
2 5
Ví dụ
struct trong union
Chương 10: Kiểu dữ liệu cấu trúc
Trang 262 6
2 6
Ví dụ
union trong struct
Chương 10: Kiểu dữ liệu cấu trúc
Trang 272 7
2 7
Chương 10: Kiểu dữ liệu cấu trúc
19/05/2014
Trang 282 8
2 8
Bài tập về cấu trúc
2 Đơn thức
Chương 10: Kiểu dữ liệu cấu trúc
19/05/2014
Trang 292 9
2 9
Bài tập về cấu trúc
3 Đa thức
Chương 10: Kiểu dữ liệu cấu trúc
19/05/2014
Trang 303 0
3 0
Bài tập về cấu trúc
4 Điểm trong mặt phẳng Oxy
5 Tam giác
Chương 10: Kiểu dữ liệu cấu trúc
19/05/2014
Trang 313 1
3 1
Bài tập về cấu trúc
6 Ngày
Chương 10: Kiểu dữ liệu cấu trúc
19/05/2014
Trang 323 2
3 2
Bài tập về mảng cấu trúc
7 Mảng phân số
Chương 10: Kiểu dữ liệu cấu trúc
19/05/2014
Trang 333 3
3 3
Bài tập về mảng cấu trúc
8 Mảng điểm