Sidebar

Tự Học Tin - Dự án vì cộng đồng của TBit Tự Học Tin - Dự án vì cộng đồng của TBit
  • Văn phòng
    • Microsoft 365
      • Bắt đầu với Office 365
      • Word 365
      • Excel 365
      • PowerPoint 365
    • Google và mã nguồn mở
      • Lộ trình học văn phòng
      • Google Workspace
      • LibreOffice
  • Lập trình
    • Hiện đại
      • Lộ trình học lập trình
      • Python
      • JavaScript và TypeScript
    • Nền tảng và lưu trữ
      • C/C++
      • C#
      • Android
      • Pascal (lưu trữ)
  • Phát triển web
    • Nền tảng web
      • Lộ trình học web
      • HTML/HTML5
    • Nâng cao
      • HTML và CSS hiện đại
      • Framework web
  • AI ứng dụng
    • Học AI
      • Lộ trình dùng AI
    • AI trong công việc
      • AI trong văn phòng
      • AI hỗ trợ lập trình
  • Công cụ số
    • Phát triển
      • Lộ trình công cụ số
      • Git và GitHub
    • Đồ họa, kiểm thử, SEO
      • Adobe Photoshop
      • Kiểm thử phần mềm
      • Kỹ thuật SEO

Bài 9. Kiểu bản ghi


1. Khai báo:

a. Khai báo gián tiếp

Cú pháp:

Type
    <Tên kiểu> = RECORD
        <Tên trường 1> :<Kiểu trường>
        <Tên trường 2>:<Kiểu trường>
        ...
    END;

Ví dụ:

 

Type
    date=RECORD
        ngay,thang:byte;
        nam:word;
    End;
 
    HOCSINH = RECORD
        MaSV:string[15];
        Hoten:string[30];
        Ngaysinh:date;
        Diachi: String;
    End;

Lưu ý: Nếu không có kiểm date trước đó ta có thể mô tả trực tiếp như sau:

Type
    HOCSINH = RECORD
        MaSV:string[15];
        Hoten:string[30];
        Ngaysinh:record {sử dụng khai báo trực tiếp}
            ngay:1..31;
            thang:1..12;
            nam:word;
        End;
        Diachi: String;
    End;
 
Var
    HSA,HSB: HOCSINH;
    Lop12A: Array[1..50] of HOCSINH;

b. Khai báo trực tiếp

Cú pháp:

<pre>var
    <tên kiểu>: RECORD
        <Tên trường 1> :<Kiểu trường>
        <Tên trường 2>:<Kiểu trường>
        ...
    END;

2. Truy xuất biến kiểu record

 

Để truy xuất đến biến kiểu record ta phải truy xuất vào các trường của biến với cú pháp như sau:

<Tên biến record>.<tên trường>;

Chú ý:
– Các biến cùng kiểu record có thể gán được cho nhau khi đó toàn bộ thông tin từ biến record này sẽ được gán cho biến kiểu record kia.
Ví dụ ta gán: HSA:=HSB thay vì ta phải thực hiện gán từng trường của các biến như:

  • HSA.hoten:=HSB.hoten;
  • HSA.ngaysinh:=HSB.ngaysinh;

– Có thể dùng phép so sánh =, <> cho 2 biến kiểu record nhưng không thể dùng các phép so sánh <,<=,>,>=.
Ví dụ ta có thể so sánh:
if HSA=HSB then writeln('Cung mot hoc sinh');
hoặc if HSA.hoten=HSB.hoten then writeln('Hai hoc sinh trung ten');
Nhưng không thể so sánh:
if HSA>HSB then writeln(‘HS A lon hon HS B’);
– Không dùng các thủ tục read, readln, write, writeln cho cả một biến record.
Ví dụ không được dùng: writeln(HSA);
– Không được dùng tất cả các phép toán số học và logic với biến kiểu record.


3. Câu lệnh with

Như trên ta thấy việc truy xuất một trường biến kiểu Record phải thông qua tên và dấu chấm, làm phức tạp thêm chương trình, giải quyết bớt phần nào sự phức tạp này, Pascal đưa ra câu lệnh With … do

Cú pháp:

WITH <biến kiểu record> Do <câu lệnh>;

Chú ý:

Chúng ta có thể lồng các câu lệnh with do vào với nhau để truy cập vào các trường ở xâu trong record.

Ví dụ với HOCSINH và Ngaysinh đều là biến record nhưng ngaysinh là một trường của HOCSINH ta có thể viết như sau:

WITH HOCSINH DO
    WITH ngaysinh DO
        <lệnh>;

hoặc

WITH HOCSINH, ngaysinh DO
    <lệnh>;

Các bài khác …

  1. Bài 11. Tệp
  2. Bài 10. Con trỏ
Trang 9 / 11
  • Đầu tiên
  • Trước
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • Tiếp tục
  • Cuối cùng
  1. Trang chủ
  2. Lập trình
  3. Nền tảng và lưu trữ
  4. Pascal (lưu trữ)

© 2015 Tự Học Tin DMCA.com Protection Status

Chuyên trang hướng dẫn tự học công nghệ thông tin. Vui lòng ghi rõ "Nguồn: TuHocTin.Net" khi bạn sao chép nội dung tại đây.

TRANG CHỦ  |  GIỚI THIỆU  |  QUY ĐỊNH  |  LIÊN HỆ  |  TBIT  |  FACEBOOK  |  TWITTER