Xem Nhiều 5/2022 # Phần 3: Record Trong Pascal # Top Trend

Xem 38,016

Cập nhật thông tin chi tiết về Phần 3: Record Trong Pascal mới nhất ngày 22/05/2022 trên website Doisonggiaitri.com. Hy vọng nội dung bài viết sẽ đáp ứng được nhu cầu của bạn, chúng tôi sẽ thường xuyên cập nhật mới nội dung để bạn nhận được thông tin nhanh chóng và chính xác nhất. Cho đến thời điểm hiện tại, bài viết này đã đạt được 38,016 lượt xem.

--- Bài mới hơn ---

  • Nội Dung Ôn Tập Tin Học 11
  • Chuyên Đề Xử Lí Bit
  • Bài 6. Chuỗi Kí Tự
  • Trường Thpt Nguyễn Thị Minh Khai
  • Pascal: Hàm Xử Lý Chuỗi (String)
  • Dữ liệu có cấu trúc – Phần 3: Record trong Pascal

    I – Khái niệm và định nghĩa

    1. Khái niệm và định nghĩa:

    Chúng ta đã học về các kiểu cấu trúc dữ liệu như mảng (Array), kiểu tập hợp (Set). Các kiểu cấu trúc dữ liệu này đều được tạo ra bằng một tập hợp các phần tử có cùng (mô tả), kiểu.Ví dụ: các phần tử của một 

    array ; Thanh_pho : String, string ; Ngay_sinh : Date ; Gioi_tinh : (Nam, nu) ; O_tai : Dia_chi ; Luong : Reals ; End ;

    Thí dụ 3 cho ta thấy điểm đặc biệt là việc mô tả lồng nhau của cấu trúc dữ liệu. Trong mô tả RECORD của nhân sự, ta có thể mô tả các phần tử (các trường) của Record là một kiểu Record khác như các trường Ngày sinh và chỗ ở. Mức lương được mô tả là Real (số thực) vì có thể đếm hàng xu, hàng hào.

    Ta cũng có thể viết trực tiếp mô tả trường 

    Ngay_sinh 

    nếu như có mô tả kiểu Date :

    Code:

    Type Nhan_su = Record Ho_ten : String

    . Còn 

    Nguoi_1.O_tai

    .

    Pho 

    cho ta thâm nhập vào trường 

    Pho 

    của trường

    O_tai 

    của biến 

    Nguoi_1

    . Trong đó 

    O_tai 

    có mô tả kiểu 

    Dia_chi.

    Dòng lệnh 

    nguoi_2 := Nguoi_1 

    cho phép ta copy 2 biến với nhau. Thực chất dòng lệnh này là việc thâm nhập vào cả một biến kiểu Record chứ không phải là việc thâm nhập vào môi trường riêng lẻ nào đó của biến Record đó (là 

    Nguoi_1 

    và 

    Nguoi_2 

    ở đây).

    Ta có thể dùng phép so sánh :

    If Nguoi_1 = Nguoi_2 then writeln (‘Cung mot nguoi!) ;

    hoặc :

    If Nguoi_2.Ho_ten = Nguoi_1.Ho_ten then writeln (hai nguoi trung ten nhau!)

    Tuy nhiên cần lưu ý là không thể dùng các thao tác sau :

    _ Viết ra màn hình hoặc đọc từ bàn phím cả một biến kiểu Record như :

    _ Readln (Nguoi_1) hoặc Writeln (Nguoi_1) ;

    _ Tất cả các phép toán số học và logic.

    Chúng ta cũng có thể kết hợp kiểu Record với các kiểu dữ liệu khác như lập một mảng các Record. Để miêu tả đội ngũ cán bộ của một cơ quan nào đó có số người nhiều nhất là 100 chẳng hạn, ta có thể viết :

    Code:

    Var Canbo : Array ; Canbo ; Canbo

    , ta có thể viết :

    Code:

    With Canbo ; Ngay_sinh : Date ; Gioi_tinh : (Nam , Nu) ; O tai : Dia_chi ; Luong : Real ; Case Nghe_nghiep : Nghe Of Cong_nhan : (NganhCN : Nganh) ; Bac_tho : Byte ; Ky_su : (NganhKS : Nganh) ; TrinhDoTT : (Kem , TB , Kha , Gioi) ; Bac_sy : (Chuyen_Khoa : Khoa) ; Ca_biet : ( ) ; End ; (* Of Record *) Var Nguoi1 , Nguoi2 : Nhan_su ; BEGIN .......... With Nguoi1 Do Begin Ho_ten := ' Nguyen Van A ' ; Nghe_nghiep := Cong_nhan ; NganhCN := Dien ; Bac_tho := 3 ; End ; ........... With Nguoi2 Do Begin Ho_ten := ' Le Thi B ' ; Nghe_nghiep := Ky_su ; NganhKS := Dien ; TrinhDoTT := Kha ; End ; END.

    CÁC QUY TẮC SỬ DỤNG RECORD CÓ CẤU TRÚC THAY ĐỔI

    Record có cấu trúc thay đổi nói chung sẽ có 2 phần :

    * Phần cố định : Gồm các trường 

    Ho_ten , Ngay_sinh , O_tai

    ,… Phần này là đặc điểm chung của mọi người , ai cũng có cả. Cách viết này hoàn toàn như Record bình thường.

    * Phần thay đổi : Luôn đặt sau phần cố định và chỉ cho phép có một trường thay đổi mà thôi. Nói cách khác phần thay đổi được đặt sau cùng trong danh sách các trường và nó được bắt đầu bằng câu lệnh Case. Tuy nhiên , phần thay đổi có thể lại chứa Record khác có cấu trúc thay đổi , nghĩa là ta lại có trường thay đổi thứ hai khác nằm trong một trường thay đổi. Đó là Record có nhiều mức thay đổi.

    Code:

    Type Khoa = (Dien_tu , Toan , Co_khi) ; Nghe = (Thu_ki , Sinh_vien) ; Diem := 0.. 10 ; Nhan_Cong = Record Ho_ten : String[30] ; Case Cong_Viec : Nghe Of Thu_Ky : (Ngay_sinh : date , Luong : real) ; Sinh_vien : (K : Byte) ; Case SV_Khoa : Khoa Of Dien_tu : (Mach , Vi_tinh , Anh_van : Diem) ; Toan : (Dai_so , Giai_tich , Hinh_hoc : Diem) ; Co_khi : (Hinh_hoa , Chi_tiet_may : Diem)) ; End ; (* Of Record *) ; Var N : Nhan_cong ;

    Trong Record này có 2 mức biến dạng :

    Mức 1 là : Case Cong_viec : Nghe Of…

    Mức 2 là : Case SV_khoa : Khoa of…

    Mức 2 đương nhiên cũng tuân theo các quy tắc xây dựng Record có cấu trúc thay đổi kể trên , do đó nó phải là trường cuối cùng của mức 1: trường có nhãn là Sinh_vien. Chính trường này có cấu trúc của một Record thay đổi nằm trong Record thay đổi khác.

    Các câu lệnh sau là hợp lệ :

    Code:

    N.Cong_viec := Sinh_vien ; N.Ngày_sinh. Ngay := 8 ; N.Mach := 4 ; N.Dai_so := 4 ; N.SV_Khoa := Dien_tu ; N.K := 18 ;

    --- Bài cũ hơn ---

  • Từ Pascal Đến C/c++ (P2) – Vòng Lặp
  • Bài 3: Câu Lệnh Vòng Lặp Trong Pascal (For, While, Repeat)
  • Chương Trình Con Trong Pascal
  • Pascal: Hằng, Biến, Biểu Thức
  • Chương Trình Con : Hàm Và Thủ Tục Trong Pascal
  • Bạn đang xem bài viết Phần 3: Record Trong Pascal trên website Doisonggiaitri.com. Hy vọng những thông tin mà chúng tôi đã chia sẻ là hữu ích với bạn. Nếu nội dung hay, ý nghĩa bạn hãy chia sẻ với bạn bè của mình và luôn theo dõi, ủng hộ chúng tôi để cập nhật những thông tin mới nhất. Chúc bạn một ngày tốt lành!

  • Web hay
  • Links hay
  • Push
  • Chủ đề top 10
  • Chủ đề top 20
  • Chủ đề top 30
  • Chủ đề top 40
  • Chủ đề top 50
  • Chủ đề top 60
  • Chủ đề top 70
  • Chủ đề top 80
  • Chủ đề top 90
  • Chủ đề top 100
  • Bài viết top 10
  • Bài viết top 20
  • Bài viết top 30
  • Bài viết top 40
  • Bài viết top 50
  • Bài viết top 60
  • Bài viết top 70
  • Bài viết top 80
  • Bài viết top 90
  • Bài viết top 100