วันอาทิตย์ที่ 11 พฤศจิกายน พ.ศ. 2555


                                                  ประวัติความเป็นมาของภาษา  C

            ภาษา  C  ถูกสร้างขึ้นครั้งแรก  โดย  Dennis  M.Ritchie  ซึ่งทำงานอยู่ที่  Bell  Telephone  Laboratories, Inc.  (ปัจจุบันนี้คือ  AT&T  Bell  Laboratories)  ประมาณปี  ค.ศ.1970  โดย  Ritchie  พัฒนาภาษา  C  มาจากภาษา  BCPL  และภาษา  B  ซึ่งในระยะแรกนี้ภาษา  C  ถูกนำมาใช้ภายใน  Bell  Laboratories  เท่านั้น  จนกระทั่งปี  ค.ศ.1978  Brian  W.Kerninghan  และ  Dennis  M. Ritchie  ได้กำหนดนิยาม  ลักษณะ  และรายละเอียดของภาษา  C  ขึ้น  โดยเขียนหนังสือชื่อว่า  “The  C  Programming  Language”  (สำนักพิมพ์  Prentice  Hall) ออกมาเป็นเล่มแรกต่อมาบริษัทคอมพิวเตอร์ต่าง ๆ ได้เริ่มสนใจ  และค้นคว้าพัฒนาภาษา  C  โดยอ้างอิงภาษา  C  ของ  Kernighan  และ  Ritchie  ทำให้มีการพัฒนา  C  compiler  และ  C  interpreter  ขึ้นมาเพื่อให้สามารถใช้กับเครื่องคอมพิวเตอร์ได้หลาย ๆ ชนิด  และสามารถใช้กับโปรแกรมต่าง ๆ ที่บริษัทผลิตขึ้นเป็นการค้า  จนกระทั่งปี  ค.ศ.1985  ภาษา  C  ก็ได้รับความนิยมแพร่หลายไปทั่วโลก  ซึ่งในช่วงนั้นภาษา  C  ที่ใช้กันอยู่มีมากมายหลายชนิด  แล้วแต่บริษัทต่าง ๆ จะสร้างขึ้นซึ่งยังขาดมาตรฐานร่วมกัน  ดังนั้นในปี  ค.ศ.1988  Kernighan  และ  Ritchie  จึงได้ร่วมกับสถาบัน  ANSI (American  National  Standards  Institute)  ได้กำหนดนิยาม  ลักษณะและกฎเกณฑ์ของภาษา  C  ที่เป็นมาตรฐานขึ้นเรียกว่า  “ANSI  C”  ซึ่งปัจจุบันนี้บริษัทที่ผลิตภาษา  C  ไม่ว่าจะเป็นบริษัท  Microsoft  และบริษัท  Borland  ต่างก็ใช้มาตรฐานของ ANSI  C  เพื่อผลิตภาษา  C  รุ่นต่าง ๆ ต่อไป


                                         โครงสร้างอย่างง่ายของโปรแกรมภาษา  C 

            โปรแกรมภาษา  C  ที่สามารถ  execute  ได้  ทุกโปรแกรมจะมีโครงสร้างอย่างง่าย  ดังนี้
            1. มีฟังก์ชันชื่อว่า  main( )  อย่างน้อยหนึ่งฟังก์ชัน  จึงจะสามารถทำการ  execute  program  ได้ลักษณะของฟังก์ชัน  main( )  จะต้องเป็นฟังก์ชันที่ไม่มีการส่งค่าไปยังฟังก์ชันอื่น  หรือไม่มี  argument  นั่นเองและจะต้องไม่มีการส่งค่ากลับมายังชื่อฟังก์ชัน  โดยเราสามารถใช้คำว่า  void  นำหน้าฟังก์ชัน  ซึ่ง  main( )  สามารถเขียนได้ดังนี้  void  main(void)
            2. ขอบเขตฟังก์ชัน  main  (delimiters)  ในโปรแกรมภาษา  C  ใช้เครื่องหมาย  {  แทนการเริ่มต้นฟังก์ชัน  และใช้เครื่องหมาย  }  แทนการสิ้นสุดฟังก์ชัน  ดังนั้นเมื่อเขียนฟังก์ชัน  main( )  ทุกครั้งจะต้องมีเครื่องหมาย  {  และ  }  อยู่ด้วยเสมอ
            3. การปิดท้ายคำสั่งในภาษา C จะต้องใช้เครื่องหมาย ; (semicolon) เป็นการบ่งชี้ให้ C  compiler  ทราบว่าจบคำสั่ง  (statement)  แต่ละคำสั่งแล้ว
            4. ชื่อฟังก์ชันและคำสั่งในภาษา  C  จะต้องเขียนด้วยตัวอักษรตัวเล็ก  (lowercase letter) ทั้งหมดทั้งนี้เพราะ  C  compiler จะคิดว่าตัวอักษรตัวใหญ่  (uppercase letter)  กับตัวอักษรตัวเล็ก แตกต่างกัน  เช่น  main( ) ไม่เหมือนกับ Main( )  หรือ MAIN( )  เป็นต้น
            5. ชื่อตัวแปร  (variable name)  สามารถตั้งชื่อโดยใช้ ตัวอักษรตัวเล็กหรือตัวอักษรตัวใหญ่ก็ได้หรือใช้ตัวอักษรตัวเล็กกับตัวอักษรตัวใหญ่ผสมกันก็ได้ อาทิเช่น ชื่อตัวแปร  name  ไม่เหมือนกับ  Name  หรือ  NAME  เป็นต้น เพราะว่าลักษณะของภาษา  C  จะสามารถจำแนกความแตกต่างของตัวอักษรตัวเล็กและตัวใหญ่ได้  ดังนั้นเราสามารถใช้ตัวอักษรตัวเล็ก  a  ถึง  z  และตัวอักษรตัวใหญ่  A  ถึง  Z  มาตั้งชื่อตัวแปรได้ หรือจะตั้งชื่อตัวแปรเหมือนกัน ทุกประการได้ เช่นชื่อตัวแปร  a  กับ  a  ก็ได้ แต่ตัวแปรทั้ง  2  ตัวนี้จะต้องอยู่ต่างฟังก์ชันกันเท่านั้น ถ้าอยู่ในฟังก์ชันเดียวกัน  compiler  จะบอกข้อผิดพลาดออกมา  ซึ่งหลักเกณฑ์การตั้งชื่อตัวแปรจะอธิบายอย่างละเอียดในหัวข้อ 2.5.2
            จากลักษณะโครงสร้างอย่างง่ายของภาษา  C  ดังกล่าวมาข้างต้นนั้น สามารถเขียนรูปแบบโครงสร้างอย่างง่าย ของโปรแกรมได้ดังนี้

            รูปแบบโครงสร้างอย่างง่ายของโปรแกรมภาษา  


