วิธีการใช้งาน

1. ภาพรวมระบบ

ส่วนของ Task จะเป็นส่วนที่ใช้สำหรับฝึกหัดการเขียนโปรแกรมอย่างจริงจัง โดยจะมีโจทย์ปัญหา ซึ่งแต่ละข้อจะระบุสิ่งที่ปัญหาต้องการ และเงื่อนไข สิ่งที่คุณต้องทำก็คือ ต้องเขียนโปรแกรมให้ถูกต้องและสอดคล้องตามเงื่อนไขที่โจทย์แต่ละข้อกำหนดไว้ เมื่อคุณส่งโค้ดเข้าสู่ระบบ ระบบจะทำการตรวจโค้ดของคุณ และแจ้งผลเป็นคะแนนให้ทราบทันที และถ้าหากว่าได้คะแนนเต็มในแต่ละข้อ คะแนนสะสมส่วนตัวของคุณก็จะเพิ่มขึ้นด้วย

ส่วนประกอบของหมวด Task จะประกอบไปด้วย 3 ส่วนย่อย คือ

โจทย์ปัญหา

เมื่อเข้าสู่หน้านี้ คุณจะได้พบกับรายการของโจทย์ปัญหา เมื่อคุณคลิกเข้าไปในแต่ละข้อ คุณจะพบกับรายละเอียดของโจทย์ที่คุณจะต้องเขียนโปรแกรมเพื่อแก้มัน คุณจะต้องใช้ความรู้ทางด้านการเขียนโปรแกรมภาษาซี ผนวกกับโครงสร้างข้อมูล และ อัลกอริทึมแบบต่างๆ ที่คุณอาจจะต้องใช้มันในการแก้ปัญหาในบางข้อ

ส่งโค้ด

เมื่อคุณอ่านโจทย์ปัญหา ทำความเข้าใจ และเขียนโปรแกรมจนเสร็จสิ้นแล้ว ส่วนนี้คือส่วนที่คุณสามารถส่งโค้ดของคุณเข้าตรวจได้ โดยทันทีที่คุณส่งโค้ดเข้าตรวจ โค้ดของคุณจะถูกนำมาจัดเข้าเรียงในคิว เมื่อโค้ดของคุณถึงคิวที่จะได้รับการตรวจแล้ว ระบบจะทำการคอมไพล์ ตรวจโปรแกรม และแจ้งผลคะแนนกลับมาให้คุณได้ทราบต่อไป

ผลการตรวจ

เมื่อคุณส่งโค้ดเข้าสู่ระบบ ระบบจะนำคุณมาสู่หน้านี้โดยอัตโนมัติ คุณจะได้เห็นประวัติการส่งโค้ดเข้าตรวจของผู้ใช้ทุกคน หากโค้ดของคุณเข้าคิวอยู่ คุณสามารถอัตเดทผลการตรวจของคุณได้ โดยการ refresh หน้าผลการตรวจนี้ได้ ด้วยการกดปุ่ม F5 โดยที่ผลการตรวจ จะถูกแสดงออกมาเป็นตัวอักษรภาษาอังกฤษ มีทั้งหมด 4 แบบ หรือเป็นประโยค ถ้าหากเกิด error ขึ้น ดังนี้
  • In queue หมายความว่า โค้ดของคุณ อยู่ในคิว รอรับการตรวจ
  • Compiling หมายถึง โค้ดของคุณอยู่ในระหว่างการคอมไพล์
  • Grading หมายถึง โค้ดของคุณอยู่ในระหว่างการตรวจโค้ด
  • Compilation error หมายถึง โค้ดของคุณคอมไพล์ไม่ผ่าน โดยที่คุณสามารถดู compiler message ได้ด้วยการคลิกที่ผลการตรวจนี้
  • Error xxxx หมายถึง ตัวตรวจเกิดการ error กรุณาแจ้ง devteam@programming.in.th
ถ้าการตรวจคำตอบเสร็จสิ้น จะแจ้งผลการตรวจออกมาในรูปแบบของสายอักขระประกอบกันด้วยอักขระดังนี้
  • 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 ผู้เยี่ยมชมและ 1 สมาชิก (0 บอท)