If you enjoy with my Home Page,please CLICK our sponsor banners.Thanks !

2. C ขั้นพื้นฐาน (สำหรับผู้เริ่มต้น)

ราวที่แล้วเราได้พูดถึงโครงสร้างหลักของภาษา C มาแล้วนะครับ ตอนนี้มาพูดถึงตัวแปรบ้าง ตัวแปรมีประโยชน์ตรงที่ช่วยให้เราสามารถเก็บค่าบางค่าได้ชั่วคราวไง ตัวแปรมีหลายประเภทครับ เอาเป็นว่ามาดูตัวอย่างดีกว่าจะได้อธิบายได้ง่ายขึ้น

โปรแกรม #2

/* Comment Section */
main()
ิ{
int lower,upper,step;
float rad,area;
lower = 1; upper = 21; step =2;
rad=lower;
while(rad <=upper) {
area=(22.0/7.0) * rad * rad;
printf("%4.0f %6.2f \n",rad,area);
rad=rad + step;
}
}

จะเห็นได้ว่าโปรแกรมรู้สึกจะยุ่งยากขึ้นอีกนิดหนึ่ง โปรแกรมนี้จะแสดงการคำนวณหาพื้นที่วงกลม ตั้งแต่ วงกลมที่มีรัศมี 1 ไปจนถึงวงกลมที่มีรัศมี 21 โดยนับจาก 1,3,5 ไปจนถึง 21 โดยใช้สูตร Area=22/7 * rad * rad เมื่อ rad คือ รัศมี

มาดูโปรแกรมกัน เห็นบรรทัดแรกครับ มีเครื่องหมาย /* ข้อความ แล้วจบด้วย */ ในระหว่างเครื่องหมายนี้จะเป็น comment หรือคำอธิบาย เราจะพิมพ์อะไรก็ได้ แต่จะไม่เกี่ยวกับโปรแกรมเลย ภายใน block main ครับ ดูบรรทัดนี้
int lower,upper,step;
float rad,area;

สองบรรทัดนี้คือการประกาศค่าตัวแปรที่จะนำไปใช้นั่นเอง จาก
int lower,upper,step; ก็จะหมายความว่า ให้ตัวแปร lower ตัวแปร upper และตัวแปร step ให้เก็บข้อมูลแบบจำนวนเต็ม ( integer : int ) และ float rad,area; ก็คือ ให้ตัวแปร rad และตัวแปร area เก็บค่าข้อมูลแบบจำนวนจริง (float) งงไหม ครับ เอางี้มาดูตัวแปรที่สามารถประกาศให้ใช้ได้ดีกว่า

char
int
float
double
short int
long int
unsigned int

ข้อมูลชนิดตัวอักษร 1 ตัว
ข้อมูลชนิดจำนวนเต็ม
ข้อมูลจำนวนจริง
จำนวนจริงเหมือนกันแต่เก็บได้เป็น 2 เท่าของ float
ก็ตรงกับชื่อนะ เก็บได้ข้อมูลจำนวนเต็มสั้นๆ
เก็บข้อมูลได้จำนวนเต็มยาวขึ้น
เก็บข้อมูลจำนวนเต็มแบบไม่คิดเครื่องหมาย

ยกตัวอย่างการใช้ก็เช่น
char s; ก็ให้ตัวแปร s เก็บข้อมูลแบบตัวอักษรได้ 1 ตัว ( 1 ไบต์ หรือ 8 บิต )
double aa; ก็ให้ตัวแปร aa เก็บข้อมูลแบบ double
long int y; ตัวแปร y เก็บข้อมูลแบบจำนวนเต็มยาวๆ ได้
unsigned int x;ตัวแปร x เก็บข้อมูลแบบจำนวนเต็มไม่คิดเครื่องหมาย
นี่ก็คือตัวอย่างง่ายๆนะครับ สำหรับการตั้งชื่อตัวแปรมีกฎดังนี้ คือ อักษรตัวแรกของชื่อตัวแปรต้องเป็นตัวอักษรเสมอ และตัวแปรจะมีความยาวเท่าไหร่ก็ได้ แต่จะถือว่า อักษร 8 ตัวแรกสำคัญเสมอ เช่น ตั้งว่า microsoftwindows แท้จริงแล้วคอมไพล์เลอร์จะมองเห็นตัวแปรตัวนี้แค่ microsof เท่านั้น แต่ตามการเขียนโปรแกรมทั่วไป มักจะตั้งให้ตัวแปรมีความหมายตรงกับประโยชน์ที่ใช้และมักใช้เครื่องหมาย _ เพื่อให้ง่ายต่อการอ่าน เช่น
my_page_offset มันจะอ่านง่ายกว่า mypageoffset และการใช้ตัวอักษรตัวใหญ่เล็ก ถือว่าเป็นตัวแปรคนละตัว เช่นว่า ONE One one oNe oNE onE ONe ทั้ง 7 ตัวนี้ ถือว่าเป็นตัวแปรคนละตัวกันนะครับ แต่ตามปกติที่โปรแกรมเมอร์ใช้ทั่วไปแล้ว นิยมตั้งชื่อตัวแปรด้วยตัวเล็ก แต่ ตัวใหญ่ใช้เก็บค่าคงที่ และนอกจากนี้ พวกคำสงวน (reserve word) เช่น if, else,while,float ไม่สามารถนำมาตั้งเป็นชื่อตัวแปรได้

