บทความอื่นๆ ในชุดของ 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 - การสร้างสมการเพื่อคำนวณค่าคำตอบออกมา
เครื่องคอมพิวเตอร์ แปลตรงตัวเลยคือเครื่องสำหรับคำการคำนวณหรือประมวลผลลัพธ์ออกมา โดยเน้นไปที่การคิดเลขทางคณิตศาสตร์!
แล้วในการคำนวณต่างๆ ก็จะเต็มไปด้วยสูตรที่สามารถเปลี่ยนค่าเองไปได้เรื่อยๆ ค่าพวกนี้เราเรียกมันว่า Variable หรือ ตัวแปร นั่นเอง (ใครยังไม่รู้จักตัวแปรแนะนำให้กลับไปศึกษาวิชาคณิตศาสตร์นะ เอาแค่ระดับเลข ม.ต้น ก็น่าจะรู้จักตัวแปรแล้ว)
ทำไมต้องมีตัวแปร
ถ้าเราสร้างโปรแกรมขึ้นมาโปรแกรมหนึ่ง แล้วโปรแกรมนี้ไม่สามารถหาคำตอบอื่นได้เลยนอกจากค่าที่โปรแกรมเมอร์กำหนดลงไปเท่านั้นมันคงจะเป็นโปรแกรมที่น่าเบื่อแย่ เช่นถ้าเราสร้างโปรแกรมเครื่องคิดเลขขึ้นมา แต่ดันหาคำตอบได้แค่ 1 + 1 หรือ 1 + 2 เท่านั้น ถ้าเป็นเลขนอกเหนือจากนี้ จะคิดไม่ออก คงจะแย่น่าดู
ตัวแปรเป็นสิ่งที่เกิดมาเพื่อให้คอมพิวเตอร์สามารถจำค่าต่างๆ ที่กำลังคิดเลขอยู่ในตอนนั้นได้ (และเพราะค่าที่เก็บไว้จะเปลี่ยนไปเรื่อยๆ ตามการคำนวณแต่ละอย่าง เราเลยเรียกว่าตัวแปร-แปรเปลี่ยนไปได้ไง)
ภาษาซี ต้องประกาศตัวแปรก่อนใช้งานนะ
ในวิชาเลข เวลาเราจะใช้ตัวแปร เราสามารถเขียนประมาณนี้ได้
x = 1 y = 10 + 20
นั่นคือเรากำหนด "ค่า" (value) 1 แล้วส่งเข้าไปเก็บไว้ในตัวแปรที่ชื่อว่า x
ส่วนในบรรทัดต่อมา เรากำหนดค่า 10 + 20 (ซึ่งคิดออกมาได้ 30) แล้วส่งไปเก็บไว้ในตัวแปรชื่อ y
นั่นเอง
แต่สำหรับภาษาซีแล้ว อยู่ๆ เราจะกำหนดตัวแปรลอยๆ แบบนี้ไม่ได้!
(บางภาษาโปรแกรมเช่น PHP, Python สามารถทำได้)
เราจะต้องทำสิ่งที่เรียกว่า..
Variable Declaration
การประกาศตัวแปร
ซะก่อนนะ โดยใช้รูปแบบดังนี้
type var-name type var-name = value
เช่น "ต้องการตัวแปรสำหรับเก็บตัวเลขจำนวนเต็มชื่อ x" เราจะต้องเขียนว่า
int x;
ซึ่ง int
ย่อมาจาก integer ที่แปลว่าจำนวนเต็มนั่นเอง (หมายถึงจำนวนที่ไม่มีจุดทศนิยม เช่น 1, 2, 256, -8 แต่ไม่ใช่ 1.5 , 3.14) และแน่นอนว่าอย่าลืม ;
หลังคำสั่งด้วยนะ (ทุกครั้งที่จบคำสั่ง ต้องใส่ทุกครั้ง)
(ส่วนไทป์หรือชนิดของตัวแปรมีอะไรบ้าง เดี๋ยวต่อกันในหัวข้อต่อไป)
และตัวแปรในภาษาซีเป็นรูปแบบ Type-Sensitive หรือซีเรียสเรื่องไทป์ของตัวแปรมากๆ ถ้าเราสร้างตัวแปรแบบ int
(จำนวนเต็ม) ขึ้นมา เราก็ไม่สามารถเอาค่าชนิดอื่น เช่น char
(ตัวอักษร) ใส่ลงไปได้
แล้วหลังจากเราทำการ "ประกาศตัวแปร" เสร็จเรียบร้อย เราก็จะเริ่มใช้งานตัวแปรของเราสำหรับการคำนวณอะไรก็ได้ เช่น
int x; x = 1; //ตอนนี้ x จะเก็บค่า 1 //หรือไม่พอใจ จะเปลี่ยนค่าให้ x ก็ได้ x = 2; //ตอนนี้ x ก็จะมีค่าเท่ากับ 2 แล้ว //หรือใส่เป็น expression (สมการ) ก็ยังได้ x = 1 + 2 - 3 * 4 / 5 % 6;
มาดูการใช้ตัวแปรในการคิดเลขอีกตัวอย่างกัน
ex. ต้องการสร้างตัวแปรสำหรับหาผลบวกของตัวเลข 2 ตัว
มีตัวเลข 2 ตัว ดังนั้นเราจะสร้างตัวแปรขึ้นมาก่อน ขอตั้งชื่อว่า first
และ second
(ส่วนเรื่องชื่อตัวแปรตั้งแบบไหนได้บ้าง เดี๋ยวเราจะพูดกันต่อไปนะ) แบบนี้
int first; int second;
หรือในเมื่อทั้ง first และ second ต่างก็เป็น int ทั้งคู่ เราสามารถเขียนแบบนี้ได้
int first, second;
ต่อไปเราก็กำหนดค่าให้ตัวแปรของเรา (อยากหาผลบวกเลขอะไร ก็ใส่ลงไป หรือจะเปลี่ยนทีหลังก็ยังไง)
int first, second; first = 100; second = 20;
ต่อไปเราก็ต้องเอาตัวแปร 2 ตัวนี้มา "บวก" กันด้วย operator +
นั่นเอง
ขั้นเวลา!
ขอบทบวนกันลืมกันเล็กน้อยกับเครื่องหมายสำหรับการคิดเลขที่เรียกกันว่า..
Operator ตัวดำเนินการ
หรือก็คือเครื่องหมายในการคิดเลขนั่นเอง สำหรับการเขียนโปรแกรมจะมีตัวหลักๆ อยู่ 5 ตัวดังนี้
+ - * / %
บวก ลบ คูณ หาร ม๊อด
(สำหรับ % หรือ modulo "หารเอาเศษ" ถ้ายังไม่รู้จักให้อ่านในบทความ Algorithm (1) – ขั้นตอนวิธี หัวใจสำคัญของการเขียนโปรแกรม)
บางภาษาโปรแกรมอาจจะมีมากกว่านี้ เช่น ^
หรือ **
ที่ใช้สำหรับการคิดเลขยกกำลัง แต่ก็ไม่ใช่ทุกภาษาที่มีนะ
กลับมาต่อที่โจทย์ของเรา ก็จะได้เป็นว่า
int first, second;
first = 100;
second = 20;
first + second;
แต่การเอาเลข 2 ตัวมาบวกกันเฉยๆ แบบนี้ คำตอบที่ได้จะไปไหนล่ะ?
ไม่มีที่ไปสินะ นั่นแปลว่าเรายังไม่ได้สร้างตัวแปรสำหรับเก็บคำตอบเลยยังไงล่ะ งั้นเอาแบบนี้ เราจะเก็บคำตอบลงไปในตัวแปรชื่อ answer
int first, second;
first = 100;
second = 20;
answer = first + second;
แต่อย่าลืมนะ (อันนี้ขอเตือนเลย เป็นหนึ่งในจุดที่มือใหม่ลืมกันบ่อยมาก) คือเราจะใช้ตัวแปร เราจะต้องประกาศตัวแปรซะก่อน
int first, second;
first = 100;
second = 20;
int answer;
answer = first + second;
หรือจะเขียนแบบนี้ก็ยังได้
int first, second, answer;
first = 100;
second = 20;
answer = first + second;
สังเกตว่าเราจะประกาศตัวแปรที่ไหนก็ได้ ขออย่างเดียวคือต้องประกาศก่อนใช้งานเสมอ!
int first, second; first = 100; second = 20;answer = first + second;//แบบนี้ไม่ได้ เจอ error แน่นอน เพราะภาษาซีจะบอกว่ามันไม่รู้จักตัวแปร answer (ภาษาซีอ่านและทำงานทีละบรรทัดจากบนลงล่าง) int answer; //ประกาศตรงนี้ ก็จะเริ่มใช้ได้จากบรรทัดนี้เป็นต้นไป แต่จะย้อนกลับไปให้บรรทัดบนๆ ไม่ได้แล้วนะ
มาถึงตรงนี้ หลายๆ คนอาจจะมีคำถาม
"แล้วเราจะแสดงค่าคำตอบออกมายังไงล่ะ?"
เพราะว่าเรายังไม่ได้พูดถึงเรื่องจาก input/output กันเลย ดังนั้นในบทนี้เราจะพักเรื่องของตัวแปรเอาไว้แค่นี้ก่อน แล้วบทต่อไปเราจะมาพูดถึงเรื่องของการแสดงผลลัพธ์ออกมากัน
แล้วหลังจากนั้นเราจะกลับมาเจาะลึกเรื่องตัวแปรกันต่อใน Variable part.2 นะ
1 Response
[…] ในบทที่แล้วเราพูดถึงวิธีการสร้างตัวแปรเพื่อเก็บค่า และทำการคิดเลขง่ายๆ กันไปแล้ว ที่ขาดไปของโปรแกรมเราก็คือการแสดงผลคำตอบออกมา ขั้นแรกมาดูส่วนที่ง่ายที่สุดกันก่อนกับการแสดงผล […]