Please enable JavaScript.
Coggle requires JavaScript to display documents.
ความรู้พื้นฐานในโปรแกรมภาษาซี - Coggle Diagram
ความรู้พื้นฐานในโปรแกรมภาษาซี
:star:1.2 ตัวแปร (variables)
-กฎการตั้งชื่อตัวแปร
ประกอบด้วย a ถึง z, 0 ถึง 9 และ _ เท่านั้น
อักขระตัวแรกต้องเป็น a ถึง z และ _
ห้ามใช้ชื่อเฉพาะ
ตัวพิมพ์ใหญ่ ตัวพิมพ์เล็ก มีความหมายที่แตกต่างกัน
ยาวสูงสุด 31 ตัวอักษร
หากตั้งชื่อตัวแปรไม่ตรงตามข้อกําหนด ก็จะทําให้ตัวแปลโปรแกรมไม่เข้าใจ ไม่ทราบว่า ชื่อนั้นคืออะไร ซึ่ง
จะทําให้เกิดข้อผิดพลาดขึ้นในระหว่างการแปลโปรแกรม
-ชนิดข้อมูล (data types)
ข้อมูลที่ใช้ในโปรแกรมมีหลายชนิด ซึ่งนักเขียนโปรแกรมต้องเลือกใช้ตามความเหมาะสมกับการใช้งานข้อมูลมีขนาดที่แตกต่างกันไปตามชนิดข้อมูล นอกจากนี้แล้ว ชนิดข้อมูลยังอาจมีขนาดที่แตกต่างกันโดยขึ้นกับเครื่องคอมพิวเตอร์และตัวแปลโปรแกรมที่ใช้ในการประมวลผล แต่โดยทั่วไปแล้วในไมโครคอมพิวเตอร์ ชนิดข้อมูลมีการใช้ในโปรแกรม
-ตัวแปรชนิดตัวเลข (numeric variable types)
ตัวแปรจํานวนเต็ม (integer variables) หมายถึง ตัวแปรที่ใช้เก็บค่าที่เป็นจํานวนเต็ม ได้แก่ char,int, short, long, unsigned char, unsigned int, unsigned short และ unsigned long
ตัวแปรจํานวนจริง (real variables) หรือ ตัวแปรจุดลอยตัว (floating – point variables) หมายถึงตัวแปรที่ใช้เก็บค่าที่เป็นจํานวนจริงซึ่งเป็นตัวเลขที่เป็นเศษส่วน หรือมีจุดทศนิยม
-การประกาศตัวแปร
1.ชนิดข้อมูล ชื่อตัวแปร;
2.ชนิดข้อมูล ชื่อตัวแปร1, ชื่อตัวแปร2, ... ;
-การกําหนดค่าให้ตัวแปรชนิดตัวเลข
การกําหนดค่าให้ตัวแปร ทําได้โดยการประกาศตัวแปรและกําหนดค่าให้กับตัวแปรไว้ในคําสั่งเดียวกันหรือ อาจทําได้อีกวิธีหนึ่งคือ ประกาศตัวแปรก่อน จากนั้นจึงกําหนดค่าให้กับตัวแปรในอีกข้อความสั่งหนึ่ง
:star:1.5 นิพจน์ (expressions)
ในภาษาซี นิพจน์ หมายถึง สิ่งที่ประมวลผลแล้วสามารถให้เป็นค่าตัวเลขได้ ซึ่งแต่ละนิพจน์จะมีระดับความยากง่ายในการประมวลผลที่แตกต่างกัน
นิพจน์ที่มีระดับการประมวลผลแบบง่ายที่สุด จะประกอบด้วย ตัวแปรเพียงตัวเดียว หรือ ค่าคงที่นิพจน์ที่มีลักษณะเป็นค่าคงที่
100
'g'
:star:1.8 ตัวดำเนินการเอกภาค (unary operator)
ตัวดําเนินการเอกภาคเติมหลัง (postfix mode) หมายถึง ตัวดําเนินการเอกภาคอยู่หลังตัวแปร
เช่น a++ หมายถึง ให้เพิ่มค่าให้ตัวแปร a ขึ้นอีก 1
ตัวดําเนินการเอกภาคเติมหน้า (prefix mode) หมายถึง ตัวดําเนินการเอกภาคอยู่หลังตัวแปร
เช่น ++a หมายถึง ให้เพิ่มค่าให้ตัวแปร a ขึ้นอีก 1
:star:1.10 การแปลงชนิดข้อมูล (type cast)
การแปลงชนิดข้อมูล (type cast)
ตัวแปร = (ชนิดข้อมูล) นิพจน์;
:star:1.3 ตัวคงที่ (constant)
ตัวคงที่มีลักษณะคล้ายตัวแปร แตกต่างจากตัวแปรตรงที่ ค่าที่เก็บในตัวคงที่จะคงเดิมไม่มีการเปลี่ยนแปลงจนกระทั่งจบโปรแกรม แต่ค่าที่เก็บในตัวแปรสามารถเปลี่ยนแปลงได้ตลอดเวลา
การประกาศตัวคงที่
1.const ชนิดข้อมูล ชื่อตัวแปร = ค่าที่เก็บในตัวแปร;
2.#define ชื่อตัวคงที่ ค่าคงที่
:star:1.6ข้อความสั่งกำหนดค่า (assignment statement)
ตัวแปร = นิพจน์;
ข้อความสั่งกําหนดค่า คือ ข้อความสั่งที่ใช้สําหรับ สั่งให้นําผลลัพธ์ของนิพจน์ที่อยู่ด้านขวาของตัวดําเนินการเท่ากับ (=) มาเก็บไว้ในตัวแปรที่อยู่ด้านซ้ายของตัวดําเนินการเท่ากับ (=)
:star:1.11 การกำหนดค่าจากข้อมูลหลายชนิด
การกําหนดค่าจากข้อมูลหลายชนิด (assignment with mixed types)
ถ้านิพจน์ในข้อความสั่งกําหนดค่าประกอบด้วย ตัวแปร หรือ ตัวคงที่ที่มีชนิดข้อมูลต่างกัน จะต้อง
แปลงให้เป็นชนิดเดียวกันก่อน แล้วจึงนํามาดําเนินการ โดยมีหลักดังนี้ คือถ้าตัวแปร หรือ ตัวคงที่ มีชนิดข้อมูลที่ต่างกัน จะต้องแปลงให้เป็นชนิดเดียวกันก่อน แล้วจึง
ดําเนินการ โดยในการแปลงจะต้องแปลงชนิดข้อมูลที่มีขนาดเล็กกว่าให้เป็นชนิดข้อมูลที่มีขนาดใหญ่กว่าดังนั้น ถ้าตัวแปร หรือ ตัวคงที่ ตัวหนึ่งเป็นชนิดจํานวนเต็ม (int) ส่วนอีกตัวหนึ่งเป็นชนิดจํานวนจริง(float) จะต้องแปลงตัวแปรหรือตัวคงที่ที่เป็นจํานวนเต็ม (int) ให้เป็นจํานวนจริง (float) ก่อน แล้วจึงดําเนินการ
:star:1.4 การแสดงผลและการรับค่า
ฟังก์ชัน printf()
printf (“สายอักขระควบคุม”, ตัวแปร);
รูปแบบการแสดงผล (format specifiers)
ในการแสดงผล บางสิ่งบางอย่างที่จะแสดง อาจไม่ใช่ตัวอักษร จึงไม่สามารถที่จะเขียนสิ่งที่จะแสดงไว้ในโปรแกรมได้ เช่น ต้องการเขียนโปรแกรมให้ส่งเสียง (แสดงผลเป็นเสียง) หรือต้องการให้เลื่อนขึ้นบรรทัดใหม่ก่อนแสดงข้อความ ดังนั้นในการเขียนโปรแกรมเพื่อแสดงผลสิ่งที่ไม่ใช่ตัวอักขระปกติ จะต้องใช้ลําดับหลีก เพื่อช่วยในการกําหนดอักขระพิเศษหรือสิ่งที่ไม่ใช่อักขระ ที่ต้องการให้โปรแกรมแสดง
รูปแบบการแสดงผล (format specifiers)
scanf(“%รูปแบบ”, &ตัวแปร);
:star:1.9 ตัวดำเนินการประกอบ (compound operator)
ลําดับในการดําเนินการ
()
++ --
/ %
-
+= *= /= -= %=
:star:1.7 การคำนวณทางคณิตศาสตร์
บวก
นําค่าที่เก็บใน a บวกกับค่าที่เก็บใน b แล้ว
เก็บผลลัพธ์ไว้ใน c
หาร
ให้ค่าที่เก็บใน a เป็นตัวตั้ง ค่าที่เก็บใน b เป็นตัวหาร แล้วเก็บผลหารไว้ใน cถ้าทั้งตัวตั้งและตัวหารต่างเป็นจํานวนเต็มค่าที่เก็บใน c จะเป็นจํานวนเต็มแต่ถ้าตัวตั้งหรือตัวหารตัวใดตัวหนึ่งเป็นจํานวนจริงที่มีทศนิยม ผลลัพธ์ที่ได้จะเป็นจํานวนจริงที่มีทศนิยมด้วย
ลบ
นําค่าที่เก็บใน b ลบออกจากค่าที่เก็บใน a
แล้วเก็บผลลัพธ์ไว้ใน c
มอดูลัส
ให้ค่าที่เก็บใน a เป็นตัวตั้ง ค่าที่เก็บใน b เป็น
ตัวหาร แล้วเก็บเศษไว้ใน c
คูณ
นําค่าที่เก็บใน a คูณกับค่าที่เก็บใน b แล้วเก็บ
ผลลัพธ์ไว้ใน c
:star:1.1โครงสร้างของโปรแกรมภาษาซี
-รหัสต้นฉบับ (source code)
รหัสต้นฉบับ หมายถึง ตัวโปรแกรมที่ประกอบด้วยข้อความสั่งและตัวฟังก์ชันต่างๆ
-ข้อความสั่งประกาศครอบคลุม (global declaration statements)
ข้อความสั่งประกาศครอบคลุมใช้ประกาศตัวแปรส่วนกลาง โดยที่ตัวแปรส่วนกลางนี้จะสามารถถูก
เรียกใช้ จากทุกส่วนของโปรแกรม
-ข้อความสั่งตัวประมวลผลก่อน (preprocessor statements)
ข้อความสั่งตัวประมวลผลก่อนขึ้นต้นด้วยเครื่องหมาย # เช่น
include <stdio.h>
หมายความว่า ให้ตัวประมวลผลก่อนไปอ่านข้อมูลจากแฟ้ม stdio.h ซึ่งเป็นแฟ้มที่มีอยู่ในคลังเมื่อโปรแกรมมีการใช้ข้อความสั่งอ่านและบันทึก จะต้องใช้ข้อมูลจากแฟ้ม stdio.hข้อความสั่งตัวประมวลผลก่อนจะต้องเขียนไว้ตอนต้นของโปรแกรม
-ฟังก์ชันหลัก (main function หรือ function main())
เมื่อสั่งให้กระทําการโปรแกรม ฟังก์ชันหลักจะเป็นจุดเริ่มต้นของการกระทําการ ภายในฟังก์ชันหลักจะประกอบด้วยข้อความสั่งและข้อความสั่งที่เรียกใช้ฟังก์ชัน เมื่อมีการทํางานตามข้อความสั่งและฟังก์ชันต่างๆแล้ว จะมีการส่งค่าและกลับมาทํางานที่ฟังก์ชันหลักจนจบฟังก์ชัน
-ต้นแบบฟังก์ชัน (function prototypes)
ต้นแบบฟังก์ชันใช้ประกาศฟังก์ชัน เพื่อบอกให้ตัวแปลโปรแกรมทราบถึง ชนิดของค่าที่ส่งกลับและ
ชนิดของค่าต่าง ๆ ที่ส่งไปกระทําการในฟังก์ชัน
-ฟังก์ชัน (functions)
ฟังก์ชัน หมายถึง กลุ่มของข้อความสั่งที่ทํางานใดงานหนึ่งโดยเป็นอิสระจากฟังก์ชันหลัก แต่อาจมีการรับส่งค่าระหว่างฟังก์ชันและฟังก์ชันหลัก การเขียนฟังก์ชัน ขึ้นต้นด้วย ชนิดข้อมูลที่ส่งกลับ ชื่อฟังก์ชัน วงเล็บและตามด้วยเครื่องหมายปีกกา ภายในเครื่องหมายปีกกาประกอบด้วยข้อความสั่งภาษาซี
-ข้อความสั่งประกาศตัวแปรเฉพาะที่ (local declaration statements)
ข้อความสั่งประกาศตัวแปรเฉพาะที่ ใช้ประกาศตัวแปรเฉพาะที่ โดยที่ตัวแปรเฉพาะที่จะสามารถถูกเรียกใช้เฉพาะภายในฟังก์ชันนั้น
-การแปลและกระทําการโปรแกรม (program compilation and execution)
เมื่อได้เขียนและป้อนข้อความสั่งตัวประมวลผลก่อนและรหัสต้นฉบับลงในโปรแกรมบรรณาธิกรณ์เสร็จแล้ว จะต้องเรียกตัวแปลโปรแกรม
(compiler)หากโปรแกรมเขียนได้ถูกต้องตรงตามกฎของภาษาซี ตัวแปลโปรแกรมแปลจะแปลโปรแกรมภาษาซีให้เป็นภาษาเครื่องแล้วนําไปเก็บไว้ในแฟ้มชื่อเดียวกันแต่ส่วนขยายเป็น โอบีเจ (ชื่อแฟ้ม .obj)จากนั้นตัวเชื่อมโยงจะต้องนําฟังก์ชันจากคลังต่างๆ ที่โปรแกรมได้เรียกใช้ มารวมเข้ากับแฟ้มจุดโอบีเจ แล้วนําไปเก็บไว้ในแฟ้มชื่อเดิม แต่ส่วนขยายเป็น อีเอ็กซ์อี (ชื่อแฟ้ม .exe) ซึ่งแฟ้มนี้จะเป็นแฟ้มที่พร้อมสําหรับกระทําการเมื่อต้องการกระทําการโปรแกรมก็สามารถป้อนข้อมูลเข้า (input data) ให้กับโปรแกรม ซึ่งจะได้ผลการกระทําการ (output)