Contenu connexe
Similaire à บทที่4 เมธอด (METHOD) (20)
บทที่4 เมธอด (METHOD)
- 3. ลักษณะการทางานของภาษาซี
ภาษาซีเป็นภาษาที่มีการพัฒนาการมาอย่างต่อเนื่อง ภาษาซีรุ่นแรกทางานภายใต้
ระบบปฏิบัติการคอส (cos) ปัจจุบันทางานภายใต้ระบบปฏิบัติการวินโดวส์ (Windows) ภาษาซี
ใช้วิธีแปลรหัสคาสั่งให้เป็นเลขนานสองเรียกว่า คอมไพเลอร์ การศึกษาภูมิหลังการเป็นมาของ
ภาษาซีและกระบวนการแปลภาษาจะช่วยให้ผู้ใช้ภาษาซีในรุ่นและบริษัทผู้ผลิตแตกต่างกัน
สามารถใช้ภาษาได้อย่างเข้าใจมากขึ้น
ความเป็นมาของภาษาซี
ภาษาซีได้รับการพัฒนาเมื่อปี ค.ศ.1972 โดยนายเดนนิส ริตซี่ ตั้งชื่อว่าซีเพราะ
พัฒนามาจากภาษา BCLP และภาษา B ในช่วงแรกใช้ทดลองเขียนคาสั่งควบคุมใน
ห้องปฏิบัติการเบล (Bell Laboratoorics) เท่านั้น เมื่อปี ค.ศ.1978 นายไบรอัน เคอร์นิกฮัน และ
นายเดนนิส ริตซี่ ร่วมกันกาหนดนิยามรายละเอียดของภาษาซี เผยแพร่ความรู้โดยจัดทาหนังสือ
The C Programming Language มีหลายบริษัท ให้ความสนใจนาไปพัฒนาต่อ จนมีภาษาซี
หลายรูปแบบและแพร่หลายไปทั่วโลก แต่ยังไม่มีมาตรนานคาสั่งเพื่อให้สามารถใช้งานร่วมกันได้
ดังนั้นเมื่อปี ค.ศ.1988 นายริตซี่ ได้ร่วมกับสถาบันกาหนดมาตรนาน ANSI สร้างมาตรนาน
ภาษาซีขึ้นมามีผลให้โปรแกรมคาสั่งที่สร้างด้วยภาษาซีสังกัดบริษัทใดๆก็ตามที่ใช้คาสั่งมาตรนาน
ของภาษาสามารถนามาทางานร่วมกันได้
- 5. 2.การแปลรหัสคาสั่งเป็นภาษาเครื่อง (Compile) หรือการบิวด์ (Build) เครื่องจะ
ตรวจสอบคาสั่งทีละคาสั่ง เพื่อวิเคราะห์ว่าใช้งานได้ถูกต้องตามรูปแบบไวยากรณ์ที่ภาษาซี
กาหนดไว้หรือหากมีข้อผิดพลาดจะแจ้งให้ทราบ หากไม่มีข้อผิดพลาดจะไปกระบวนการ3
3.การเชื่อมโยงโปรแกรม (Link) ภาษาซีมีฟังก์ชันมาตรนานให้ใช้งาน เช่น printf()
ซึ่งจัดเก็บไว้ในเฮดเดอร์ไพล์ หรือเรียกว่า ไลบรารี ในตาแหน่งที่กาหนดชื่อแตกต่างกันไป
ผู้ใช้ต้องศึกษาและเรียกใช้เฮดเดอร์ไฟล์กับฟังก์ชันให้สัมพันธ์เรียกว่าเชื่อมโยงกับไลบรารี
กระบวนการนี้ได้ผลลัพธ์เป็นไฟล์ชนิด .exe
- 8. การพิมพ์คาสั่งควบคุมงานในโครงสร้างภาษาซี
คาแนะนาในการพิมพ์คาสั่งงาน ซึ่งภาษาซีเรียกว่า ฟังก์ชัน (ต่อไปนี้จะเรียกว่า คาสั่ง
ตามที่นิยมทั่วไป) ในส่วนประกอบภายในโครงสร้างภาษาซีมีแนวทางปฏิบัติดังนี้
1.คาสั่งที่ใช้ควบคุมการประมวลผมตามลาดับที่วิเคราะห์ไว้ ต้องเขียนภายใน
เครื่องหมาย { } ที่อยู่ภายใต้การควบคุมงานของฟังก์ชันหลักชื่อ main {}
2.ปกติคาสั่งควบคุมงานเป็นตัวอักษรพิมพ์เล็ก ยกเว้นบางคาสั่งที่ภาษากาหนดว่าต้อง
เป็นอักษรตัวพิมพ์ใหญ่ ต้องปฏิบัติตามนั้น เพราะภาษาซีมีความแตกต่างเรื่องตัวอักษร
3.เมื่อสิ้นสุดคาสั่งงาน ต้องพิมพ์โคลอน(:)
4.ใน 1 บรรทัดพิมพ์ได้มากกว่า1 คาสั่ง แต่นิยมบรรทัดละ 1 คาสั่ง เพราะว่าอ่าน
โปรแกรมง่ายเมื่อมีข้อผิดพลาด ย่อมตรวจสอบและค้นหาเพื่อแก้ไขได้เร็ว
5.การพิมพ์คาสั่ง หากมีส่วนย่อยนิมยมเคาะเยื้องเข้าไปเพื่ออ่านโปรแกรมได้ง่ายขึ้น เมื่อ
มีข้อผิดพลาดย่อมตรวจสอบและแก้ไขได้รวดเร็ว
- 13. คาสั่งควบคุมการทางานขั้นพื้นนาน
คาสั่งที่ใช้ควบคุมการทางานขั้นพื้นนาน มี3 กลุ่มใหญ่คือ คาสั่งรับข้อมูลจากแป้นพิมพ์
แล้ว นาไปจัดเก็บหน่วยความจา (input) การเขียนสมการคานวณโดยใช้นิพจน์ทางคณิตศาสตร์
(process) และคาสั่งแสดงผลข้อมูล หรือข้อมูลที่จัดเก็บในหน่วยความจา (output)
คาสั่งแสดงผล printf ( )
ประสิทธิภาพคาสั่ง : ใช้แสดงผลสิ่งต่อไปนี้เช่น ข้อความ ข้อมูลจากค่าคงที่ หรือ
ตัวแปลที่จอภาพ
คาสั่งรับข้อมูล : รับข้อมูลจากแป้นพิมพ์ แล้วจัดเก็บลงหน่วยความจา ของตัวแปล
คาสั่งประมวลผล : expreeion
ประสิทธิภาพคาสั่ง : เขียนคาสั่งแบบนิพจน์เพื่อประมวลผล แล้วนาข้อมูลทีได้ไป
จัดเก็บ ในหน่วยความจาของตัวแปล ที่ต้องกาหนดชื่อและชนิดข้อมูลไว้แล้ว
- 15. คาสั่ง putchar ( ) : ในการแสดงผลตัวอักษรหรืออักขระ ( char ) ออกทางหน้าจอ นอกจากใช้คาสั่ง
printf พร้อมกับกาหนดรหัสควบคุมรูปแบบ %c แล้ว เราสามารถเรียกใช้คาสั่งสาหรับแสดง
ตัวอักษรหรืออักขระโดยเฉพาะได้อีกด้วย โดยคาสั่งนั้นคือ คาสั่ง putchar() ซึ่งมีรูปแบบการเรียกใช้
คาสั่ง ดังแสดงต่อไปนี้
putchar(ch); ch : ตัวอักษรหรืออักขระเขียนอยู่ภายในเครื่องหมาย ‘c' หรือตัวแปรชนิด char
คาสั่ง getchar ( ) : เป็นคาสั่งที่รับข้อมูลชนิดอักขระจากผู้ใช้เพียงตัวเดียวโดยเมือป้อนข้อมูลแล้ว
ต้องกด Enter มีรูปแบบคาสั่งคือ
ch = getchar();ch คือ ตัวแปรชนิดอักขระที่นาค่าที่รับมาเก็บไว้
คาสั่ง getch ( ) : เป็นคาสั่งที่รับข้อมูลชนิดอักขระเพียงตัวเดียวโดยเมื่อป้อนข้อมูลจะไม่แสดง
อักขระที่ป้อนให้เห็นทางจองภาพ ที่สาคัญ getch(); จะต้องใช้พรีโปรเซสเซอร์ไดเรคทีฟชื่อว่า
conio.h มีรูปแบบการใช้คาสั่งคือ
ch = getch();ch คือ ตัวแปรชนิดอักขระที่นาค่าที่นับมาเก็บไว้
คาสั่ง getche( ) : จะรับตัวอักษร 1 ตัวที่ป้อนทางแป้นพิมพ์ และจะแสดงตัวอักษรบนจอภาพ เมื่อ
ป้อนข้อมูลเสร็จไม่ต้องกด Enter และเคอร์เซอร์จะไม่ขึ้นบรรทัดใหม่
ch = getche(); ch คือ ตัวแปรชนิดอักขระที่นาค่าที่นับมาเก็บไว้
- 19. คาสั่ง puts( )
แสดงผลข้อมูลเฉพาะประเภทข้อความทางจอภาพครั้งละ 1 ข้อความ
รูปแบบ puts ( string_argument ) ;
อธิบาย string_argument คือ ข้อมูลชนิดข้อความ
แนวคิดในการเขียนคาสั่งควบคุมการทางาน
1.เขียนคาสั่งกาหนดค่าข้อความเก็บในตัวแปรชื่อ word
Char word [15] = “*Example * “ ;
2.เขียนคาสั่งควบคุมการแสดงผลในลักษณะข้อความด้วย puts
Puts ( word ) ;
Puts (“**************”);
แนวคิดในการเขียนคาสั่งควบคุมการทางาน
1.เขียนคาสั่งกาหนดค่าข้อความเก็บในตัวแปรชื่อ word
Char word [15] = “*Example * “ ;
2.เขียนคาสั่งควบคุมการแสดงผลในลักษณะข้อความด้วย puts
Puts ( word ) ;
Puts (“**************”);
- 20. คาสั่ง gets ( )
รับข้อมูล ข้อความ จากแป้นพิมพ์ และต้องกดแป้น Enter
รูปแบบ 1 ไม่นาข้อมูลจัดเก็บลงหน่วยความจาของตัวแปร gets ( );
รูปแบบ 2 นาข้อมูลจัดเก็บลงหน่วยความจาของตัวแปร
string_var =gets ( ) ;
อธิบาย string_var คือ ข้อมูลชนิดข้อความ
แนวคิดในการเขียนคาสั่งควบคมการทางาน
1.เขียนคาสั่งให้รับข้อมูล ชนิดข้อความ จากแป้นพิมพ์ และต้อง กดแป้น Enter เพื่อ
นาข้อความบันทึกลงตัวแปรชนิดข้อความ ด้วยคาสั่ง gets (word) ;
2.เขียนคาสั่งควบคุมให้แสดงผลลักษณะข้อความด้วย
printf ( “You name is = %sn”, word ) ;