Bài giảng Lập trình nâng cao (Advanced Programming) - Chương 6: Kiểu cấu trúc và kiểu liệt kê
Số trang: 8
Loại file: pdf
Dung lượng: 72.24 KB
Lượt xem: 20
Lượt tải: 0
Xem trước 1 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Bài giảng Lập trình nâng cao (Advanced Programming) - Chương 6: Kiểu cấu trúc và kiểu liệt kê. Nội dung chính trong chương này gồm có: Khái niệm về kiểu cấu trúc, khai báo kiểu cấu trúc, khai báo biến cấu trúc, truy nhập các thành phần của cấu trúc, khởi tạo biến cấu trúc, phép gán biến cấu trúc, mảng cấu trúc,… Mời các bạn cùng tham khảo!
Nội dung trích xuất từ tài liệu:
Bài giảng Lập trình nâng cao (Advanced Programming) - Chương 6: Kiểu cấu trúc và kiểu liệt kê Chương 6. Kiểu cấu trúc và kiểu liệt kê I. Kiểu cấu trúc (struct) II. Kiểu liệt kê (enum) Lập trình nâng cao - Chương 06 - Ngô Công Thắng 1 I. Kiểu cấu trúc 1. Khái niệm về kiểu cấu trúc 2. Khai báo kiểu cấu trúc 3. Khai báo biến cấu trúc 4. Truy nhập các thành phần của cấu trúc 5. Khởi tạo biến cấu trúc 6. Phép gán biến cấu trúc 7. Mảng cấu trúc Lập trình nâng cao - Chương 06 - Ngô Công Thắng 2 1. Khái niệm về kiểu cấu trúc ² Ngoài các kiểu dữ liệu có sẵn trong C, người lập trình còn có thể tạo ra những kiểu dữ liệu của riêng mình: Kiểu cấu trúc và kiểu liệt kê. ² Một cấu trúc là một nhóm các phần tử có thể có kiểu dữ liệu khác nhau. Các phần tử này gọi là các thành phần của cấu trúc. Kiểu cấu trúc trong C tương đương với kiểu bản ghi trong Pascal. Lập trình nâng cao - Chương 06 - Ngô Công Thắng 3 2. Khai báo kiểu cấu trúc ² Khai báo cấu trúc là mô tả về các thành phần của cấu trúc. Cú pháp như sau: Từ khoá struct Tên_kiểu_cấu trúc { Kiểu_1 Tên_thành_phần_1; Các thành phần Kiểu_2 Tên_thành_phần_2; của cấu trúc .... }; Dấu chấm phẩy kết thúc khai báo kiểu cấu trúc Lập trình nâng cao - Chương 06 - Ngô Công Thắng 4 2. Khai báo kiểu cấu trúc (tiếp) ² Ví dụ: Để lưu trữ thông tin về nhân sự của phòng tổ chức với các thông tin về họ tên, ngày sinh, địa chỉ, lương ta khai báo một kiểu cấu trúc như sau: struct nhansu { char hoten[30]; char ngaysinh[10]; char diachi[40]; float luong; }; Lập trình nâng cao - Chương 06 - Ngô Công Thắng 5 2. Khai báo kiểu cấu trúc (tiếp) ² Sau khi khai báo kiểu cấu trúc ta có thể dùng tên kiểu cấu trúc như tên các kiểu dữ liệu cơ bản. ² Kiểu của các thành phần của cấu trúc có thể là kiểu cấu trúc, tức là trong cấu trúc có thể chứa cấu trúc khác. Ví dụ: struct ngaythang { int ngay,thang,nam; }; struct nhansu { char hoten[30]; struct ngaythang ngaysinh; char diachi[40]; float luong; }; Lập trình nâng cao - Chương 06 - Ngô Công Thắng 6 3. Khai báo biến cấu trúc ² Việc khai báo kiểu cấu trúc không tạo ra vùng nhớ chứa cấu trúc mà chỉ mô tả về cấu trúc xem có những gì. ² Muốn có vùng nhớ chứa cấu trúc ta phải khai báo biến cấu trúc. Cú pháp: struct Tên_kiểu_cấu_trúc Tên_biến_cấu trúc; Ví dụ: struct nhansu ng1,ng2; Lập trình nâng cao - Chương 06 - Ngô Công Thắng 7 4. Truy nhập các thành phần cấu trúc ² Để truy nhập các thành phần của cấu trúc ta dùng toán tử chấm. Cú pháp: Tên_biến_cấu_trúc.Tên_thành_phần Ví dụ: struct thisinh { char SBD[15]; float toan,ly,hoa; }; //Khai bao bien cau truc struct thisinh ts; //Nhap du lieu cho thi sinh printf('So bao danh: “); scanf(“%s”,&ts.SBD); printf(“Diem Toan: “); scanf(“%f”,&ts.toan); printf(“Diem Ly: “); scanf(“%f”,&ts.ly); printf(“Diem Hoa: “); scanf(“%f”,&ts.hoa); Lập trình nâng cao - Chương 06 - Ngô Công Thắng 8 5. Khởi tạo biến cấu trúc ² Khi khai báo biến cấu trúc ta có thể khởi tạo giá trị cho các thành phần của cấu trúc như khởi tạo cho các phần tử của mảng. Ví dụ: //Khai bao kieu cau truc struct thisinh { char SBD[15]; float toan,ly,hoa; }; //Khai bao va khoi tao bien cau truc struct thisinh ts={'NNHA23456', 7, 8, 9}; Lập trình nâng cao - Chương 06 - Ngô Công Thắng 9 6. Phép gán biến cấu trúc ² Ta có thể gán một biến cấu trúc cho một biến cấu trúc cùng kiểu. Ví dụ: //Khai bao kieu cau truc struct thisinh { char SBD[15]; float toan,ly,hoa; }; //Khai bao bien cau truc struct thisinh ts1={'NNHA23456',7,8,9}; struct thisinh ts2; ts2=ts1; Lập trình nâng cao - Chương 06 - Ngô Công Thắng 10 7. Mảng cấu trúc ² Sau khi khai báo kiểu cấu trúc thì tên kiểu cấu trúc được dùng như các kiểu dữ liệu khác. Chẳng hạn, dùng cấu trúc làm kiểu phần tử của mảng. Ví dụ: //Khai bao kieu cau truc struct thisinh { char SBD[15]; float toan,ly,hoa; }; //Khai bao bien cau truc struct thisinh ds[100]; strcpy(ds[0].SBD,'NNHA23456'); ds[0].toan=8; ds[0].ly=8; ds[0].hoa=9; Lập trình nâng cao - Chương 06 - Ngô Công Thắng 11 Ví dụ 1. Nhập vào thông tin của n mặt hang, mỗi mặt hàng có thông tin về tên hàng, số lượng, đơn giá. Tính tổng tiền của n mặt hang. 2. Viết chương trình quản lý điểm môn học của sinh viên. Mỗi sinh viên có các thông tin về mã sv, họ tên, lớp, điểm C.Cần, điểm kiểm tra, điểm thi, điểm môn học. Điểm môn học = 0,1xC.Cần + 0,3xK.Tra + 0,6xThi. Nhập vào một danh sách n sinh viên. Tìm và đưa ra thông tin về sinh viên có điểm MH cao nhất. Lập trình nâng cao - Chương 06 - Ngô Công Thắng 12 II. Kiểu liệt kê ² Kiểu liệt kê là kiểu dữ liệu do người lập trình tự định nghĩa bằng cách liệt kê tất cả các giá trị. Các giá trị của kiểu liệt kê là các tên tự đặt. ² Để định nghĩa kiểu liệt kê ta dùng từ khóa enum theo cú pháp sau: enum Tên_kiểu_liệt_kê {Danh sách các tên tự đặt}; Ví dụ: enum boolean {TRUE, FALSE}; enum mausac {Xanh, Do, Tim, Vang}; enum days_of_week {Sun, Mon, Tue, Wed, Thu, Fri, Sat}; Lập trình nâng cao - Chương 06 - Ngô Công Thắng 13 II. Kiểu liệt kê (tiếp) ² Sau khi khai báo kiểu liệt kê ta có thể khai báo các biến kiểu liệt như các biến kiểu khác: Tên_kiểu_liệt_kê Danh_sách_các_biến; Ví dụ: Giả sử các kiểu liệt kê đã được khai báo ở trên, ta khai báo các biến liệt kê: days_of_week day1, day2; ² Để đưa giá trị vào biến liệt kê ta dùng lệnh gán: Ví dụ: day1 = Mon; day2 = Sat; ...
Nội dung trích xuất từ tài liệu:
Bài giảng Lập trình nâng cao (Advanced Programming) - Chương 6: Kiểu cấu trúc và kiểu liệt kê Chương 6. Kiểu cấu trúc và kiểu liệt kê I. Kiểu cấu trúc (struct) II. Kiểu liệt kê (enum) Lập trình nâng cao - Chương 06 - Ngô Công Thắng 1 I. Kiểu cấu trúc 1. Khái niệm về kiểu cấu trúc 2. Khai báo kiểu cấu trúc 3. Khai báo biến cấu trúc 4. Truy nhập các thành phần của cấu trúc 5. Khởi tạo biến cấu trúc 6. Phép gán biến cấu trúc 7. Mảng cấu trúc Lập trình nâng cao - Chương 06 - Ngô Công Thắng 2 1. Khái niệm về kiểu cấu trúc ² Ngoài các kiểu dữ liệu có sẵn trong C, người lập trình còn có thể tạo ra những kiểu dữ liệu của riêng mình: Kiểu cấu trúc và kiểu liệt kê. ² Một cấu trúc là một nhóm các phần tử có thể có kiểu dữ liệu khác nhau. Các phần tử này gọi là các thành phần của cấu trúc. Kiểu cấu trúc trong C tương đương với kiểu bản ghi trong Pascal. Lập trình nâng cao - Chương 06 - Ngô Công Thắng 3 2. Khai báo kiểu cấu trúc ² Khai báo cấu trúc là mô tả về các thành phần của cấu trúc. Cú pháp như sau: Từ khoá struct Tên_kiểu_cấu trúc { Kiểu_1 Tên_thành_phần_1; Các thành phần Kiểu_2 Tên_thành_phần_2; của cấu trúc .... }; Dấu chấm phẩy kết thúc khai báo kiểu cấu trúc Lập trình nâng cao - Chương 06 - Ngô Công Thắng 4 2. Khai báo kiểu cấu trúc (tiếp) ² Ví dụ: Để lưu trữ thông tin về nhân sự của phòng tổ chức với các thông tin về họ tên, ngày sinh, địa chỉ, lương ta khai báo một kiểu cấu trúc như sau: struct nhansu { char hoten[30]; char ngaysinh[10]; char diachi[40]; float luong; }; Lập trình nâng cao - Chương 06 - Ngô Công Thắng 5 2. Khai báo kiểu cấu trúc (tiếp) ² Sau khi khai báo kiểu cấu trúc ta có thể dùng tên kiểu cấu trúc như tên các kiểu dữ liệu cơ bản. ² Kiểu của các thành phần của cấu trúc có thể là kiểu cấu trúc, tức là trong cấu trúc có thể chứa cấu trúc khác. Ví dụ: struct ngaythang { int ngay,thang,nam; }; struct nhansu { char hoten[30]; struct ngaythang ngaysinh; char diachi[40]; float luong; }; Lập trình nâng cao - Chương 06 - Ngô Công Thắng 6 3. Khai báo biến cấu trúc ² Việc khai báo kiểu cấu trúc không tạo ra vùng nhớ chứa cấu trúc mà chỉ mô tả về cấu trúc xem có những gì. ² Muốn có vùng nhớ chứa cấu trúc ta phải khai báo biến cấu trúc. Cú pháp: struct Tên_kiểu_cấu_trúc Tên_biến_cấu trúc; Ví dụ: struct nhansu ng1,ng2; Lập trình nâng cao - Chương 06 - Ngô Công Thắng 7 4. Truy nhập các thành phần cấu trúc ² Để truy nhập các thành phần của cấu trúc ta dùng toán tử chấm. Cú pháp: Tên_biến_cấu_trúc.Tên_thành_phần Ví dụ: struct thisinh { char SBD[15]; float toan,ly,hoa; }; //Khai bao bien cau truc struct thisinh ts; //Nhap du lieu cho thi sinh printf('So bao danh: “); scanf(“%s”,&ts.SBD); printf(“Diem Toan: “); scanf(“%f”,&ts.toan); printf(“Diem Ly: “); scanf(“%f”,&ts.ly); printf(“Diem Hoa: “); scanf(“%f”,&ts.hoa); Lập trình nâng cao - Chương 06 - Ngô Công Thắng 8 5. Khởi tạo biến cấu trúc ² Khi khai báo biến cấu trúc ta có thể khởi tạo giá trị cho các thành phần của cấu trúc như khởi tạo cho các phần tử của mảng. Ví dụ: //Khai bao kieu cau truc struct thisinh { char SBD[15]; float toan,ly,hoa; }; //Khai bao va khoi tao bien cau truc struct thisinh ts={'NNHA23456', 7, 8, 9}; Lập trình nâng cao - Chương 06 - Ngô Công Thắng 9 6. Phép gán biến cấu trúc ² Ta có thể gán một biến cấu trúc cho một biến cấu trúc cùng kiểu. Ví dụ: //Khai bao kieu cau truc struct thisinh { char SBD[15]; float toan,ly,hoa; }; //Khai bao bien cau truc struct thisinh ts1={'NNHA23456',7,8,9}; struct thisinh ts2; ts2=ts1; Lập trình nâng cao - Chương 06 - Ngô Công Thắng 10 7. Mảng cấu trúc ² Sau khi khai báo kiểu cấu trúc thì tên kiểu cấu trúc được dùng như các kiểu dữ liệu khác. Chẳng hạn, dùng cấu trúc làm kiểu phần tử của mảng. Ví dụ: //Khai bao kieu cau truc struct thisinh { char SBD[15]; float toan,ly,hoa; }; //Khai bao bien cau truc struct thisinh ds[100]; strcpy(ds[0].SBD,'NNHA23456'); ds[0].toan=8; ds[0].ly=8; ds[0].hoa=9; Lập trình nâng cao - Chương 06 - Ngô Công Thắng 11 Ví dụ 1. Nhập vào thông tin của n mặt hang, mỗi mặt hàng có thông tin về tên hàng, số lượng, đơn giá. Tính tổng tiền của n mặt hang. 2. Viết chương trình quản lý điểm môn học của sinh viên. Mỗi sinh viên có các thông tin về mã sv, họ tên, lớp, điểm C.Cần, điểm kiểm tra, điểm thi, điểm môn học. Điểm môn học = 0,1xC.Cần + 0,3xK.Tra + 0,6xThi. Nhập vào một danh sách n sinh viên. Tìm và đưa ra thông tin về sinh viên có điểm MH cao nhất. Lập trình nâng cao - Chương 06 - Ngô Công Thắng 12 II. Kiểu liệt kê ² Kiểu liệt kê là kiểu dữ liệu do người lập trình tự định nghĩa bằng cách liệt kê tất cả các giá trị. Các giá trị của kiểu liệt kê là các tên tự đặt. ² Để định nghĩa kiểu liệt kê ta dùng từ khóa enum theo cú pháp sau: enum Tên_kiểu_liệt_kê {Danh sách các tên tự đặt}; Ví dụ: enum boolean {TRUE, FALSE}; enum mausac {Xanh, Do, Tim, Vang}; enum days_of_week {Sun, Mon, Tue, Wed, Thu, Fri, Sat}; Lập trình nâng cao - Chương 06 - Ngô Công Thắng 13 II. Kiểu liệt kê (tiếp) ² Sau khi khai báo kiểu liệt kê ta có thể khai báo các biến kiểu liệt như các biến kiểu khác: Tên_kiểu_liệt_kê Danh_sách_các_biến; Ví dụ: Giả sử các kiểu liệt kê đã được khai báo ở trên, ta khai báo các biến liệt kê: days_of_week day1, day2; ² Để đưa giá trị vào biến liệt kê ta dùng lệnh gán: Ví dụ: day1 = Mon; day2 = Sat; ...
Tìm kiếm theo từ khóa liên quan:
Lập trình nâng cao Advanced Programming Bài giảng Lập trình nâng cao Kiểu cấu trúc Kiểu liệt kê Khai báo kiểu cấu trúcGợi ý tài liệu liên quan:
-
114 trang 216 2 0
-
142 trang 122 0 0
-
Giáo trình Lập trình nâng cao (Nghề Lập trình máy tính): Phần 2 - Tổng cục dạy nghề
169 trang 85 0 0 -
Đề thi kết thúc học phần Lập trình nâng cao - Học viện Nông nghiệp Việt Nam
1 trang 74 0 0 -
Giáo trình Lập trình nâng cao: Phần 2 - Nguyễn Văn Vinh
153 trang 42 0 0 -
Lập trình tự động hóa PLC S7-300 với TIA Portal: Phần 2
233 trang 33 0 0 -
Bài giảng Lập trình nâng cao: Bài 10+11+12 - Trương Xuân Nam
44 trang 32 0 0 -
Giáo trình Lập trình nâng cao: Phần 1 - Nguyễn Văn Vinh
126 trang 29 0 0 -
Bài giảng Lập trình nâng cao (Advanced Programming) - Chương 9: Kiểu dữ liệu tệp
18 trang 25 0 0 -
Bài giảng Ngôn ngữ lập trình C - Võ Đức Hoàng
192 trang 25 0 0