วันเสาร์ที่ 14 พฤษภาคม พ.ศ. 2554

เริ่มต้นการเขียนโปรแกรมภาษา C ตอนที่ 2

หลังจากที่ได้ทบทวนพื้นฐานภาษา C มาจากตอนที่ 1 มาถึงตอนที่ 2 นี้ ผมจะกล่าวถึงฟังก์ชั่นในการใช้งานในภาษา C เช่น ฟังก์ชั่นตัดสินใจ(if, else, switch) , ฟังก์ชั่นทำซ้ำ(while, for, do while) , ฟังชั่นแสดงผล(printf) เป็นต้น

1. ฟังก์ชั่นตัดสินใจ คือ ?
หากเราเขียนโปรแกรมที่ต้องใช้การตัดสินใจเข้ามาช่วย เช่น ต้องการให้รถเลี้ยวซ้าย หรือเลี้ยวขวา ฟังก์ชั่นตัดสินใจ จึงถูกเลือกใช้งาน


if , else if, else ???

  1.1 If  (เช็ค if อย่างเดียว) !?
เป็นการตัดสินใจอย่างใด อย่างหนึ่งตาม เงื่อนไขโดยถ้าหากเงื่อนไขเป็นจริง ก็จะทำตามคำสั่งใน if


รูปแบบ

if(เงื่อนไข)
{
                คำสั่งที่ 1;
}

Note ในภาษา C คำสั่งต่างๆที่อยู่ในฟังก์ชั่น ต้องมี ; (Semicolon) ปิดท้ายด้วยเสมอ

ตัวอย่าง
int i=0;
if(i<10)
     {
          printf(“/fi Value = %d”,i);
          i++;
     }

การทำงาน  เรากำหนดตัวแปร i เป็นชนิด integer มีค่าเท่ากับ 0 และใช้คำสั่ง if เพื่อตัดสินใจ โดยถ้าค่า i น้อยกว่า 10 จะเข้าไปทำด้านใน if  แสดงค่าของ i ออกทางจอแสดงผล และเพิ่มค่า i 1 ค่า ก่อนออกมาจาก if

1.2 if –else (เช็ค if และมี else เข้ามาช่วยในกรณีอื่นๆ) ??
เป็นการตัดสินใจอย่างใด อย่างหนึ่งตาม เงื่อนไขโดยถ้าหากเงื่อนไขเป็นจริง ก็จะทำตามคำสั่งใน if แต่ถ้าหากในเงื่อนไขไม่เป็นจริง จะทำอย่างอื่นแทน (else)
รูปแบบ

if(เงื่อนไข)
{
                คำสั่งที่ 1;
}
else
{
                คำสั่งที่ 2;
}


ตัวอย่าง
int i=0;
if(i<10)
     {
          printf(“/fi Value = %d”,i);
          i++;
     }

else
     {
                printf(“/fOut of Value”);
     }

การทำงาน  เรากำหนดตัวแปร i เป็นชนิด integer มีค่าเท่ากับ 0 และใช้คำสั่ง if เพื่อตัดสินใจ โดยถ้าค่า i น้อยกว่า 10 จะเข้าไปทำด้านใน if  แสดงค่าของ i ออกทางจอแสดงผล และเพิ่มค่า i 1 ค่า ก่อนออกมาจาก if เหมือนกับ 1.1 แต่กรณีมี else เข้ามาจะทำให้โปรแกรมเช็คต่อได้ว่าถ้า i มีค่า 10 ขึ้นไปจะแสดงคำว่า “Out of Value”

1.3 if-else if (ใช้กรณีพิจารณาเงื่อนไขเดียวกัน) !!
ใช้ในการพิจรณาเงื่อนไข ที่เป็นเงื่อนไขที่เป็นตัวแปรเดียวกัน เป้นการกระทำหลายๆทางเลือกน่ะ เช่น ต้องการแสดงข้อความเมื่อ i=0 แบบหนึ่ง i=1 ก็อีกแบบหนึ่งเป็นต้น

รูปแบบ
if(เงื่อนไข)
     {
                คำสั่งที่ 1;
     }
else if(เงื่อนไข)
     {
                คำสั่งที่ 2;
     }

ตัวอย่าง
int i=0;
if(i<10)
     {
          printf(“/fValue less than 10”);
          i++;
     }

else if(i>=10)
     {
          printf(“/fValue more than 10”);
          i++;
     }
การทำงาน  เรากำหนดตัวแปร i เป็นชนิด integer มีค่าเท่ากับ 0 และใช้คำสั่ง if เพื่อตัดสินใจ โดยถ้าค่า i น้อยกว่า 10 จะเข้าไปทำด้านใน if  แสดงข้อความว่า “Value less than 10” และเพิ่มค่าของ i อีก 1 แต่ถ้า i มากกว่า หรือเท่ากับ 10 จะแสดงข้อความว่า “Value more than 10”

