Trước hết, ta cần xác định được bài toán cần xây dựng. Ở đây bài toán mà ta muốn xây dựng là “Tính tổng của 2 số nguyên A, B với A, B nhập từ bàn phím”. Sau đó ta điền đầy đủ thông tin về bài toán như: Mô tả vấn đề, Input, Output.
Ví dụ bài toán: Tính tổng của 2 số nguyên A, B.
Hình 2.8. Giao diện Basic configuration của bài toán tính tổng 2 số <p> tính tổng của 2 số nguyên A, B </ p> <h3> Input </ h3> <p> 2 số nguyên A, B nhập từ bàn phím </ p> <h3> Output </ h3> <p> Tổng của A và B </ p> <h3> Ví dụ </ h3>
<pre> <strong> đầu vào: </ strong> 5
15
<strong> Output: </ strong> 20 </ pre>
Tiếp theo đến mục Logic, chúng ta cần hòan thành bốn nội dung chính:
Hình 2.9. Giao diện Logic của bài toán tính tổng 2 số
Lưu ý ở phần lựa chọn ngôn ngữ (Languages) cho bài toán của mình, ta có thể lựa chọn đánh dấu tất cả hoặc có thể chỉ lựa chọn một số ngôn ngữ để khi người gửi đáp án có thể lựa chọn ngôn ngữ mình sử dụng để viết mã nguồn.
Trong mục Input, Output ta phải điền ví dụ cho kết quả đúng khi chạy chương trình. Nếu không làm đúng mẫu đến khi chạy chương trình sẽ cho ta một kết quả sai.
Hình 2.10. Giao diện Additional settings của bài toán tính tổng 2 số nguyên Điều thú vị khi xây dựng bài toán trên http://scarky.com đó là có rất nhiều tiện ích mà bạn có thể ứng dụng trong giảng dạy. Ví dụ như, khi xây dựng bài toán trong mục Rank Type (Loại xếp hạng) người gửi có thể sử dụng các lựa chọn để xác định bảng xếp hạng các đáp án của những người có lời giải cho bài toán tùy theo mục đích của từng người gửi bài và sẽ được hiển thị trong Hall of Fame. Lựa chọn cách sắp xếp thứ hạng theo Tiêu chuẩn nhị phân, sắp xếp theo ngày - kết quả có thể được chấp nhận hay không, kết quả được sắp xếp theo ngày nộp (lời giải gửi đầu tiên được coi là tốt hơn). Hay đối với những người gửi bài là giáo viên muốn phân loại học sinh giỏi dựa vào kết quả của lời giải thì có thể sử dụng lựa chọn sắp xếp theo Tiêu chuẩn nhị phân, sắp xếp theo thời gian - kết quả sẽ được sắp xếp theo thời gian thực hiện (chương trình chạy nhanh hơn được coi là tốt hơn). Ngoài ra có thể lựa chọn sắp xếp theo Tiêu chuẩn nhị phân, sắp xếp theo bộ nhớ - cũng tương tự kết quả có thể được chấp nhận hay không, các đáp án được sắp xếp bởi việc sử dụng bộ nhớ (chương trình sử dụng bộ nhớ ít hơn được coi là tốt hơn). Hoặc xếp hạng lời giải theo Chiều dài tối thiểu nguồn - kết quả là chiều dài của mã nguồn (chương trình với mã nguồn nhỏ hơn được coi là tốt hơn).
Hơn nữa, nếu muốn kiểm tra mức độ làm bài của HS, người gửi có thể sử dụng lựa chọn thời gian bằng cách xác định Start date (ngày bắt đầu) và End date
(ngày kết thúc) cho bài toán của mình để bài toán chỉ có thể hoạt động trong một khoảng thời gian cho phép.
Sau khi hoàn tất các nội dung cần thiết ta chọn nút lệnh Save challenge để lưu lại bài toán của mình. Một liên kết và mã html được tạo ra (hình vẽ).
Hình 2.11. Liên kết và mã html được tạo ra sau khi lưu bài toán
Liên kết là cần thiết để sửa đổi hay xóa các bài toán, vì vậy không để mất liên kết này nếu không bạn sẽ không thể chỉnh sửa để xóa các bài toán và giữ nó an toàn nếu không bất cứ ai cũng có thể chỉnh sửa bài toán của bạn.
Và sẽ có một thông báo gửi đến địa chỉ mà bạn đã đăng kí để liên kết. Bạn có thể sửa, xóa bài toán của mình.
Hình 2.12. Giao diện Edit challenge của bài toán 2.4.2. Gửi lời giải cho bài toán
Khi liên kết với Đường link được đánh dấu bằng nét vẽ màu đỏ ta có thể thấy được bài toán của mình, có thể làm và gửi lời giải cho bài toán đó.
Hình 2.14. Giao diện nội dung của bài toán tính tổng 2 số nguyên
Để gửi lời giải bạn lựa chọn nút lệnh Answer sau đó dán mã vào Paste the answer here (trường văn bản) được cung cấp hoặc chọn Upload file để tải lên từ các tập tin mã nguồn.
Chọn ngôn ngữ phù hợp với lời giải của mình, ở đây chọn ngôn ngữ Pascal. Ta cũng có thể kiểm tra tùy chọn Reserve this nick for me cho phép bạn bảo lưu nick để chỉ có bạn mới có thể sử dụng nó, chỉ cần cung cấp mật khẩu sau khi bạn gửi câu trả lời. Nick sẽ được dành riêng cho bạn trên toàn cầu và bạn sẽ có thể sử dụng nó trong mọi bài toán trên Scarky. Lựa chọn Give a secret phrase để cung cấp một cụm từ bí mật.
Sau khi đã hoàn tất các công việc trên hãy nhấp vào nút Send solution (gửi lời giải). Sau đó bạn sẽ thấy một màn hình với kết quả chương trình của bạn. Khi bạn gửi một mã nguồn, chương trình của bạn được biên dịch, chạy và đánh giá trên máy chủ Scarky. Vài phút sau khi nộp câu trả lời, bạn sẽ nhận được kết quả.
Nếu lời giải bạn đưa ra mắc những lỗi trình biên dịch thì hệ thống sẽ trả về kết quả thông báo lỗi cụ thể mà chương trình bạn mắc phải.
Hình 2.16. Kết quả trả về khi chương trình gặp lỗi
Hoặc cũng có thể chương trình bạn viết đúng, không mắc lỗi cú pháp nhưng lại không đúng trong tất cả các trường hợp dữ liệu thì hệ thống sẽ trả về kết
quả sai của chương trình, hay chương trình chạy vượt quá thời gian chờ thì hệ thống cũng sẽ thông báo lại kết quả.
Hình 2.17. Kết quả trả về khi chương trình chạy vượt quá thời gian
Hình 2.18. Kết quả của chương trình sai
Nếu lời giải bạn đưa ra là đúng thì sau vài giây chờ đợi chương trình sẽ trả về kết quả chấp nhận câu trả lời của bạn:
Chương 3