# include<stdio.h>
void main(void)
{
            คำสั่งประกาศตัวแปร;
            คำสั่งหรือฟังก์ชันต่าง ๆ;
}



            เพื่อให้มีความเข้าใจเกี่ยวกับโครงสร้างอย่างง่ายของโปรแกรมภาษา  C  มากยิ่งขึ้น ให้ศึกษาจากโปรแกรมตัวอย่างภาษา  C  ดังต่อไปนี้



            โปรแกรมตัวอย่างที่  2.1  แสดงโปรแกรมภาษา  C  อย่างง่าย


/* simple.c  */
#include<stdio.h>                                              /*  บรรทัดที่  1  */                     
void main(void)                                                    /*  บรรทัดที่  2  */        
{                                                                          /*  บรรทัดที่  3  */
            printf(“Hello, C Language \n”);                        /*  บรรทัดที่  4  */
}                                                                           /*  บรรทัดที่  5  */


             ผลลัพธ์ที่ได้จากโปรแกรม


 คำอธิบายโปรแกรม 

            จากตัวอย่างโปรแกรมภาษา  C  ข้างต้นสามารถอธิบายการทำงานได้ดังนี้
บรรทัดที่  1   #include<stdio.h>  เป็นคำสั่งที่เรียกแฟ้มที่ชื่อว่า  stdio.h  ซึ่งภายในจะบรรจุคำสั่ง หรือฟังก์ชันที่จำเป็นต้องใช้ในภาษา  C  เช่น  printf( ), scanf( )  เป็นต้น
บรรทัดที่  2   void  main(void) เป็นการบอกให้  C  compiler  รู้ว่าฟังก์ชัน  main( ) เป็นฟังก์ชันที่ไม่มีการส่งค่าข้อมูล   และไม่มีการรับค่าข้อมูลกลับ
บรรทัดที่  3   เครื่องหมาย  {  เป็นการแสดงจุดเริ่มต้นของฟังก์ชัน  main( )
บรรทัดที่  4   คำสั่ง  printf(“Hello, C Language \n”);  เป็นคำสั่งที่ใช้พิมพ์ข้อความที่อยู่ในเครื่องหมาย “….” แสดงออกทางจอภาพแล้วขึ้นบรรทัดใหม่เพราะมีรหัส  \n    (new line)
บรรทัดที่  5   เครื่องหมาย  }  เป็นการแสดงจุดสิ้นสุดของฟังก์ชัน   main( )   
สำหรับข้อความที่อยู่ในเครื่องหมาย  /*.......*/  เป็นคำอธิบายในโปรแกรมภาษา  C  เพื่อที่จะอธิบายให้ผู้อ่านได้ทราบว่ากำลังทำอะไรในโปรแกรม ส่วนมากถ้าเขียนโปรแกรมที่มีขนาดใหญ่เราจำเป็นต้องใช้เครื่องหมาย  /*.......*/  โดยที่  C  compiler  จะไม่ทำงานใด ๆ  เมื่อเจอเครื่องหมาย  /*… */

                                        คำอธิบายในโปรแกรมภาษา  C  

            คำอธิบายในโปรแกรม  (program  comment)  คือข้อความที่แทรกอยู่ภายในโปรแกรม  ซึ่งคอมพิวเตอร์จะไม่แปลข้อความนี้ให้เป็นส่วนหนึ่งของโปรแกรม  กล่าวคือจะไม่มีผลต่อการทำงานของโปรแกรม  เขียนไว้เพื่ออธิบายโปรแกรม  ซึ่งในบางครั้งผู้เขียนโปรแกรม อาจต้องการเขียนคำอธิบาย กำกับขั้นตอนการทำงานของโปรแกรมในแต่ละขั้น  ทำให้เกิดประโยชน์กับผู้เขียนและผู้ที่อ่านโปรแกรมได้เข้าใจง่ายขึ้น  และช่วยทำให้การแก้ไขและปรับปรุงโปรแกรมเป็นไปได้ง่ายยิ่งขึ้น
            โปรแกรมตัวอย่างที่  2.2  แสดงการใส่คำอธิบายในโปรแกรมบรรทัดเดียว  โดยการใช้เครื่องหมาย  /*  หน้าข้อความที่อธิบาย  และใส่เครื่องหมาย  */  หลังสิ้นสุดข้อความที่อธิบาย


/* The  first  program  with  C                */     
main()                                                               
{                                                                          
            statement(s);                                               

            จากโปรแกรมตัวอย่างข้างต้นมีคำอธิบายโปรแกรมดังนี้คือ    /* The  first  program  with  C  */  เป็นการอธิบายโปรแกรมบรรทัดเดียว  บอกให้ทราบว่าโปรแกรมนี้เป็นโปรแกรมแรกที่เขียนด้วยภาษา  C

            โปรแกรมตัวอย่างที่  2.3  แสดงการใส่คำอธิบายในโปรแกรมมากกว่า  1  บรรทัด  โดยการใช้เครื่องหมาย  /*  หน้าบรรทัดแรกของข้อความที่อธิบาย  และใส่เครื่องหมาย  */  หลังสิ้นสุดข้อความที่อธิบายของบรรทัดสุดท้าย


/*          test.c   */                                      
/*          This  program  is  to  show           
how  to  write  comments         */  
main()                                                      
{                                                               
            statement(s);                               
}         
        จากตัวอย่างข้างต้นมีคำอธิบายโปรแกรมดังนี้คือ    /*  test.c  */ เป็นการอธิบายโปรแกรมบรรทัดเดียว  บอกให้ทราบว่าโปรแกรมชื่อ  test.c  และ

              /*       This  program  is  to  show             
              how  to  write  comments      */

 เป็นการอธิบายโปรแกรม  2  บรรทัด  แสดงให้เห็นถึงวิธีการใส่คำอธิบายในโปรแกรม


                                      ขั้นตอนการพัฒนาโปรแกรมภาษา  C

การพัฒนาโปรแกรมภาษา  C  มีขั้นตอนดังนี้
            1) เขียนโปรแกรมต้นฉบับ  (source  program)  ด้วยภาษา  C ใช้โปรแกรม  Turbo  C/ C++ เพื่อเขียนโปรแกรมต้นฉบับด้วยภาษา C  จากนั้นบันทึกโปรแกรมพร้อมกับตั้งชื่อแฟ้มไว้ แฟ้มที่ได้จะมีนามสกุล  *.c  หรือ  *.cpp  เช่น  simple.c  หรือ  simple.cpp  เป็นต้น  นอกจากนี้ยังสามารถใช้โปรแกรม  Turbo C/C++  เขียนโปรแกรมภาษา  C++  ได้อีกด้วย
            2) แปลโปรแกรมภาษา  C  ไปเป็นโปรแกรมภาษาเครื่อง  (object  program) ใช้คำสั่ง  compile  เพื่อแปลโปรแกรมภาษา  C  ไปเป็นโปรแกรมภาษาเครื่อง แฟ้มที่ได้จะมีนามสกุล  *.obj  ซึ่งในขั้นตอนนี้โปรแกรมต้นฉบับอาจเกิดความผิดพลาดทางไวยกรณ์ภาษา  (syntax  error)  ขึ้นได้  จึงต้องย้อนกลับไปแก้ไขโปรแกรมต้นฉบับในข้อ  1.  ให้ถูกต้องเสียก่อน
            3) เชื่อมโยง  (link)  โปรแกรมภาษาเครื่องเข้ากับ  library  function  ของภาษา  C  จะได้เป็น  execute  program  โดยใช้คำสั่ง  link  แฟ้มที่ได้จะมีนามสกุล  *.exe
            4) สั่งให้  execute  program   แสดงผลลัพธ์ออกมา โดยใช้คำสั่ง  runในขั้นตอนนี้ผู้เขียนโปรแกรม ควรตรวจสอบผลลัพธ์ที่ได้จากโปรแกรมว่าตรงกับความต้องการของเราหรือไม่  ถ้าผลลัพธ์ที่ได้ไม่ตรงกับความต้องการให้กลับไปแก้ไขโปรแกรมต้นฉบับในข้อ 1.  เสร็จแล้วทำขั้นตอน  ข้อ 2.   ถึง  ข้อ 4. ซ้ำอีก ทำซ้ำเช่นนี้จนกว่าจะได้ผลลัพธ์ที่ต้องการ