1.4  Switch-Case (เอาเข้าใจง่ายๆ ก็คือการเลือกสวิซ์น่ะแหละ โดยใช้ case ในการตัดสินใจ )
     การใช้งาน switch จะใช้ case ในการพิจารณาเงื่อนไข และจะเข้าไปทำในคำสั่ง โดย!! จะมี break; ต่อท้าย เพื่อหยุดการทำงานของ case นั้นๆ ถ้าหากไม่มี break; มันก็จะเช็ค case อื่นๆไปเรื่อย จนไปถึง default ได้นะ ระวัง!! อย่าลืม

ส่วน default คล้ายๆกับ else คือไม่ตรงกับเงื่อนไขใด
รูปแบบ
switch(เงื่อนไข)
     {
          case ค่าคงที่ 1 : คำสั่ง 1; 

                            break;
          case ค่าคงที่ 2 : คำสั่ง 2;   

                            break;
          case ค่าคงที่ 3 : คำสั่ง 3;
                            break;
          default คำสั่ง ;
    }

ตัวอย่าง 
int number;
 switch(number)
     {
          case 1 : printf(“/fNumber One”);
                            break;
          case 2 : printf(“/fNumber Two”);  
                            break;
          case 3 : printf(“/fNumber Three”);
                            break;
          case 4 : printf(“/fNumber Four”);
                            break;
          default printf(“/fNumber More Than 4”);
    }

นำตัวแปร number มาพิจารณาเงื่อนไข โดยถ้า เป็น เลข 1 จะแสดงข้อความ " Number One " เลข 2 แสดง
" Number Two " เลข 3 แสดง " Number Three " และ เลข 4 แสดง " Number Four " 
ส่วน default จะแสดงข้อความ " Number More Than 4 " เพราะนอกเงื่อนไขแล้ว

2. ฟังก์ชั่นทำซ้ำำำาา
ต่อไปเป็นฟังก์ชั่นการทำซ้ำ หรือที่เขาเรียกกันว่า " วนลูป " (Loop) นั่นเอง
ทำไมต้องมี วนลง วนลูป ด้วย?
เพราะการเขียนโปรแกรม จำเป็นต้องมีการทำซ้ำๆกันเสมอ ถ้าหากเราไม่ได้มีฟังก์ชั่นการทำซ้ำ โปรแกรมก็จะทำงานแค่ครั้งเดียวนะ เริ่มกันเลยยยย

2.1 While ( ทำซ้ำๆ จนกว่าจะเป็นเท็จ)
ฟังก์ชั่น while เป็นการทำซ้ำเรื่อยๆ มีรูปแบบการใช้งาน ง่าย ๆ อย่างนี้

รูแปบบ

while(เงื่อนไข)
     {
          คำสั่ง;
     }

while จะเช็คเงื่อนไขก่อน ถ้าหากเงื่อนไขเป็นจริง (1) ก็จะทำ คำสั่ง ไปเรื่อยๆจนกว่า เงื่อนไข จะเป็นเท็จ (0)


ตัวอย่าง


int number;
while(number<=30)
     {
          printf(“/fNumber =%d”,number);
          number++;
     }

while จะเช็คตัวแปร number ถ้าหากตัวแปร number มีค่าน้อยกว่า หรือเท่ากับ 30 จะเป็นจริง (1) ก็จะแสดงข้อความ " Number = ... " โดยแสดงค่าตัวเลขจาก number พร้อมเพิ่มค่า number อีก 1 ค่าเรื่อยๆ 
และเมื่อค่า number มีค่ามากกว่า 30 เมื่อไหร่ล่ะก็ เงื่อนไขใน while จะเป็นเท็จ (0) ทันที ทำให้หลุดออกจาก while กันเลยทีเดียว

2.2 do..while (ทำก่อน ค่อยเช็คล่ะกัน)
do..while จะต่างกัน while เพราะว่า while จะเช็คเงื่อนไข่ก่อน แล้วจึงทำคำสั่งภายใน while
  แต่!!! do..while จะทำคำสั่งภายในก่อน แล้วค่อยเช็ค

รูปแบบ


do
     {
          คำสั่ง;


     }while(เงื่อนไข);


do..while จะทำคำสั่งก่อน แล้วค่อยมาเช็คเงื่อนไข ถ้าหากเงื่อนไขเป็นจริง (1) ก็จะทำ คำสั่ง ไปเรื่อยๆจนกว่า เงื่อนไข จะเป็นเท็จ (0)


