วันเสาร์ที่ 27 ธันวาคม พ.ศ. 2557

โครงสร้างอย่างง่ายและอื่นๆ

โครงสร้างอย่างง่ายของโปรแกรมภาษา  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  ถึง  

และตัวอักษรตัวใหญ่  A  ถึง  Z  มาตั้งชื่อตัวแปรได้ หรือจะตั้ง

ชื่อตัวแปรเหมือนกัน ทุกประการได้ เช่นชื่อตัวแปร  a  กับ  

ก็ได้ แต่ตัวแปรทั้ง  2  ตัวนี้จะต้องอยู่ต่างฟังก์ชันกันเท่านั้น ถ้า

อยู่ในฟังก์ชันเดียวกัน  compilerจะบอกข้อผิดพลาดออกมา  


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

การพัฒนาโปรแกรมภาษา  C  มีขั้นตอนดังนี้
1) เขียนโปรแกรมต้นฉบับ  (source  program)  ด้วย

ภาษา  โปรแกรม  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



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


สำหรับเรื่องข้อมูลของภาษา  C  จะกล่าวถึงเรื่องตัวอักขระ  ค่า

คงที่  และตัวแปร  ดังรายละเอียดต่อไปนี้



ตัวอักขระ  (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)


ค่าคงที่  (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”  เป็นต้น

ตัวแปร  (variables)

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

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

ในภาษา  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                ใช้เก็บภาษี

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

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


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

                        vtype  vname ;
โดยที่

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

 ตาราง แสดงชนิดของตัวแปร  จำนวน 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


การกำหนดค่าเริ่มต้นให้กับตัวแปร  (initializing  
variables)

ตัวอย่าง แสดงการประกาศตัวแปรและกำหนดค่าให้ตัวแปร

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; 
          

การกำหนดค่าเริ่มต้นให้กับตัวแปร  (initializing  
variables)

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

รูปแบบกำหนดค่าเริ่มต้นให้กับตัวแปร

vname   =   value;

โดยที่

vname  คือ  ชื่อตัวแปรที่ได้ประกาศแล้ว

value   คือ  ค่าข้อมูลที่จะนำไปเก็บไว้ในตัวแปร  ซึ่งอาจเป็น
ค่าตัวเลขหรือข้อความก็ได้  ถ้าเป็นข้อความจะต้องเขียนอยู่ใน
เครื่องหมาย  “……”

ตัวอย่าง แสดงการประกาศค่าตัวแปรและกำหนดค่าเริ่มต้นให้กับ
ตัวแปร
            int  a, b, c=7;    /*  เป็นการ
ประกาศตัวแปร  a, b, และ c,  เป็น  int  และกำหนด
            ค่าตัวแปร  c  มีค่า  7  */     
            a=b=c;             /*  เป็นการกำหนด
ค่าตัวแปร  a และ b  ให้มีค่าเท่ากับตัวแปร  c  (คือมีค่า
เท่ากับ  7)  */








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

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