More Related Content
Similar to การเขียนคำสั่งขั้นพื้นฐาน(ภาษาC) (20)
More from Visaitus Palasak (7)
การเขียนคำสั่งขั้นพื้นฐาน(ภาษาC)
- 3. 1.1 ความเป็นมาของภาษาซี
ภาษา ซีได้รับการพัฒนาเมื่อปี ค.ศ. 1972 โดยนายเดนนิส ริตซี่ ตั้งชื่อว่าซีเพราะ
พัฒนามาจากภาษา BCLP และภาษา B ในช่วงแรกใช้ทดลองเขียนคาสั่งควบคุมใน
ห้องปฏิบัติการเบล (Bell Laboratoories) เท่านั้น เมื่อปี ค.ศ. 1972 นายไบรอัน
เคอร์นิกฮัน และนายเดนนิส ริตซี่ ร่วมกันกาหนดนิยามรายละเอียดของภาษาซี
เผยแพร่ความรู้โดยจัดทาหนังสือ The CProgramming Language
- 4. 1.1 ความเป็นมาของภาษาซี
มีหลายบริษัทให้ความสนใจนาไปพัฒนาต่อ จนมีภาษาซีหลายรูปแบบและแพร่หลาย
ไปทั่วโลก แต่ยังไม่มีมาตรฐานคาสั่งเพื่อให้สามารถใช้งานร่วมกันได้ ดังนั้นเมื่อปี ค.ศ.
1988 นายริตซี่ ได้ร่วมกับสถาบันกาหนดมาตรฐาน ANSI สร้างมาตรฐานภาษาซี
ขึ้นมา มีผลให้ โปรแกรมคาสั่งที่สร้างด้วยภาษาซีสังกัดบริษัทใดๆ ก็ตามที่ใช้คาสั่ง
มาตรฐานของภาษาสามารถนามาทางานร่วมกันได้
- 5. 1.2 การทางานของคอมไพเลอร์ภาษาซี
คอมไพเลอร์ (compiler)
เป็นโปรแกรมที่ได้รับการพัฒนามาเพื่อแปลภาษาคอมพิวเตอร์รูปแบบหนึ่งมักใช้ กับ
โปรแกรมเชิงโครงสร้าง ลักษณะการแปลจะอ่านรหัสคาสั่งทั้งโปรแกรมตั้งแต่บรรทัด
คาสั่งแรกถึงบรรทัด สุดท้าย หากมีข้อผิดพลาดจะรายงานทุกตาแหน่งคาสั่งที่ใช้งาน
ผิดกฎไวยากรณ์ของภาษา กระบวนการคอมไพล์โปรแกรมคาสั่งของภาษาซีดังนี้
- 7. 1. จัดทาโปรแกรมต้นฉบับ (Source Program) หลักจากพิมพ์คาสั่งงาน ตาม
โครงสร้างภาษาที่สมบูรณ์แล้วทุกส่วนประกอบ ให้บันทึกโดยกาหนดชนิดงานเป็น
.c เช่น work.c
- 8. 2. การแปลรหัสคาสั่งเป็นภาษาเครื่อง (Compile) หรือการบิวด์ (Build) เครื่อง
จะตรวจสอบคาสั่งทีละคาสั่ง เพื่อวิเคราะห์ว่าใช้งานได้ถูกต้องตามรูปแบบไวยากรณ์ที่
ภาษาซีกาหนดไว้หรือ ไม่หากมีข้อผิดพลาดจะแจ้งให้ทราบ หากไม่มีข้อผิดพลาดจะไป
กระบวนการ A
- 9. 3. การเชื่อมโยงโปรแกรม( Link) ภาษาซีมีฟังก์ชันมาตรฐานให้ใช้งาน
เช่น printf () ซึ่งจัดเก็บไว้ในเฮดเดอร์ไพล์ หรือเรียกว่า ไลบรารี ในตาแหน่งที่กาหนด
ชื่อแตกต่างกันไป ผู้ใช้ต้องศึกษาและเรียกใช้เฮดเดอร์ไฟล์กับฟังก์ชันให้สัมพันธ์
เรียกว่าเชื่อมโยงกับไลบรารี กระบวนการนี้ได้ผลลัพธ์เป็นไฟล์ชนิด exe
- 11. 2.1 ส่วนหัวของโปรแกรม (Header File)
หรือเรียกว่าฟรีโปรเซสเซอร์ไดเรกทีฟ ใช้ระบุชื่อเฮดเดอร์ไฟล์ ควบคุมการทางาน
ของฟังก์ชันมาตรฐานที่ถูกเรียกใช้งานในส่วนของ main ( ) เฮดเดอร์ไฟล์มีชนิด
เป็น.h จัดเก็บในไลบรารีฟังก์ชัน ผู้เขียนคาสั่งงานต้องศึกษาว่าฟังก์ชันที่ใช้งานนั้นอยู่
ในเฮดเดอร์ไฟล์ชื่ออะไร จึงจะเรียกใช้งานได้ถูกต้อง นิยมใช้รูปแบบคาสั่ง ดังนี้
- 12. รูปแบบ # include < header_name>
อธิบาย header_name ชื่อเฮดเดอร์ไฟล์ที่ควบคุมฟังก์ชันมาตรฐาน เช่น
ฟังก์ชัน printf ใช้ควบคุมการแสดงผล จัดเก็บในไลบรารีชื่อ #include <stdio.h>
ตัวอย่างคาสั่ง ประกาศฟรีโปรเซสเซอร์ไดเรกทีฟ ที่ใช้ควบคุมฟังก์ชันมาตรฐานภาษาซี
# include <stdio.h>
อธิบาย ให้คอมไพเลอร์ค้นหาไลบรารีไฟล์ชื่อ stdio.h จากไดเรกเทอรี include
- 13. 2.2 ส่วนฟังก์ชันหลัก (Main Function)
เป็นส่วนเขียนคาสั่งควบคุมการทางานภายในขอบเขตเครื่องหมาย { } ของฟังก์ชัน
หลักคือ main ( ) ต้องเขียนคาสั่งตามลาดับขั้นตอนจากกระบวนการวิเคราะห์
ระบบงานเบื้องต้นและขั้นวางแผนลาดับการทางานที่ได้จัดทาล่วงหน้าไว้ เช่น ลาดับ
การทางานด้วยแผนผังโปรแกรมเพื่อลดข้อผิดพลาดในขั้นตอนลาดับคาสั่งควบคุมงาน
ในส่วนนี้พึงระมัดระวังเรื่องเดียวคือ ต้องใช้งานคาสั่งตามรูปแบบไวยากรณ์ของ
ภาษาซีที่กาหนดไว้
- 15. 2.3 การพิมพ์คาสั่งควบคุมงานในโครงสร้างภาษาซี
การพิมพ์คาสั่งงาน ซึ่งภาษาซีเรียกว่า ฟังก์ชัน ในส่วนประกอบภายในโครงสร้าง
ภาษาซีมีแนวทางปฏิบัติดังนี้
1. คาสั่งที่ใช้ควบคุมการประมวลผลตามลาดับที่ได้วิเคราะห์ไว้ ต้องเขียนภายใน
เครื่องหมาย {} ที่อยู่ภายใต้การควบคุมของ ฟังก์ชันหลักชิ่อ main ()
2. ปกติคาสั่งควบคุมงานจะเป็นอักษรตัวพิมพ์เล็ก ยกเว้นบางคาสั่งที่ภาษากาหนดว่า
ต้องเป็น
อักษรตัวพิมพ์ใหญ่ ต้องปฏิบัติตามนั้น เพราะภาษาซีมีความแตกต่างในเรื่องตัวอักษร
- 16. 2.3 การพิมพ์คาสั่งควบคุมงานในโครงสร้างภาษาซี
3. เมื่อสิ้นสุดคาสั่งงาน ต้องพิมพ์เครื่องหมายเซมิโคลอน (;)
4. ใน 1 บรรทัด พิมพ์ได้มากกว่า 1 คาสั่ง แต่นิยมบรรทัดละ 1 คาสั่ง เพราะว่าอ่าน
โปรแกรมง่ายเมื่อมีข้อผิดพลาด ย่อมตรวจสอบและค้นหาเพื่อแก้ไขได้เร็ว
5. การพิมพ์คาสั่ง หากมีส่วนย่อย นิยมเคาะเยื้องเข้าไป เพื่ออ่านโปรแกรมได้ง่ายขึ้น
เมื่อมีข้อผิดพลาดย่อมตรวจสอบและค้นหาเพื่อแก้ไขได้รวดเร็ว
- 19. 3.1 ชนิดข้อมูลแบบพื้นฐาน
การจัดเก็บข้อมูลลงหน่วยความจาทั้งแบค่าคงที่หรือแบบตัวแปร ต้องกาหนดชนิด
ข้อมูลให้ระบบรับทราบ
ในที่นี้กล่าวถึงชนิดข้อมูลแบบพื้นฐาน 3 กลุ่มหลักเท่านั้น ดังตารางที่ 2.1 ชนิดข้อมูล
แบบพื้นฐาน
- 21. 3.2 คาสั่งจัดเก็บข้อมูลแบบค่าคงที่
ประสิทธิภาพคาสั่ง : ลักษณะการจัดเก็บข้อมูลในหน่วยความจาไม่สามารถ
เปลี่ยนแปลงได้
รูปแบบ Const data_type var = data ;
อธิบาย data_type คือที่ชนิดข้อมูลแบบพื้นฐาน
Var คือชื่อหน่วยความจาที่ผู้ใช้ต้องกาหนดตามกฎการตั้งชื่อ
Data คือข้อมูลที่กาหนดเป็นค่าคงที่
- 22. ข้อควรจา :
กรณีข้อมูลมี 1 อักขระ กาหนดให้อยู่ใน ‘ ‘
(single quotation)
กรณีข้อมูลมีมากกว่า 1 อักขระ กาหนดให้อยู่ใน “ ”
(double quotation)
กรณีข้อมูลเป็นชนิดตัวเลขใช้ในการคานวณไม่ต้องอยู่ใน ‘’ หรือ
“ ”
- 23. 3.3 คาสั่งจัดเก็บข้อมูลแบบตัวแปร
ประสิทธิภาพคาสั่ง : ลักษณะการจัดเก็บข้อมูลในหน่วยความจาสามารถเปลี่ยนแปลง
ได้
รูปแบบ 1 var_type var_name[,….];
รูปแบบ 2 var_type var_name = data ;
อธิบาย var_type คือหน่วยชนิดข้อมูลแบบพื้นฐาน
var name คือชื่อหน่วยความจา ที่ผู้ใช้ต้องกาหนดตามกฎ
การตั้งชื่อ
data คือข้อมูลที่กาหนดเป็นค่าเริ่มต้น (อาจมีหรือไม่ก็ได้)
- 24. หมายเหตุ หากมีตัวแปรมากกว่า 1 ตัว แต่เป็นตัวแปรเก็บข้อมูลประเภทเดียว ใช้
คอมม่า (,) คั่น
ตัวอย่างคาสั่ง กาหนดคุณสมบัติให้ตัวแปรในการจัดเก็บข้อมูล
Char ans ;
List salary , bonus ;
Short value = 2;
- 25. 4.1 คาสั่งแสดงผล : printf ( )
ประสิทธิภาพคาสั่ง : ใช้แสดงผล สิ่งต่อไปนี้ เช่น ข้อความ ข้อมูลจากค่าคงที่ หรือตัว
แปรที่จอภาพ
รูปแบบ 1 Printf (“ string_format” , data_list ) ;
รูปแบบ 2 Printf (“string_format” ) ;
อธิบาย string_format คือลักษณะของสิ่งต่อไปนี้ เช่น ข้อความ
(text ) รหัสรูปแบบข้อมูล เช่น %d รหัสควบคุม เช่น n
Data_list คือข้อมูลแสดงผลอาจเป็นค่าคงที่ตัวแปร นิพจน์ หากมี
หลายตัวใช้ , คั่น
- 26. ตารางที่ 2.2 รหัสรูปแบบข้อมูลระดับพื้นฐาน
ตัวอย่างคาสั่ง ควบคุมการแสดงผลด้วย printf
Printf ( “ Data is %d n ” , score ) ;
อธิบาย พิมพ์ข้อความคาว่า data is ตามด้วยค่าข้อมูลใน
หน่วยความจาตัวแปรชื่อ score ซึ่งเป็นข้อมูลชนิดจานวนเต็ม
(%) แล้วเลื่อนคอร์เซอร์ไปไว้บรรทัดถัดไป (n)
- 27. 4.2 คาสั่งรับข้อมูล : รับข้อมูลจากแป้นพิมพ์ แล้วจัดเก็บลงหน่วยความจาของตัว
แปร
รูปแบบ Scanf ( “ string_format” , &
address_list ) ;
อธิบาย string_format คือรูปแบบการแสดงผลของข้อมูล
เท่านั้น เช่น %d
Address_list คือการระบุตาแหน่งที่อยู่ในหน่วยความจา
ต้องใช้สัญลักษณ์ &(Ampersand) นาหน้าชื่อตัวแปรเสมอ
- 28. ข้อควรจา กรณีเป็นตัวแปรข้อความ (String) สามารถยกเว้น
ไม่ต้องใช้ & นาหน้าได้
ตัวอย่างคาสั่ง เขียนคาสั่งควบคุมการรับค่าจากแป้ นพิมพ์ด้วย
scanf
Scanf ( “%d ” , &score ) ;
อธิบาย รับข้อมูลจากแป้ นพิมพ์ นาไปเก็บในหน่วยความจาชื่อ
score เป็นข้อมูลประเภทจานวนเต็ม
- 29. 4.3 คาสั่งประมวลผล : expression
ประสิทธิภาพคาสั่ง : เขียนคาสั่งแบบนิพจน์เพื่อประมวลผล แล้วนาข้อมูลที่ได้ไป
จัดเก็บในหน่วยความจาของตัวแปรที่ต้องกาหนดชื่อและชนิดข้อมูลไว้แล้ว
รูปแบบ Var = expression ;
อธิบาย var คือชื่อหน่วยความจาชนิดตัวแปร
Expression คือสมการนิพจน์ เช่น สูตรคานวณทาง
คณิตศาสตร์
- 31. แนวคิดในการเขียนคาสั่งควบคุมการทางาน
1. ส่วนป้อนข้อมูล ผู้ใช้ระบบงานป้อนค่า ; เก็บในหน่วยความจา x และป้อนค่า A
เก็บในหน่วยความจา y ด้วยคาสั่ง
Printf ( “data x=” ) ; scanf ( “%d ,&x ) ;
Printf ( “data y=” ) ; scanf ( “%d ,&y ) ;
- 32. แนวคิดในการเขียนคาสั่งควบคุมการทางาน
2.ส่วนประมวลผล ระบบจะนาค่าไปประมวลผลตามนิพจน์คณิตศาสตร์
r = 2 + 3 * 2 ; ได้คาตอบคือ 8
s = (2 + 3 ) * 2; ได้คาตอบคือ 10
t = 2 + 3 * 2-1 ; ได้คาตอบคือ 7
ทั้งนี้คอมพิวเตอร์ประมวลผล โดยยึดหลักลาดับความสาคัญของ
“เครื่องหมายทางคณิตศาสตร์”
เช่นคานวณเครื่องหมาย * ก่อนเครื่องหมาย +
- 35. แนวคิดในการเขียนคาสั่งควบคุมการทางาน
1. กาหนดค่า ‘A’ เก็บในตัวแปรประเภท char ชื่อ word1 และกาหนดค่า ‘1’
เก็บในตัวแปรชื่อ word2 ด้วยคาสั่ง char word1=’A’ , word2=’1’
2. เขียนคาสั่งควบคุมการแสดงผลทีละ 1 อักขระ โดยไม่ต้องใช้สัญลักษณ์ขึ้น
บรรทัดใหม่ด้วยคาสั่ง putchar(word1); putcar(word2); จึงพิมพ์คาว่า A1 ที่
จอภาพ
- 36. ภาษาซีมีคาสั่งแสดงผลและรับข้อมูลเฉพาะข้อมูลประเภท 8 อักขระ (char )ดังนี้
5.2คาสั่ง getchar ( )
รับข้อมูลจากแป้นพิมพ์ครั้งละ 1 อักขระ และแสดงอักขระที่จอภาพ จากนั้นต้องกด
แป้นพิมพ์ที่ Enter เพื่อนาข้อมูลบันทึกลงหน่วยความจาด้วย
รูปแบบ 1 ไม่นาข้อมูลจัดเก็บลงหน่วยความจาของตัวแปร
getchar ( ) ;
- 37. 5.2คาสั่ง getchar ( )
รูปแบบ 2 นาข้อมูลจัดเก็บลงหน่วยความจาของตัวแปร
char_var = getchar ( ) ;
อธิบาย char_var คือ ข้อมูลชนิด char
- 40. 5.3 คาสั่ง getch ( )
รูปแบบ 2 ไม่นาข้อมูลจัดเก็บลงหน่วยความจาของตัวแปร
getch( ) ;
อธิบาย char_var คือ ข้อมูลชนิดอักขระ
- 43. 5.4 คาสั่ง getche( )
รูปแบบ 2 นาข้อมูลจัดเก็บลงหน่วยความจาของตัวแปร
char_var = getche ( );
อธิบาย char_var คือ ข้อมูลชนิดอักขระ
- 45. ภาษาซีมีคาสั่งใช้ในการรับข้อมูลเฉพาะประเภทข้อความ (String) ในภาษาซีคือชนิด
ข้อมูล char [n] จัดเก็บในหน่วยความจา และแสดงผลข้อมูลประเภทข้อความเท่านั้น
มีรายละเอียดดังนี้
6.1.คาสั่ง puts( )
แสดงผลข้อมูลเฉพาะประเภทข้อความทางจอภาพครั้งละ 1 ข้อความ
รูปแบบputs ( string_argument ) ;
อธิบาย string_argument คือ ข้อมูลชนิดข้อความ
- 47. 6.2คาสั่ง gets ( )
รับข้อมูล ข้อความ จากแป้นพิมพ์ และต้องกดแป้น Enter
รูปแบบ 1 ไม่นาข้อมูลจัดเก็บลงหน่วยความจาของตัวแปร
gets ( );
รูปแบบ 2 นาข้อมูลจัดเก็บลงหน่วยความจาของตัวแปร
string_var =gets ( ) ;
อธิบาย string_var คือ ข้อมูลชนิดข้อความ
- 49. 6.1.คาสั่ง puts( )
แสดงผลข้อมูลเฉพาะประเภทข้อความทางจอภาพครั้งละ 1 ข้อความ
รูปแบบ puts ( string_argument ) ;
อธิบาย string_argument คือ ข้อมูลชนิดข้อความ
แนวคิดในการเขียนคาสั่งควบคุมการทางาน
1.เขียนคาสั่งกาหนดค่าข้อความเก็บในตัวแปรชื่อ word
Char word [15] = “*Example * “ ;
2.เขียนคาสั่งควบคุมการแสดงผลในลักษณะข้อความด้วย puts
Puts ( word ) ;
Puts (“**************”);
- 50. 6.2คาสั่ง gets ( )
รับข้อมูล ข้อความ จากแป้นพิมพ์ และต้องกดแป้น Enter
รูปแบบ 1 ไม่นาข้อมูลจัดเก็บลงหน่วยความจาของตัวแปร gets ( );
รูปแบบ 2 นาข้อมูลจัดเก็บลงหน่วยความจาของตัวแปร
string_var =gets ( ) ;
อธิบาย string_var คือ ข้อมูลชนิดข้อความ
- 52. นายทยาวีร์ เจียจารูญ และคณะ. 2557.
(ออนไลน์). แหล่งที่มา :
https://sites.google.com/site/pussamon
mlp/krni-suksa-kar-chi-kha-sang-
khwbkhum-kar-thangan-khan-phun-than.
11 มิ.ย. 2557.