Danh mục

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    
Hoai.2512

Phí tải xuống: 4,000 VND Tải xuống file đầy đủ (11 trang) 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ấ ...

Tài liệu được xem nhiều: