Giới thiệu về các thao tác lập trình trong CloverBlock

Các thao tác lập trình trong CloverBlock

Bài viết này giới thiệu với người đọc các thao tác lập trình với CloverBlock. Các thao tác lập trình trong CloverBlock bao gồm các thao tác chính sau:

  • Thêm một Block
  • Xem vai trò của một Block
  • Kết nối các Block
  • Ngắt kết nối các Block
  • Thay đổi vị trí các Block
  • Thay đổi thông số các Block
  • Xóa Block
  • Nhân đôi Block và cụm Block
  • Xem chuỗi Block dưới dạng thu gọn
  • Vô hiệu hóa và khôi phục Block
  • Thêm chú thích với các Block, đoạn Block

1.Thêm một Block

Việc lập trình trên nền tảng CloverBlock dựa trên nền tảng Google Blockly, nên thay vì phải gõ các dòng code người dùng chỉ cần kéo các khối cơ bản đã được cung cấp từ các khối Blocks để hoàn thiện chương trình code của mình. Về mặt cú pháp ngôn ngữ sẽ tự động được chương trình hoàn thiện, người lập trình chỉ cần đưa vào những ý tưởng lập trình, CloverBlock sẽ giúp người dùng hoàn thiện và chuyển đổi thành ngôn ngữ theo định dạng chuẩn C dành cho nền tảng Arduino.

Để thêm một Block vào trong khu vực code người lập trình cần tiến hành các bước theo hình sau.

  • Bước 1: Nhấn chuột vào vùng khối Blocks có chứa Block mà người lập trình mong muốn sử dụng, sau đó phía bên phải sẽ hiện ra các Block có trong khối Blocks đang chọn.
  • Bước 2: Sau đó người lập trình chỉ chuột vào Block muốn sử dụng (Khi nhấn vào hoặc chỉ vào đó khoảng 1s sẽ hiện ra dòng chữ đen trên nền vàng mô tả ngắn gọn vai trò của Block để người lập trình tiện theo dõi).
  • Bước 3: Nếu Block đang chỉ đúng là Block mà người lập trình có ý định sử dụng thì nhấn chuột trái vào Block đó sau đó kéo Block đó vào vùng code. Chú ý trong quá trình kéo vẫn phải tiếp tục vừa giữ chuột trái vừa kéo. Khi di chuyển đến vị trí muốn đặt Block người lập trình chỉ cần nhả tay khỏi chuột Block sẽ nằm ở vị trí đó và người lập trình có thể thực hiện các thao tác lập trình tiếp theo.

2.Xem vai trò của một Block

Như đã nói ở mục trên trong quá trình thêm Block vào vùng lập trình nếu người dùng chỉ chuột vào Block 1s thì sẽ có hiện ra một dòng chữ màu đen trên nền vàng. Đây chính là mô tả vắn tắt vai trò của một Block. Ngoài ra, thời trang siêu cấp TUNG LUXURY trong chính vùng code, khi người dùng chỉ chuột vào một Block đang trong vùng lập trình khoảng 1s thì dòng chữ chú thích vai trò lẽ hiện lên. Dòng chữ này biến mất khi người lập trình chỉ chuột đi vị trí khác.

3.Kết nối các Block

Các Block trong CloverBlock không chỉ đứng một mình để có thể tạo thành được một chương trình hoàn thiện mà cần có sự kết nối, ghép nối với nhau. Ví dụ như: Phép cộng cần có 2 số hạng đưa vào để hoàn thành phép tính.

Dưới đây là các dạng kết nối có trong CloverBlock:

Có một số dạng Block hiện tại đang được CloverBlock hỗ trợ như hình trên. Mô tả chi tiết cho các dạng trên như sau:

Dạng 1: Là dạng không sử dụng thông số và cũng không trả về thông số (Không dùng làm thông số đầu vào cho Block khác). Ở dạng này không có các dấu khuyết vào cũng như các vết nhô ra như các Block dạng khác.

Dạng 2: Là dạng Block có sử dụng thông số của cụm khác như là thông số đầu vào. Kết quả của Block đầu vào được coi là thông số phục vụ chương trình của Block dạng 2.

Dạng 3: Là dạng Block không sử dụng thông số đầu vào nhưng được sử dụng như đầu vào cho Block khác. Một dạng phổ biến là sử dụng Dạng 3 là đầu vào của Dạng 2 để hoàn thành 1 Blocks hoàn thiện.

Dạng 4: Là dạng Block kết hợp của 2 Dạng 2 và Dạng 3. Dạng Block 4 là dạng sử có sử dụng đầu vào (Có thể là 1, 2 hoặc nhiều hơn nếu cần thiết) và sử dụng là đầu vào của dạng Block khác. Ví dụ như trên hình: Dạng số 4 bên trái là một phép cộng cho phép cộng 2 số hạng và trả về tổng của 2 số đó cho phép đưa vào Block khác để hoàn thiện chương trình; Dạng số 4 bên phải là phép đảo (Phủ định) chỉ sử dụng một đầu vào và trả về phủ định của đầu vào đó đưa vào Block khác để sử dụng.

Dạng 5: Là Dạng Block lồng nhau. Như dạng 5 tại vị trí được khoanh có thể đưa vào đây một số dạng Block dạng 1 hoặc dạng 2 (Hoặc kết hợp của 2 dạng này với các dạng đầu vào khác) như là một Block xảy ra trong một Block khác. Ví dụ như trên hình có thể giải thích như sau: Nếu điều kiện đưa vào Block số 5 là đúng thì Block trong vùng khoanh mới được chạy. Để đảm bảo chạy đúng chương trình Block đưa vào phải nằm gọn trong vùng Block và có dấu hiệu của kết nối (Giải thích ở phần sau).

Dấu hiệu thể hiện có thể kết nối:

Trong quá trình lập trình bằng CloverBlock cần chú ý không phải tất cả các Block đều có thể được kết nối với nhau. Để người lập trình có thể dễ dàng hiểu được khối nào có thể kết nối với nhau, hiện CloverBlock có phát triển dấu hiệu thông báo khả năng kết nối thông qua hình ảnh và âm thanh.

Khi 2 khối Block được kéo lại gần nhau mà có khả năng kết nối với nhau thì trên phần mềm sẽ hiển thị vạch vàng ở khối đang đứng yên để thể hiện 2 khối có thể được kết nối, nếu tại vị trí này mà người dùng thả tay ra khỏi khối đang kéo ngay lập tức phần mềm sẽ hỗ trợ người lập trình ghép 2 Block này với nhau. Sau khi kết nối với nhau sẽ có âm thanh của loa máy tính (Một tiếng tạch) thông báo kết nối đã được thực hiện thành công và trên màn hình cả khối vừa được thả ra sẽ được bọc viền màu vàng.

Dấu hiệu xuất hiện vạch vàng cho thấy 2 Block có thể kết nối được với nhau

Chú ý ở hình trên: Block được bao viền màu vàng là khối đang được kéo (Khối động), Khối chỉ có một cạnh được tô vàng là khối đang đứng yên (Khối tĩnh). Cả hai khối xuất hiện vạch vàng (Một khối được phủ toàn bộ viền, một khối được tô một cạnh) chứng tỏ hai khối này có thể kết nối được với nhau. Và tại vị trí mà 2 khối đang được tô màu như thế nếu thả chuột hai Block sẽ tự động được kết nối với nhau:

Hai Block được kết nối thành công

Khi 2 khối Block không thể kết nối được với nhau dù người lập trình có cố gắng đưa 2 Block lại gần nhau thì không có dấu hiệu như trên. Nếu người dùng cố gắng di chuyển Block này nằm khớp với Block kia thì sau khi thả tay ra 2 Block sẽ tự động bị đẩy ra xa nhau và không có âm thanh nào xuất hiện cả.

Hai Block không thể kết nối với nhau

Hình bên trái khi đưa hai Block lại gần nhau thì không thấy xuất hiện màu vàng ở Block đứng yên (Control LED Block) và khi thả chuột ra thì Block mang số 0 tự động bị đẩy ra xa như hình bên phải. Ngoài ra không có âm thanh xuất hiện thông báo kết nối thành công.

Lồng ghép nhiều tầng Block:

Đối với các Block dạng 2, 3, 4 thay vì chỉ dụng 1 Block trong dạng số 3 và số 4 làm đầu vào cho các dạng Block 2 và 4 người lập trình có thể sử dụng nhiều lớp kết nối (Gọi là kết nối lồng) để thực hiện một nhiệm vụ nào đó cần thiết. Ví dụ như công để thực hiện công thức sau:

Người lập trình có thể sử dụng kết nối lồng để tạo chuỗi kết nối như sau:

X, A, B, C, D là các biến

Sử dụng kết nối lồng yêu cầu độ phức tạp và quản lý tốt vì thế ở giai đoạn mới bắt đầu người lập trình có thể tách rời thành các toán tử nhỏ để dễ dàng hiểu cách tính toán như sau:

Và cách thể hiện trên CloverBlock như sau:

Triển khai tính toán dưới dạng chia thành các Block đơn giản

4.Ngắt kết nối các Block:

Trong một số trường hợp người lập trình muốn thay đổi một chương trình vì thay đổi ý định thiết kế hoặc vì có sự nhầm lẫn trong quá trình thiết kế trước đó nên cần thay đổi các kết nối giữa các Block. Các Block trong CloverBlock được ngắt kết nối theo quy luật (Ngắt kéo theo phụ thuộc và phía dưới). Tức là khi ngắt kết nối của một Block thì các Block được kết nối phía sau và được kết nối như các Block phụ thuộc (Block đầu vào cho Block đang được ngắt, Hoặc Block nằm trong Block lồng) cũng được ngắt và kéo theo.

Để ngắt kết nối của một Block ra khỏi chương tình người lập trình cần di chuyển chuột vào vùng lập trình và chỉ chuột đến vị trí Block muốn ngắt kết nối sau đó nhấn rồi giữ chuột trái và kéo Block đang giữ ra một vị trí đủ xa vị trí hiện tại. Sau khi ngắt kết nối Block có thể tiến hành thay đổi vị trí hoặc xóa Block tùy theo ý muốn của người lập trình.

Ngắt kết nối giữa các Block

5.Thay đổi vị trí các Block

Khi đưa một Block mới vào vùng lập trình, hoặc sau khi ngắt kết nối người lập trình cần lựa chọn một vị trí mới cho Block. Thường thì việc lập trình sẽ được diễn ra tuần tự cập nhật các Block từ trên xuống dưới theo xu hướng Block mới được gắn phía dưới Block đang tồn tại hoặc trở thành Block phụ thuộc của một trong số các Block hiện tại. Tuy nhiên, ngoài ra người lập trình có thể chèn Block mới vào vị trí giữa các Block đang có hoặc đưa một Block đang tồn tại trở thành Block phụ thuộc của Block mới. Tùy vào ý tưởng lập trình mà người dùng có thể tùy chọn các cách thay đổi vị trí phù hợp. Khi di chuyển Block đến vị trí phù hợp người lập trình chỉ cần thả chuột Block sẽ được cập nhật vị trí mới. Và khi vị trí mới được xác nhận có kết nối với Block khác thì sẽ có âm thanh phát ra và toàn bộ cụm Block được thay đổi vị trí đều được tô viền màu vàng để đánh dấu.

Biến một Block thành Block sử dụng Block khác

Đưa một cụm Block thành Block phụ thuộc của Block khác

Chèn một hoặc cụm Block vào giữa những kết nối khác

6.Thay đổi thông số các Block

Về mặt thông số của các Block hiện nay có 3 dạng:

  • Không có lựa chọn thay đổi thông số: Các Block này có vai trò cố định.

Một số dạng Block không cho phép thay đổi thông số

  • Chỉ cho thay đổi trong số những lựa chọn có sẵn: Cho phép người lập trình chọn, thay đổi vai trò của Block trong một số dạng đã được quy định sẵn. Đặc điểm của dạng này là có một ô và có dấu mũi tên trỏ xuống. Để thay đổi thông số người lập trình có thể bấm vào mũi tên đó và lựa chọn theo thông số phù hợp với ý đồ lập trình.

Một số dạng Block cho phép thay đổi thông số theo những lựa chọn

  • Cho phép thay đổi dướng dạng điền thông tin vào Block một cách chủ động. Với dạng Block này người dùng có thể tùy ý điền thông tin chỉ cần đảm bảo phù hợp với kiểu dữ liệu mà Block cho phép là được. Ví dụ như Block số không cho phép điền các ký tự. Để thay đổi thông số các Block này người lập trình cần chỉ chuột vào vị trí ô trống có sẵn trong Block sau đó nhấn chuột rồi điền nội dung mong muốn sau đó di chuột ra khỏi vùng.

Một số Block dạng chủ động thay đổi nội dung

7.Xóa Block

