Kiểu dữ liệu có cấu trúc là gì
Trường ðại học Nông nghiệp 1 - Giáo trình Lập trình nâng cao ..............................................................- 20 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 ..............................................................- 21 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 |