Danh mục

Giáo trình lập trình nâng cao - Chương 2

Số trang: 49      Loại file: pdf      Dung lượng: 397.75 KB      Lượt xem: 16      Lượt tải: 0    
10.10.2023

Phí tải xuống: 4,000 VND Tải xuống file đầy đủ (49 trang) 0
Xem trước 5 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Tài liệu tham khảo Giáo trình lập trình nâng cao trên ngôn ngữ Pascal soạn theo chương trình đã được Bộ giáo dục và đào tạo phê chuẩn - Chương 2 Các kiểu dữ liệu có cấu trúc
Nội dung trích xuất từ tài liệu:
Giáo trình lập trình nâng cao - Chương 2 Chương 2 Các ki u d li u có c u trúc Trong chương này không trình bày chi ti t các ki u d li u có c u trúc ñơn gi n như ki u m ng, chu i. N i dung tr ng tâm c a chương là ki u b n ghi (Record) có c u trúc thay ñ i, ki u t p và ki u t p h p. Chương này b n ñ c c n n m ñư c các v n ñ sau: Cách th c ñ nh nghĩa m t ki u d li u m i Khai báo bi n v i các ki u d li u do ngư i l p trình t ñ nh nghĩa Cách s d ng toán t CASE khi khai báo b n ghi có c u trúc thay ñ i Cách th c ghi và ñ c d li u cho ba lo i t p: t p văn b n, t p có ki u và t p không ki u, chú tr ng cách ghi d li u ki u s vào t p văn b n và l y s li u ra ñ x lý X d ng d li u ki u t p h p trong l p trình Trư ng ð i h c Nông nghi p 1 - Giáo trình L p trình nâng cao ..............................................................- 20 1. D li u ki u b n ghi (record) 1.1 Khái ni m cơ b n Ki u b trí d li u thông d ng nh t mà con ngư i nghĩ ra là b trí dư i d ng b ng. B ng ñư c coi là m t ñ i tư ng (ñ qu n lý ho c nghiên c u), b ng bao g m m t s c t và m t s dòng. S c t, dòng trong b ng ph thu c vào ph n m m qu n lý mà chúng ta s d ng. Trong t ng c t d li u có tính ch t gi ng nhau. Các ph n m m qu n tr d li u như Excel, Foxpro... ñ u ng d ng khái ni m b ng và Pascal cũng không ph i là ngo i l . ð có ñư c m t b ng trư c h t Pascal xây d ng nên m t dòng g i là b n ghi, t p h p nhi u dòng s cho m t b ng, m i b ng ñư c ghi vào b nh dư i d ng m t t p. B n ghi (Record) là m t c u trúc bao g m m t s (c ñ nh ho c thay ñ i) các ph n t có ki u khác nhau nhưng liên quan v i nhau. Các ph n t này g i là các trư ng (Field). Ví d b ng ñi m c a l p h c bao g m các trư ng Hoten, Ngaysinh, Gioitinh, Lop, Diachi, Toan, Ly, Hoa,...., d li u ñi n vào các trư ng hình thành nên m t b n ghi (Record). Có th có nh ng trư ng trong m t b n ghi l i là m t b n ghi, ví d trư ng Ngaysinh trên có th là m t b n ghi c a ba trư ng là Ngay, Thang, Nam. B n ghi không ph i là ki u d li u ñã có s n trong Pascal mà do ngư i s d ng t ñ nh nghĩa do ñó chúng ph i ñư c khai báo ph n TYPE. B n ghi bao g m hai lo i: * B n ghi có c u trúc không ñ i : là lo i b n ghi mà c u trúc ñã ñư c ñ nh nghĩa ngay t khi khai báo và gi nguyên trong su t quá trình x lý. * B n ghi có c u trúc thay ñ i: là lo i b n ghi mà c u trúc c a nó (tên trư ng, s trư ng, ki u trư ng) thay ñ i tuỳ thu c vào nh ng ñi u ki n c th . Lo i b n ghi này khi khai báo thì v n khai báo ñ y ñ song khi x lý thì s trư ng có th gi m ñi (so v i c u trúc ñã khai báo) ch không th tăng lên. ði m m nh c a B n ghi là cho phép xây d ng nh ng c u trúc d li u ña d ng ph c v công vi c qu n lý, tuy v y mu n lưu tr d li u ñ s d ng nhi u l n thì ph i k t h p ki u B n ghi v i ki u T p. 1.2 Khai báo Ki u d li u c a các trư ng trong Record có th hoàn toàn khác nhau và ñư c khai báo sau tên trư ng, nh ng trư ng có cùng ki u d li u có th khai báo cùng trên m t dòng phân cách b i d u ph y , . Cu i m i khai báo trư ng ph i có d u ; . Ki u d li u Record ñư c khai báo như sau: TYPE = RECORD : Ki u; : Ki u; ...... : Ki u; END; Trư ng ð i h c Nông nghi p 1 - Giáo trình L p trình nâng cao ..............................................................- 21 Ví d 2.1 Khai báo ki u d li u BANGDIEM bao g m m t s trư ng nh m ph c v vi c qu n lý ñi m. TYPE BANGDIEM = RECORD Hoten: String[25]; Gioitinh: Char; Lop: String[5]; Diachi: String[30]; Toan,Ly,Hoa: Real; END; V i khai báo như trên dung lư ng b nh dành cho các trư ng (tính b ng Byte) s là: Hoten 26, Gioitinh 1, Lop 6, Diachi 31, Toan 6, Ly 6, Hoa 6. (Các trư ng ki u String bao gi cũng c n thêm 1 Byte ch a ký t xác ñ nh ñ dài chu i). T ng ñ dài c a Record b ng 26+1+6+31+18=82 Bytes. Có th dùng hàm Sizeof(tên ki u) ñ xác ñ nh ñ dài m t ki u d li u, ví d : Write(sizeof(bangdiem)) s nh n ñư c s 82 Ví d 2.2 Xây d ng ki u d li u qu n lý h sơ công ch c. Chúng ta s t o ra b n ki u d li u m i ñ t tên là Diadanh, Donvi, Ngay và Lylich. Type Diadanh = Record Tinh, Huyen, Xa, Thon: String[15]; End; Donvi = Record Truong: String[30]; Khoa, Bomon: String[20] End; Ngay = Record Ng: 1..31; Th: 1..12; Nam: Integer; End; Lylich = Record Mhs: Word; Trư ng ð i h c Nông nghi p 1 - Giáo trình L p trình nâng cao ..............................................................- 22 Hoten: String[25]; Ngaysinh: Ngay; Quequan: Diadanh; Coquan: Donvi; End; Trong cách khai báo trên trư ng Ngaysinh thu c ki u Ngay, Quequan thu c ki u Diadanh, Coquan thu c ki u Donvi, nói cách khác ba trư ng này l i chính là ba Record. ð kh c ph c cách khai báo nhi u ki u b n ghi như trên có th s d ng các b n ghi l ng nhau. Ki u b n ghi l ng nhau có th khai báo tr c ti p, nghĩa là không c n khai báo riêng r các b n ghi con. Ví d 2.3 Uses crt; Type Lylich=record Mhs:word; Hoten:string[25]; Ngaysinh:record Ng:1..31; Th:1..12; Nam:Integer; ...

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