Bài tập hai đường thẳng song song dùng violet năm 2024

Bài tập hai đường thẳng song song dùng violet năm 2024

Bài tập hai đường thẳng song song dùng violet năm 2024
DownloadVui lòng tải xuống để xem tài liệu đầy đủ

Bài tập hai đường thẳng song song dùng violet năm 2024

Nội dung Text: Ngôn ngữ lập trình violet script

  1. NGÔN NGỮ LẬP TRÌNH VIOLET SCRIPT
  2. VIOLET Group Ngôn ngữ lập trình Violet Script HÀ NỘI, 5/2004 -2-
  3. VIOLET Group Ngôn ngữ lập trình Violet Script MỤC LỤC 1. Tổng quan............................................................................................................................. 4 1.1. Giới thiệu sơ lược.........................................................................................................4 1.2. Các đặc điểm chính của ngôn ngữ............................................................................... 4 1.2.1. Ngôn ngữ mô phỏng.............................................................................................. 4 1.2.2. Lựa chọn chế độ chạy song song hoặc tuần tự...................................................4 1.2.3. Khả năng sử dụng các thư viện mở..................................................................... 5 1.2.4. So sánh ngôn ngữ VS với Timeline.......................................................................5 1.3. Sử dụng Violet Script trong Violet................................................................................6 1.4. Cấu trúc ngôn ngữ......................................................................................................... 7 1.4.1. Chương trình viết bằng VS...................................................................................7 1.4.2. Các lệnh đơn giản................................................................................................. 8 1.4.3. Các biểu thức.........................................................................................................8 1.4.4. Các lệnh có cấu trúc.............................................................................................. 8 1.4.5. Các nhãn.................................................................................................................8 2. Ngôn ngữ Violet Script trong tạo bài giảng.........................................................................9 2.1. Khả năng của ngôn ngữ................................................................................................ 9 2.2. Các ứng dụng.................................................................................................................9 2.3. Ví dụ...............................................................................................................................9 3. Các lệnh trong VS...............................................................................................................12 3.1. Các lệnh xử lý đối tượng............................................................................................12 3.2. Các lệnh xử lý đa giác................................................................................................. 14 3.3. Các lệnh đồ họa...........................................................................................................15 3.4. Các lệnh phục vụ tính toán trong hình học phẳng.....................................................16 3.5. Các lệnh chờ đợi..........................................................................................................16 3.6. Các lệnh phục vụ xử lý tương tác..............................................................................17 3.7. Các lệnh điều khiển hệ thống.................................................................................... 17 4. Các bài toán mẫu.................................................................................................................18 4.1. Giới thiệu.....................................................................................................................18 4.2. Vẽ đồ thị hàm số......................................................................................................... 18 4.3. Bài toán quỹ tích.......................................................................................................... 19 4.4. Tam giác Napoleon.......................................................................................................20 4.5. Dựng tam giác biết 3 cạnh.......................................................................................... 22 4.6. Mô phỏng con lắc lò xo...............................................................................................23 -3-
  4. VIOLET Group Ngôn ngữ lập trình Violet Script 1. Tổng quan 1.1. Giới thiệu sơ lược Violet Script (VS) là ngôn ngữ lập trình chuyên d ụng v ề đ ồ h ọa, đ ặc bi ệt trong việc tạo ra các hoạt động mô phỏng. Ngôn ngữ này có th ể đ ược s ử d ụng r ất hi ệu qu ả đ ể xây dựng các phần mềm multimedia hỗ trợ dạy học. Với cấu trúc đơn giản nhưng đầy đủ và chặt chẽ, VS sẽ giúp người dùng có thể dễ dàng mô tả các ý t ưởng c ủa mình, ho ặc có thể sửa đổi một sản phẩm có sẵn cho phù hợp kịch bản của mình. Khác với một phần mềm công cụ, việc sử dụng ngôn ngữ lập trình có tính m ở cao hơn, nó cho phép người dùng không phải chỉ là sử dụng các m ẫu mô ph ỏng có s ẵn mà còn có thể tự tạo ra các mẫu mới, hoặc có thể sửa đổi được các m ẫu có s ẵn m ột cách tùy ý (sửa các tham số, sửa nội dung và trình tự thể hiện, v.v...). VS được xây dựng dựa trên ngôn ngữ Action Script 2.0 c ủa Macromedia Flash, chính vì vậy, VS rất mạnh trong việc thực hiện các mô phỏng có chuyển đ ộng và t ương tác, có xử lý âm thanh và hình ảnh. Tất nhiên, việc lập trình bằng VS thì đ ơn gi ản h ơn nhiều so với lập trình bằng Action Script. Các file mã nguồn của VS đều có thể sử dụng được mã văn b ản Unicode ho ặc Unicode UTF-8. Chính vì vậy, không chỉ có các dữ li ệu, lời gi ải thích mà k ể c ả tên các đối tượng (tên biến, tên nhãn, tên lệnh, tên hàm…) đều có thể dùng được bằng ti ếng Vi ệt có dấu, giúp người dùng Việt Nam dễ tiếp cận hơn nhi ều so với m ột ngôn ngữ b ằng tiếng Anh. 1.2. Các đặc điểm chính của ngôn ngữ 1.2.1. Ngôn ngữ mô phỏng Ngôn ngữ lập trình VS hỗ trợ rất nhiều về các kỹ thuật mô phỏng. Các thao tác về đồ họa và mô phỏng hầu hết đã được lập trình sẵn, lại thêm khả năng m ở n ạp th ư vi ện động, khả năng sử dụng các dữ liệu âm thanh, hình ảnh m ột cách dễ dàng, VS sẽ giúp người cho người dùng có thể viết được những phần mềm đồ họa cao cấp mà không c ần những kiến thức chuyên sâu về đồ họa. Có thể coi việc lập trình mô phỏng bằng ngôn ngữ VS chỉ đơn gi ản là việc mô t ả lại kịch bản của quá trình mô phỏng. Sau đó, trình thông d ịch c ủa VS s ẽ th ực hi ện các công việc đồ họa và mô phỏng theo như kịch bản này. Do vậy, người dùng hoàn toàn có thể tạo được một quá trình mô phỏng phức tạp chỉ bằng một đo ạn chương trình VS r ất ngắn gọn (so với các ngôn ngữ lập trình khác). 1.2.2. Lựa chọn chế độ chạy song song hoặc tuần tự Các ngôn ngữ thông dịch thường phải chạy dưới dạng tuần tự (chạy h ết l ệnh này rồi mới đến lệnh khác). Tuy vậy, trong mô phỏng, đôi khi ta c ần tạo nhiều thao tác mô phỏng đồng thời (ví dụ như hai hay nhiều vật cùng chuyển động một lúc). Vì v ậy, VS có thể cho phép người lập trình thiết lập được chế độ xử lý lệnh là song song hay tuần tự. Đây cũng là một đặc điểm độc đáo và tiện dụng c ủa ngôn ngữ VS so v ới các ngôn ngữ lập trình khác. -4-
  5. 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-
  6. 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-
  7. 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 với các bài toán dựng hình, Violet đã cung c ấp sẵn m ột file th ư vi ện các thao tác chuẩ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” 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 ... 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-
  8. 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 then end_if Lệnh lặp for from to step 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-
  9. VIOLET Group Ngôn ngữ lập trình Violet Script 2. Ngôn ngữ Violet Script trong tạo bài giảng 2.1. Khả năng của ngôn ngữ Trong các phần mềm công cụ tạo bài giảng, người sử dụng sẽ sử d ụng các ch ức năng có sẵn trong phần mềm để tạo ra các màn hình thể hiện nội dung ki ến thức. Vì v ậy, để thực hiện được việc bao quát cả một chương trình học thì phần mềm công c ụ sẽ cần có rất nhiều chức năng, mỗi chức năng lại cần nhiều thao tác căn chỉnh và thi ết lập tham số, do đó sẽ rất khó dùng. Ngôn ngữ lập trình tránh được nhược đi ểm này, vì v ề bản ch ất nó không ph ải là "sử dụng các chức năng có sẵn" mà giúp "tạo ra các ch ức năng m ới". Do v ậy, kh ả năng để thực hiện những yêu cầu người dùng của một ngôn ngữ lập trình là không có giới hạn. Ngôn ngữ Violet Script 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) -9-
  10. VIOLET Group Ngôn ngữ lập trình Violet Script • 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) • 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ị. - 10 -
  11. VIOLET Group Ngôn ngữ lập trình Violet Script 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: 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 -
  12. 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 Ứng dụng Hình ảnh tượng Point Ký hiệu điểm trên hình vẽ (điểm) Ruler Sử dụng làm vật kê để vẽ các đoạn (thước kẻ) thẳng Compa Dùng để vẽ các hình tròn hoặc cung (compa) tròn Pencil Dùng để vẽ đoạn thẳng hoặc các (bút chì) đường đồ thị Protractor Dùng để xác định góc trong việc vẽ (thước đo góc) góc TSquare Dùng để vẽ đoạn thẳng vuông góc (ê-ke) với một đoạn thẳng có sẵn Measurer Dùng để đo cạnh hoặc góc Có hình dạng là thước kẻ hoặc (thước đo) thước đo góc tùy ý người sử dụng Burin Dùng để cắt các đa giác (dao cắt) - 12 -
  13. 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 1. Tên đối tượng Tạo lập và cho xuất hiện một đối xuất_hiện 2. Tọa độ của đối tượng tượng tại vị trí X, Y với các tham số cụ thể tùy theo loại đố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) disappear Tên một (hoặc nhiều) đối Làm cho các đối tượng biến mất biến_mất tượng (mờ dần rồi mất hẳn) move 1. Tên đối tượng Vừa dịch chuyển vừa quay đối dịch_chuyển 2. Tọa độ mới (x, y) 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 3. Góc quay đối tượng 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 -
  14. 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 Tên đa giác Tạo một đa giác đa_giác Vị trí đa giác Tọa độ các điểm của đa giác clip Tọa độ của 2 điểm bất kỳ Cắt tất cả các đa giác trên màn hình cắt nằm trên đường thẳng cắt theo một đường thẳng unify Tên đa giác Hợp nhiều đa giác thành một đối hợp Tên các đa giác sẽ được hợp tượng vào đa giác đầu tiên flip Tên đa giác Lật một đa giác qua trục tung lật 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 -
  15. VIOLET Group Ngôn ngữ lập trình Violet Script 3.3. Các lệnh đồ họa Tên lệnh Tham số Tác dụng erase Tên đối tượng cần xóa Xóa nội dung của đối tượng circle Tọa độ của tâm Vẽ đường tròn biết tâm và bán kính. Bán kính đường tròn line Tọa độ 2 điểm đầu mút Vẽ đoạn thẳng qua 2 điểm note_angle Kiểu đánh dấu Đánh dấu góc và ký hiệu giá trị của ký_hiệu_góc Giá trị ký hiệu góc Ba điểm hoặc 3 tọa độ điểm note_edge Kiểu đánh dấu Đánh dấu cạnh và ký hiệu giá trị của ký_hiệu_cạnh Giá trị ký hiệu cạnh Hai điểm hoặc 2 tọa độ điểm attach_pen Đối tượng Gắn vào đối tượng một điểm, mà Tọa độ điểm được gắn bút khi thay đổi vị trí của đối tượng thì điểm này sẽ lưu lại vết detach_pen Đối tượng Gỡ bỏ điểm đã gắn ra khỏi đối tượng Ví dụ vẽ tam giác qua 3 điểm (x1, y1), (x2, y2), (x3, y3) với đầy đủ ký hi ệu c ạnh góc function ShowTriangle x1, y1, x2, y2, x3, y3 poly_line x1, y1, x2, y2, x3, y3, x1, y1 set_paper Paper, 2, 0x003FBF note_edge 2, "value", x2, y2, x1, y1 note_edge 1, "value", x3, y3, x2, y2 note_edge 0, "value", x1, y1, x3, y3 note_angle 0, "value", x2, y2, x1, y1, x3, y3 note_angle 2, "value", x3, y3, x2, y2, x1, y1 note_angle 1, "value", x1, y1, x3, y3, x2, y2 end function main ShowTriangle 2, 7, 7, 7, 3.5, 4 end - 15 -
  16. VIOLET Group Ngôn ngữ lập trình Violet Script 3.4. Các lệnh phục vụ tính toán trong hình học phẳng Tên lệnh Tham số Tác dụng get_point Tọa độ của kết quả Chuyển từ tọa độ cực sang tọa độ lấy_điểm Tọa độ của điểm gốc Đề-các (tính tọa độ của điểm biết R và ϕ trong hệ tọa độ cực) Góc ϕ Khoảng cách R get_angle Góc ϕ (kết quả) Lấy góc ϕ (trong hệ tọa độ cực) từ lấy_góc Tọa độ của điểm tọa độ của một điểm so với điểm gốc Tọa độ của điểm gốc Kiểu vẽ đoạn thẳng get_perpendicular Tọa độ điểm kết quả Tính vị trí của chân đường vuông Tọa độ điểm góc hạ từ một điểm xuống một đường thẳng Tọa độ của hai điểm nằm trên đường thẳng get_intersection1 Tọa độ điểm kết quả Tính giao điểm giữa hai đường Tọa độ 2 điểm trên đường thẳng thẳng thứ nhất Tọa độ 2 điểm trên đường thẳng thứ hai get_intersection2 Tọa độ điểm kết quả thứ Tính hai giao điểm của một đường 1 thẳng và một đường tròn Tọa độ điểm kết quả thứ 2 Tọa độ 2 điểm trên đường thẳng Tọa độ tâm đường tròn Bán kính đường tròn 3.5. Các lệnh chờ đợi Tên lệnh Tham số Tác dụng delay Thời gian trễ Dừng (trễ) một khoảng thời gian trễ wait_click Tên các nút đồ họa đang Đợi cho đến khi người dùng click vào đợi_nhấn chờ được nhấn nút đồ họa trên màn hình. Nếu lệnh không có tham số nghĩa là chờ đến khi nhấn nút Next và nút Back. Các nút đồ họa có thể được nạp từ file - 16 -
  17. VIOLET Group Ngôn ngữ lập trình Violet Script ngoài bằng lệnh load_movie 3.6. Các lệnh phục vụ xử lý tương tác Tên lệnh Tham số Tác dụng set_drag 1. Đối tượng cần thao tác Thiết lập một đối tượng là có thể kéo kéo_thả 2. Thao tác (true) hay thả được hay không không (false) input_line Tọa độ 2 điểm đầu mút Nhập một đoạn thẳng (2 điểm) bằng nhập_đoạn đoạn thẳng cách nhấn vào kéo chuột input_point Tọa độ điểm Nhập một điểm bằng cách nhấn chuột input_data Tiêu đề hộp nhập Hiện ra một hộp thoại cho phép nhập Tiêu đề và tham số thứ 1 một hoặc nhiều tham số từ bàn phím Tiêu đề và tham số thứ 2 ... 3.7. Các lệnh điều khiển hệ thống Tên lệnh Tham số Tác dụng parallel Không Thiết lập chế độ thực hiện các lệnh là song_song song song sequence Không Thiết lập chế độ thực hiện các lệnh là tuần_tự tuần tự fscommand 1. command Thực hiện lệnh fscommand của Flash 2. param Action Script. - 17 -
  18. VIOLET Group Ngôn ngữ lập trình Violet Script 4. Các bài toán mẫu 4.1. Giới thiệu Các bài toán mẫu dưới đây là các ví dụ hoàn chỉnh viết bằng ngôn ngữ VS, giúp cho người đọc hiểu được ý tưởng cơ bản của việc lập trình, đồng thời cho thấy các quy tắc chung để tạo lập một chương trình VS. Người dùng hoàn toàn có th ể s ử d ụng và phát triển các bài tập mẫu này theo những ý tưởng riêng của mình. Các bài tập mẫu được trình bày ngắn gọn và dễ hiểu, với mục đích cho thấy khả năng tạo các bài giảng sinh động bằng VS là rất dễ dàng. Tất nhiên, nh ững khả năng th ực sự mà VS làm được còn lớn hơn nhiều so với những những gì th ể hi ện trong các ví d ụ ở đây, mà thậm chí ngay cả tác giả của ngôn ngữ lập trình cũng ch ưa th ể khám phá ra h ết được. 4.2. Vẽ đồ thị hàm số Trong chương trình học cấp 2 và cả cấp 3 đều có các bài tập vẽ đ ồ th ị hàm số. Đ ể giải quyết một bài tập này sẽ không hề đơn giản (phải tính đạo hàm, vi phân, khảo sát sự biến thiên hàm số,…), vậy mà cũng chỉ quanh quẩn ở m ột số d ạng hàm s ố c ơ b ản. Tuy nhiên, với một ngôn ngữ lập trình bình thường, ta có thể vẽ được đ ồ th ị bất kỳ mà không cần phải tính toán đạo hàm, vi phân,… Với VS, việc vẽ đồ thị còn dễ dàng hơn nhiều. Ví dụ dưới đây sẽ vẽ đồ thị hàm số y = (x-2)*(x-1)*x*(x+1)*(x+2), nghĩa là một đồ thị cắt trục hoành tại các điểm -2, -1, 0, 1 và 2. function main line 0, y0 = 6, 16, y0 line x0 = 8, 0, x0, 12 set_paper Paper, 3, 0xFF00FF appear Pencil attach_pen Pencil for x from -2.2 to 2.4 step 0.05 y = (x-2)*(x-1)*x*(x+1)*(x+2) set_pos Pencil, x0 + x, y0 - y delay 1 next end - 18 -
  19. VIOLET Group Ngôn ngữ lập trình Violet Script 4.3. Bài toán quỹ tích Bài toán 1: Cho một điểm A cố định nằm trong đường tròn tâm O, kẻ đường thẳng qua A cắt đường tròn tại P. Tìm quỹ tích trung điểm M của OP khi P chuyển động trên đường tròn. function main set_paper Paper, 2, 0xBF00BF appear Point, ox=8, oy=6, "O", right appear Point, ax=8, ay=8, "A", left circle ox, oy, 4 appear Point, 0, 0, "M" attach_pen PointM for angle from 135 to 135-360 step -2 get_point &px, &py, ox, oy, angle, 4 appear Point, px, py, "P" set_pos PointM, (px+ax)/2, (py+ay)/2 set_paper Draft, 2, 0x0000BF erase line ax, ay, px, py note_edge 2, "", M, P note_edge 2, "", M, A delay 1 next end Bài 2: Đường Cycloide Đường quỹ tích được sinh ra khi một vòng tròn chạy xung quanh m ột vòng tròn khác. Trong phần chương trình dưới đây 3 biến số R1, R2 và L có th ể đ ược s ửa đ ổi tùy ý sẽ tạo ra vô vàn những loại đường cycloide khác nhau. function main R1 = 2.0 R2 = 0.8 L = 2.0 set_paper Draft, 2, 0 circle x0=8.25, y0=5.75, R1 - 19 -
  20. VIOLET Group Ngôn ngữ lập trình Violet Script set_paper Wheel, 2, 0x0000FF set_fill 0x7FBFFF, 50 circle 0, 0, R2 line 0, -R2, 0, R2 line -R2, 0, L*R2, 0 circle L*R2, 0, 0.1 set_paper Paper, 3, 0xFF0000 attach_pen Wheel, L*R2, 0 for t from 0 to 720 step 2 get_point &x, &y, x0, y0, t, R1+R2 set_pos Wheel, x, y, t*(R1+R2)/R2 delay 1 next disappear Wheel disappear Draft end Mô phỏng cách vẽ đường Cycloide Một trong những dạng đường Cycloide 4.4. Tam giác Napoleon Từ 3 cạnh của 1 tam giác bất kỳ vẽ ra phía ngoài 3 tam giác đ ều. Tâm c ủa 3 tam giác đều này sẽ là đỉnh của một tam giác đều gọi là tam giác Napoleon. - 20 -

Bài tập hai đường thẳng song song dùng violet năm 2024