Để xóa các Block người lập trình cần áp dụng lấy Block (Hoặc cụm Block) ra khỏi vị trí hiện tại sau đó thay đổi vị trí của Block. Thay vì đưa Block vào vị trí nào đó người lập trình có thể kéo Block hoặc cụm Block về biểu tượng thùng rác ở góc dưới bên phải của vùng giao diện lập trình hoặc kéo trả về phía ToolBox (Phía bên trái) – Nơi để lấy ra các Block.

Hai cách xóa Block hoặc cụm Block

Ngoài ra có một cách xóa toàn bộ cá Block đang tồn tại trong vùng lập trình (Cách này thường được áp dụng để tạo một dự án mới). Để xóa hết người lập trình cần nhấn vào nút Delete All ở phía trên bên phải của phần mềm. Sau đó phần mềm sẽ hỏi sự đồng ý của người lập trình, nếu người lập trình đồng ý toàn bộ vùng lập trình sẽ trở thành rỗng, nếu không đồng ý thì người dùng có thể tiếp tục chỉnh sửa trên các Block đang có.

Xóa toàn bộ các Bloc trong vùng lập trình

8. Nhân đôi Block và cụm Block

Trong quá trình lập trình có thể người lập trình gặp hiện tượng một hoặc một cụm Block có thể được sử dụng hoàn toàn lặp lại hoặc lặp lại một phần một số Block hoặc cụm Block. Khi đó thay vì kéo thả lại từ đầu từng Block để lắp ghép người lập trình có thể sử dụng tính năng nhân đôi để rút ngắn thời gian lập trình.

Để sử dụng tính năng này người lập trình cần đưa chuột đến vị trí của Block cần nhân đôi sau đó nhấn chuột phải. Sau đó chọn “Duplicate” để tiến hành nhân đôi Block hoặc cụm Block. Chú ý: Việc thực hiện nhân đôi không nhân đôi các Block và cụm Block nằm phía dưới Block đang muốn nhân đôi như việc thực hiện di chuyển Block mà chỉ nhân đôi các Block phụ thuộc của Block đang được chọn (Các Block là thuộc tính vào của Block khác hoặc các Block được nằm bao trong một Block khác)

Nhân đôi một cụm Block

Sau khi nhân đôi, Block (cụm Block) mới sẽ được sinh ra giống hoàn toàn với Block gốc ở vị trí ngẫu nhiên và không kết nối với Block nào cả. Việc còn lại của người lập trình là đưa Block (cụm Block) vừa được sinh ra vào vị trí phù hợp sau đó chỉnh sửa nếu cần thiết.

9.Xem chuỗi Block dưới dạng thu gọn

Với các chương trình đơn giản chúng ta có thể quan sát toàn bộ chương trình lập trình nhưng khi chương trình trở nên phức tạp có thể chúng ta cần thu gọn những Block (Cụm Block) để nhìn giao diện lập trình trở nên thoáng và dễ nhìn hơn.

Để xem chuỗi Block dưới dạng thu gọn, người lập trình cần chỉ chuột vào vị trí cần thu gọn sau đó nhấn chuột phải rồi chọn “Collapse Block”. Khi đó Block sẽ hiển thị dưới dạng thu gọn hơn so với ban đầu. Khi đã thu gọn thì nội dung bên trong của khối không thể chỉnh sửa hay quan sát chi tiết. Để mở lại dưới dạng đầy đủ người lập trình chuột phải vào khối Block đã thu gọn rồi chọn “Expand Block” thì Block (cụm Block) sẽ hiển thị như ban đầu.

Thu gọn dạng hiển thị của cụm Block

Hiển thị Block về dạng đầy đủ

10.Vô hiệu hóa và khôi phục Block

Trong quá trình lập trình có thể người lập trình tạo ra một đoạn chương trình nhưng hiện tại không dùng đến (Hoặc muốn tạm bỏ đi để thử nghiệm chương trình chạy sẽ thay đổi như thế nào). Thông thường chúng ta sẽ nghĩ đến xóa đoạn đó đi. Với một đoạn chương trình đơn giản thì việc xóa một đoạn chương trình sau đó nếu cần thì tạo lại là việc đơn giản nhưng với một đoạn chương trình đã dài và mất thời gian hoặc khó để viết lại thì xóa là một giải pháp rất khó khăn. Để khắc phục những trường hợp này người dùng có thể chọn tính năng vô hiệu hóa Block. Khi một Block (cụm Block) bị vô hiệu hóa thì đoạn vô hiệu hóa đó vẫn được hiển thị trên vùng lập trình nhưng màu sắc đã chuyển sang màu xám và trên thực tế đoạn chương trình đó sẽ không ảnh hưởng đến toàn bộ đoạn chương trình đang có. Với tính năng này người lập trình hoàn toàn có thể an tâm vô hiệu hóa mà khi cần thiết vẫn có thể lấy lại được đoạn chương trình này một cách nhanh chóng.

