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