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 นะ

13380 Total Views 3 Views Today
Ta

Ta

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

You may also like...

1 Response

  1. 21 กันยายน 2018

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

ใส่ความเห็น

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