ตัวอย่าง
int number;
do
     {
          printf(“/fNumber =%d”,number);
          i++;
     }while(number<=30)

do..while จะแสดงข้อความก่อน แล้วค่อยเช็คจาก while ทีหลัง ผลลัพธ์เหมือน while เน้ออออ!

2.3 for (ทำซ้ำในจำนวนจำกัด)
สำหรับ for เป็นการทำซ้ำๆ แบบจำนวนจำกัด คล้ายๆ Limited Edition อ่ะแหละ กร๊ากๆๆๆๆ

รูปแบบ

for(ค่าเริ่มต้นตัวแปรในการทำซ้ำ;เงื่อนไขตัวแปรในการทำซ้ำ;ควบคุมเพิ่มค่าหรือลดค่าในการทำซ้ำ)
     {
          คำสั่ง;
     }

เห็นอธิบายยาวๆ ไม่ต้องกลัวว่ามันยากนะ ง่ายๆ ในการใช้ for จะต้องมีตัวแปรในการควบคุมการทำซ้ำ ก็คือตัวแปร กับเงื่อนไข และจะเพิ่มค่าหรือลดค่าตัวแปร ก็คล้ายๆ i++; หรือ i--;

ตัวอย่าง
int i;
for(i=0;i<=30;i++)
     {
          printf(“/fNumber =%d”,i);
     }

ตัวอย่างการใช้เพื่อแสดงข้อความ (อีกแหละ) กำหนดให้ i=0 เงื่อนไขการทำซ้ำเมื่่อ i มีค่าน้อยกว่า หรือท่ากับ 30 และเพิ่มค่า i อีก1 ค่าหลังจากจบคำสั่ง
สังเกตุ เราแสดงข้อความได้เลย ไม่ต้องมีคำสั่งเพิ่มค่า i  ต่อท้ายคำสั่งนะ

ต่อไปเป็นฟังก์ชั่น แสดงผลออกทางหน้าจอนะ โดยใน CCS ฟังก์ชั่น printf เป็นการแสดงข้อความผ่านจอคอมพิวเตอร์นะ โดยผ่าน RS232 เดี๋ยวจะมีในบทความต่อๆๆไป จะลงลายละเอียด
เพราะถ้าหากเขียนติดต่อ MCU เราจะแสดงออกจากจอ lcd ขนาดต่างๆ เช่น lcd 16x2 เป็นต้น ไม่ได้แสดงออกหน้าจอคอมพิวเตอร์ แต่ที่เราควรรู้ก็คือ การแสดงผลตัวแปรชนิดต่างๆ โดยผ่านเครื่องหมาย " %... " ตามตารางด้านล่าง


รูปภาพมันเล็ก กดขยายที่รูปเลยนะ
รูปแบบ


printf("ข้อความที่จะแสดง");
แสดงข้อความ ASCII

หรือ

printf("ข้อความที่จะแสดง %....",ตัวแปร);

%... ตามตารางด้านบน จะคั้นด้วย , ตัวแปรที่ใช้แสดง


ตัวอย่าง

printf("/fBasic4MCU everyone can touch!"); // แสดงข้อความ " Basic4MCU everyone can touch! "
printf(“/fNumber =%d”,number); // แสดงตัวเลขจากตัวแปร number %d คือจำนวนเต็ม จะบวกหรือลบ ว่ากันอีกที ใช้กับ signed int
printf(“/fNumber =%u”,number); // แสดงตัวเลขจากตัวแปร number %u คือจำนวนเต็ม ชัดเจน ใช้กับ int
printf(“/fNumber =%x”,number); // ใช้กับ int16 แสดงเลข 8 bits เป็น เลขฐาน 16 เช่น AA, FA เป็นต้น
printf(“/fNumber =%lx”,number); // ใช้กับ int16 แสดงเลข 16 bits เป็น เลขฐาน 16 เช่น AFAF, F45A เป็นต้น

หวังว่าคงไม่ "งง" มากนะครับ สงสัยตรงไหนสามารถโพสในช่องความเห็นได้เลยครับ จะมาตอบให้

ตอนหน้าเป็นตอนที่ 3 เป็นตอนสุดท้าย สำหรับการทบทวนภาษา C เบื้องต้นแล้วนะ จะมีเรื่อง การสร้างฟังก์ชั่นเอง ตัวแปรอาร์เรย์(Array) และตัวแปรพอยเตอร์(Pointer) ซึ่งมีความสำคัญในการเขียนโปรแกรมมาก แล้วเดี๋ยวเราจะมาเริ่มโปรเจคเล็กๆ ง่ายๆ เล่นกันครับ

ไม่มีความคิดเห็น:

แสดงความคิดเห็น