3. ความรู้พื้นฐานโปรแกรมภาษาซี

ใบความรู้ที่ 3
เรื่อง ความรู้พื้นฐานโปรแกรมภาษาซี

1.  โครงสร้างของโปรแกรมภาษาซี 
1.1 ข้อความสั่งตัวประมวลผลก่อน (preprocessor statements)  
          ข้อความสั่งตัวประมวลผลก่อนขึ้นต้นด้วยเครื่องหมาย # เช่น    
#include<stdio.h>
          หมายความว่าให้ตัวประมวลผลก่อนไปอ่านข้อมูลจากแฟ้มstdio.h ซึ่งเป็นแฟ้มที่มีอยู่ในคลัง เมื่อ โปรแกรมมีการใช้ข้อความสั่งอ่านและบันทึกข้อความสั่งตัวประมวลผลก่อนจะต้องเขียนไว้ตอนต้นขอโปรแกรม 
1.2 รหัสต้นฉบับ (source code)  
          รหัสต้นฉบับ หมายถึง ตัวโปรแกรมที่ประกอบด้วยข้อความสั่งและตัวฟังก์ชั่นต่างๆ 
1.3 ข้อความสั่งประกาศครอบคลุม (global declaration statements)  
          ข้อความสั่งประกาศครอบคลุมใช้ประกาศตัวแปรส่วนกลาง โดยที่ตัวแปรส่วนกลางนั้นจะสามารถถูก เรียกใช้จากทุกส่วนของโปรแกรม 
1.4 ต้นแบบฟังก์ชัน (function prototype)  
          ต้นแบบฟังก์ชันใช้ประกาศฟังก์ชัน เพื่อบอกให้ตัวแปลโปรแกรมทราบถึงชนิดของค่าที่ส่งกลับและชนิดของ ค่าต่างๆ ที่ส่งไปกระทำการในฟังก์ชัน 
1.5 ฟังก์ชันหลัก (main function)  
          เมื่อสั่งให้กระทา การโปรแกรม ฟังก์ชันหลักจะเป็นจุดเริ่มต้นของการกระทำการ ภายในฟังก์ชันหลักจะ ประกอบด้วยข้อความสั่งและข้อความสั่งที่เรียกใช้ฟังก์ชั่น 
1.6 ฟังก์ชัน (function)  
          ฟังก์ชัน หมายถึง กลุ่มของข้อความสั่งที่ทำงานใดงานหนึ่งโดยเป็นอิสระจากฟังก์ชันหลัก แต่อาจมีการ รับส่งค่าระหว่างฟังก์ชันและฟังก์ชันหลัก 
1.7 ข้อความสั่งประกาศตัวแปรเฉพาะที่ (local declaration statements)  
          ข้อความสั่งประกาศตัวแปรเฉพาะที่ ใช้ประกาศตัวแปรเฉพาะที่ โดยที่ตัวแปรเฉพาะที่จะสามารถถูก เรียกใช้เฉพาะภายในฟังก์ชันนั้น 
1.8 การแปลและกระทำการโปรแกรม (program compilation and execution)  
          เมื่อได้เขียนและป้อนข้อความสั่งตัวประมวลผลก่อนและรหัสต้นฉบับลงในโปรแกรมอิดิเตอร์เสร็จแล้ว จะต้องเรียกตัวแปรโปรแกรมมาเพื่อให้แปลภาษาซีให้เป็นภาษาเครื่อง หากโปรแกรมนั้นเขียนได้ถูกต้องตรงตามกฎ ของภาษาซี ตัวแปรโปรแกรมจะแปลโปรแกรมภาษาซีให้เป็นภาษาเครื่อง แล้วนำไปเก็บไว้ในแฟ้มชื่อเดียวกันแต่มี นามสกุลเป็น .obj จากนั้นตัวเชื่อมโยง (linker) จะต้องนำฟังก์ชันจากคลัง (library function) ต่างๆที่ที่โปรแกรมได้เรียกใช้มารวมเข้ากับแฟ้ม .obj แล้วนำไปเก็บไว้ในแฟ้มชื่อเดิม แต่มีนามสกุลไฟล์เป็น .exe เมื่อต้องการกระทำการโปรแกรมก็สามารถป้อนข้อมูลเข้า (input data) ให้กับโปรแกรม ซึ่งจะได้ผลการกระทำ (output)