หมายเหตุ  ในทางปฏิบัติ  การ  compile/  link/ run  ในโปรแกรม  Turbo  C/C++  สามารถทำให้พร้อมกันทั้ง  3  ขั้นตอน  คือใช้คำสั่ง  Ctrl + F9  (กดปุ่ม  Ctrl  และปุ่ม  F9  พร้อมกัน)
            โดยสรุปเราสามารถเขียนผังงานแสดงขั้นตอนการพัฒนาโปรแกรมภาษา  C  ได้ดังนี้


 ข้อมูลของภาษา  C  

   สำหรับเรื่องข้อมูลของภาษา  C  จะกล่าวถึงเรื่องตัวอักขระ  ค่าคงที่  และตัวแปร  ดังรายละเอียดต่อไปนี้

            2.5.1 ตัวอักขระ  (charactors)

                        ตัวอักขระในภาษา  C  สามารถจำแนกออกเป็น  3  ประเภท  คือ
           1) ตัวเลข  (digits)  คือ  ตัวเลข  0, 1, 2, …., 9  และตัวเลขฐานสิบหก  A, B, C, D, E  และ  F
           2) ตัวอักษร  (letters)  สามารถใช้ตัวอักษรพิมพ์ใหญ่  (uppercase  letter)  คือ A, B, C, …, Z  และ
                ตัวอักษรพิมพ์เล็ก  (lowercase  letter)  คือ  a, b, c, …., z  รวมทั้งสิ้น  52  ตัวอักษร
           3) ตัวอักขระพิเศษ  (special  character)  ซึ่งได้แก่

                         !               *              +             “              <
                        #              (               =             |               >
                         %            )               ~             ;               /       
                         ^             -               [               :               ,(comma)
                        ?              &             _              ]               ‘
                      .(dot)                      b (blank  หรือ  space)
             ยกเว้นเครื่องหมาย _ (underscore)  เพียงตัวเดียวที่ภาษา  C  จัดเป็นตัวอักษรตัวหนึ่ง โดยที่ตัวอักขระชนิดต่าง ๆ  นี้จะถูกนำไปใช้เป็นค่าคงที่  ตัวแปร  ตัวดำเนินการ  หรือนิพจน์    ที่ใช้ในภาษา  C  ต่อไป

            2.5.2 ค่าคงที่  (constants)

                        ค่าคงที่  คือตัวอักขระที่นำมาประกอบกันตั้งแต่  1  ตัวอักขระขึ้นไป  เพื่อบอกลักษณะอย่างใดอย่างหนึ่งของข้อมูล  บางครั้งเราอาจเรียกค่าคงที่ว่า  “ข้อมูล”  (data)  ก็ได้

            ค่าคงที่พื้นฐานที่สำคัญในภาษา  C  มีดังนี้
           
            1) ค่าคงที่ชนิดตัวเลขจำนวนเต็ม  (integer  constant)
                        ค่าคงที่ชนิดนี้จะเป็นตัวเลขจำนวนเต็มซึ่งอาจมีเครื่องหมายบวกหรือลบก็ได้  เช่น  0, 9, 85, -698, 1832, -2080  เป็นต้น  โดยตัวเลขจำนวนเต็มที่จะสามารถเก็บได้ปรกติจะอยู่ในช่วง  -32768  ถึง  32767  เท่านั้น  บางครั้งเรานิยมเรียกค่าคงที่ชนิดนี้ว่าค่าคงที่  int  (integer)
สำหรับการเก็บค่าคงที่ชนิด  int  นี้ภายในหน่วยความจำ  จะใช้เนื้อที่  2  bytes  นอกจากนี้ยังสามารถเขียนค่าคงที่ชนิดนี้ให้อยู่ในรูปแบบตัวเลขฐานแปดและฐานสิบหกได้  โดยใช้ตัวเลขศูนย์  (0)  นำหน้าแล้วตามด้วยเลขฐานแปดที่ต้องการหรือจะใช้ตัวเลขศูนย์เอ็กซ์  (0x  หรือ 0X)  นำหน้าแล้วตามด้วยเลขฐานสิบหกที่ต้องการ  เช่น  046,  027,  0xBD,  0X1BCF  เป็นต้น

            2) ค่าคงที่ชนิดตัวเลขทศนิยม  (floating  point  constant)
                        ค่าคงที่ชนิดนี้จะเป็นตัวเลขจำนวนทศนิยม  ซึ่งอาจจะมีเครื่องหมายบวก  หรือลบก็ได้  หรือเป็นตัวเลขที่สามารถเขียนอยู่ในรูป  E  ยกกำลังได้  เช่น  3.0,  0.234,  -0.54,  4E-06,  1.675E+10  เป็นต้น  โดยตัวเลขทศนิยมนี้จะสามารถเก็บได้ปรกติจะอยู่ในช่วง  1.2E-38  ถึง  3.4E+38  เท่านั้น
สำหรับการเก็บค่าคงที่ชนิด  float  นี้จะใช้เนื้อที่ภายในหน่วยความจำ  4  bytes  โดยที่  3  bytes  แรกจะเก็บค่าตัวเลขทศนิยม  ส่วนอีก  1  bytes  สุดท้ายจะเก็บค่ายกกำลังเอาไว้

            3) ค่าคงที่ตัวเลขทศนิยมที่มีความละเอียดสองเท่า  (double  floating  point)
                        ค่าคงที่ชนิดนี้นิยมเรียกว่า  ค่าคงที่แบบ  double  ซึ่งจะสามารถเก็บตัวเลขทศนิยมที่มีค่าอยู่ในช่วง  2.2E-308  ถึง  1.8E+308  เท่านั้น
