1. ภาพรวมระบบ
ส่วนของ Task จะเป็นส่วนที่ใช้สำหรับฝึกหัดการเขียนโปรแกรมอย่างจริงจัง โดยจะมีโจทย์ปัญหา ซึ่งแต่ละข้อจะระบุสิ่งที่ปัญหาต้องการ และเงื่อนไข สิ่งที่คุณต้องทำก็คือ ต้องเขียนโปรแกรมให้ถูกต้องและสอดคล้องตามเงื่อนไขที่โจทย์แต่ละข้อกำหนดไว้ เมื่อคุณส่งโค้ดเข้าสู่ระบบ ระบบจะทำการตรวจโค้ดของคุณ และแจ้งผลเป็นคะแนนให้ทราบทันที และถ้าหากว่าได้คะแนนเต็มในแต่ละข้อ คะแนนสะสมส่วนตัวของคุณก็จะเพิ่มขึ้นด้วย
ส่วนประกอบของหมวด Task จะประกอบไปด้วย 3 ส่วนย่อย คือ
เมื่อเข้าสู่หน้านี้ คุณจะได้พบกับรายการของโจทย์ปัญหา เมื่อคุณคลิกเข้าไปในแต่ละข้อ คุณจะพบกับรายละเอียดของโจทย์ที่คุณจะต้องเขียนโปรแกรมเพื่อแก้มัน คุณจะต้องใช้ความรู้ทางด้านการเขียนโปรแกรมภาษาซี ผนวกกับโครงสร้างข้อมูล และ อัลกอริทึมแบบต่างๆ ที่คุณอาจจะต้องใช้มันในการแก้ปัญหาในบางข้อ
เมื่อคุณอ่านโจทย์ปัญหา ทำความเข้าใจ และเขียนโปรแกรมจนเสร็จสิ้นแล้ว ส่วนนี้คือส่วนที่คุณสามารถส่งโค้ดของคุณเข้าตรวจได้ โดยทันทีที่คุณส่งโค้ดเข้าตรวจ โค้ดของคุณจะถูกนำมาจัดเข้าเรียงในคิว เมื่อโค้ดของคุณถึงคิวที่จะได้รับการตรวจแล้ว ระบบจะทำการคอมไพล์ ตรวจโปรแกรม และแจ้งผลคะแนนกลับมาให้คุณได้ทราบต่อไป
เมื่อคุณส่งโค้ดเข้าสู่ระบบ ระบบจะนำคุณมาสู่หน้านี้โดยอัตโนมัติ คุณจะได้เห็นประวัติการส่งโค้ดเข้าตรวจของผู้ใช้ทุกคน หากโค้ดของคุณเข้าคิวอยู่ คุณสามารถอัตเดทผลการตรวจของคุณได้ โดยการ refresh หน้าผลการตรวจนี้ได้ ด้วยการกดปุ่ม F5 โดยที่ผลการตรวจ จะถูกแสดงออกมาเป็นตัวอักษรภาษาอังกฤษ มีทั้งหมด 4 แบบ หรือเป็นประโยค ถ้าหากเกิด error ขึ้น ดังนี้
- In queue หมายความว่า โค้ดของคุณ อยู่ในคิว รอรับการตรวจ
- Compiling หมายถึง โค้ดของคุณอยู่ในระหว่างการคอมไพล์
- Grading หมายถึง โค้ดของคุณอยู่ในระหว่างการตรวจโค้ด
- Compilation error หมายถึง โค้ดของคุณคอมไพล์ไม่ผ่าน โดยที่คุณสามารถดู compiler message ได้ด้วยการคลิกที่ผลการตรวจนี้
- Error xxxx หมายถึง ตัวตรวจเกิดการ error กรุณาแจ้ง [email protected]
ถ้าการตรวจคำตอบเสร็จสิ้น จะแจ้งผลการตรวจออกมาในรูปแบบของสายอักขระประกอบกันด้วยอักขระดังนี้
- P หมายถึง โปรแกรมของคุณให้คำตอบถูกต้องในชุดทดสอบนั้นๆ และได้คะแนนเต็ม
- H หมายถึง โปรแกรมของคุณให้คำตอบถูกต้องบางส่วน ได้คะแนนส่วนหนึ่ง
- - หมายถึง โปรแกรมของคุณให้คำตอบผิดในชุดทดสอบนั้นๆ
- T หมายถึง โปรแกรมของคุณให้เวลารันโปรแกรมเกินกว่าที่โจทย์ระบุไว้
- X หมายถึง โปรแกรมของคุณเกิดข้อผิดพลาดระหว่างการรัน อาจจะเป็นเพราะ ใช้ memory เกิน หรือ อะไรก็ตามที่ทำให้เกิดผลเสียต่อเครื่องเซิร์ฟเวอร์ ทางเซิร์ฟเวอร์จะตัดโปรแกรมของคุณก่อนที่จะให้ผลลัพธ์สมบูรณ์
2. การตรวจคำตอบของระบบ และตัวอย่างโค้ดโปรแกรม
ระบบตรวจของเว็บไซต์ จะใช้วิธีการตรวจผลลัพธ์จาก Output เป็นหลัก เพราะฉะนั้น โปรแกรมของคุณจะต้องให้ผลลัพธ์จากการรันโปรแกรมสอดคล้องกับเงื่อนไขตามที่โจทย์กำหนด จึงจะได้รับคะแนนเต็มในข้อนั้น
ตัวอย่างโค้ดต่อไปนี้ จะเป็นตัวอย่างของโจทย์ข้อ 0000 A+B Problem ทั้งแบบที่ถูกต้อง และแบบที่ให้ผลลัพธ์ผิดเงื่อนไข
#include<stdio.h>
int main() {
int a,b;
scanf("%d%d",&a,&b);
prinf("%d",a+b);
return 0;
}
#include<stdio.h>
int main() {
int a,b;
printf("a : ");
scanf("%d",&a);
printf("b : ");
scanf("%d",&b);
prinf("%d",a+b);
return 0;
}
คุณสามารถสมมติได้ว่า ระบบตรวจจะ Input ข้อมูลสู่โปรแกรมของคุณตามเงื่อนไขที่โจทย์ระบุเท่านั้น
ตัวอย่างข้อ 0000 A+B Problem เงื่อนไขของ Input หรือข้อมูลนำเข้า จะมีจำนวนเต็ม 2 จำนวนอยู่จำนวนละบรรทัด หน้าที่ของคุณคือ เขียนโปรแกรมเพื่ออ่านค่าจาก Input และนำข้อมูลดังกล่าวไปใช้เพื่อคำนวณหาคำตอบต่อไป
และเงื่อนไขของ Output หรือข้อมูลส่งออก คือ ให้แสดงผลรวมของ Input ทั้ง 2 จำนวน ซึ่งนั่นหมายความว่า คุณต้องส่ง Output ออกมาเป็นค่าผลรวมเท่านั้น หากมีค่าอื่นแทรกเข้ามาใน Input ของคุณ คำตอบจากการรันโปรแกรมของคุณจะผิดทันที ทีนี้ ขอให้คุณสังเกตที่โปรแกรมตัวอย่างด้านบน โปรแกรมแรก เป็นโปรแกรมที่ถูกต้อง เพราะโปรแกรมส่งผลลัพธ์ทางฟังก์ชั่น printf เป็นตัวเลขเพียงจำนวนเดียวเท่านั้น คือค่าของผลรวมของ Input แต่โปรแกรมที่สอง เป็นโปรแกรมที่ผิด เพราะโปรแกรมส่งผลลัพธ์ a : b : ซึ่งเกินจากเงื่อนไขที่โจทย์กำหนด ทำให้ผลลัพธ์ของโปรแกรมดังกล่าวเป็นผลลัพธ์ที่ผิดเมื่อระบบตรวจได้ตรวจโปรแกรมนี้
กำลังออนไลน์: 4 ผู้เยี่ยมชมและ 0 สมาชิก (0 บอท)