มาดูโปรแกรมของเราต่อ ส่วนการกำหนดค่าให้กับตัวแปรนั้น ใช้ lower=1; ก็คือ ให้ค่า 1 แก่ตัวแปร lower อีกอย่างหนึ่งก็คือเราสามารถกำหนดค่าตัวแปรเริ่มต้นตอนประกาศตัวแปรได้เลย เช่น
int maximum=30; ก็หมายความว่า ให้ตัวแปร maximum เก็บข้อมูลแบบจำนวนเต็มและมีค่าเท่ากับ 30 ซึ่งเราสามารถเปลี่ยนค่า 30 นี้ได้ภายหลัง maximum ตัวนี้เป็นตัวแปรนะครับไม่ใช่ค่าคงที่
มาดูประโยค while ดีกว่า while ใช้ในการวนรอบ loop ของคำสั่ง มีรูปแบบคือ
while ( เงื่อนไข )
{

----- ส่วนนี้คือคำสั่ง -----

}

จากโปรแกรม อธิบายได้ดังนี้ คือ while เริ่มต้นด้วยการทดสอบว่าเงื่อนไขที่กำหนดไว้ถูกต้องหรือไม่ (ในตอนแรกถูกต้องเพราะ rad มีค่า 1 ซึ่งน้อยกว่า upper ซึ่งมีค่า 21) ถ้าปรากฏว่าถูกต้องแล้วจึงทำงานใน block { ---- } ได้แก่การคำว่าค่า area และพิมพ์ผลลัพธ์ที่ได้ออกมา
ลองดูส่วนของการคำนวณ
area=(22.0/7.0) * rad * rad; ขอให้สังเกตว่า เราเอา 22.0 / 7.0 ไม่ใช่เอา 22/7 นั่นก็เพราะว่าฟถ้าเราเขียน 22/7 จะหมายความว่าเราเอาจำนวนเต็มหารจำนวนเต็ม ซึ่งภาษา C จะคำนวณเป็นค่าจำนวนเต็ม ผลลัพธ์ที่ได้ C จะตัดทศนิยมทิ้งหมด ซึ่งถ้าเราทำแบบนี้จะได้ผลลัพธ์ 3 ถ้วนๆ ไม่มีทศนิยม
และมาดูส่วนการแสดงผล
printf(" %4.0f %6.2f \n",rad,area); จะเห็นได้ว่ามีการกำหนดรูปแบการพิมพ์ด้วยเครื่องหมาย % โดยใช้ %4.0f เพื่อพิมพ์ค่า rad และใช้ %6.2f เพื่อพิมพ์ค่า area อักษร f นั้นกำหนดให้พิมพ์ค่าเป็นแบบทศนิยม (หรือจำนวนจริง) %4.0f คือ ให้พิมพ์ค่าทศนิยมมีความกว้าง 4 ตัวอักษรไม่มีตัวเลขหลังทศนิยม ส่วน %6.2f คือ ค่าทศนิยมความกว้าง 6 ตัวอักษร และมีค่าหลังจุด 2 หลักนั่นเอง ตัวอย่างของ %6.2f ก็คือผลลัพธ์ดังนี้ 1964.29 นั่นก็คือมีตัวเลข 6 ตัวและมีเลขหลังจุดทศนิยม 2 จุดนั่นเอง
กลับมาดูคำสั่ง while เมื่อวนไปเรื่อยๆ จนมาถึงค่าหนึ่งซึ่ง rad มีค่ามากกว่า upper โปรแกรมก็จะหลุดออกมาจาก block while