Cú pháp lệnh GPSS

Một phần của tài liệu Nghiên cứu về hệ thống hàng đợi và các công cụ mô phỏng hệ thống hàng đợi (Trang 32)

Các lệnh của GPSS được viết theo định dạng sau:

Label BlockType Operands ; Comment

Trong đó:

Label – Nhãn: các lệnh riêng lẻ trong chương trình có thể có nhãn để các lệnh khác có thể tham chiếu đến. Nếu trong chương trình không có những tham chiếu này thì thành phần nhãn này của câu lệnh không nhất thiết phải có.

BlockType – Kiểu khối: chứa từ khóa (tên của câu lệnh) chỉ một chức năng hay một hàm cụ thể nào đó mà câu lệnh này sẽ thực hiện. Đây là thành phần bắt buộc của một câu lệnh.

Operands – Các toán hạng: từ khóa Blocktype sẽ qui định các tham số, các toán hạng thực thi tương ứng. Những trường toán hạng này tùy thuộc vào kiểu của hàm hay lệnh mà có thể chứa đến 7 toán hạng sắp xếp theo một trình tự nhất định và được kí hiệu bởi những chữ cái đầu tiên trong bảng chữ cái Latin A, B, C, D, E, F, G. Các toán hạng này không nhất thiết phải thiết lập, việc thiết lập giá trị của chúng có thể theo mặc định và phụ thuộc vào từng lệnh cụ thể.

Comment – Phần chú giải: được đặt sau dấu “;” để chú giải nội dung cho các dòng lệnh, có thể có chú giải hoặc không. Tuy nhiên, nên có chú giải để người đọc dễ hiểu hơn nội dung lập trình.

Ví dụ: minh họa một chương trình mô phỏng hoạt động của một hiệu cắt tóc gồm hai bàn cắt tóc (Barb1 và Barb2)

****************************************************************** * Mô phỏng hiệu cắt tóc * * Thời gian được tính theo phút * ******************************************************************* GENERATE 20,5 ;Tạo khách hàng tiếp theo QUEUE Barber ;Thêm vào hàng đợi Barber QUEUE Total_time ;Tổng thời gian

TRANSFER Both,Barb1,Barb2 ;Chọn bàn cắt tóc rảnh

Barb1 SEIZE Barber1 ;Nhận phục vụ của bàn cắt Barber1 DEPART Barber ;Lấy ra khỏi hàng đợi Barber ADVANCE 10,2 ;Cắt tóc mất 10+-2 phút

DEPART Total_time ;Rời khỏi hàng đợi total time RELEASE Barber1 ;Khách rời khỏi bàn Barber1 TRANSFER ,Next ;Chuyển đến khối Next

Barb2 SEIZE Barber2 ;Nhận phục vụ của bàn Barber2 DEPART Barber ;Lấy ra khỏi hàng đợi Barber ADVANCE 13,4 ;Cắt tóc mất 13+-4 phút DEPART Total_time ;Rời khỏi hàng đợi total time RELEASE Barber2 ;Giải phóng barber2

Next SAVEVALUE Ave_Queue,QT$Barber ;Lưu kết quả trung bình TERMINATE 1 ;Khách hàng rời đi

Một phần của tài liệu Nghiên cứu về hệ thống hàng đợi và các công cụ mô phỏng hệ thống hàng đợi (Trang 32)