สำหรับการเก็บค่าคงที่ชนิด  double  นี้  จะใช้เนื้อที่ภายในหน่วยความจำ  8  bytes  โดยใช้  7  bytes  แรกเก็บค่าตัวเลขทศนิยม  ส่วนอีก  1  bytes  สุดท้ายจะเก็บค่ายกกำลังเอาไว้  เช่นเดียวกับค่าคงที่ชนิด  float 
            4) ค่าคงที่ชนิดตัวอักขระตัวเดียว  (single  character  constant)
                        ค่าคงที่ชนิดนี้จะสามารถเก็บตัวอักขระได้เพียง  1  ตัวอักขระ  โดยอยู่ภายในเครื่องหมาย ‘ ’  (single  quotation)  เช่น  ‘5’,  ‘X’,  ‘c’  เป็นต้น
สำหรับการเก็บค่าคงที่ชนิด  single  character  constant  จะใช้เนื้อที่ภายในหน่วยความจำ  1  bytes

            5) ค่าคงที่ชนิดข้อความ  (strings  constant)  
                        ค่าคงที่ชนิดนี้จะเก็บตัวอักขระที่มีความยาวตั้งแต่  1  ตัวขึ้นไป  โดยจะเก็บอยู่ในรูปของข้อมูลอะเรย์  (arrays)  ซึ่งในแต่ละตัวอักขระจะใช้เนื้อที่ในการเก็บ  1  bytes เรียงติดต่อกันไปจนกระทั้งจบข้อความ  และใน  byte  สุดท้ายจะเก็บ  \0  (null  character)  เอาไว้เพื่อเป็นการบอกว่า  จบข้อความแล้ว  การเขียนค่าคงที่ชนิดข้อความจะต้องเขียนอยู่ภายในเครื่องหมาย  “……”  (double  quotation)  เช่น  “X”,  ”computer”,  “4567”, “c”  เป็นต้น

            2.5.3 ตัวแปร  (variables)

                        ตัวแปร  คือ  ชื่อที่ผู้เขียนโปรแกรมตั้งขึ้นเพื่อใช้เป็นข้อมูล  หรือใช้เก็บข้อมูล  ดังนั้นเราต้องกำหนดตัวแปรให้สอดคล้องกับชนิดข้อมูลเสมอ  เพื่อให้ระบบเตรียมเนื้อที่ในหน่วยความจำให้สอดคล้องกับตัวแปรชนิดนั้น ๆ  ซึ่งเนื้อหาที่กล่าวถึงเกี่ยวกับตัวแปรประกอบด้วย  หลักเกณฑ์การตั้งชื่อตัวแปร  การประกาศตัวแปร  และการกำหนดค่าเริ่มต้นให้กับตัวแปร

                       2.5.3.1 หลักเกณฑ์การตั้งชื่อตัวแปร

                                    ในภาษา  C  มีหลักเกณฑ์การตั้งชื่อตัวแปรดังนี้

                                    1) ชื่อตัวแปรจะต้องขึ้นต้นด้วยตัวอักษรเท่านั้น  ตัวถัดมาเป็นได้ทั้งตัวอักษร   ตัวเลข   แต่ต้องไม่มีเครื่องหมายคำนวณ   บวก (+),  ลบ (-), คูณ (*), หาร (/), หารเอาเศษ (%)  และเครื่องหมายเว้นวรรค (blank) คั่นระหว่างชื่อตัวแปร  แต่ถ้าต้องการตั้งชื่อตัวแปรเว้นวรรคให้ใช้เครื่องหมาย  _  (underscore)  คั่นแทนการเว้นวรรค  เช่น  sum_1, sum_2  เป็นต้น

                                    2) ความยาวของชื่อตัวแปร  ขึ้นอยู่กับคอมไพเลอร์และระบบเครื่องคอมพิวเตอร์  ซึ่งภาษา  C  สามารถตั้งชื่อตัวแปรได้ยาวถึง  32  ตัว  แต่โดยปกติเราไม่นิยมตั้งชื่อตัวแปรยาว ๆ

                                    3) ชื่อตัวแปรตัวอักษรพิมพ์ใหญ่และตัวอักษรพิมพ์เล็ก  แม้จะเขียนคำเดียวกัน  หรือตัวอักษรพิมพ์ใหญ่ปนตัวอักษรพิมพ์เล็กที่สลับตำแหน่งกัน  ระบบถือว่าเป็นคนละตัวแปรกัน  เช่น    ตัวแปร  MAX, max, Max, mAx, maX   จะถือว่าตัวแปรทั้ง  5  ตัวนี้เป็นคนละตัวกัน

                                    4) ห้ามตั้งชื่อตัวแปรซ้ำกับคำสงวน  (reserved  word)  หรือชื่อฟังก์ชัน  หรือชื่อคำสั่งในภาษานั้น ๆ

            คำสงวนในภาษา  C  ตามมาตรฐาน  ANSI  (American  National  Standards  Institute)  มี  33  keywords  ดังนี้

              asm, auto          double                int                   struct
              break                 else                    long                switch
              case                  enum                  register           typedef
              char                   extern                 return             union
              const                 float                     short              unsigned
              continue            for                       signed           void
             default              goto                     sizeof            volatile
             do                     if                          static              while
   
              5) ชื่อตัวแปรควรตั้งให้สัมพันธ์กับข้อมูลที่ต้องการเก็บ  เพื่อป้องกันความสับสน  เนื่องจากโปรแกรมที่มีขนาดใหญ่จะมีตัวแปรจำนวนมาก  ถ้าเราตั้งชื่อตัวแปรโดยไม่มีระบบระเบียบที่ดีพอจะทำให้ผู้อ่านโปรแกรมเกิดความสับสนและในกรณีที่โปรแกรมเกิดข้อผิดพลาดขึ้นจะเสียเวลาในการแก้ไขโปรแกรมมากขึ้น  เช่น

ตัวแปร              name               ใช้เก็บชื่อ
ตัวแปร              age                  ใช้เก็บอายุ
ตัวแปร              salary              ใช้เก็บเงินเดือน
ตัวแปร              vat                   ใช้เก็บภาษี

                         2.5.3.2 การประกาศตัวแปร  (declaration  of  variables)

                                    ตัวแปรทุกตัวต้องมีการประกาศชื่อตัวแปร  (variable name)  และชนิดของตัวแปร (variable  type)  เอาไว้ก่อน   จึงจะสามารถนำตัวแปรที่ประกาศไว้มาใช้งานได้


            รูปแบบการประกาศตัวแปร


                        
vtype  vname ;