ฟังก์ชัน main() ท าหน้าที่รับค่ามาเก็บไว้ในตัวแปร a และตัวแปร b แล้วส่งค่าของตัวแปรทั้งสองไปยัง ฟังก์ชัน sum() เพื่อค านวณหาผลรวม เมื่อคา นวณผลรวมแล้ว จะส่งค่าของผลรวมกลับไปยังฟังก์ชัน main() จากนั้นฟังก์ชัน main() จะแสดงค่าของผลรวม
#include<stdio.h>                                                                //คำสั่งตัวประมวลผลก่อน
int a, b, c;                                                                          //คำสั่งประกาศครอบคลุม
int sum(int x, int y);                                                              //คำสั่งแบบฟังก์ชัน 
Void main()                                                                         //ฟังก์ชัน main() 
{                                                                                      //เริ่มต้นฟังก์ชัน main ()
scanf(“%d”, &a);                                                                //คำสั่งรับค่าตัวแปร   scanf(“%d”, &b);                                                                  //คำสั่งรับค่าตัวแปร  
c = sum (a, b);                                                                     //เรียกฟังก์ชัน
Sum ()   printf(“\n%d + %d = %d”,a, b, c);                                 //แสดงผล
}                                                                                      //จบฟังก์ชัน
main () int sum (int x, int y)                                                    //ฟังก์ชัน sum()
{                                                                                      //เริ่มต้นฟังก์ชัน
sum()  return (x + y);                                                            //คำสั่งรวมค่าและส่งค่ากลับ
}                                                                                      //จบฟังก์ชัน sum()     

2. ตัวแปร (variables) 
          คอมพิวเตอร์มีส่วนประกอบที่สำคัญส่วนหนึ่งคือ หน่วยความจำซึ่งเปรียบได้กับสมองของมนุษย์ทำหน้าที่เก็บ ข้อมูลในขณะที่ประมวลผล ในการประมวลผลแต่ละครั้งมักต้องใช้ข้อมูลจำนวนมาก ซึ่งจำเป็นจะต้องเก็บไว้ใน หน่วยความจำ เป็นเก็บแล้วจะต้องทราบตำแหน่งที่นำข้อมูลเข้าไปเก็บไว้ภายในของหน่วยความจำด้วย เพื่อให้ สามารถนำข้อมูลเหล่านั้นกลับมาประมวลผลได้ ดังนั้นตัวแปรจึงมีหน้าที่สำคัญที่ช่วยในการเก็บข้อมูลแต่ละ ประเภทที่ผู้ใช้ป้อนเข้าสู่โปรแกรม
ชนิดข้อมูล (data types)
           ข้อมูลที่ใช้ในโปรแกรมมีหลายชนิด ซึ่งนักเขียนโปรแกรมต้องเลือกใช้ตามความเหมาะสมกับการใช้งาน ข้อมูลมี ขนาดที่แตกต่างกันไปตามชนิดข้อมูล นอกจากนี้แล้ว ชนิดข้อมูลยังอาจมีขนาดที่แตกต่างกันโดยขึ้นกับเครื่อง คอมพิวเตอร์และตัวแปลโปรแกรมที่ใช้ในการประมวลผล แต่โดยทั่วไปแล้วในไมโครคอมพิวเตอร์ ชนิดข้อมูลมีการ ใช้ในโปรแกรม
กฎการตั้งชื่อตัวแปร   การตั้งชื่อตัวแปรมีข้อกำหนด ดังนี้
- ประกอบด้วย a ถึง z, o ถึง 9 และ _ เท่านั้น 
          - อักขระตัวแรกต้องเป็น a ถึง z และ _  
- ห้ามใช้ชื่อเฉพาะ  
- ตัวพิมพ์ใหญ่ ตัวพิมพ์เล็ก มีความหมายที่แตกต่างกัน  
- มีความยาวได้สูงสุด 31 ตัวอักษร 
 การประกาศตัวแปร  
          การประกาศตัวแปรทำได้โดย เขียนข้อความสั่งขึ้นต้นด้วยชนิดข้อมูล ตามด้วยชื่อตัวแปร และจบข้อความ สั่งประกาศตัวแปรด้วยเครื่องหมายอัฒภาค (;) ดังนี้ 
