เขียน C++ แล้วเห็นโปรแกรมทำงานทีละบรรทัด
CPP-KUB คือโปรแกรมเขียน C++ สำหรับห้องเรียน พิมพ์ภาษาไทยได้ อธิบาย error ของ g++ เป็นภาษาไทย และมีตัวช่วยมองเห็นตัวแปร call stack และ pointer ขณะโปรแกรมรัน
- ไม่ต้องติดตั้งเพิ่ม
- ไม่ต้องใช้สิทธิ์ admin
- ไม่ต้องต่ออินเทอร์เน็ต
Call stack
ตัวแปรในเฟรมปัจจุบัน
ออกแบบมาให้ครูใช้สอน และนักเรียนใช้เรียน
ทุกอย่างที่เด็กมือใหม่ติด ตั้งแต่ error ที่อ่านไม่ออก จนถึง pointer ที่มองไม่เห็น ถูกแก้ในโปรแกรมเดียว
ตัวช่วยมองเห็นการทำงาน (Visualizer)
กด F9 แล้วเดินโปรแกรมทีละบรรทัด ดูตารางตัวแปร call stack ป้ายรอบของ loop เช่น "วนรอบที่ 2 · i = 1" และภาพหน่วยความจำของ array กับ pointer ค่าที่เพิ่งเปลี่ยนจะเป็นพื้นเหลืองสดมีแสงเรือง
สีแยกตามชนิดข้อมูล
กล่องและคอลัมน์ "ชนิด" ใช้สีเดียวกันทั้งแผง เห็นปุ๊บรู้ปั๊บว่าตัวแปรชนิดไหน
เห็น array และ pointer
array เป็นช่องพร้อมเลข index ส่วน pointer เป็นลูกศรชี้ไปที่ตัวแปรหรือกล่อง heap
แท็บหลายไฟล์แบบ VS Code
ลากเรียงแท็บ คลิกกลางเพื่อปิด จุด ● บอกว่ายังไม่บันทึก และเปิดแท็บเดิมกลับมาให้เมื่อเปิดโปรแกรมครั้งหน้า
รันครั้งเดียว กดแล้วเห็นผล
F5 คอมไพล์และรันทันที มีช่อง "ป้อนข้อมูล" สำหรับ cin และแท็บ "ข้อมูลนำเข้าล่วงหน้า" ให้ทดสอบซ้ำโดยไม่ต้องพิมพ์ใหม่
กันโปรแกรมวนไม่รู้จบ
หยุดให้เองเมื่อไม่มีความเคลื่อนไหวเกิน 15 วินาที หรือพิมพ์ข้อความเกิน 200,000 ตัวอักษร เครื่องในห้องไม่ค้างเพราะ while(true) ของใครคนหนึ่ง
ตัวอย่างโค้ด 10 ตัวอย่าง
รวมตัวอย่างที่มี error ไว้ให้ฝึกอ่านข้อผิดพลาด พร้อมสอนเรื่อง string::size() ของอักษรไทย 1 ตัว = 3 ไบต์
g++ พูดอังกฤษ CPP-KUB แปลให้เป็นไทย
แปล error และ warning เป็นภาษาไทย ไฮไลต์บรรทัดที่ผิด และมีแผง "ปัญหาที่พบ" ที่คลิกแล้วกระโดดไปบรรทัดนั้น ส่วนข้อความที่ยังไม่มีกฎ จะแสดงคำอธิบายทั่วไปพร้อมข้อความเดิมของ g++
main.cpp: In function 'int main()':
main.cpp:6:25: error: expected ';' before 'return'
5 | cout << "สวัสดี" << endl
| ^
| ;
6 | return 0;
คอมไพเลอร์คาดว่าจะเจอเครื่องหมาย ; ก่อนคำว่า return ให้ดูบรรทัดก่อนหน้า (บรรทัด 5) แล้วเติม ; ท้ายคำสั่ง
- พิมพ์และแสดงผลภาษาไทยได้ทุกอย่างเป็น UTF-8 รวมถึง cout << "สวัสดี" และ cin >> ชื่อ
- แปลสาเหตุที่โปรแกรมพังsegfault หารศูนย์ และ stack overflow อธิบายเป็นภาษาไทย
- วางโค้ดจาก Word หรือเว็บแปลงเครื่องหมายคำพูดโค้ง “ ” เป็น " ให้เอง ต้นเหตุ error ที่เด็กเจอบ่อยที่สุด
- เปิดไฟล์เก่า TIS-620อ่านไฟล์ cp874 ได้ และบันทึกใหม่เป็น UTF-8 ให้อัตโนมัติ
- ชื่อโฟลเดอร์ภาษาไทยก็ไม่พังไฟล์คอมไพล์อยู่ในโฟลเดอร์ ASCII เสมอ
- พิมพ์โค้ดและส่งออก PDFภาษาไทยแสดงถูกต้อง มีเลขบรรทัด
แจกทั้งห้องได้ในรอบเดียว
แพ็กเป็นโฟลเดอร์เดียวพร้อม g++ ในตัว ไม่ต้องให้นักเรียนตั้งค่าอะไร
แจกเป็นโฟลเดอร์
ได้โฟลเดอร์ CPP-KUB แจกเป็น zip หรือ USB นักเรียนดับเบิลคลิก CPP-KUB.exe ได้เลย
ใช้ออฟไลน์ทั้งหมด
ห้องคอมที่ไม่มีเน็ตก็ใช้ได้ ไม่ต้องล็อกอิน ไม่ส่งข้อมูลออกไปไหน
ธีมสว่างและมืด
ชุดสีที่ออกแบบเป็นชุดเดียวกัน ขยายตัวอักษรได้ด้วย Ctrl + / Ctrl - ทั้งโค้ดและแผง Visualizer เหมาะกับฉายโปรเจกเตอร์
ดาวน์โหลด
เป็นโอเพนซอร์ส เลือกได้ว่าจะโหลดโปรแกรมที่คอมไพล์แล้วไปใช้เลย หรือโหลดซอร์สโค้ดจาก git ไปคอมไพล์เอง
โปรแกรมสำเร็จรูป สำหรับ Windows
ดาวน์โหลดไฟล์ที่คอมไพล์แล้วจากหน้า Releases แตก zip แล้วดับเบิลคลิก CPP-KUB.exe
- มี g++ ในตัว ไม่ต้องติดตั้งอะไรเพิ่ม
- ไม่ต้องมีสิทธิ์ admin
- ถ้า antivirus ของโรงเรียนแจ้งเตือนผิดพลาด ให้ขอ IT อนุญาตทั้งโฟลเดอร์ CPP-KUB
ซอร์สโค้ดบน git
โคลนจาก GitHub หรือโหลดเป็น zip
รันจากซอร์สระหว่างพัฒนา
ต้องมี g++ ใน PATH หรือวางไว้ที่ compiler\bin\g++.exe และถ้าจะใช้ Visualizer ต้องมี gdb.exe ในโฟลเดอร์เดียวกัน
คอมไพล์เป็นโปรแกรมแจกจ่ายบน Windows
- ดาวน์โหลด MinGW-w64 แบบ zip (เช่นจาก WinLibs หรือ MSYS2) แตกไว้ในโฟลเดอร์
compilerให้ได้compiler\bin\g++.exe - ติดตั้ง Python 3.10 ขึ้นไปบนเครื่องที่ใช้สร้าง
- ดับเบิลคลิก
build_windows.bat - ได้โฟลเดอร์
dist\CPP-KUB\พร้อมแจก
ทดสอบบน Linux และ Windows แล้ว แนะนำให้ลองบนเครื่องนักเรียน 1 เครื่องก่อนแจกทั้งห้อง ยังไม่มีระบบโจทย์ตรวจอัตโนมัติ และ Visualizer ยังพิมพ์ cin สดระหว่างดีบักไม่ได้ ให้ใช้แท็บ "ข้อมูลนำเข้าล่วงหน้า" แทน