โดยที่ 
       vtype  คือ  ชนิของตัวแปรพื้นฐานที่นิยมใช้กันมีอยู่  4  ชนิด  คือ  char, int, float,  และ  double  ซึ่งในความเป็นจริงแล้ว  การประกาศชนิดของตัวแปรจะต้องให้ความสัมพันธ์กับค่าข้อมูลที่ต้องการเก็บด้วย  ดังแสดงในตารางที่  2.1
       vname  คือ  ชื่อของตัวแปร  ถ้ามีตัวแปรหลายตัวที่ต้องการให้มีชนิดตัวแปรเหมือนกัน  สามารถใช้เครื่องหมาย , (comma)  คั่นระหว่างชื่อตัวแปรได้

        ตัวอย่างที่  2.2  แสดงการประกาศตัวแปร
1. char  d, c[30];
จะได้ตัวแปร  d  มีชนิดเป็น  single  character  และตัวแปรสตริง  c   มีขนาด  30  bytes
2. int  a,  b;
จะได้ตัวแปร   a   และ  b  มีชนิดเป็น  int   คือใช้เนื้อที่ในหน่วยความจำ  2  bytes  สามารถเก็บตัวเลขจำนวนเต็มที่มีค่าอยู่ในช่วง -32768  ถึง  32767
3. float  k, m, n,
จะได้ตัวแปร  k, m  และ  n  มีชนิดเป็น  float  คือใช้เนื้อที่ในหน่วยความจำ  4  bytes  สามารถเก็บจำนวนทศนิยม  และตัวเลขที่อยู่ในรูป  E  ยกกำลังได้
4 .double  w, x, y, z
จะได้ตัวแปร  w, x, y  และ  z  มีชนิดเป็น  double  คือใช้เนื้อที่ในหน่วยความจำ  8  bytes   สามารถเก็บจำนวนทศนิยม  หรือตัวเลขที่อยู่ในรูป  E  ยกกำลังที่มีความละเอียดสูงกว่าชนิด float 

ตารางที่  2.1  แสดงชนิดของตัวแปร  จำนวน bytes  และพิสัยของค่าข้อมูลในภาษา  C 

ชนิดของตัวแปร
(variable  types)
จำนวน  bytes  ที่ใช้
พิสัยในการเก็บข้อมูล
(range)
char
1
-128  to  127
int
2
-32,768  to  32,767
short
2
-32,768  to  32,767
long
4
-2,147,483,648  to  2,147,483,647
unsigned  char
1
0  to  255
unsigned  int
2
0  to  65,535
unsigned short
2
0  to  65,535
unsigned long
4
0  to  4,294,967,295
enum
2
0  to  65,535
float
4
1.2E-38  to  3.4E+38
double
8
2.2E-308  to  1.8E+308

ที่มา  :  Aitken, P. and  B. Jones, 1994 : 40.

            กรณีที่ต้องการประกาศตัวแปรและกำหนดค่าเริ่มต้นให้กับตัวแปรด้วยสามารถทำได้ดังนี้
รูปแบบการประกาศตัวแปรและกำหนดค่าให้กับตัวแปร  



กรณีที่มีตัวแปร  1  ตัว                  vtype     vname   =   value;
กรณีที่มีตัวแปรมากกว่า  1  ตัว      vtype     vname1   =   value1, vname2 = value2 ,…..,
vnameN  =   valueN;
กรณีที่มีตัวแปรมากกว่า  1  ตัว  ให้ใช้เครื่องหมาย  , (comma) คั่นระหว่างชื่อตัวแปรแต่ละตัว


            ตัวอย่างการประกาศตัวแปรและกำหนดค่าให้กับตัวแปร
                        2.5.3.3 การกำหนดค่าเริ่มต้นให้กับตัวแปร  (initializing  variables)
                        ตัวอย่างที่  2.3  แสดงการประกาศตัวแปรและกำหนดค่าให้ตัวแปร
    1. char  d=’D’,e=’E’;
    2. char  c[6]=”Hello”;
    3. int  a=9, b=25;
    4. float  k=5.9;
    5. double  y=3.543006089; 
          
                         2.5.3.3 การกำหนดค่าเริ่มต้นให้กับตัวแปร  (initializing  variables)
                                    หลังจากที่เราได้ประกาศตัวแปรไว้ ถ้าเราต้องการกำหนดค่าเริ่มต้นให้กับตัวแปรใดเราสามารถทำได้ดังนี้
                                                รูปแบบกำหนดค่าเริ่มต้นให้กับตัวแปร




vname   =   value; 

            โดยที่

vname  คือ  ชื่อตัวแปรที่ได้ประกาศแล้ว
value   คือ  ค่าข้อมูลที่จะนำไปเก็บไว้ในตัวแปร  ซึ่งอาจเป็นค่าตัวเลขหรือข้อความก็ได้  ถ้าเป็นข้อความจะต้องเขียนอยู่ในเครื่องหมาย  “……”
            ตัวอย่างที่  2.4  แสดงการประกาศค่าตัวแปรและกำหนดค่าเริ่มต้นให้กับตัวแปร
            int  a, b, c=7;    /*  เป็นการประกาศตัวแปร  a, b, และ c,  เป็น  int  และกำหนด
            ค่าตัวแปร  c  มีค่า  7  */
            a=b=c;             /*  เป็นการกำหนดค่าตัวแปร  a และ b  ให้มีค่าเท่ากับตัวแปร  c  (คือมีค่าเท่ากับ  7)  */



                                    ตัวดำเนินการ  (operators)
ตัวดำเนินการบางครั้งเรียกว่า  “เครื่องหมาย”  จะเข้าใจง่ายกว่า ในภาษา C สามารถแบ่งตัวดำเนินการได้หลายประเภทดังนี้

            2.6.1 ตัวดำเนินการคณิตศาสตร์  (mathematical operators)

ตารางที่  2.2  แสดงตัวดำเนินการคณิตศาสตร์ 

สัญลักษณ์  (symbol)
ตัวดำเนินการ  (operators)
ตัวอย่าง
+
บวก  (addition)
a+b
-
ลบ  (subtraction)
a-b
*
คูณ  (multiplication)
a*b
/
หาร  (division)
a/b
%
หารเอาเศษ  (remainder)
a%b
            ที่มา  :  Aitken, P. and  B. Jones, 1994 : 61.
            ผลลัพธ์ที่ได้จากการคำนวณทางคณิตศาสตร์จะอยู่ในรูปของตัวเลข 

            2.6.2 ตัวดำเนินการความสัมพันธ์  (relational  operators)

ตารางที่  2.3  แสดงตัวดำเนินการความสัมพันธ์

สัญลักษณ์  (symbol)
ตัวดำเนินการ  (operators)
ตัวอย่าง
น้อยกว่า  (less  than)
A<b
มากกว่า  (greater  than)
a>b
<=
น้อยกว่าหรือเท่ากับ
(less  than  or  equal)
A<=b
>=
มากกว่าหรือเท่ากับ
(greater  than  or  equal)
a>=b
==
เท่ากับ  (equal)
A==b
!=
ไม่เท่ากับ  (not  equal)
a!=b
            ที่มา  :  Aitken, P. and  B. Jones, 1994 : 66.
            ผลลัพธ์ที่ได้จากตัวดำเนินการความสัมพันธ์  จะได้ค่าจริง  (1)  หรือค่าเท็จ  (0)  เท่านั้น

            2.6.3 ตัวดำเนินการเชิงตรรกะ  (logical  operators)

