intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Bài giảng Ngôn ngữ lập trình Pascal: Chương 13 - Kiểu dữ liệu có cấu trúc - Kiểu bản ghi (Record)

Chia sẻ: Lavie Lavie | Ngày: | Loại File: PDF | Số trang:15

91
lượt xem
8
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Bài giảng Ngôn ngữ lập trình Pascal: Chương 13 - Kiểu dữ liệu có cấu trúc - Kiểu bản ghi (Record) nêu lên cách sử dụng Record; mảng các bảng ghi và một số nội dung khác. Đặc biệt, với những bài tập được đưa ra ở cuối bài sẽ giúp cho các bạn củng cố kiến thức này một cách tốt hơn.

Chủ đề:
Lưu

Nội dung Text: Bài giảng Ngôn ngữ lập trình Pascal: Chương 13 - Kiểu dữ liệu có cấu trúc - Kiểu bản ghi (Record)

  1. Chương 13 Kiểu dữ liệu có cấu trúc: Kiểu bản ghi (Record) Có 4 kiểu dữ liệu có cấu trúc: ARRAY, SET, RECORD, FILE 13.1
  2. Array và Set bao gồm các phần tử có cùng kiểu. Record là kiểu dữ liệu bao gồm nhiều phần tử khác loại. Record đi liền với kiểu dữ liệu Tệp (File), sẽ học ở chương sau. Thí dụ 13.1: TYPE Dia_Chi = RECORD So_Nha: integer; Pho : String[20]; Thanh_Pho:String[15]; END; 13.2
  3. Thí dụ 13.2: TYPE Date = RECORD Ngay : 1..31; Thang: 1..12; Nam : integer; END; TYPE Date = RECORD Day: 1..31; Month:(Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec); Year: integer; 13.3 END;
  4. TYPE Nhan_Su = RECORD Ho_Ten : String[30]; Ngay_Sinh: Date; Gioi_Tinh: (Nam, Nu); O_Tai : Dia_Chi; Luong : Real; END; Phiếu hồ sơ cán bộ Họ và tên: Ngày sinh: Giới tính: Địa chỉ: Lương: 13.4
  5. Sử dụng Record TYPE Nhan_Su = ...; VAR Nguoi1, Nguoi2: Nhan_Su; BEGIN write ('Ho va Ten Nguoi 1: '); readln( Nguoi1.Ho_Ten); write ('Ngay Sinh: ' ); readln(Nguoi1.Ngay_Sinh.Ngay); write ('Thang sinh: '); readln(Nguoi1.Ngay_Sinh.Thang); write ('Nam sinh: '); readln(Nguoi1.Ngay_Sinh.Nam); write ('O tai so nha: ');readln(Nguoi1.O_Tai.So_Nha); write (' Pho: '); readln(Nguoi1.O_Tai.Pho); write(' Thanh pho : ');readln(Nguoi1.O_Tai.ThanhPho); Nguoi2:=Nguoi1; {Biến Nguoi2 được gán giá trị } ... 13.5 END.
  6. Nhận xét:  Cách truy nhập vào một trường của Record Nguoi1.Ho_Ten  Có thể làm phép gán 2 Record cùng loại: Nguoi2:=Nguoi1  So sánh bằng nhau giữa 2 Record If Nguoi2=Nguoi1 then writeln('Cùng mot nguoi!'); 13.6
  7. Tuy nhiên ta không làm được 1) Read và Write cả một Record Readln (Nguoi1); Writeln(Nguoi1); 2) So sánh các Record bằng các phép toán quan hệ như sau: , = Riêng các phép so sánh (khác nhau) và = (bằng nhau) thì có thể được dùng với hai biến có cùng một kiểu Record. 3) Tất cả các phép toán số học và logic. 13.7
  8. Thí dụ 13.6 Phép cộng số phức. TYPE Complexe = RECORD PT,PA: real ; END; VAR C1,C2,C3: Complexe; Dau: String[5];  C3 := C2 + C1; Đúng không? 13.8
  9. BEGIN C1.PT:= 3.5;C1.PA :=-0.2; {C1=3.5-j0.2 } C2.PT:= 5.8;C2.PA := 7.1; {C2=5.8+j7.1 } C3.PT := C1.PT + C2.PT; C3.PA := C1.PA + C2.PA; Writeln(' Tong cua hai so phuc : '); If C1.PA >= 0 then Dau:=' + j ' else Dau:= ' - j '; Writeln(' C1 = ',C1.PT:5:2, Dau ,Abs(C1.PA):5:2); If C2.PA >= 0 then Dau:=' + j ' else Dau:=' - j '; Writeln(' C2 = ',C2.PT:5:2, Dau ,Abs(C2.PA):5:2); Writeln(' La so phuc : '); If C3.PA >=0 then Dau:=' + j ' else Dau := ' -j '; Writeln(' C3 = ',C3.PT:5:2, Dau ,Abs(C3.PA):5:2); END. 13.9
  10. Kết quả chạy chương trình: Tong cua hai so phuc : C1 = 3.50 - j 0.20 C2 = 5.80 + j 7.10 La so phuc : C3 = 9.30 + j 6.90 13.10
  11. Mảng các bản ghi VAR CanBo: Array[1..100] of Nhan_Su; Ta có thể viết: CanBo[50].Ho_Ten:='Nguyen Van A'; CanBo[50].NgaySinh.Ngay:=31; 13.11
  12. Thí dụ 13.7 VAR CanBo: Array[1..100] of Nhan_Su; TG : Nhan_Su; {ô nhớ Trung Gian} i, j: integer; BEGIN ... FOR i:=1 TO 99 Do FOR j:= i + 1 TO 100 DO If CanBo[i].Ho_Ten > CanBo[j].Ho_Ten then Begin TG :=CanBo[i]; CanBo[i]:= CanBo[j]; CanBo[j]:= TG; End; ... 13.12 END.
  13. Câu lệnh WITH ... DO ... WITH Nguoi1 DO Begin write('Ho va Ten Nguoi 1: '); readln (Ho_Ten); WITH Ngay_Sinh DO Begin write('Ngay sinh : '); readln(Ngay); write('Thang sinh : '); readln(Thang); write('Nam sinh : '); readln(Nam); End; 13.13 End;
  14. WITH Nguoi1, NgaySinh DO Begin Ngay :=12; Thang:= 5; Nam :=1960; End; Hoặc với mảng CanBo ta có thể viết: WITH CanBo[50] DO Begin Ho_Ten := 'Le Thi Tam'; ...... 13.14 End;
  15. Bài tập 1/ Viết chương trình nhân hai số phức A, B. Kết quả là C. 2/ Xây dựng cấu trúc dữ liệu mô tả các phiếu ghi ở thư viện. Xây dựng một hộp phiếu bằng một mảng các phiếu ghi. Sau đó lập chương trình vào số liệu của một nhân viên thư viện. Cuối cùng là phân loại hộp phiếu theo thứ tự ABC của tên sách. 3/ Hãy mô tả một đa thức được viết dưới dạng Record Sau đó làm phép nhân, cộng 2 đa thức. 13.15
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2