Cách 2 (khai báo gián tiếp) VAR BienTH : KieuTH;
(Tham số hình thức của CTC phải dùng
Cách 2)
VD 7.1 (khai báo kiểu, biến tập hợp) TYPE {Khai bao kieu tap hop} ChuHoa = Set of 'A' .. 'Z'; VAR {Khai bao bien tap hop} so : SoNguyen; chu : ChuHoa;
Chú ý
Vị trí của các phần tử trong tập hợp không có ý nghĩa ([1, 2] = [2, 1]).
Dùng lệnh gán để thay đổi giá trị cho các biến tập hợp.
Không dùng lệnh Read và Write trực tiếp cho dữ liệu kiểu tập hợp.
TH := TH + [pt]; {Thêm pt}
if pt in TH then Write(pt); {Viết pt}
CÁC PHÉP TOÁN
Phép hợp (+), giao (*), hiệu (-), bao hàm (IN): giống như trong toán học.
A := [1, 3]; B := [2, 3, 4]
A + B = [1, 2, 3, 4]; A * B = [3];
A - B = [1]; B - A = [2, 4];
2 in A FALSE
Phép so sánh (=, <>, <=, >=): kết quả có kiểu logic (TRUE/FALSE).
A <= B có KQ là TRUE nếu A là tập con của B, trái lại KQ là FALSE.
A >= B có KQ là TRUE nếu A bao hàm tập B, trái lại KQ là FALSE.
Không có phép so sánh < và > trên kiểu tập hợp trong Pascal.
VÍ DỤ
VD 7.2 (Phân loại kí tự) Lập trình nhập vào một kí tự. Kiểm tra xem kí tự đó chữ cái, chữ số hay kí tự khác?
Hướng dẫn: khai báo biến ch kiểu Char và 2 biến ChuCai, ChuSo kiểu tập hợp kí tự, rồi gán giá trị:
ChuCai := ['A'..'Z', 'a'..'z']
ChuSo := ['0'..'9']
Nếu ch in ChuCai thì viết "là chữ cái".
Nếu ch in ChuSo thì viết "là chữ số".
Nếu ... thì viết "kí tự khác".
VD 7.3 (Bán vé máy bay, BT 6.9, tr. 187) Một máy chứa tối đa 250 hành khách, với các ghế được đánh số 1, 2, ..., 250. Lập trình bán vé máy bay, yêu cầu hiện lên các số ghế còn trống để khách lựa chọn.
Hướng dẫn: Tạo tập V = [1..250] tương ứng với số ghế trên các vé và liệt kê chúng ra màn hình.
Dùng vòng lặp không xác định để nhập số ghế mà hành khách chọn. Một số ghế đã chọn thì số đó không còn trong V và trên màn hình.
Chia sẻ với bạn bè của bạn: |