ตารางที่  2.4  แสดงตัวดำเนินการเชิงตรรกะ

สัญลักษณ์  (symbol)
ตัวดำเนินการ  (operators)
ตัวอย่าง
&&
และ (AND)
A<b && c>d
||
หรือ (OR)
a<b || c>d
!
ไม่ (NOT)
!(a<b)
            ที่มา  :  Aitken, P. and  B. Jones, 1994 : 75.
            ผลลัพธ์ที่ได้จากตัวดำเนินการเชิงตรรกะ  จะได้ค่าจริง  (1)  หรือค่าเท็จ  (0)  เท่านั้น
            2.6.4 ตัวดำเนินการเพิ่มค่าและลดค่า (increment and decrement operators)

ตารางที่  2.5  แสดงตัวดำเนินการเพิ่มค่าและลดค่า

สัญลักษณ์  (symbol)
ตัวดำเนินการ  (operators)
ตัวอย่าง
++
เพิ่มค่า  (increment)
a++  หรือ   ++a
--
ลดค่า  (decrement)
a-- หรือ   --a
            ที่มา  :  Aitken, P. and  B. Jones, 1994 : 58.
            ผลลัพธ์ที่ได้จากการเพิ่มค่าและลดค่าจะอยู่ในรูปของค่าตัวเลข

            2.6.5 ตัวดำเนินการบิตไวส์  (bitwise operators)

ตารางที่  2.6  แสดงตัวดำเนินการบิตไวส์

สัญลักษณ์  (symbol)
ตัวดำเนินการ  (operators)
ตัวอย่าง
&
AND
a&b
|
inclusive OR
a|b
^
exclusive OR
a^b
~
Complement
~a
>> 
right shift
a>>2
<< 
left shift
a<<3
            ที่มา  :  Gottfried, S. Byron, 1990 : 475.

            2.6.6 ตัวดำเนินการกำหนดค่า  (compound  assignment operators)

ตารางที่  2.7  แสดงตัวดำเนินการกำหนดค่า

สัญลักษณ์  (symbol)
ตัวดำเนินการ  (operators)
ตัวอย่าง
=
Assignment
a=b
+=
Addition
a+=b  หมายถึง  (a=a+b)
-=
Subtraction
a-=b  หมายถึง  (a=a-b)
*=
Multiplication
a*=b  หมายถึง  (a=a*b)
/=
Division
a/=b  หมายถึง  (a=a/b)
%=
Remainder
a%=b  หมายถึง  (a=a%b)
&=
bitwise  AND
a&=b  หมายถึง  (a=a&b)
|=
bitwise  Inclusive  OR
a|=b  หมายถึง  (a=a|b)
^=
bitwise  exclusive  OR
a^=b  หมายถึง  (a=a^b)
<<=
right  shift
a<<2  หมายถึง  (a=a<<2)
>>=
left  shift
a>>3  หมายถึง  (a=a>>3)

                                    ที่มา  :  Aitken, P. and  B. Jones, 1994 : 79.

            2.6.7 ตัวดำเนินการแบบเงื่อนไข  (conditional operators)

ตารางที่  2.8  แสดงตัวดำเนินการแบบเงื่อนไข

สัญลักษณ์  (symbol)
ตัวดำเนินการ  (operators)
ตัวอย่าง
Result = (expression) ?
Value1 : vaule2 ;
Conditional  Operators
Max = (a>b) ? a: b;

                                          ที่มา  :  Aitken, P. and  B. Jones, 1994 : 80.

            ผลลัพธ์ที่ได้จากตัวดำเนินการแบบเงื่อนไขจะให้ค่าใดค่าหนึ่งขึ้นอยู่กับเงื่อนไขที่กำหนดจากตัวอย่างหมายความว่า ถ้าเงื่อนไข  a>b  เป็นจริงได้ค่า  max=a; ถ้าเงื่อนไข  a>b  เป็นเท็จได้ค่า  max=b;

       ลำดับการทำงานของตัวดำเนินการ (precedence  and  associativity  of  operators)

ตารางที่  2.9  แสดงลำดับการทำงานของตัวดำเนินการในภาษา  C  มีดังนี้

ลำดับที่
ตัวดำเนินการ  
(Operator)
ลักษณะการทำงาน (Associativity)
1
( )  [ ]  .  ->
Left  to  right
2
-     ~   !   *   &
Light  to  left
3
++  - -
Right  to  left
4
*   /   %
Left  to  right
5
+   -
Left  to  right
6
<<   >>
Left  to  right
7
<  >   < =   >=
Left  to  right
8
= =     !=
Left  to  right
9
& (bitwise  AND)
Left  to  right
10
^ (bitwise   exclu  OR)
Left  to  right
11
|  (bitwise  inclu  OR)
Left  to  right
12
&&
Left  to  right
13
||
Left  to  right
14
?:
Left  to  right
15
=  +=  -=  /=  %=
Right  to  left
16
<<=  >>=
Right  to  left
 
                                                   ที่มา  :  Gottfried, S. Byron, 1990 : 475.

            ตัวดำเนินการที่มีลำดับการทำงานอันดับที่  1  จะทำงานก่อนอันดับที่  2  โดยทำงานไปเรื่อย ๆ  จนกระทั่งหมดตัวดำเนินการ  ส่วนลักษณะการทำงานของตัวดำเนินการแต่ละอันดับนั้นแตกต่างกันไป  ซึ่งจะเป็นการทำงานจากซ้ายไปขวา  (left to rigth)  หรือขวาไปซ้าย  (rigth  to  left)  ก็ได้
       
             ตัวอย่างที่  2.5  แสดงขั้นตอนการทำงานของตัวดำเนินการ

8 + 5 * 3
4 +15
19
ตัวดำเนินการ   *   อยู่ลำดับสูงกว่าตัวดำเนินการ  +  จึงต้องคูณเลขก่อนแล้วทำการบวกเลขทีหลัง

10 / 2 + 5 – 3
5 + 5 – 3
10 - 3
7
ตัวดำเนินการ  /  อยู่ลำดับสูงกว่าตัวดำเนินการ  +  และ  -  ส่วนตัวดำเนินการ  +  และ  -  อยู่ลำดับเดียวกัน  แต่ให้ทำจากซ้ายไปขวา  จึงทำบวกก่อนแล้วจึงทำลบ

