Thứ Ba, 27 tháng 5, 2014

Lap trinh Violet Script


LINK DOWNLOAD MIỄN PHÍ TÀI LIỆU "Lap trinh Violet Script": http://123doc.vn/document/567400-lap-trinh-violet-script.htm


VIOLET Group Ngôn ngữ lập trình Violet Script
1.2.3. Khả năng sử dụng các thư viện mở
Tuy VS là ngôn ngữ chuyên dụng trong lĩnh vực đồ họa và mô phỏng, song đồ họa là
một lĩnh vực rất rộng nên VS chỉ có tính tổng quát. Nó không thể bao hàm được hết tất cả các
thao tác mô phỏng, chương trình thông dịch VS cũng không thể chứa tất cả các dữ liệu, thư
viện hình ảnh thông dụng cho mọi sản phẩm. Tuy nhiên, đối với người lập trình không
chuyên, vấn đề đặt ra là phải làm sao cho mọi thứ hầu như đã có sẵn hết.
Vì vậy, ngôn ngữ VS có một hệ thống thư viện đầy đủ kèm theo và cập nhật thường
xuyên. Các thư viện này chứa nhiều hình ảnh, mô hình, biểu tượng thông dụng và có thể lấy ra
sử dụng một cách dễ dàng, các thao tác chuyển động được lập trình sẵn, các mẫu chương trình
chuẩn cũng có thể sử dụng với khả năng tùy biến cao.
Ví dụ: trong việc tạo bài giảng, nếu phân loại theo các môn học thì ngôn ngữ VS (cụ
thể là trình thông dịch của ngôn ngữ VS) sẽ phục vụ cho tất cả các môn. Tuy nhiên, thư viện
sử dụng cho từng môn sẽ khác nhau, nghĩa là ta sẽ có thư viện cho môn Toán, thư viện cho
môn Vật Lý, v.v… Như vậy, khả năng cải tiến chương trình và cập nhật tư liệu của VS sẽ trở
nên dễ dàng.
Thư viện động là một trong những ưu điểm hơn hẳn của VS so với hầu hết các phần
mềm công cụ tạo bài giảng hiện nay.
1.2.4. So sánh ngôn ngữ VS với Timeline
Những người đã từng dùng hoặc xem các chương trình như Macromedia Flash,
Macromedia Diector, Adobe Premier,… hẳn không thể không biết đến khái niệm Timeline
(trục thời gian). Đây là một công cụ thiết kế rất quan trọng trong việc tạo ra các chuyển động,
các hiệu ứng của hình ảnh và âm thanh, làm phim hoạt hình, xây dựng cấu trúc của một sản
phẩm,… Timeline là một công cụ rất hữu ích, đặc biệt đối với người không biết lập trình cũng
có thể dùng nó để xây dựng phần mềm multimedia ứng dụng được.
Tuy nhiên điểm nhược cơ bản của Timeline là không có tính mở. Ví dụ: dùng Timeline
có thể dễ dàng tạo một chuyển động trong vòng 3 giây, nhưng không thể dùng Timeline để tạo
chuyển động trong vòng n giây, với n là một giá trị được nhập từ bàn phím hoặc từ file bên
ngoài.
Trong khi đó, việc xây dựng các phần mềm trợ giảng lại đòi hỏi công cụ phải có tính
mở. Vì bài giảng của mỗi giáo viên là không giống nhau, nên phần mềm trợ giảng phải cho
phép giáo viên tự sửa theo ý mình được. Trong trường hợp này, người sản xuất phần mềm
không còn cách nào khác là phải lựa chọn một ngôn ngữ lập trình.
Mặt khác, đối với những người biết lập trình rồi thì dùng ngôn ngữ cũng dễ chịu hơn
so với dùng Timeline. Ví dụ: có thể sửa đổi số liệu một cách dễ dàng và chính xác, có thể
comment (viết lời giải thích) cho các đoạn chương trình, có thể phân chia chương trình lớn
thành các module nhỏ… Việc thao tác với các dòng code cũng dễ dàng hơn so với các đối
tượng đồ họa và Timeline. Code có thể dùng bất cứ chương trình soạn thảo văn nào để tạo lập
và sửa đổi chứ không cần phải một hệ thống đồ sộ như khi dùng Timeline.
Tuy vậy, dùng Timeline cũng có một ưu điểm hơn so với ngôn ngữ là tính ổn định, ít
bị lỗi. Còn việc lập trình nếu không cẩn thận thì sẽ có thể sinh ra rất nhiều lỗi. Do đó, trong
quá trình phát triển thì ngôn ngữ thì cũng phải dần dần khắc phục yếu điểm này.
- 5 -
VIOLET Group Ngôn ngữ lập trình Violet Script
1.3. Sử dụng Violet Script trong Violet
Violet Script khởi nguồn là một ngôn ngữ chạy độc lập, có thể dùng để tự xây dựng
được các bài giảng hoàn chỉnh. Khi được kết hợp với công cụ Violet, ngôn ngữ này thường chỉ
dùng để tạo một đoạn mô phỏng ngắn trên một trang màn hình, vì vậy nên sẽ đơn giản hơn và
dễ quản lý hơn. Đối với người dùng thì vừa có được sự linh hoạt của ngôn ngữ, lại vừa sử
dụng được các tính năng dễ dùng của Violet như tạo hiệu ứng, tạo các bài tập,
Để sử dụng VS trong Violet, vào mục soạn thảo trang màn hình, nhấn nút “Công cụ”,
một menu hiện lên, ta chọn mục “Lập trình mô phỏng”. Màn hình sau hiện ra và ta có thể soạn
thảo trực tiếp chương trình vào đây.
Màn hình soạn thảo Script
Nếu chương trình có sử dụng các đối tượng ảnh, hoặc các thư viện mã nguồn từ file
text, thì sau khi viết xong, click vào nút "Tiếp tục", màn hình sau hiện ra:
Màn hình nhập các mã nguồn bên ngoài và các đối tượng
- 6 -
VIOLET Group Ngôn ngữ lập trình Violet Script
Trong đó:
Khung phía trên cho phép nhập các file mã nguồn VS từ file text bên ngoài. Thông
thường, Violet sẽ cung cấp sẵn một số file thư viện các thao tác chuẩn để có thể sử dụng được
luôn.
Ta cũng có thể viết mã nguồn VS cho mô phỏng của mình ra file text bên ngoài, rồi
nhập vào đây, mà không cần phải viết gì trong phần soạn thảo mã nguồn ở trước đó. Cách làm
này hay hơn (và nên dùng), vì soạn thảo file text bên ngoài sẽ dễ dàng hơn là soạn trực tiếp
trong Violet. Như trong hình trên ta thấy phần chương trình vẽ đường phân giác sẽ nằm trong
file Vephangiac.vs chứ không phải nằm trong phần soạn thảo Script của Violet.
Khung phía dưới cho phép nhập các đối tượng hình ảnh sẽ được sử dụng trong phần
mềm. Các đối tượng này có thể lấy từ file SWF hoặc file JPG. Tuy nhiên, chỉ có file SWF
(làm bằng Flash) thì mới có thể chỉnh được vị trí nào trên ảnh là vị trí (0, 0). Ví dụ với một
ảnh chiếc bút chì, ta căn chỉnh sao cho chỗ đầu bút chì chỉ đúng vào vị trí (0, 0) trong Flash.
Khi đó, nếu ta dịch chuyển đối tượng bút chì tới vị trí (x, y) thì đầu bút chì sẽ chỉ đúng vào vị
trí (x, y) đó. Còn nếu sử dụng ảnh JPG, thì vị trí góc trên bên trái của ảnh sẽ đúng vào vị trí (x,
y) chứ không phải chỗ đầu bút chì.
Sau khi nhập xong chương trình, các file mã nguồn chuẩn và các file ảnh, ta nhấn nút
"Đồng ý". Để sửa đổi mã nguồn hay các thông tin khác, ta click đúp vào bất kỳ đối tượng nào
trong hoạt cảnh mô phỏng.
1.4. Cấu trúc ngôn ngữ
Violet Script 1.0, gần giống ngôn ngữ Basic ở các cấu trúc lệnh và ngôn ngữ C ở cấu
trúc chương trình.
1.4.1. Chương trình viết bằng VS
Giống như C, chương trình VS bao gồm các hàm, trong đó hàm main sẽ được gọi ngay
khi bắt đầu chạy chương trình.
function main
appear Text, 8, 4, "Hello world"
end
Một chương trình con (một hàm, chức năng) sẽ được khai báo như sau:
function <tên hàm> <các tham số>
<lệnh 1>
<lệnh 2>