ชนิดข้อมูล   ชอื่ตัวแปร;
            ถ้าต้องการประกาศตัวแปรชนิดเดียวกันหลายตัว ต้องคั่นระหว่างตัวแปรด้วยเครื่องหมายจุลภาค (,) และ จบด้วยเครื่องหมายอัฒภาค (;) ดังนี้ 
ชนิดข้อมูล    ชื่อตัวแปร1, ชื่อตัวแปร2;
  เช่น  
int count;                          //ประกาศตัวแปรชื่อ count ใช้เก็บข้อมูลชนิด integer   
int m, n;                            //ประกาศตัวแปรชื่อ m และ n ใช้เก็บข้อมูลชนิด integer   
int num = 10                   //ประกาศตัวแปรชื่อ num และเก็บค่า 10 ไว้ในตัวแปรดังกล่าว   
char str = ‘a’;                     //ประกาศตัวแปรชื่อ str และเก็บค่าอักขระ a ไว้ในตัวแปรดังกล่าว 
3.  การแสดงผลและการรับค่า 
3.1  ฟังก์ชั่น printf()   ฟังก์ชั่น printf() เป็นฟังก์ชันจากคลังที่มาพร้อมกับตัวแปลโปรแกรมภาษาซี ใช้ส าหรับการแสดงผล มี รูปแบบดังนี้       
printf(“สายอักขระควบคุม”, ตัวแปร);
โดยที่  สายอักขระควบคุมประกอบด้วย 3 ส่วน คือ     
- ตัวอักขระที่จะแสดง     
- รูปแบบการแสดงผล ขึ้นต้นด้วยเครื่องหมายเปอร์เซ็นต์ (%)     
- ลำดับหลีก (escape sequence)    
ตัวแปร คือ ชื่อของตัวแปรที่จะแสดงผล 
  รูปแบบการแสดงผล (format specifiers)    
การกำหนดรูปแบบการแสดงผล     
- ขึ้นต้นด้วยเครื่องหมายเปอร์เซ็นต์ (%)     
- ตามด้วยอักขระ 1 ตัว หรือหลายตัว โดยที่อักขระนั้นมีความหมายดังนี้
อักขระ
ชนิดข้อมลู
รูปแบบการแสดงผล
c
char
อักขระเดียว
d
o
x
int
จำนวนเต็มฐานสิบ
จำนวนเต็มฐานแปด
จำนวนเต็มฐานสิบหก
f
float
จำนวนที่มีทศนิยมในรูปฐานสิบ

ลำดับหลีก (escape sequence)    ในการแสดงผล บางสิ่งบางอย่างที่จะแสดงอาจไม่ใช่ตัวอักษร จึงไม่สามารถที่จะเขียนสิ่งที่จะ แสดงไว้ในโปรแกรมได้ เช่น ต้องการเขียนโปรแกรมให้ส่งเสียง หรือต้องการให้เลื่อนขึ้นบรรทัดใหม่ก่อนแสดง ข้อความ ดังนั้นในการเขียนโปรแกรมเพื่อแสดงผลสิ่งที่ไม่ใช่ตัวอักขระปกติ จะต้องใช้ลำดับหลีก เพื่อช่วยในการ กำหนดอักขระพิเศษหรือสิ่งที่ไม่ใช่อักขระที่ต้องการให้โปรแกรมแสดง    ลำดับหลีกจะเขียนขึ้นต้นด้วยเครื่องหมาย \ (back slash) แล้วตามด้วยอักขระ ในการทำงาน เครื่องหมายทับกลับหลังจะบอกให้เครื่องคอมพิวเตอร์ทราบว่าให้หลีกเลี่ยงการตีความอักขระที่ตามหลังมานี้ใน ลักษณะปกติ เพราะอักขระเหล่านี้จะมีความหมายพิเศษแตกต่างออกไป 
ลำดับหลีก
ผลการกระทำการ
\n
ขึ้นบรรทัดใหม่
\t
เลื่อนไป 1 แท็บ
\a
เสียงกระดิ่ง
\b
ถอยไปหนึ่งวรรค
\b
ขึ้นหน้าใหม่
\\
แสดงเครื่องหมาย
\ \’
แสดงเครื่องหมายฝนทอง
\”
แสดงเครื่องหมายฟันหนู