9 * 3 - 20 / 5 + 6
27 -  4  + 6
23 + 6
29
ตัวดำเนินการ  *  และ  /  อยู่ลำดับเดียวกันให้ทำจากซ้ายไปขวา  คือ  คูณเลขก่อน  แล้วหารเลข  ส่วนตัวดำเนินการ  -  และ  +  อยู่ลำดับเดียวกันให้ทำจากซ้ายไปขวา  คือ  ลบเลขก่อนแล้วจึงบวกทีหลัง


                                                     นิพจน์  (expression)

            นิพจน์ คือ การนำค่าคงที่ ตัวแปร  และตัวดำเนินการมาเขียนประกอบกัน  เพื่อให้ตัวแปรภาษาสามารถเข้าใจและคำนวณหาผลลัพธ์ได้ตามที่เราต้องการ
ตัวอย่างที่  2.6  ถ้าต้องการหาค่าจากสูตร  a2+2ab+b2  เมื่อ  a=2, b=3  เราจะต้องเขียนสูตรดังกล่าวให้เป็นนิพจน์ดังนี้

a*a+2 *a *b+b*b  ……………………..……………………………  แบบที่  1
หรือ       pow(a,2)  +  2 *a *b  +  pow(b,2)  ………………………………  แบบที่  2
            สำหรับฟังก์ชัน  pow(x,y)  เป็นฟังก์ชันที่ใช้หาค่าตัวเลขที่อยู่ในรูปเลขยกกำลัง
โดยที่     x     เป็นเลขฐานซึ่งจะต้องมีค่าเป็นเลขจำนวนเต็มบวกหรือศูนย์ก็ได้
              y     เป็นเลขยกกำลังซึ่งอาจจะเป็นเลขจำนวนเต็มบวกหรือลบก็ได้
ดังนั้น  pow(x,y) หมายถึง  xy ส่วน pow(a,2)   หมายถึง a2  และ pow(b,2)  หมายถึง  b2
ข้อควรระวัง  ก่อนที่เราจะใช้ฟังก์ชัน  pow(x,y)  นี้จะต้องใช้คำสั่ง  #include<math.h>  อยู่บนส่วนต้นของโปรแกรม  เพื่อนำแฟ้ม  math.h  เข้ามาไว้ในโปรแกรมภาษา  C  ก่อน  มิฉะนั้นอาจเกิดข้อผิดพลาดในการแปลโปรแกรมได้เพราะไม่สามารถหาฟังก์ชัน  pow(x,y)  ได้
ตัวอย่างที่  2.7  แสดงนิพจน์ตัวอย่าง  ซึ่งมีอยู่หลายชนิดตังต่อไปนี้
1)  a+b*10+(3*c)*8        /* นิพจน์ทางคณิตศาสตร์*/
2)  (m>=n)&&(x<y)     /* นิพจน์เชิงตรรกะและนิพจน์เชิงเปรียบเทียบความสัมพันธ์*/
3)  !(k==25)              /* นิพจน์เชิงตรรกะและนิพจน์เชิงเปรียบเทียบความสัมพันธ์*/
4)  !(p)                      /* นิพจน์เชิงตรรกะ*/
5)  (i>10)||(j<5)        /* นิพจน์เชิงตรรกะและนิพจน์เชิงเปรียบเทียบ*/
6)  if  (y==z)          /* นิพจน์เงื่อนไข*/
            ตัวอย่างที่  2.8  แสดงการหาค่าผลลัพธ์จากนิพจน์ในภาษา  C 
กำหนดให้    int   x=5, y=8, z=9;
1)  x+(y*z)             ผลลัพธ์คือ  77
2)  x+y*z+x*3        ผลลัพธ์คือ  92

                             การแปลงชนิดข้อมูลของภาษา  C  (C  type  conversion)

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

            ตารางที่  2.10  แสดงการเปลี่ยนแปลงชนิดของข้อมูล

ชนิดของข้อมูล x
ชนิดของข้อมูล y
x ชนิดของข้อมูล y
       int       long       long
       char       int       int
       int       float       float
       int       double       double
       float       double       double
       long       double       double
ชนิดข้อมูลต่าง ๆ
long  double
long  double
- - -
- - -
- - -

                                 ที่มา : เจนวิทย์  เหลืองอร่าม และปิยวิทย์  เหลืองอร่าม, 2543 : 72.

            ในตารางที่  2.9  แถวที่  1  จะเห็นว่า  x  เป็นตัวแปรชนิดข้อมูลแบบ  int  และ y  เป็นตัวแปรข้อมูลแบบ  long  เมื่อนำ  x  และ  y  มา  บวก  ลบ  คูณ  และหารกัน  ผลลัพธ์ที่ได้จะเป็นชนิดข้อมูลแบบ  long  (เพราะ  long  มีพิสัยในการเก็บข้อมูลกว้างกว่า  int)  เช่น
int  x = 7;
float y = 2;
  • ถ้า  x/2  จะได้ผลลัพธ์เป็น  3  (ชนิดข้อมูลแบบ  int)
  • ถ้า  x/y  จะได้ผลลัพธ์เป็น  3.500000  (ชนิดข้อมูลแบบ  float)

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


/* errcal.c */
/* This program calculate emloyees share */
#include<stdio.h>
#include<conio.h>
void main(void)
{
      int  profits, employees;                                                           /*  บรรทัดที่  1   */
      clrscr();                                                                                     /*  บรรทัดที่  2   */
      profits = 9;                                                                                /*  บรรทัดที่  3   */
      employees = 2;                                                                       /*  บรรทัดที่  4   */
  printf("Each employee gets %d\n",profits/employees);    /*  บรรทัดที่  5   */
  getch();
}
ผลลัพธ์ที่ได้จากโปรแกรม

คำอธิบายโปรแกรม 

               จากโปรแกรมตัวอย่างที่  2.4  สามารถอธิบายการทำงานของโปรแกรมที่สำคัญ ๆ  ได้ดังนี้
              บรรทัดที่  1   เป็นการประกาศตัวแปร  profits  และ  employees  ให้เป็นชนิด  int
              บรรทัดที่  2   เป็นคำสั่งให้ลบจอภาพ
              บรรทัดที่  3  และ  4  กำหนดค่าให้กับตัวแปร  โดย  profits  มีค่า  9  และ  employees  มีค่า  2
              บรรทัดที่  5  ให้พิมพ์ข้อความ  Each employee gets  4  ออกแสดงที่จอภาพ  โดยตัวเลข  4  ได้จากการคำนวณ  9/2  คือค่าของ  ตัวแปร  porfits/ employees

            จากโปรแกรมตัวอย่างที่  2.4  เราคงเห็นแล้วว่าผลหารที่ได้จะเป็นจำนวนเต็ม  ส่วนที่เป็นเลขทศนิยมจะตัดทิ้งไป  เมื่อภาษา  C  ทำงานกับข้อมูลชนิดจำนวนเต็ม  เพื่อแก้ปัญหาที่เกิดการผิดพลาด  ในกรณีนี้เราสามารถเปลี่ยนชนิดข้อมูลได้ชั่วคราว  คือ  เปลี่ยนตัวแปร  profits  จากชนิดข้อมูลแบบ  int ไปเป็น  float  ชั่วคราว  ดังตัวอย่างโปรแกรมที่  2.5  ต่อไปนี้

            โปรแกรมตัวอย่างที่  2.5  แสดงโปรแกรมการเปลี่ยนแปลงชนิดข้อมูลชั่วคราว

