บทที่ 2
- 2. ภาษาซีเป็นภาษาที่มีพัฒนาการมาอย่างต่อเนื่อง ภาษาซีรุ่นแรก
ทางานภายใต้ ระบบปฏิบัติการดอส (dos) ปัจจุบันทางานภายใต้
ระบบปฏิบัติการวินโดวส์ (Windows) ภาษาซีใช้วิธีแปลรหัสคาสั่งให้เป็น
เลขฐานสองเรียกว่าคอมไพเลอร์
การศึกษาภูมิหลังการเป็นมาของภาษาซีและกระบวนการ
แปลภาษาจะช่วย ให้ผู้ใช้ ภาษาซีในรุ่นและบริษัทผู้ผลิตแตกต่างกัน สามารถ
ใช้ภาษาได้อย่างเข้าใจมากขึ้น
- 3. 1. ความเป็นมาของภาษาซี
ภาษา ซีได้รับการพัฒนาเมื่อปี ค.ศ. 1972 โดยนายเดนนิส ริตซี่ ตั้ง
ชื่อว่าซีเพราะ พัฒนามาจากภาษา BCLP และภาษา B ในช่วงแรกใช้ทดลอง
เขียนคาสั่งควบคุมใน ห้องปฏิบัติการเบล (Bell Laboratoories) เท่านั้น เมื่อ
ปี ค.ศ. 1972 นายไบรอัน เคอร์นิกฮัน และนายเดนนิส ริตซี่ ร่วมกันกาหนด
นิยามรายละเอียดของภาษาซี เผยแพร่ความรู้โดยจัดทาหนังสือ The
CProgramming Language
- 6. 2.1 จัดทาโปรแกรมต้นฉบับ (Source Program) หลังจากพิมพ์
คาสั่งงาน ตามโครงสร้างภาษาที่สมบูรณ์แล้วทุกส่วนประกอบ ให้บันทึก
โดยกาหนดชนิดงานเป็น .c เช่น work.c
- 7. 2.2 การแปลรหัสคาสั่งเป็นภาษาเครื่อง (Compile) หรือการบิวด์
(Build) เครื่องจะตรวจสอบคาสั่งทีละคาสั่ง เพื่อวิเคราะห์ว่าใช้งานได้
ถูกต้องตามรูปแบบไวยากรณ์ที่ภาษาซีกาหนดไว้หรือหากมีข้อผิดพลาดจะแจ้ง
ให้ทราบ หากไม่มีข้อผิดพลาดจะไปกระบวนการ3
- 8. 2.3 การเชื่อมโยงโปรแกรม (Link) ภาษาซีมีฟังก์ชันมาตรฐานให้ใช้งาน
เช่น printf() ซึ่งจัดเก็บไว้ในเฮดเดอร์ไฟล์ หรือเรียกว่า ไลบรารี ในตาแหน่ง
ที่กาหนดชื่อแตกต่างกันไป ผู้ใช้ต้องศึกษาและเรียกใช้เฮดเดอร์ไฟล์กับฟังก์ชันให้
สัมพันธ์เรียกว่าเชื่อมโยงกับไลบรารี กระบวนการนี้ได้ผลลัพธ์เป็นไฟล์ชนิด .exe
- 10. 1. ส่วนของการประกาศส่วนหัวของโปรแกรม
หรือที่เรียกว่า เฮดเดอร์ไฟล์ (Header File) เป็นการเรียกใช้เฮดเดอร์
ไฟล์เข้ามาร่วมใช้งานภายในโปรแกรม โดยไฟล์เฮดเดอร์เป็นไฟล์ที่ใช้ในการ
รวบรวมฟังก์ชั่นการทางานต่าง ๆ ที่สามารถเรียกใช้ได้ เช่น ภายในเฮดเดอร์
ไฟล์ stdio.h เป็นไฟล์เฮดเดอร์ที่รวบรวมเกี่ยวกับฟังก์ชั่นมาตรฐานทางด้าน
การรับข้อมูล (Input) และแสดงผลข้อมูล (Output)
- 13. 3.1) ส่วนของการประกาศตัวแปร คือ ส่วนที่ใช้ในการกาหนด
ตัวแปรที่จะใช้งานในการเขียนโปรแกรม
3.2) ส่วนของคาสั่ง หรือ ฟังก์ชั่นต่าง ๆ คือ ส่วนที่ใช้สาหรับ
ในการพิมพ์คาสั่งและฟังก์ชั่นต่าง ๆ ซึ่งหลังจากพิมพ์ฟังก์ชั่นเสร็จแล้ว
จะต้องปิดท้ายด้วยเครื่องหมายเซมิโคลอน ; เสมอ
- 15. 5. การกาหนดตาแหน่ง หมายเหตุ (Comment)
ในการเขียนโปรแกรม ผู้เขียนสามารถเขียนส่วนคาอธิบาย หรือ
หมายเหตุของโปรแกรมได้ ซึ่งส่วนของคาอธิบายหรือหมายเหตุดังกล่าว
จะไม่ถูกแปลความหมายโดยคอมพิวเตอร์ ซึ่งวิธีในการเขียนคาอธิบาย
หรือหมายเหตุ มี 2 แบบ คือ
- 16. 5.1) การกาหนดหมายเหตุ 1 บรรทัด
ในการกาหนดหมายเหตุ 1 บรรทัด จะใช้
เครื่องหมาย // ด้านหน้าข้อความที่ต้องการกาหนดหมายเหตุ เช่น
จากตัวอย่างข้างต้น คาสั่ง printf จะถูกแปลความหมายตามปกติ แต่
ข้อความ Show data จะไม่ถูกแปลความหมาย เพราะเป็นส่วนของหมายเหตุ
- 22. หมายเหตุ : หากมีตัวแปรมากกว่า 1 ตัว แต่เป็นตัวแปรเก็บข้อมูลประเภท
เดียว ใช้คอมม่า (,) คั่น
ตัวอย่างคาสั่ง : กาหนดคุณสมบัติให้ตัวแปรในการจัดเก็บข้อมูล
- 24. 1. คาสั่งแสดงผล : printf ( )
ประสิทธิภาพคาสั่ง : ใช้แสดงผล สิ่งต่อไปนี้ เช่น ข้อความ ข้อมูลจาก
ค่าคงที่ หรือตัวแปรที่จอภาพ
- 27. 3. คาสั่งประมวลผล : expression
ประสิทธิภาพคาสั่ง : เขียนคาสั่งแบบนิพจน์เพื่อประมวลผล แล้วนา
ข้อมูลที่ได้ไปจัดเก็บในหน่วยความจาของตัวแปรที่ต้องกาหนดชื่อและข้อมูลไว้แล้ว
- 31. ภาษาซีมีคาสั่งแสดงผลและรับข้อมูลเฉพาะข้อมูลประเภท 4 อักขระ (char) ดังนี้
1. คาสั่ง putchar ( )
ในการแสดงผลตัวอักษรหรืออักขระ ( char ) ออกทางหน้าจอ นอกจาก
ใช้คาสั่ง printf พร้อมกับกาหนดรหัสควบคุมรูปแบบ %c แล้ว เราสามารถ
เรียกใช้คาสั่งสาหรับแสดงตัวอักษรหรืออักขระโดยเฉพาะได้อีกด้วย โดยคาสั่ง
นั้นคือ คาสั่ง putchar() ซึ่งมีรูปแบบการเรียกใช้คาสั่ง ดังแสดงต่อไปนี้
putchar(ch); ch : ตัวอักษรหรืออักขระเขียนอยู่ภายใน
เครื่องหมาย ‘c' หรือตัวแปรชนิด char
- 32. 2. คาสั่ง getchar ( )
เป็นคาสั่งที่รับข้อมูลชนิดอักขระจากผู้ใช้เพียงตัวเดียวโดยเมือป้อน
ข้อมูลแล้วต้องกด Enter มีรูปแบบคาสั่งคือ
ch = getchar();ch คือ ตัวแปรชนิดอักขระที่นาค่าที่รับมาเก็บไว้
- 33. 3. คาสั่ง getch ( )
เป็นคาสั่งที่รับข้อมูลชนิดอักขระเพียงตัวเดียวโดยเมื่อป้อนข้อมูลจะไม่
แสดงอักขระที่ป้อนให้เห็นทางจองภาพ ที่สาคัญ getch(); จะต้องใช้พรี
โปรเซสเซอร์ไดเรคทีฟชื่อว่า conio.h มีรูปแบบการใช้คาสั่งคือ
ch = getch();ch คือ ตัวแปรชนิดอักขระที่นาค่าที่นับมาเก็บไว้
- 34. 4. คาสั่ง getche ( )
จะรับตัวอักษร 1 ตัวที่ป้อนทางแป้นพิมพ์ และจะแสดงตัวอักษรบน
จอภาพ เมื่อป้อนข้อมูลเสร็จไม่ต้องกด Enter และเคอร์เซอร์จะไม่ขึ้น
บรรทัดใหม่
ch = getche(); ch คือ ตัวแปรชนิดอักขระที่นาค่าที่นับมาเก็บไว้
- 37. 2. คาสั่ง gets ( )
รับข้อมูล ข้อความ จากแป้นพิมพ์ และต้องกดแป้น Enter
- 38. 1. เขียนคาสั่งให้รับข้อมูล ชนิดข้อความ จากแป้นพิมพ์ และต้อง กด
แป้น Enter เพื่อนาข้อความบันทึกลงตัวแปรชนิดข้อความ ด้วยคาสั่ง
gets (word) ;
2. เขียนคาสั่งควบคุมให้แสดงผลลักษณะข้อความด้วย
printf ( “You name is = %sn”, word ) ;
แนวคิดในการเขียนคาสั่งควบคุมการทางาน
- 41. 2. คาสั่ง gets ( )
รับข้อมูล ข้อความ จากแป้นพิมพ์ และต้องกดแป้น Enter
รูปแบบ 1 ไม่นาข้อมูลจัดเก็บลงหน่วยความจาของตัวแปร gets ( );
รูปแบบ 2 นาข้อมูลจัดเก็บลงหน่วยความจาของตัวแปร
string_var =gets ( ) ;
อธิบาย string_var คือ ข้อมูลชนิดข้อความ
- 42. 1. เขียนคาสั่งให้รับข้อมูล ชนิดข้อความ จากแป้นพิมพ์ และต้อง กด
แป้น Enter เพื่อนาข้อความบันทึกลงตัวแปรชนิดข้อความ ด้วยคาสั่ง
gets (word) ;
2. เขียนคาสั่งควบคุมให้แสดงผลลักษณะข้อความด้วย
printf ( “You name is = %sn”, word ) ;
แนวคิดในการเขียนคาสั่งควบคมการทางาน
- 44. สมาชิก
นายภานุ เวียนสันเทียะ เลขที่ 4
นางสาววณิชยา ประพันธุ์ เลขที่ 11
นางสาวมุกอาภา แม้นจิตต์ เลขที่ 18
นางสาวศรัณย์พร รุ่งเรือง เลขที่ 19
นางสาวธณาภา ศรีวลีรัตน์ เลขที่ 22
นางสาวธันย์ชนก หงษ์โต เลขที่ 37
ชั้นมัธยมศึกษาปีที่ 6/2