end
Trong đó tên chương trình con không có dấu cách (có thể dùng dấu gạch chân "_" thay
cho dấu cách). Các tham số thì phải khai báo cách nhau bởi dấu phẩy. Có thể xem thêm các ví
dụ minh họa trong các phần sau.
Nếu chương trình con trả về các giá trị cho các tham số thì khi gọi ta nên thêm dấu &
vào phía trước tham số (giống cú pháp của ngôn ngữ C). Ví dụ:
input_line &ax, &ay, &bx, &by
get_point &x, &y, x1, y1, angle, 2
- 7 -
VIOLET Group Ngôn ngữ lập trình Violet Script
1.4.2. Các lệnh đơn giản
Ngôn ngữ VS cung cấp các loại lệnh sau:
• Các lệnh gán, ví dụ a = 2; a = 10*5 + 1; b = a^2 + a + 1
• Các lệnh cơ bản: ví dụ lệnh appear như trong chương trình trên
• Các lệnh gọi chương trình con: có cú pháp giống như lệnh cơ bản
1.4.3. Các biểu thức
Các biểu thức toán học có thể sử dụng trong vế phải của các lệnh gán, hoặc làm tham
số của các lệnh khác. Một biểu thức bao gồm các thành phần:
• Các toán hạng: giá trị số, biến số
• Các toán tử: + , - , * , / , ^
• Các hàm số: sin, cos, tg, cotg, arcsin, arccos, arctg, arccotg, abs, sqrt, ln
• Các dấu ngoặc đơn"(" và ")"
Ví dụ tính góc B của tam giác ABC nếu biết độ dài 3 cạnh AB, AC và BC, áp dụng
định lý hàm số cos.
lenAB = 2
lenAC = 3
lenBC = 4
angleB = arccos((lenAB^2 + lenBC^2 - lenAC^2)/(2*lenAB*lenBC))
1.4.4. Các lệnh có cấu trúc
Lệnh điều kiện
if <điều kiện> then
<các lệnh>
end_if
Lệnh lặp
for <tên biến> from <cận dưới> to <cận trên> step <bước nhảy>
<các lệnh>
next
1.4.5. Các nhãn
Có thể coi nhãn là các lệnh đặc biệt, được ký hiệu bởi dấu ":" và tên nhãn. Nhãn dùng
vừa để đánh dấu, vừa để mô tả các đoạn lệnh. Nhãn thường được dùng như một định danh để
có thể truy cập (goto) đến đoạn lệnh từ bất kỳ vị trí nào trong chương trình.
Ví dụ:
function main
goto ERASE
:START
appear Text, 8, 4, "Hello world"
wait_click
:ERASE
erase Paper
wait_click
goto START
end
- 8 -
VIOLET Group Ngôn ngữ lập trình Violet Script
2. VS trong mô phỏng Hình học
2.1. Khả năng của ngôn ngữ
Hiện tại, chúng tôi đã cung cấp sẵn một file mã nguồn chuẩn chứa các thao tác dựng
hình cơ bản như vẽ đường thẳng bằng thước kẻ, vẽ đường tròn bằng compa, cắt ghép đa giác
v.v là “C:\Program Files\Platin Violet\Lecture\vpScript\Common\Mathtool.vs”
Vì vậy, trong môn Hình học, ngôn ngữ Violet Script sẽ hỗ trợ nhiều trong các loại công
việc sau:
• Vẽ hình trên màn hình đồ họa (đoạn thẳng, đường tròn, đồ thị,…)
• Sử dụng các đối tượng có sẵn trong thư viện (ví dụ với môn hình học có: compa,
thước kẻ, bút, tẩy, ê-ke, thước đo độ, giấy màu, dao cắt…), và mô phỏng hoạt động
của từng đối tượng này.
• Xử lý các tương tác với người dùng (nhấn chuột, kéo thả, nhập từ bàn phím,…)
2.2. Các ứng dụng
Hiện tại chúng tôi đã cung cấp sẵn thư viện hình ảnh và các đoạn chương trình cơ bản
dùng cho môn Hình học, với phạm vi ứng dụng là cấp THCS. Phần này sẽ chủ yếu tập trung
vào Hình học Ơclit, bao gồm các loại bài toán như sau:
• Bài toán vẽ hình và xử lý tương tác với người dùng
• Bài toán dựng hình bằng các dụng cụ dựng hình thông dụng
• Bài toán cắt ghép hình (mô phỏng việc cắt ghép các mảnh giấy màu)
• Bài toán quỹ tích và vẽ đồ thị hàm số
2.3. Ví dụ
Ví dụ mô tả một bài toán dựng hình: vẽ trung trực của một đoạn thẳng được người
dùng nhập vào khi chạy chương trình. Kịch bản của đoạn mô phỏng này như sau:
• Người dùng nhấn chuột để xác định điểm thứ nhất, nhấn tiếp chuột để xác định
điểm thứ hai
• Đánh dấu và ký hiệu hai điểm A, B vừa nhập
• Mô phỏng việc dùng thước kẻ và bút chì để vẽ một đoạn thẳng giữa hai điểm AB
• Xuất hiện một compa và đưa compa vào vị trí của điểm A
• Mở rộng compa (khoảng cách 2 đầu compa bằng khoảng 2/3 AB)
• Quay compa một nửa vòng tròn (cung hướng vào điểm B). Trong khi quay compa
thì cung tròn cũng sẽ được vẽ theo, nét vẽ phải mảnh và nhạt để thể hiện đây chỉ là
vẽ nháp.
• Đưa compa đến điểm B
• Quay compa một nửa vòng tròn (cung hướng vào điểm A)
- 9 -
VIOLET Group Ngôn ngữ lập trình Violet Script
• Dùng thước kẻ và bút chì để vẽ một đoạn thẳng đi qua 2 giao điểm của 2 cung tròn,
độ dài của đoạn thẳng này là một giá trị hợp lý. Đó chính là đường trung trực của
đoạn thẳng AB.
• Đánh dấu điểm M là giao điểm của đường trung trực với đoạn thẳng AB
• Ký hiệu góc M vuông
• Ký hiệu M là trung điểm của AB
• Xóa các nét cung tròn đã vẽ
Ta sẽ mã hóa kịch bản mô phỏng trên thành ngôn ngữ VS như sau:
function main
appear Text, 8.25, 0.5, "Hãy vẽ một đoạn thẳng", 2
input_line &ax, &ay, &bx, &by
disappear Text
appear Point, ax, ay, "A", below
appear Point, bx, by, "B", below
create_line ax, ay, bx, by
radius = sqrt((ax-bx)^2 + (ay-by)^2) / 3 * 2
get_angle &angle, ax, ay, bx, by
set_paper Draft
appear Compa
move Compa, ax, ay, angle-90
call Compa.OpenCompa, radius
rotate_compa Compa, radius, angle+90
move Compa, bx, by, angle+90
rotate_compa Compa, radius, angle+270
disappear Compa
mx = (ax + bx) / 2
my = (ay + by) / 2
angle = angle + 90
get_point &cx, &cy, mx, my, angle, 4
set_paper Paper
create_line cx, cy, 2 * mx - cx, 2 * my - cy
appear Point, mx, my, "M", leftbelow
note_angle 0, "", bx, by, mx, my, cx, cy
note_edge 0, "", ax, ay, mx, my
note_edge 0, "", mx, my, bx, by
end
Lưu ý: Một đơn vị tính trong Violet Script được quy định mặc định là 40 pixel, độ
rộng của màn hình hiển thị là 660x460 pixel, tức là khoảng 16.5x11.5 đơn vị.
Chương trình này sử dụng các thao tác dựng hình chuẩn (trong file Mathtool.vs) và các
đối tượng hình ảnh: thước kẻ, bút chì, compa. Vì vậy, sau khi soạn xong chương trình, ta phải
khai báo các dữ liệu này như sau:
- 10 -
VIOLET Group Ngôn ngữ lập trình Violet Script
Nhấn nút “Đồng ý”, ta sẽ được đoạn mô phỏng dựng đường trung trực của một đoạn
thẳng bất kỳ được nhập vào từ con chuột (nhấn, kéo và thả).
Mô phỏng vẽ đường trung trực bằng compa, thước kẻ, bút chì
Có thể thấy việc viết một chương trình mô phỏng như trên chỉ đơn giản là mã hóa 1:1
kịch bản mô phỏng thành ngôn ngữ VS.
Rõ ràng việc tạo bài giảng Hình học bằng ngôn ngữ VS sẽ đơn giản hơn nhiều so với
các ngôn ngữ lập trình khác. Ví dụ nếu sử dụng C/C++ thì để tạo một bài giảng, có thể phải
viết chương trình dài đến hàng nghìn dòng lệnh và hàng chục file dữ liệu, còn nếu dùng ngôn
ngữ VS thì chỉ cần vài chục dòng lệnh và không cần file dữ liệu.
- 11 -
VIOLET Group Ngôn ngữ lập trình Violet Script
3. Các lệnh trong VS
3.1. Các lệnh xử lý đối tượng
Trong thư viện của trình thông dịch VS môn Hình học có các loại đối tượng hình ảnh
như sau:
Tên đối tượng Ứng dụng Hình ảnh
Point
(điểm)
Ký hiệu điểm trên hình vẽ
Ruler
(thước kẻ)
Sử dụng làm vật kê để vẽ các đoạn
thẳng
Compa
(compa)
Dùng để vẽ các hình tròn hoặc cung
tròn
Pencil
(bút chì)
Dùng để vẽ đoạn thẳng hoặc các đường
đồ thị
Protractor
(thước đo góc)
Dùng để xác định góc trong việc vẽ
góc
TSquare
(ê-ke)
Dùng để vẽ đoạn thẳng vuông góc với
một đoạn thẳng có sẵn
Measurer
(thước đo)
Dùng để đo cạnh hoặc góc Có hình dạng là thước kẻ hoặc
thước đo góc tùy ý người sử dụng
Burin
(dao cắt)
Dùng để cắt các đa giác
- 12 -
VIOLET Group Ngôn ngữ lập trình Violet Script
Để sử dụng các loại đối tượng của VS cũng như các đối tượng được nạp từ thư viện
bên ngoài, ngôn ngữ VS cung cấp các lệnh sau:
Tên lệnh Tham số Tác dụng
appear
xuất_hiện
1. Tên đối tượng
2. Tọa độ của đối tượng
3. Tham số đặc trưng 1 (chỉ
dùng cho một số đối tượng)
4. Tham số đặc trưng 2 (chỉ
dùng cho một số đối tượng)
Tạo lập và cho xuất hiện một đối
tượng tại vị trí X, Y với các tham số
cụ thể tùy theo loại đối tượng.
disappear
biến_mất
Tên một (hoặc nhiều) đối tượng Làm cho các đối tượng biến mất (mờ
dần rồi mất hẳn)
move
dịch_chuyển
1. Tên đối tượng
2. Tọa độ mới (x, y)
3. Góc quay đối tượng
Vừa dịch chuyển vừa quay đối tượng
tới vị trí mới và góc quay mới. Nếu
không nhập góc quay thì góc quay
mặc định là 0°.
Ví dụ dưới đây sẽ mô phỏng việc vẽ một điểm bằng bút chì
function main
appear Pencil // Xuất hiện thước kẻ ở vị trí (0,0)
move Pencil, 5, 5 // Đưa bút chì ở vị trí (5, 5)
appear Point, 5, 5, A // Xuất hiện điểm A ở vị trí (5, 5)
delay 12 // Tạm dừng 1 giây
disappear Pencil // Làm biến mất bút chì
end
Mô phỏng vẽ một điểm bằng bút chì
- 13 -
VIOLET Group Ngôn ngữ lập trình Violet Script
3.2. Các lệnh xử lý đa giác
Tên lệnh Tham số Tác dụng
polygon
đa_giác
Tên đa giác
Vị trí đa giác
Tọa độ các điểm của đa giác
Tạo một đa giác
clip
cắt
Tọa độ của 2 điểm bất kỳ nằm
trên đường thẳng cắt
Cắt tất cả các đa giác trên màn hình
theo một đường thẳng
unify
hợp
Tên đa giác
Tên các đa giác sẽ được hợp
vào đa giác đầu tiên
Hợp nhiều đa giác thành một đối
tượng
flip
lật
Tên đa giác Lật một đa giác qua trục tung
Phần ví dụ dưới đây là một chương trình hoàn chỉnh, thực hiện việc cắt và ghép các
góc của một tam giác để chứng minh tổng của chúng bằng 180°. Khi chạy, người dùng sẽ xác
định các đường cắt qua góc thứ nhất và đường cắt qua góc thứ hai, sau mỗi lần cắt thì các mẩu
cắt sẽ được ghép vào đúng vị trí cần thiết.
function main
polygon Tamgiac, 8, 6, 0x7F7FFF, -1, -3, 3, 1, -3, 1
input_line &px1, &py1, &px2, &py2
cut_polygon px1, py1, px2, py2
move Tamgiac2, 4, 4, -180
input_line &px1, &py1, &px2, &py2
cut_polygon px1, py1, px2, py2
move Tamgiac12, 10, 4, 180
end
Mô phỏng cắt một góc của hình tam giác bằng dao cắt
- 14 -

Không có nhận xét nào:

Đăng nhận xét