/* change.c */
/* This program calculates employee share. */
#include<stdio.h>
#include<conio.h>
void main(void)
{
      int  profits, employees;
      clrscr();
      profits = 9;
      employees = 2 ;
      printf("Each employee gets %f", (float) profits/employees);     /*  บรรทัดที่  1  */
      getch();
}

ผลลัพธ์ที่ได้จากโปรแกรม

แผนผังลำดับงาน: จอภาพ: Each employee gets 4.500000

คำอธิบายโปรแกรม

            โปรแกรมข้างต้นจะเหมือนกับโปรแกรมที่  2.4  ทุกประการยกเว้น  บรรทัดที่  1  ในการคำนวณ  (float)  profits / employees  เป็นการเปลี่ยนตัวแปร  profits  จากชนิดข้อมูล  int  ให้เป็น  float  ชั่วคราว  ดังนั้นผลลัพธ์ที่ได้จากโปรแกรมจึงเป็น  4.500000  และใช้  %f  ในการควบคุมการแสดงผล
            จากโปรแกรมตัวอย่างที่  2.5  ข้างต้นได้ใช้ฟังก์ชัน  printf( )  เพื่อแสดงให้อยู่ในรูปแบบที่ต้องการ  โดยใช้รหัสรูปแบบ  %f  (format   code)  %f  เป็นรหัสรูปแบบการพิมพ์ข้อมูลชนิด  float  (ซึ่งรายละเอียดกล่าวไว้ในบทที่   3  ตารางที่  3.2)  ได้สรุปรหัสรูปแบบการพิมพ์ข้อมูลทั้งหมดที่ใช้กับฟังก์ชัน  printf( )  ผู้เขียนโปรแกรมควรจำให้ได้ทั้งหมด   เพื่อความสะดวกและรวดเร็วในการใช้เขียนโปรแกรมในโอกาสต่อไป

                                                         สรุปโครงสร้างภาษาซี
            ภาษา  C  เป็นภาษาที่มีมาตรฐานในการเขียนโปรแกรมที่ชื่อว่า  ANSI (American  National  Standards  Institute)  และภาษา  C  เป็นภาษาที่มีใช้มาเป็นเวลานhttp://varried.blogspot.com/http://varried.blogspot.comาน  โดยมีโครงสร้างอย่างง่ายพอสรุปได้ดังนี้
            1. มีฟังก์ชันชื่อว่า  main( )  อย่างน้อยหนึ่งฟังก์ชัน  จึงจะสามารถทำการ  execute  program  ได้
            2. ขอบเขตฟังก์ชัน  main  (delimiters)  ในโปรแกรมภาษา  C  ใช้เครื่องหมาย  {  แทนการเริ่มต้นฟังก์ชัน  และใช้เครื่องหมาย  }  แทนการสิ้นสุดฟังก์ชัน  ดังนั้นเมื่อเขียนฟังก์ชัน  main( )  ทุกครั้งจะต้องมีเครื่องหมาย  {  และ  }  อยู่ด้วยเสมอ
            3. การปิดท้ายคำสั่งในภาษา C จะต้องใช้เครื่องหมาย ; (semicolon) เป็นการบ่งชี้ให้ C  compiler  ทราบว่าจบคำสั่ง  (statement)  แต่ละคำสั่งแล้ว
            4. ชื่อฟังก์ชันและคำสั่งในภาษา  C  จะต้องเขียนด้วยตัวอักษรตัวเล็ก  (lowercase letter) ทั้งหมดทั้งนี้เพราะ  C  compiler จะคิดว่าตัวอักษรตัวใหญ่  (uppercase letter)  กับตัวอักษรตัวเล็ก แตกต่างกัน  เช่น  main( ) ไม่เหมือนกับ Main( )  หรือ MAIN( )  เป็นต้น
            5. ชื่อตัวแปร  (variable name)  สามารถตั้งชื่อโดยใช้ ตัวอักษรตัวเล็กหรือตัวอักษรตัวใหญ่ก็ได ้หรือใช้ตัวอักษรตัวเล็ก กับตัวอักษรตัวใหญ่ผสมกันก็ได้
            สำหรับขั้นตอนการพัฒนาโปรแกรมภาษา  C  มีขั้นตอนสรุปได้ดังนี้คือ 
  1. ขั้นตอนเขียนโปรแกรมต้นฉบับ  (source  program)   แล้วบันทึกโปรแกรมพร้อมกับตั้งชื่อแฟ้มไว้ แฟ้มที่ได้จะมีนามสกุล  *.c  หรือ  *.cpp
  2. ขั้นตอนแปลโปรแกรมภาษา  C  ไปเป็นโปรแกรมภาษาเครื่อง  (object  program) ใช้คำสั่ง  compile  เพื่อแปลโปรแกรมภาษา  C  ไปเป็นโปรแกรมภาษาเครื่อง แฟ้มที่ได้จะมีนามสกุล  *.obj  ซึ่งในขั้นตอนนี้โปรแกรมต้นฉบับอาจเกิดความผิดพลาดทางไวยกรณ์ภาษา  (syntax  error)  ขึ้นได้  จึงต้องย้อนกลับไปแก้ไขโปรแกรมต้นฉบับในข้อ  1.  ให้ถูกต้องเสียก่อน
  3. ขั้นตอนเชื่อมโยง  (link)  โปรแกรมภาษาเครื่องเข้ากับ  library  function  ของภาษา  C  จะได้เป็น  execute  program  โดยใช้คำสั่ง  link  แฟ้มที่ได้จะมีนามสกุล  *.exe
  4. ขั้นตอนสั่งให้  execute  program   แสดงผลลัพธ์ออกมา โดยใช้คำสั่ง  run
            สำหรับข้อมูลของภาษา  C  มีดังนี้คือ  ตัวอักขระ  ค่าคงที่  และตัวแปร  ซึ่งในภาษา  C  ยังมีตัวดำเนินการหรือเครื่องหมาย  เพื่อไว้ใช้ในการเขียนโปรกรม  ดังนี้  ตัวดำเนินการคณิตศาสตร์  ตัวดำเนินการความสัมพันธ์  ตัวดำเนินการเชิงตรรกะ  ตัวดำเนินการเพิ่มค่าและลดค่า  ตัวดำเนินการบิตไวส์  ตัวดำเนินการกำหนดค่า  และตัวดำเนินการแบบเงื่อนไข  ซึ่งลำดับการทำงานของตัวดำเนินการ มีความสำคัญในการเขียนโปรแกรม 

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

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