Variable (1) – ตัวแปรคืออะไร และ การคำนวณในภาษา C ทำยังไง

รับสอนการเขียนโปรแกรม และ วิชาวิทยาการคอมพิวเตอร์อื่นๆ ดูรายละเอียดได้ที่นี่

เครื่องคอมพิวเตอร์ แปลตรงตัวเลยคือเครื่องสำหรับคำการคำนวณหรือประมวลผลลัพธ์ออกมา โดยเน้นไปที่การคิดเลขทางคณิตศาสตร์!

แล้วในการคำนวณต่างๆ ก็จะเต็มไปด้วยสูตรที่สามารถเปลี่ยนค่าเองไปได้เรื่อยๆ ค่าพวกนี้เราเรียกมันว่า 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 นะ

13524 Total Views 12 Views Today
Ta

Ta

สิ่งมีชีวิตตัวอ้วนๆ กลมๆ เคลื่อนที่ไปไหนโดยการกลิ้ง .. ถนัดการดำรงชีวิตโดยไม่โดนแสงแดด
ปัจจุบันเป็น Senior Software Engineer อยู่ที่ Centrillion Technology
งานอดิเรกคือ เขียนโปรแกรม อ่านหนังสือ เขียนบทความ วาดรูป และ เล่นแบดมินตัน

You may also like...

1 Response

  1. 21 กันยายน 2018

    […] ในบทที่แล้วเราพูดถึงวิธีการสร้างตัวแปรเพื่อเก็บค่า และทำการคิดเลขง่ายๆ กันไปแล้ว ที่ขาดไปของโปรแกรมเราก็คือการแสดงผลคำตอบออกมา ขั้นแรกมาดูส่วนที่ง่ายที่สุดกันก่อนกับการแสดงผล […]

ใส่ความเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องที่ต้องการถูกทำเครื่องหมาย *