เนื่องจาก "ชีทสรุปพี่ต้า - ภาษาซี" ที่เคยเขียนไว้ มันอายุประมาณ 10 ปีแล้ว แล้วตอนที่เขียนก็เป็นช่วงที่เรียนอยู่เลย ยังไม่เคยทำงานจริงมาก่อน ประสบการณ์ยังไม่เยอะ หลังจากกลับไปอ่านใหม่อีกรอบเลยรู้สึกว่าเนื้อหาบางอย่างมันก็ไม่ค่อยดี หรือไม่อัพเดทแล้ว
ดังนั้นเลยคิดว่าจะเขียนสรุปซีรีส์ เขียนโปรแกรมฉบับมือใหม่ อีกครั้ง (ถือว่าเป็น 2nd Edition ก็ได้) และครั้งนี้ตั้งใจจะเขียนทั้งภาษา C, Java, และ Python เลยนะ
ส่วนเนื้อหาและสารบัญของบทความที่เขียนไว้แล้วตอนนี้ดูได้จากข้างล่างนี่เลย
บทความอื่นๆ ในชุดของ C Programming
- [ชีทรวมสรุปการเขียนโปรแกรมภาษา C - First Edition]
- ตอนที่ 1 Intro to C แนะนำภาษาซี
- ตอนที่ 2 Tools โปรแกรมสำหรับการเขียนภาษาซี (1) - IDE
- ตอนที่ 3 Tools โปรแกรมสำหรับการเขียนภาษาซี (2) - คอมไพล์เองด้วย cmd
- ตอนที่ 4 Variable (1) - ตัวแปรคืออะไร และ การคำนวณในภาษา C ทำยังไง
- ตอนที่ 5 Output แสดงผลลัพธ์ด้วย printf ในภาษาซี
- ตอนที่ 6 Variable (2) - ชนิดของตัวแปรประเภทต่างๆ
- ตอนที่ 7 Input - การรับค่าจากผู้ใช้เข้ามาในโปรแกรม
- ตอนที่ 8 Expression - การสร้างสมการเพื่อคำนวณค่าคำตอบออกมา
**หมายเหตุ - ในชุดบทความสอนเขียนภาษาซีเบื้องต้นจะโฟกัสเนื้อหาไปที่ภาษาซี ความรู้เบสิกเกี่ยวกับการเขียนโปรแกรม เช่น programming lanugage หรือ compiler และที่สำคัญคือแนวคิดของ algorithm พวกนี้จะไม่ได้พูดถึงเลย ! ... ดังนั้นถ้าใครยังไม่รู้เรื่องพวกนี้เลยให้อ่านบทความชุด "Intro" ก่อนได้เลยนะ
บทความอื่นๆ ในชุดของ Intro to Programming & Algorithm
- บทนำฉบับรวบรัด! ความรู้พื้นฐานก่อนเริ่มเขียนโปรแกรม
- รู้จักกับตัวแปลภาษา Compiler และ Interpreter
- Algorithm (1) – ขั้นตอนวิธี หัวใจสำคัญของการเขียนโปรแกรม
- Algorithm (2) – อัลกอริทึมในมุมมองของคอมพิวเตอร์
- Algorithm (3) – Decision การสร้างทางเลือกให้โปรแกรม
- Algorithm (4) – loop สั่งให้โปรแกรมทำงานซ้ำๆ
- ตัวอย่างการสร้าง Algorithm
มารู้จักภาษา C กันเถอะ!
ภาษาซีเป็นภาษาโปรแกรมภาษาหนึ่งที่ได้รับความนิยมมาก พัฒนาขึ้นมาโดย Dennis Ritchie ในปี 1972 เพราะว่าตอนนั้นเขาต้องการภาษาสำหรับเอามาสร้างระบบปฏิบัติการ Unix
(โดยที่มาของชื่อ C มาจากภาษาที่เอามาเป็นต้นแบบชื่อว่าภาษา BCPL หรือภาษา B นั่นเอง ตั้งชื่อกันง่ายๆ แบบนี้แหละ)
ข้อดีและจุดเด่นของภาษา C
- โครงสร้างภาษาออกแบบมาดี เขียนง่าย เข้าใจง่าย
- ไม่อิงกับ CPU เครื่อง มีมาตรฐานสำหรับเครื่องคอมพิวเตอร์แทบจะทุกรุ่น (โดยส่วนตัวคิดว่าข้อนี้ไม่จริงเท่าไหร่ สำหรับปัจจุบัน เพราะบางคำสั่งอาจจะใช้ใน Windows ได้แต่รันใน Mac ไม่ได้ แต่ในความหมายนี้เขาเทียบกับภาษาระดับต่ำเช่น Assembly มากกว่า)
- เขียนคำสั่งเพื่อสั่งงาน Hardware หรือ Micro-Controller ได้
- โปรแกรมที่เขียนด้วยภาษาซีมักจะทำงานได้เร็วกว่าโปรแกรมที่เขียนด้วยภาษาระดับสูงอื่นๆ
- เป็นต้นแบบของภาษายอดนิยมหลายภาษามากเช่น Java, C++, C#, PHP, JavaScript ทำให้ถ้าเรารู้ C เวลาไปต่อยอดเขียนภาษาอื่นๆ จะทำให้เข้าใจได้เร็ว
สำหรับการเขียนภาษา C จะต้องมีโปรแกรมสำหรับเขียนภาษาซีและติดตั้ง C compiler ให้เรียบร้อยซะก่อน ซึ่งจะสอนในบทความหน้านะ
C Basic Syntax
ในภาษาปกติจะมีไวยากรณ์หรือ grammar เอาไว้เป็นกฎว่าประโยคของเราจะต้องเรียงยังไง ภาษาคอมพิวเตอร์ก็ไม่ต่างกัน แต่คำว่าแกรมม่าในภาษาโปรแกรมจะเรียกว่า “Syntax” แทน
แล้วโครงสร้างภาษาซีแบบพื้นฐานที่สุดคือรูปแบบต่อไปนี้
int main()
{
//--เขียนโค้ดตรงนี้--//
return 0;
}
หรืออีกแบบหนึ่งคือ
void main()
{
//--เขียนโค้ดตรงนี้--//
}
ในภาษาซีเราจะมีโครงสร้าง 2 แบบที่เจอบ่อยคือรูปแบบการใช้ void
และการใช้ int
ซึ่งสามารถใช้แบบไหนก็ได้ แต่ว่า C Compiler บางตัวจะไม่ยอมให้เขียนแบบ void
คนที่เจอว่าเขียนแบบ void
ลงไปแล้วคอมไพล์ไม่ผ่านสามารถเปลี่ยนไปใช้แบบ int
ได้เลย แต่ต้องอย่าลืมว่าถ้าใช้แบบ int
ต้องจบบรรทัดสุดท้ายด้วย return 0;
ด้วยนะ
(สำหรับเหตุผลว่าทำไมต้องเป็นแบบนี้ เดี๋ยวจะอธิบายในบทของฟังก์ชัน)
*ในสรุปชุดนี้จะใช้รูปแบบ int
เป็นหลัก เพราะเป็นรูปแบบที่คอมไพเลอร์ส่วนใหญ่ทำงานได้!
สิ่งที่ต้องระวังคือภาษาซีเป็นรูปแบบ Case-Sensitive หมายความว่าตัวอักษรตัวใหญ่กับตัวเล็ก ถือเป็นคนละชื่อกันเช่น Main
กับ main
หรือ INT
กับ int
ดังนั้นต้องพิมพ์ตัวใหญ่ตัวเล็กให้ถูกต้องด้วย ส่วนมากคีย์เวิร์ดของภาษาซีจะใช้การพิมพ์ด้วยตัวอักษรตัวเล็กทั้งหมด
hello world!
ในขั้นแรกลองมาทำโปรแกรมง่ายๆ ที่มีชื่อเล่นว่า hello world! กันก่อน
ชื่อ hello world! นี่เป็นชื่อเล่นของโปรแกรมแรกที่ไม่ทำอะไรเลยนอกจากปริ๊นประโยคคำว่า “hello world!” ออกมาทางหน้าจอ ถือเป็นโปรแกรมแรกที่ง่ายที่สุด
ซึ่งจริงๆ เราจะปริ๊นคำว่าอะไรก็ได้นั่นแหละนะ อาจจะเป็นชื่อเล่นของคุณก็ได้ ประโยชน์ของโปรแกรมนี้คือเอาไว้ทดสอบดูว่าเรากำลังจะเขียนภาษาโปรแกรมตัวใหม่ เราติดตั้งคอมไพเลอร์ถูกต้องรึยัง กดรันเองเป็นรึยังเท่านั้นแหละ
ในการปริ๊นค่าออกมาทางหน้าจอ เราจะใช้คำสั่งที่ชื่อว่า
printf()
ซึ่ง printf
นี้ย่อมาจาก print function ซึ่งเป็นฟังก์ชันคำสั่งสำเร็จรูปที่ภาษาซีเตรียมไว้ให้แล้ว แต่เก็บอยู่ใน library (เป็นเหมือนห้องสมุดที่เก็บคำสั่งมากมายเอาไว้) ที่ชื่อว่า stdio.h
(ย่อมาจาก standard input output อย่าอ่านเป็น “สตูดิโอ” นะ)
ถ้าเราจะใช้งาน printf
เราจะต้องบอกภาษาซีก่อนว่าให้โหลดคำสั่งใน stdio.h เข้ามาให้เราด้วย ด้วยคำสั่ง #include
ที่ด้านบนสุดของไฟล์
#include <stdio.h> int main() { printf("hello world!"); return 0; }
แต่ถ้าสังเกตดูการเขียนคำสั่งในภาษา C จะมีการเขียนสัญลักษณ์ ;
(อ่านว่า เซมิโคลอน หรือ เซไมโคลอน) ต่อท้ายเสมอ เพื่อเป็นการบอกว่าตอนนี้น่ะ จบคำสั่งแล้วนะๆ เทียบกับภาษาอังกฤษก็จะเหมือนกับการที่เราเติม full-stop หรือ . หลังจบประโยคนั่นแหละ
หลังจากเราเอาโปรแกรมนี้ไปคอมไพล์และรันดู ผลที่ได้ก็จะเห็นคำว่า “hello world!” โผล่ขึ้นมาในหน้าจอ แบบนี้
hello world!
ซึ่งในบทความต่อไป เราจะมาสอนการคอมไพล์โปรแกรมแรกของเราด้วยทั้งวิธีแบบง่ายคือใช้โปรแกรมเฉพาะทางสำหรับเขียนโค้ดอย่าง IDE หรือการคอมไพล์โปรแกรมเองแบบแมนนวลด้วยการสั่งคำสั่งผ่าน command line