KIỂU DỮ LIỆU CẤU TRÚC
Số trang: 11
Loại file: pdf
Dung lượng: 582.94 KB
Lượt xem: 18
Lượt tải: 0
Xem trước 2 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Vấn đề nảy sinh khi số lượng sinh viên lớn hoặc chưa thể xác định tại thời điểm lập trình thì: Làm sao để có thể lưu trữ được thông tin của các sinh viên này sao cho thuận tiện cho việc khai báo và truy xuất? Làm sao để truyền thông tin của các sinh viên này cho hàm để thuận tiện cho các thao tác tìm kiếm, sao chép, sắp xếp?
Nội dung trích xuất từ tài liệu:
KIỂU DỮ LIỆU CẤU TRÚC Trang 1 NHẬP MÔN LẬP TRÌNH KIỂU DỮ LIỆU CẤU TRÚC1. Đặt vấn đềĐể lưu thông tin của 1 sinh viên, ta cần khai báo 7 biến như sau: 1 biến kiểu chuỗi dài 7 ký tự để lưu trữ mã số sinh viên, ví dụ “0912345”. char mssv[8]; 1 biến kiểu chuỗi dài 30 ký tự để lưu trữ họ tên sinh viên, ví dụ “Nguyen Van A”. char hoten[31]; 1 biến kiểu chuỗi dài 8 ký tự để lưu trữ ngày tháng năm sinh, ví dụ “01/01/91”. char ntns[9]; 1 biến kiểu ký tự để lưu trữ phái, ví dụ „y‟ là nam và „n‟ là nữ. char phai; 3 biến kiểu số thực để lưu trữ điểm toán, lý và hóa, ví dụ 8.5, 8.0, 9.5 float toan, ly, hoa;Để viết hàm xuất thông tin của 1 sinh viên, ta phải viết như sau:void Xuat(char *mssv, char *hoten, char *ntts, char phai, float toan, float ly, float hoa) { … }Vấn đề nảy sinh khi số lượng sinh viên lớn hoặc chưa thể xác định tại thời điểm lập trình thì: Làm sao để có thể lưu trữ được thông tin của các sinh viên này sao cho thuận tiện cho việc khai báo và truy xuất? Làm sao để truyền thông tin của các sinh viên này cho hàm để thuận tiện cho các thao tác tìm kiếm, sao chép, sắp xếp? Kiểu struct cho phép “gom” các thông tin của cùng một sinh viên để dễ dàng khai báo (têncác thành phần như nhau với mọi sinh viên) và truy xuất.Bộ môn Tin học cơ sở Tháng 10 – 2009 Trang 2 NHẬP MÔN LẬP TRÌNH2. Kiểu cấu trúc (struct)1.1. Khai báo kiểuCú pháp:struct { ; … ;};Ví dụ: struct DIEM { int x; int y; };1.2. Khai báo biến1.2.1. Khai báo tường minhCú pháp:struct { ; … ;} , ;Bộ môn Tin học cơ sở Tháng 10 – 2009 Trang 3 NHẬP MÔN LẬP TRÌNHVí dụ: struct DIEM { int x, y; } diem1, diem2;1.2.2. Khai báo không tường minhCú pháp:struct { ; … ;};struct ;Ví dụ: struct DIEM { int x, y; }; struct DIEM diem1, diem2; // C++ có thể bỏ structSử dụng typedef, cú pháp:typedef struct { ; … ;}; ;Bộ môn Tin học cơ sở Tháng 10 – 2009 Trang 4 NHẬP MÔN LẬP TRÌNHVí dụ: typedef struct { int x; int y; } DIEM; struct DIEM diem1, diem2;1.3. Khởi tạoCú pháp:struct { ; … ;} = {,…,};Ví dụ: struct { int x; int y; } diem1 = {2912, 1706}, diem2;1.4. Truy xuấtĐể truy xuất đến từng thành phần của cấu trúc, ta sử dụng toán tử chấm (dot operation).Cú pháp:.Bộ môn Tin học cơ sở Tháng 10 – 2009 Trang 5 NHẬP MÔN LẬP TRÌNHVí dụ: struct DIEM { int x; int y; } diem1; printf(“x = %d, y = %d”, diem1.x, diem1.y);1.5. GánCú pháp: = ;. = ;Ví dụ: struct DIEM { int x; int y; } diem1 = {2912, 1706}, diem2; … diem2 = diem1; diem2.x = diem1.x; diem2.y = diem1.y * 2;Bộ môn Tin học cơ sở Tháng 10 – 2009 Trang 6 NHẬP MÔN LẬP TRÌNH1.6. Một số cấu trúc phức tạp1.6.1. Thành phần của cấu trúc là một cấu trúc khácVí dụ dưới đây cho thấy cấu trúc HINHCHUNHAT chứa cấu trúc DIEM. struct DIEM { int x; int y; }; struct HINHCHUNHAT { struct DIEM traitren; struct DIEM phaiduoi; } hcn1; … hcn1.traitren.x = 2912; hcn1.traitren.y = 1706;1.6.2. Thành phần của cấu trúc là mảngVí dụ dưới đây cho thấy thành phần của cấu trúc là một mảng (chuỗi ký tự). struct SINHVIEN { char hoten[30]; float toan, ly, hoa; } sv1; … strcpy(sv1.hoten, “Nguyen Van A”); sv1.toan = 10; sv1.ly = 6.5; sv1.hoa = 9;Bộ môn Tin học cơ sở Tháng 10 – 2009 Trang 7 NHẬP MÔN LẬP TRÌNH1.6.3. Cấu trúc đệ quy (tự trỏ)Ví dụ dưới đây cho thấy cấu trúc PERSON có thành phần là con trỏ đến cấu trúc PERSON. struct PERSON { char hoten[30]; struct PERSON *father, *mother; }; struct NODE { int value; struct NODE *pNext; };1.6.4. Thành phần của cấu trúc có kích thước theo bitVí dụ dưới đây cho thấy cấu trúc chứa các thành phần có kích thước theo bit. struct bit_fields { int bit_0 : 1; int bit_1_to_4 : 4; int bit_5 : 1; int bit_6_to_15 : 10; };Bộ môn Tin học cơ sở Tháng 10 – 2009 Trang 8 NHẬP MÔN LẬP TRÌNH1.7. Kích thước của cấ ...
Nội dung trích xuất từ tài liệu:
KIỂU DỮ LIỆU CẤU TRÚC Trang 1 NHẬP MÔN LẬP TRÌNH KIỂU DỮ LIỆU CẤU TRÚC1. Đặt vấn đềĐể lưu thông tin của 1 sinh viên, ta cần khai báo 7 biến như sau: 1 biến kiểu chuỗi dài 7 ký tự để lưu trữ mã số sinh viên, ví dụ “0912345”. char mssv[8]; 1 biến kiểu chuỗi dài 30 ký tự để lưu trữ họ tên sinh viên, ví dụ “Nguyen Van A”. char hoten[31]; 1 biến kiểu chuỗi dài 8 ký tự để lưu trữ ngày tháng năm sinh, ví dụ “01/01/91”. char ntns[9]; 1 biến kiểu ký tự để lưu trữ phái, ví dụ „y‟ là nam và „n‟ là nữ. char phai; 3 biến kiểu số thực để lưu trữ điểm toán, lý và hóa, ví dụ 8.5, 8.0, 9.5 float toan, ly, hoa;Để viết hàm xuất thông tin của 1 sinh viên, ta phải viết như sau:void Xuat(char *mssv, char *hoten, char *ntts, char phai, float toan, float ly, float hoa) { … }Vấn đề nảy sinh khi số lượng sinh viên lớn hoặc chưa thể xác định tại thời điểm lập trình thì: Làm sao để có thể lưu trữ được thông tin của các sinh viên này sao cho thuận tiện cho việc khai báo và truy xuất? Làm sao để truyền thông tin của các sinh viên này cho hàm để thuận tiện cho các thao tác tìm kiếm, sao chép, sắp xếp? Kiểu struct cho phép “gom” các thông tin của cùng một sinh viên để dễ dàng khai báo (têncác thành phần như nhau với mọi sinh viên) và truy xuất.Bộ môn Tin học cơ sở Tháng 10 – 2009 Trang 2 NHẬP MÔN LẬP TRÌNH2. Kiểu cấu trúc (struct)1.1. Khai báo kiểuCú pháp:struct { ; … ;};Ví dụ: struct DIEM { int x; int y; };1.2. Khai báo biến1.2.1. Khai báo tường minhCú pháp:struct { ; … ;} , ;Bộ môn Tin học cơ sở Tháng 10 – 2009 Trang 3 NHẬP MÔN LẬP TRÌNHVí dụ: struct DIEM { int x, y; } diem1, diem2;1.2.2. Khai báo không tường minhCú pháp:struct { ; … ;};struct ;Ví dụ: struct DIEM { int x, y; }; struct DIEM diem1, diem2; // C++ có thể bỏ structSử dụng typedef, cú pháp:typedef struct { ; … ;}; ;Bộ môn Tin học cơ sở Tháng 10 – 2009 Trang 4 NHẬP MÔN LẬP TRÌNHVí dụ: typedef struct { int x; int y; } DIEM; struct DIEM diem1, diem2;1.3. Khởi tạoCú pháp:struct { ; … ;} = {,…,};Ví dụ: struct { int x; int y; } diem1 = {2912, 1706}, diem2;1.4. Truy xuấtĐể truy xuất đến từng thành phần của cấu trúc, ta sử dụng toán tử chấm (dot operation).Cú pháp:.Bộ môn Tin học cơ sở Tháng 10 – 2009 Trang 5 NHẬP MÔN LẬP TRÌNHVí dụ: struct DIEM { int x; int y; } diem1; printf(“x = %d, y = %d”, diem1.x, diem1.y);1.5. GánCú pháp: = ;. = ;Ví dụ: struct DIEM { int x; int y; } diem1 = {2912, 1706}, diem2; … diem2 = diem1; diem2.x = diem1.x; diem2.y = diem1.y * 2;Bộ môn Tin học cơ sở Tháng 10 – 2009 Trang 6 NHẬP MÔN LẬP TRÌNH1.6. Một số cấu trúc phức tạp1.6.1. Thành phần của cấu trúc là một cấu trúc khácVí dụ dưới đây cho thấy cấu trúc HINHCHUNHAT chứa cấu trúc DIEM. struct DIEM { int x; int y; }; struct HINHCHUNHAT { struct DIEM traitren; struct DIEM phaiduoi; } hcn1; … hcn1.traitren.x = 2912; hcn1.traitren.y = 1706;1.6.2. Thành phần của cấu trúc là mảngVí dụ dưới đây cho thấy thành phần của cấu trúc là một mảng (chuỗi ký tự). struct SINHVIEN { char hoten[30]; float toan, ly, hoa; } sv1; … strcpy(sv1.hoten, “Nguyen Van A”); sv1.toan = 10; sv1.ly = 6.5; sv1.hoa = 9;Bộ môn Tin học cơ sở Tháng 10 – 2009 Trang 7 NHẬP MÔN LẬP TRÌNH1.6.3. Cấu trúc đệ quy (tự trỏ)Ví dụ dưới đây cho thấy cấu trúc PERSON có thành phần là con trỏ đến cấu trúc PERSON. struct PERSON { char hoten[30]; struct PERSON *father, *mother; }; struct NODE { int value; struct NODE *pNext; };1.6.4. Thành phần của cấu trúc có kích thước theo bitVí dụ dưới đây cho thấy cấu trúc chứa các thành phần có kích thước theo bit. struct bit_fields { int bit_0 : 1; int bit_1_to_4 : 4; int bit_5 : 1; int bit_6_to_15 : 10; };Bộ môn Tin học cơ sở Tháng 10 – 2009 Trang 8 NHẬP MÔN LẬP TRÌNH1.7. Kích thước của cấ ...
Tìm kiếm theo từ khóa liên quan:
ngôn ngữ C++ phần mềm máy tính kinh nghiệm lập trình khái niệm ngôn ngữ các kiểu dữ liệu con trỏ cấu trúcGợi ý tài liệu liên quan:
-
Bài giảng Xử lý sự cố phần mềm - Bài 4 Xử lý sự cố sử dụng Internet
14 trang 339 0 0 -
Nhập môn Tin học căn bản: Phần 1
106 trang 329 0 0 -
Thủ thuật giúp giải phóng dung lượng ổ cứng
4 trang 214 0 0 -
Thiết kế mạch logic bằng Verilog - HDL
45 trang 163 0 0 -
142 trang 130 0 0
-
150 trang 104 0 0
-
Giáo trình Cấu trúc máy tính: Phần 1 - Tống Văn On (chủ biên)
289 trang 78 0 0 -
27 trang 64 0 0
-
Cách chia sẻ File, dữ liệu mạng Lan trong Windows Xp
10 trang 61 0 0 -
Bài giảng Nhập môn công nghệ phần mềm: Chương 7 - Nguyễn Thanh Bình
77 trang 54 0 0