top of page

PML Cơ Bản (Phần 2)

Updated: Dec 30, 2020

Ở phần trước chúng ta đã tìm hiểu về PML và biến trong PML, ở phần này Happy sẽ gửi đến các bạn về cấu trúc vòng lặp và cấu trúc điều kiện, đây là hai cấu trúc cơ bản trong PML

Hình 1: PML Cơ Bản Phần 2

1. Cấu trúc vòng lập Do

Trong PML không sử dụng các vòng lập For, While. Tất cả được thay thế bởi vòng lặp Do gồm các dạng sau:

Hình 2: Cấu Trúc Vòng Lặp Do Trong PML

- Vòng lặp giới hạn bởi số đầu và cuối:

Do !var from X to Y by Z . . . enddo

Trong đó biến !var (dạng real) nhận giá trị chạy từ X đến Y với bước lập là Z. Nếu không set from X, thì mặc định vòng lập bắt đầu từ 1, còn nếu không set giá trị to Y vòng lập sẽ chạy mãi

- Vòng lập qua từng phần tử trong mảng

Do !var value !array

.

.

.

Enddo

Trong đó biến !var phải cùng loại với phần tử trong mảng !array hoặc là biến loại ANY. Mỗi vòng lặp biến !var sẽ nhận giá trị của một phần tử trong mảng !array

- Vòng lặp theo số thứ thự của phần tử trong mảng

Do !var index !array

.

.

.

Enddo

Với vòng lặp kiểu này biến var có dạng số nguyên và tăng dần theo số thứ tự các phần tử trong mảng !array (chạy từ 1 đến !array.size())

Bỏ qua một vòng lặp bằng lệnh: Skip

Thoát khỏi vòng lặp bằng lệnh: Break

Tạm dừng vòng lặp bằng lệnh: Pause !time. Trong câu lệnh này vòng lặp sẽ tạm dừng một khoảng thời gian !time (tính bằng mili giây)

2. Cấu trúc điều kiện If

Hình 3: Cấu Trúc If Trong PML

Cấu trúc If cơ bản có dang:

If (CONDITION1) then (command block 1) Elseif (CONDITION2) then (command block 2) Else (command block 3) Endif

Elseif va else có thể có hoặc không, nếu Condition1 trả về giá trị True, command block 1 sẽ chạy và kết thúc cấu trúc If. Ngược lại nếu Condition1 trả về giá trị False, hệ thống sẽ tiếp tục kiểm tra điều kiện trong Elseif ngay phía dưới và cứ như thế, nếu tất cả các điều kiện trong If và Elseif đều trả về giá trị false, command block 3 nằm trong Else sẽ chạy, trường hợp sử dụng cấu trúc if nhưng không dùng Else, thì khi điều kiện trả về false thì cấu trúc if sẽ kết thúc.

3. Ký tự đặc biệt trong PML

- Trong PML ký tự $ có vai trò vô cùng đặt biệt

Một số cấu trúc đi cùng $

$M <đường dẫn> : dùng để gọi file macro

$p <nội dung>: in <nội dung> ra command line

$R6 : hiện câu lệnh đang chạy

$R: vô hiệu hóa lệnh $R6

$!var: lấy giá trị của biến var. Ví dụ:

!var = ‘1’

!number = $!var

Như vậy trong câu lệnh trên biến !var chứa giá trị dạng chuỗi, với ký tự $ ta đã lấy gía trị thực của biến var. Câu lệnh này tương đương với !number = 1

- Chú thích trong PML.

Chú thích giúp các câu lệnh trở nên tường minh và dễ dàng cho người khác đọc hiểu ý nghĩa và mục đích của các câu lệnh khi cần

Ký tự -- để bắt đầu một chú thích trong PML (hay nói cách khác phần mềm sẽ bỏ qua dòng lệnh bắt đầu bằng --)

Để có thể comment trên nhiều dòng, ta dùng cấu trúc:

$(

……….

$)

4. Ví dụ

Để kết thúc bài viết này các bạn hãy cùng Happy làm một bài ví dụ: Viết macro in ra màn hình tổng của những số chẵn nhỏ hơn 10

Nào hãy mở notepad và gõ các dòng lệnh sau:

--khoi tao bien ketqua dua chua tong cua nhung so chan nho hơn 10

!ketqua = 0

--chay vong lap

do !i from 1

$(

Thoat khoi vong lap neu i bang 10

O day Happy khong dung gia tri to trong lenh do ma dung Break de ket thuc vong lap

$)

Break if (!i eq 10)

--chia i voi 2 de kiem tra chan hay le

!temp = !i / 2

if !temp eq (int(!temp)) then

!ketqua = !ketqua + !i

endif

enddo

--dung $p de in ra man hinh

$p Kết quả là $!ketqua

--Ket thuc macro

Sau khi gõ xong ta save lại với tên trong ổ D với tên example.mac. Sau đó HAppy vào PDMS và gõ câu lênh:

$M “D:\example.mac”

Ta thu được kết quả như hình:

Hinh 4: Ví Dụ

Chúc các bạn cuối tuần vui vẻ, và đừng quên chia sẻ bài viết của team đến anh em piping nhé, hẹn gặp lại các bạn vào thứ bảy tuần tới!

bottom of page