Please enable JavaScript.
Coggle requires JavaScript to display documents.
ความมรู้พื้นฐานโปรแกรมภาษาซี - Coggle Diagram
ความมรู้พื้นฐานโปรแกรมภาษาซี
ตัวแปร (variables) :checkered_flag:
คอมพิวเตอร์มีส่วนประกอบที่สําคัญส่วนหนึ่งคือ หน่วยความจํา หน่วยความจําเปรียบได้กับสมองของ
มนุษย์ทําหน้าที่เก็บข้อมูลในขณะที่ประมวลผล ในการประมวลผลแต่ละครั้งมักต้องใช้ข้อมูลจํานวนมาก อาทิ
ชื่อนิสิต คะแนนสอบวิชาคณิตศาสตร์ คะแนนสอบวิชาการเขียนโปรแกรมคอมพิวเตอร์ จํานวนหน่วยกิต
คะแนนเฉลี่ย เป็นต้น ซึ่งจําเป็นจะต้องนําข้อมูลเหล่านี้ไปเก็บไว้ในหน่วยความจํา และเมื่อเก็บแล้ว จะต้อง
ทราบตําแหน่งที่นําข้อมูลเข้าไปเก็บไว้ภายในของหน่วยความจําด้วย เพื่อให้สามารถนําข้อมูลเหล่านั้นกลับมา
ประมวลผลได้ ในภาษาคอมพิวเตอร์ระดับสูง เพื่อความสะดวกในการเขียนโปรแกรม การจดจําตําแหน่งที่ใช้ใน
การเก็บข้อมูล จะทําโดยการตั้งชื่อให้กับตําแหน่งของหน่วยความจําที่ใช้เก็บข้อมูลนั้น จากนั้นระบบปฏิบัติการ
จะช่วยจัดการในการหาตําแหน่งที่อยู่ที่แท้จริงของข้อมูลต่อไป
ตัวแปร เป็นชื่อของหน่วยความจําที่ตําแหน่งใด ๆ เมื่อนําข้อมูลไปเก็บไว้ในหน่วยความจําตําแหน่งนั้น
จะกล่าวว่า ตัวแปรนั้นมีค่าเท่ากับข้อมูลที่เก็บไว้ ตัวแปรสามารถเก็บค่าชนิดต่าง ๆ ตามที่ได้ประกาศไว้ใน
โปรแกรมเท่านั้น เช่น
ตัวแปรที่ใช้เก็บข้อมูลชนิดจํานวนเต็ม
ตัวแปรที่ใช้เก็บข้อมูลชนิดจํานวนจริง
ตัวแปรที่ใช้เก็บข้อมูลชนิดอักขระ
ตัวแปรที่ใช้เก็บข้อมูลชนิดสายอักขระ
ตัวแปรเหล่านี้จะไม่สามารถเก็บค่าชนิดอื่นนอกเหนือจากชนิดที่ประกาศไว้ และค่าที่เก็บไว้ในตัวแปรนี้
ข้อความสั่งกําหนดค่า (assignment statement) :checkered_flag:
ข้อความสั่งกําหนดค่า ใช้สําหรับกําหนดค่าให้กับตัวแปร มีรูปแบบดังนี้
ข้อความสั่งกําหนดค่า คือ ข้อความสั่งที่ใช้สําหรับ สั่งให้นําผลลัพธ์ของนิพจน์ที่อยู่ด้านขวาของตัว
ดําเนินการเท่ากับ (=) มาเก็บไว้ในตัวแปรที่อยู่ด้านซ้ายของตัวดําเนินการเท่ากับ (=)
เมื่อนํานิพจน์มาเขียนไว้ในโปรแกรมภาษาซีจะกลายเป็นข้อความกําหนดค่า ดังตัวอย่างต่อไปนี้
con = 10.5;
result = 25 * 6;
point = score1
2 + score2
5 + score3 * 3;
โครงสร้างของโปรแกรมภาษาซี :checkered_flag:
โปรแกรมภาษาต่างๆ จะมีรูปแบบหรือโครงสร้างเฉพาะที่แตกต่างกันไป สําหรับโปรแกรมภาษาซี มี
โครงสร้างและลําดับการเขียนดังนี้
ข้อความสั่งตัวประมวลผลก่อน (preprocessor statements)
รหัสต้นฉบับ (source code) มีลําดับการเขียนดังนี้
ข้อความสั่งประกาศครอบคลุม (global declaration statements)
• ต้นแบบฟังก์ชัน (function prototypes)
• ฟังก์ชันหลัก (main function) มีเพียงฟังก์ชันเดียว
• ฟังก์ชัน (functions) มีได้หลายฟังก์ชัน
• ข้อความสั่งประกาศตัวแปรเฉพาะที่ (local declaration statements)
ตัวคงที่ (constant) :checkered_flag:
ตัวคงที่มีลักษณะคล้ายตัวแปร แตกต่างจากตัวแปรตรงที่ ค่าที่เก็บในตัวคงที่จะคงเดิมไม่มีการ
const ชนิดข้อมูล ชื่อตัวแปร = ค่าที่เก็บในตัวแปร;
การคํานวณทางคณิตศาสตร์ :checkered_flag:
ในการเขียนโปรแกรม เพื่อทําการคํานวณทางคณิตศาสตร์ จะต้องใช้ตัวดําเนินการต่าง ๆ ซึ่งมี
วิธีการใช้งาน และการทํางาน
การคํานวณ ตัวดําเนินการ ตัวอย่าง การทํางาน
บวก + c = a + b; นําค่าที่เก็บใน a บวกกับค่าที่เก็บใน b แล้ว
เก็บผลลัพธ์ไว้ใน c
ลบ - c = a – b; นําค่าที่เก็บใน b ลบออกจากค่าที่เก็บใน a
แล้วเก็บผลลัพธ์ไว้ใน c
คูณ
c = a
b; นําค่าที่เก็บใน a คูณกับค่าที่เก็บใน b แล้วเก็บ
ผลลัพธ์ไว้ใน c
หาร / c = a / b; ให้ค่าที่เก็บใน a เป็นตัวตั้ง ค่าที่เก็บใน b เป็น
ตัวหาร แล้วเก็บผลหารไว้ใน c
ถ้าทั้งตัวตั้งและตัวหารต่างเป็นจํานวนเต็ม
ค่าที่เก็บใน c จะเป็นจํานวนเต็ม
แต่ถ้าตัวตั้งหรือตัวหารตัวใดตัวหนึ่งเป็น
จํานวนจริงที่มีทศนิยม ผลลัพธ์ที่ได้จะเป็น
จํานวนจริงที่มีทศนิยมด้วย
มอดูลัส % c = a % b; ให้ค่าที่เก็บใน a เป็นตัวตั้ง ค่าที่เก็บใน b เป็น
ตัวหาร แล้วเก็บเศษไว้ใน c
นิพจน์ที่มีลักษณะเป็นค่าคงที่
+, -, *, / หรือ % ซึ่งเรียกว่า การคํานวณทางคณิตศาสตร์
ตัวเลขจํานวนเต็ม หรือ ตัวเลขจํานวนจริง หลายจํานวนที่เชื่อมโยงกันด้วยตัวดําเนินการ
จํานวนจริงจํานวนเดียว
จํานวนเต็มจํานวนเดียว
ตัวแปร ดังนั้น นิพจน์ จึงหมายถึง จํานวนใดจํานวนหนึ่งต่อไปนี้
จากข้อความสั่งในภาษาซีดังกล่าวข้างต้น ทําให้ count, amount และ ch ต่างเป็นนิพจน์ที่เป็น
char ch;
float amount;
int count;
นิพจน์ที่มีลักษณะเป็นตัวแปร เช่น
จากข้อความสั่งในภาษาซีดังกล่าวข้างต้น ทําให้ VAT, PI, a และ ch ต่างเป็นนิพจน์ที่เป็นค่าคงที่
const char ch = ‘m’;
const int a = 35;
define PI 3.14159
define VAT 7
นิพจน์ที่เป็นค่าคงที่ที่เป็นสัญลักษณ์ เช่น
นิพจน์ที่มีระดับการประมวลผลแบบง่ายที่สุด จะประกอบด้วย ตัวแปรเพียงตัวเดียว หรือ ค่าคงที่
ความยากง่ายในการประมวลผลที่แตกต่างกัน
ในภาษาซี นิพจน์ หมายถึง สิ่งที่ประมวลผลแล้วสามารถให้เป็นค่าตัวเลขได้ ซึ่งแต่ละนิพจน์จะมีระดับ
นิพจน์ (expressions) :checkered_flag:
การแสดงผลและการรับค่า :checkered_flag:
ฟังก์ชัน printf()
ฟังก์ชัน printf() เป็นฟังก์ชันจากคลัง ที่มาพร้อมกับตัวแปลโปรแกรมภาษาซี ใช้สําหรับการแสดงผล
โดยที่ สายอักขระควบคุม ประกอบด้วย 3 ส่วน คือ
ตัวอักขระที่จะแสดง
รูปแบบการแสดงผล ขึ้นต้นด้วยเครื่องหมายเปอร์เซ็นต์ (%)
ลําดับหลีก (escape sequence)
ตัวแปร คือ ชื่อของตัวแปรที่จะแสดงผล
:check:
ตัวดําเนินการเอกภาค (unary operator) :checkered_flag:
ตัวดําเนินการเอกภาค คือ การใช้ตัวดําเนินการกับตัวแปรตัวเดียว ในที่นี้จะแสดงการใช้ตัวดําเนินการ
2 ตัวกับตัวแปรตัวเดียว ซึ่งมีลักษณะการใช้ 2 แบบ คือ
ตัวดําเนินการเอกภาคเติมหลัง (postfix mode) หมายถึง ตัวดําเนินการเอกภาคอยู่หลังตัวแปร
เช่น a++ หมายถึง ให้เพิ่มค่าให้ตัวแปร a ขึ้นอีก 1
ตัวดําเนินการเอกภาคเติมหน้า (prefix mode) หมายถึง ตัวดําเนินการเอกภาคอยู่หลังตัวแปร
เช่น ++a หมายถึง ให้เพิ่มค่าให้ตัวแปร a ขึ้นอีก 1
ตัวดําเนินการประกอบ (compound operator) :checkered_flag:
ตัวดําเนินการประกอบ เป็นการใช้ตัวดําเนินการหนึ่งตัวร่วมกับเครื่องหมายเท่ากับ การใช้ตัว
ดําเนินการประกอบจะช่วยให้เขียนข้อความสั่งได้สั้น และเร็วขึ้น
ตัวดําเนินการประกอบ ตัวอย่าง การทํางาน
+= x+=5 x = x + 5
-= x-=5 x = x - 5
= x
=y x = x * y
/= x/=y x = x / y
%= x%=5 x = x % 5
+= x+=y/8 x = x + y/8
ลําดับในการดําเนินการ
ในกรณีที่คําสั่งประกอบด้วยตัวดําเนินการประกอบ ตัวดําเนินการเอกภาคหลายตัว จะประมวลผล
ตามลําดับต่อไปนี้
()
++ --
/ %
-
+= *= /= -= %=
ถ้าในคําสั่งมีตัวดําเนินการที่อยู่ในลําดับเท่ากัน จะประมวลผลจากซ้ายไปขวา
การแปลงชนิดข้อมูล (type cast) :checkered_flag:
การแปลงชนิดข้อมูลมีหลายวิธี แต่ที่กล่าวในที่นี้คือ การแปลงชนิดข้อมูลโดยการกําหนดชนิด
ไว้ที่หน้าข้อมูลนั้น
รูปแบบ
โดยที่ (ชนิดข้อมูล) นิพจน์ อาจมีหลายชุด แล้วเชื่อมโยงกันด้วยตัวดําเนินการต่าง ๆ
การกําหนดค่าจากข้อมูลหลายชนิด (assignment with mixed types) :checkered_flag:
ถ้านิพจน์ในข้อความสั่งกําหนดค่าประกอบด้วย ตัวแปร หรือ ตัวคงที่ที่มีชนิดข้อมูลต่างกัน จะต้อง
แปลงให้เป็นชนิดเดียวกันก่อน แล้วจึงนํามาดําเนินการ โดยมีหลักดังนี้ คือ
ถ้าตัวแปร หรือ ตัวคงที่ มีชนิดข้อมูลที่ต่างกัน จะต้องแปลงให้เป็นชนิดเดียวกันก่อน แล้วจึง
ดําเนินการ โดยในการแปลงจะต้องแปลงชนิดข้อมูลที่มีขนาดเล็กกว่าให้เป็นชนิดข้อมูลที่มีขนาดใหญ่กว่า
ดังนั้น ถ้าตัวแปร หรือ ตัวคงที่ ตัวหนึ่งเป็นชนิดจํานวนเต็ม (int) ส่วนอีกตัวหนึ่งเป็นชนิดจํานวนจริง
(float) จะต้องแปลงตัวแปรหรือตัวคงที่ที่เป็นจํานวนเต็ม (int) ให้เป็นจํานวนจริง (float)