Các mảng trong Pascal cho phép định nghĩa các kiểu của biến có thể chứa nhiều mục dữ liệu cùng loại, nhưng kiểu bản ghi trong Pascal là kiểu dữ liệu do người dùng định nghĩa có sẵn trong Pascal, cho phép bạn kết hợp dữ liệu các loại khác nhau.
Bản ghi trong Pascal bao gồm nhiều trường khác nhau. Giả sử nếu muốn theo dõi các đầu sách có trong thư viện, bạn có thể theo dõi các thuộc tính dưới đây của mỗi đầu sách, bao gồm:
- Tên sách
- Tác giả của sách
- Phân loại sách
- ID của sách
Định nghĩa bản ghi trong Pascal
Để định nghĩa bản ghi trong Pascal, bạn có thể sử dụng khai báo kiểu. Kiểu bản ghi trong Pascal được định nghĩa như dưới đây:
Dưới đây là cách khai báo kiểu bản ghi Book:
Cấu trúc chung định nghĩa các biến kiểu bản ghi trong Pascal:
var
r1, r2, ... : record-name;
Hoặc bạn có thể định nghĩa trực tiếp các biến kiểu bản ghi trong Pascal:
Truy cập các trường trong kiểu bản ghi Pascal
Để truy cập các trường bất kỳ trong kiểu bản ghi trong Pascal, chúng ta có thể sử dụng toán tử truy cập (.). Toán tử truy cập thành viên được mã hóa là dấu chấm giữa tên biến bản ghi và trường mà bạn muốn truy cập.
Dưới đây là ví dụ cách truy cập các trường trong kiểu bản ghi Pascal:
Khi mã trên được biên dịch và thực thi, nó sẽ trả về kết quả dưới đây:
Truyền bản ghi trong Pascal như đối số của chương trình con
Bạn có thể truyền bản ghi trong Pascal như đối số của chương trình con theo cách tương tự mà bạn có thể truyền bất kỳ một biến hoặc con trỏ nào.
Trong ví dụ dưới đây bạn có thể truy cập các trường bản ghi tương tự như cách mà bạn truy cập ở ví dụ trên:
Khi mã trên được biên dịch và thực thi, nó sẽ trả về kết quả dưới đây:
Con trỏ trong bản ghi Pascal
Bạn có thể định nghĩa con trỏ tới bản ghi tương tự như cách bạn định nghĩa con trỏ tới các biến bất kỳ như dưới đây:
Bây giờ bạn có thể lưu trữ địa chỉ của một biến kiểu bản ghi trong biến con trỏ được định nghĩa ở trên. Để khai báo một biến kiểu biến con trỏ, bạn sử dụng từ khóa var:
var
r1, r2, ... : record-ptr;
Trước khi sử dụng các con trỏ này, bạn phải tạo bộ nhớ cho một biến kiểu bản ghi, sẽ được thao tác bằng các con trỏ này.
new(r1);
new(r2);
Để truy cập các trường của 1 bản ghi sử dụng con trỏ tới bản ghi đó, bạn phải sử dụng toán tử ^. như dưới đây:
Cuối cùng xóa bộ nhớ đã sử dụng trong trường hợp không còn sử dụng bộ nhớ nữa:
dispose(r1);
dispose(r2);
Ví dụ dưới đây sử dụng con trỏ tới bản ghi Book:
Khi mã trên được biên dịch và thực thi, nó sẽ trả về kết quả dưới đây:
Lệnh With trong bản ghi Pascal
Như đã đề cập ở trên, chúng ta có thể truy cập các trường của một bản ghi bằng cách sử dụng toán tử truy cập (.). Bằng cách này tên của biến bản ghi sẽ phải được viết nhiều lần. Vì vậy sử dụng lệnh With là giải pháp thay thế trong trường hợp này.
Dưới đây là ví dụ đoạn mã lấy từ ví dụ đầu tiên:
Đoạn mã tương tự được viết bằng cách sử dụng lệnh With:
Như vậy bài viết trên Taimienphi.vn vừa cung cấp cho bạn các thông tin về kiểu bản ghi trong Pascal. Để tìm hiểu rõ hơn về toán tử trong Pascal, cấu trúc chung của một chương trình trong Pascal, bạn đọc có thể tham khảo một số bài viết trước đã có trên Taimienphi.vn nhé.
Bên cạnh đó, các bạn có thể tham khảo khảo thêm bài viết về Biến kiểu Variant trong Pascal tại đây.