Để thực hiện vô hiệu hóa Block (Cụm Block) người lập trình chọn vào Block (Cụm Block) đó sau đó nhấn chuột phải và chọn “Disable Block”. Khi đó trên vùng Block đó sẽ chuyển màu và tương đương với việc đã bị loại bỏ hoàn toàn khỏi chương trình lập trình.

Vô hiệu hóa một cụm Block

Khi đến một lúc nào đó cần đến đoạn chương trình vừa bị vô hiệu hóa người lập trình cần thực hiện thao tác khôi phục lại Block (cụm Block) đã vô hiệu hóa trước đó. Để khôi phục người lập trình cần thao tác như sau: Nhấn chuột phải vào Block (Vùng Block) đang bị vô hiệu hóa sau đó chọn “Enable Block”. Ngay sau đó đoạn chương trình đã bị vô hiệu hóa sẽ được khôi phục và sẽ có vai trò ảnh hưởng trong chương trình đang được lập trình. Tiến trình này sẽ giúp cho người lập trình tiết kiệm được rất nhiều thời gian khi tiến hành lập trình các chương trình phức tạp.

Khôi phục một cụm Block

Chú ý: Việc xóa một Block hoặc cụm Block sẽ làm cho đoạn chương trình đó biến mất và không thể khôi phục lại.

11.Thêm chú thích với các Block, đoạn Block

Chú thích chương trình là một trong những việc quan trọng của người lập trình. Trong trường hợp người lập trình cần xem lại hoặc sửa chữa một dự án nào đó đã được lập trình từ rất lâu. Khi đó chương trình lập trình thì vẫn còn nhưng ý tưởng và cách thức vận hành của chương trình rất có thể người dùng đã quên. Khi đó nhiều người sẽ đọc lại chương trình của mình và đưa ra câu hỏi: Chương trình này để làm gì? Đoạn mã này thực hiện điều gì? Muốn chỉnh sửa vấn đề này thì sửa ở đâu?… Có rất nhiều câu hỏi như thế xảy ra với bản thân người lập trình khi nhìn lại chính những chương trình của mình. Vì thế để khắc phục điều này người lập trình nên chú thích lại các đoạn chương trình theo vai trò của các lệnh, vai trò của các biến hoặc vai trò của một cụm chương trình để có thể xem lại sau này hoặc khi chuyển giao cho người khác tham khảo hoặc tiếp tục phát triển người đó có thể dễ dàng hiểu và chỉnh sửa chương trình đang có.

Để tiến hành chú thích một đoạn chương trình trên CloverBlock người lập trình cần thao tác như sau: Nhấn chuột phải vào Block hoặc đoạn Block cần đưa ra chú thích và chọn “Add comment”, khi đó trên góc của Block sẽ xuất hiện một dấu “?” màu xanh, đây chính là chỗ để người lập trình thêm chú thích cho đoạn chương trình đó. Để hiện ra ô thêm chú thích người lập trình nhấn vào ký hiệu “?” đó, khi đó sẽ hiện lên một ô màu vàng, ô này là ô để điền nội dung chú thích. Người lập trình có thể gõ đoạn chú thích vào sau đó nhấn vào dấu “?” một lẫn nữa để đóng đoạn thêm chú thích lại.

Thêm chú thích trong CloverBlock

Sau này để xem lại chú thích cho đoạn chương trình người lập trình cần nhấn vào ký hiệu “?” màu xanh đã nhắc ở trên để hiển thị lại đoạn chú thích đã thêm. Có thể sau đó người lập trình không cần đoạn chú thích đó nữa thì người lập trình có thể xóa đoạn chú thích đó bằng cách nhấn chuột phải vào Block (cụm Block) có chứa chú thích sau đó chọn “Remove Comment”.

Xóa chú thích của Block

Chú ý: Việc thêm chú thích là không cần thiết với toàn bộ chương trình, người lập trình chỉ nên chú thích ở đầu các đoạn lập trình làm công việc nào đó. Không nên chú thích tất cả các Block có trong chương trình.

Ngoài ra, các chú thích sẽ không ảnh hưởng đến kết quả chạy thực tế của các chương trình.

Bài viết liên quan