Please enable JavaScript.
Coggle requires JavaScript to display documents.
ความรู้พื้นฐานโปรแกรมภาษาซี :star:, รหัสต้นฉบับ (source code)…
ความรู้พื้นฐานโปรแกรมภาษาซี
:star:
โครงสร้างของโปรแกรมภาษาซี
โปรแกรมภาษาต่างๆ จะมีรูปแบบหรือโครงสร้างเฉพาะที่แตกต่างกันไป สําหรับโปรแกรมภาษาซี มีโครงสร้างและลําดับการเขียนดัง
ตัวแปร
ตัวแปรที่ใช้เก็บข้อมูลชนิดจํานวนเต็ม
ตัวแปรที่ใช้เก็บข้อมูลชนิดจํานวนจริง
ตัวแปรที่ใช้เก็บข้อมูลชนิดอักขระ
ตัวแปรที่ใช้เก็บข้อมูลชนิดสายอักขระ
กฎการตั้งชื่อตัวแปร
ตัวแปร
ประกอบด้วย a ถึง z, 0 ถึง 9 และ _ เท่านั้น
อักขระตัวแรกต้องเป็น a ถึง z และ _
ห้ามใช้ชื่อเฉพาะ
ตัวพิมพ์ใหญ่ ตัวพิมพ์เล็ก มีความหมายที่แตกต่างกัน
ยาวสูงสุด 31 ตัวอักษร
ชนิดข้อมูล (data types)
character char 1 -128 ถึง 127
integer int 2 -32768 ถึง 32767
ตัวแปรชนิดตัวเลข
ตัวแปรจํานวนเต็ม (integer variables) -ได้แก่ char,int, short, long, unsigned char, unsigned int, unsigned short และ unsigned long
ตัวแปรจํานวนจริง (real variables) -ชนิด float ใช้เนื้อที่เก็บข้อมูล 64 บิต -ชนิด double ใช้เนื้อที่เก็บข้อมูล 64 บิต
การประกาศตัวแปร
ชนิดข้อมูล ชื่อตัวแปร;
ชนิดข้อมูล ชื่อตัวแปร1, ชื่อตัวแปร2, ... ;
การกําหนดค่าให้ตัวแปรชนิดตัวเลข
int no = 10; /
ประกาศตัวแปรที่ใช้เก็บข้อมูลชนิด integer ชื่อ no และเก็บค่า 10 ไว้ในตัวแปรดังกล่าว
/
ตัวแปรชนิดอักขระ
printf(“%c %d\n”, ‘a’, ‘a’); เป็นฟังก์ชันที่ใช้สําหรับ
ให้แสดงอักขระ a ในรูปแบบ char (%c)
ตัวคงที่ (constant)
การประกาศตัวคงที่
การแสดงผลและการรับค่า
ฟังก์ชัน printf()
เป็นฟังก์ชันจากคลัง ใช้สําหรับการแสดงผล
printf (“สายอักขระควบคุม”, ตัวแปร);
รูปแบบการแสดงผล (format specifiers)
-ขึ้นต้นด้วยเครื่องหมายเปอร์เซ็นต์ (%)
-ตามด้วยอักขระ 1 ตัว หรือหลายตัว
c char อักขระเดียว
d int จํานวนเต็มฐานสิบ
ลําดับหลีก (escape sequence)
\n ขึ้นบรรทัดใหม่ (new line)
\t เลื่อนไปยังจุดตั้งระยะ (tab) ถัดไป
\a เสียงกระดิ่ง (bell)
\b ถอยไปหนึ่งที่ว่าง (backspace)
\f ขึ้นหน้าใหม่ (form feed)
\ แสดงเครื่องหมายทับกลับหลัง (backslash)
\’ แสดงเครื่องหมายฝนทอง (single quote)
\” แสดงเครื่องหมายฟันหนู (double quote)
ฟังก์ชัน scanf()
scanf(“%รูปแบบ”, &ตัวแปร);
โดยที่ &ตัวแปร หมายถึง เลขที่อยู่ (address) ของตัวแปรที่จะรับค่ามาเก็บในหน่วยความจํา
นิพจน์ (expressions)
สิ่งที่ประมวลผลแล้วสามารถให้เป็นค่าตัวเลขได้
นิพจน์ที่มีลักษณะเป็นค่าคงที่ เช่น 100
‘g’
นิพจน์ที่เป็นค่าคงที่ที่เป็นสัญลักษณ์
const int a = 35;
const char ch = ‘m’;
นิพจน์ที่เป็นค่าคงที่
นิพจน์ที่มีลักษณะเป็นตัวแปร
int count;
float amount;
char ch;
จํานวนเต็มจํานวนเดียว
จํานวนจริงจํานวนเดียว
ตัวเลขจํานวนเต็ม หรือ ตัวเลขจํานวนจริง หลายจํานวนที่เชื่อมโยงกันด้วยตัวดําเนินการ
+, -, *, / หรือ % ซึ่งเรียกว่า การคํานวณทางคณิตศาสตร์
ข้อความสั่งกําหนดค่า (assignment statement)
ตัวแปร = นิพจน์;
คือ ข้อความสั่งที่ใช้สําหรับ สั่งให้นําผลลัพธ์ของนิพจน์ที่อยู่ด้านขวาของตัว
ดําเนินการเท่ากับ (=) มาเก็บไว้ในตัวแปรที่อยู่ด้านซ้ายของตัวดําเนินการเท่ากับ (=)
con = 10.5;
result = 25
6;
point = score1
2 + score2
5 + score3
3;
การคํานวณทางคณิตศาสตร์
บวก (+ ) 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 = a % b; ให้ค่าที่เก็บใน a เป็นตัวตั้ง ค่าที่เก็บใน b เป็นตัวหาร แล้วเก็บเศษไว้ใน c
ตัวดําเนินการเอกภาค (unary operator
)
1.ตัวดําเนินการเอกภาคเติมหลัง (postfix mode) หมายถึง
ตัวดําเนินการเอกภาคอยู่หลังตัวแปร
จะทํางานอื่นภายในข้อความสั่งเดียวกัน
ก่อน จึงจะเพิ่มค่าให้ตัวแปร
ตัวดําเนินการเอกภาคเติมหน้า (prefix mode) หมายถึง ตัวดําเนินการเอกภาคอยู่หลังตัวแปร
จะเพิ่มค่าให้ตัวแปรก่อนแล้วจึงจะทํางานอื่น
ภายในข้อความสั่งเดียวกัน
การใช้ตัวดําเนินการเอกภาคทั้ง 2 แบบ มีการใช้งานดังนี้
เพิ่มค่าตัวถูกดําเนินการทีละหนึ่ง ++
ลดค่าตัวถูกดําเนินการทีละหนึ่ง --
ตัวดําเนินการประกอบ (compound operator)
เป็นการใช้ตัวดําเนินการหนึ่งตัวร่วมกับเครื่องหมายเท่ากับ การใช้ตัว
ดําเนินการประกอบจะช่วยให้เขียนข้อความสั่งได้สั้น และเร็วขึ้น
+= 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
ลําดับในการดําเนินการ
() 2. ++ -- 3.
/ % 4. + - 5. +=
= /= -= %=
ถ้าในคําสั่งมีตัวดําเนินการที่อยู่ในลําดับเท่ากัน จะประมวลผลจากซ้ายไปขวา
การแปลงชนิดข้อมูล (type cast)
ตัวแปร = (ชนิดข้อมูล) นิพจน์;
การกําหนดค่าจากข้อมูลหลายชนิด (assignment with mixed types)
ถ้าตัวแปร หรือ ตัวคงที่ มีชนิดข้อมูลที่ต่างกัน
จะต้องแปลงใหเป็นชนิดเดียวกันก่อน แล้วจึง
ดําเนินการ โดยในการแปลงจะต้องแปลงชนิด
ข้อมูลที่มีขนาดเล็กกว่าให้เป็น ชนิดข้อมูลที่มีขนาดใหญ่กว่า
ถ้าตัวแปร หรือ ตัวคงที่ ตัวหนึ่งเป็นชนิดจํานวนเต็ม (int) ส่วนอีกตัวหนึ่งเป็นชนิดจํานวนจริง
(float) จะต้องแปลงตัวแปรหรือตัวคงที่ที่เป็นจํานวนเต็ม (int)ให้เป็นจํานวนจริง (float) ก่อน แล้วจึง
ดําเนินการ
รหัสต้นฉบับ (source code) มีลําดับการเขียนดังนี้
• ต้นแบบฟังก์ชัน (function prototypes)
• ฟังก์ชันหลัก (main function) มีเพียงฟังก์ชันเดียว
• ฟังก์ชัน (functions) มีได้หลายฟังก์ชัน
• ข้อความสั่งประกาศตัวแปรเฉพาะที่ (local declaration statements)
หมายเหตุ (comment) สามารถแทรกไว้ที่ใดก็ได้ ภายในโปรแกรม
ข้อความสั่งตัวประมวลผลก่อน (preprocessor statements)
2.การประกาศตัวคงที่ โดยใช้ข้อความสั่งตัว ประมวลผลก่อน
#define ชื่อตัวคงที่ ค่าคงที่
1.ใช้คําหลัก const ตามรูปแบบดังนี้
#define ชื่อตัวคงที่ ค่าคงที่
• ข้อความสั่งประกาศครอบคลุม (global declaration statements)