3.2  ฟังก์ชัน scanf()   ฟังชัน scanf() เป็นฟังก์ชันที่ใช้ในการรับข้อมูลจากแป้นพิมพ์ โดยจะบอกเลขที่อยู่ของตัวแปรใน หน่วยความจำ แล้วจึงนำค่าที่รับมาเก็บไว้ตามที่อยู่นั้น โดยมีรูปแบบดังนี้ 
   scanf(“%รูปแบบ”, &ตัวแปร)
  โดยที่ &ตัวแปร หมายถึง เลขที่อยู่ (address) ของตัวแปรที่จะรับค่ามาเก็บในหน่วยความจำ 


4.  การคำนวณทางคณิตศาสตร์ 
          ในการเขียนโปรแกรมเพื่อทำการคำนวณทางคณิตศาสตร์ จะต้องใช้ตัวดำเนินการต่างๆ ซึ่งมีวิธีการใช้งานและ การทำงาน ดังนี้
การคำนวณ
ตัวดำเนินการ
ตัวอย่าง
การทำงาน
บวก
+
c = a + b;
นำค่าที่เก็บในตัวแปร a บวกกับค่าที่เก็บในตัว แปร b แล้วเก็บผลลัพธ์ไว้ใน c
ลบ
-
c = a - b;
นำค่าที่เก็บในตัวแปร a ลบด้วยค่าที่เก็บในตัว แปร b แล้วเก็บผลลัพธ์ไว้ใน c
คูณ
*
c = a * b;
นำค่าที่เก็บในตัวแปร a คูณกับค่าที่เก็บในตัว แปร b แล้วเก็บผลลัพธ์ไว้ใน c
หาร
/
c = a / b;
นำค่าที่เก็บในตัวแปร a หารด้วยค่าที่เก็บในตัว แปร b แล้วเก็บผลลัพธ์ไว้ใน c โดยถ้าทั้งตัวตั้ง และตัวหารต่างเป็นจำนวนเต็ม ค่าที่เก็บในตัว แปร c จะเป็นจำนวนเต็ม แต่ถ้าตัวตั้งหรือตัวหารตัวใดตัวหนึ่งเป็นจำนวนจริงที่มีทศนิยม ผลลัพธ์ที่ได้จะเป็นจำนวนจริงที่มีทศนิยมด้วย
มอลดูลัส
%
c = a % b;
ให้ค่าที่เป็นในตัวแปร a เป็นตัวตั้ง ค่าที่เก็บใน ตัวแปร b เป็นตัวหาร แล้วเก็บเศษจากการหาร ไว้ในตัวแปร

5.  ผังงาน (flowchart)
ผังงาน คือ แผนภาพที่มีการใช้สัญลักษณ์รูปภาพและลูกศรที่แสดงถึงขั้นตอนการท างานของโปรแกรมหรือ ระบบทีละขั้นตอน รวมไปถึงทิศทางการไหลของข้อมูลตั้งแต่แรกจนได้ผลลัพธ์ตามที่ต้องการ  ประโยชน์ของผังงาน 
• ช่วยลำขั้นตอนการทำงานของโปรแกรม และสามารถนำไปเขียนโปรแกรมได้โดยไม่สับสน  
• ช่วยในการตรวจสอบ และแก้ไขโปรแกรมได้ง่าย เมื่อเกิดข้อผิดพลาด  
• ช่วยให้การดัดแปลง แก้ไข ทำได้อย่างสะดวกและรวดเร็ว  
• ช่วยให้ผู้อื่นสามารถศึกษาการทำงานของโปรแกรมได้อย่างง่าย และรวดเร็วมากขึ้น    การเขียนผังโปรแกรมจะประกอบไปด้วยการใช้สัญลักษณ์มาตรฐานต่าง ๆ ที่เรียกว่า สัญลักษณ์ ANSI (American National Standards Institute) ในการสร้างผังงาน ดังตัวอย่างที่แสดงในรูปต่อไปนี้
สัญลักษณ์
ความหมาย
จุดเริ่มต้น / สิ้นสุดของโปรแกรม  
ลูกศรแสดงทิศทางการท างานของโปรแกรมและการไหลของข้อมูล  

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















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

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