Important Announcement
PubHTML5 Scheduled Server Maintenance on (GMT) Sunday, June 26th, 2:00 am - 8:00 am.
PubHTML5 site will be inoperative during the times indicated!

Home Explore โครงสร้างของโปรแกรมภาษาซี

โครงสร้างของโปรแกรมภาษาซี

Description: ชุดที่2

Search

Read the Text Version

ชดุ ท2ี่ โครงสรา้ งของโปรแกรมภาษาซี คำนำ ชุดกิจกรรมการเรียนรู้การเขียนโปรแกรมภาษาคอมพิวเตอร์ รายวิชาภาษาซี ง30243 ชั้นมัธยมศึกษา ปีที่ 5 กลุ่มสาระการเรียนรู้การงานอาชีพและเทคโนโลยี ชุดน้ีจัดทาขึ้นเพื่อพัฒนาการจัดกิจกรรมการเรียนการสอน โดยเน้นผู้เรียนเป็นสาคัญ และส่งเสริมการเรียนรู้ของผู้เรียนด้วยตนเอง คิดเป็น ทาเป็นและแก้ปัญหาเป็น โดยได้ ขยายผลในด้านเนื้อหาให้กว้างและชัดเจนยิ่งข้ึน ซึ่งถือว่าเป็นไปตามแนวทางการจัดการศึกษาของชาติท่ีเน้นผู้เรียน เป็นสาคัญ และสนองต่อพระราชบัญญัติการศึกษาแห่งชาติ พุทธศักราช 2542 และสอดคล้องกับหลักสูตร แกนกลางการศึกษาขั้นพื้นฐาน พุทธศักราช 2551 ที่มุ่งเน้นให้ผู้เรียนได้รับการพัฒนาทั้งความรู้ กระบวนการคิด กระบวนการสืบเสาะหาความรู้ การแก้ปัญหา ความสามารถในการสื่อสาร การตัดสินใจ การนาความรู้ไปใช้ใน ชวี ิตประจาวัน มีคุณธรรมค่านยิ มอันพึงประสงค์และผู้เรยี นมีเจตคติทีด่ ีตอ่ วิชาคอมพวิ เตอร์ ชุดกิจกรรมการเรียนรู้การเขียนโปรแกรมภาษาคอมพิวเตอร์ รายวิชาภาษาซี ง30243 ชั้นมัธยมศึกษา ปีที่ 5 กลุ่มสาระการเรียนรู้การงานอาชีพและเทคโนโลยี ครอบคลุมตัวชี้วัดและสาระการเรียนรู้ตามหลักสูตร แกนกลางการศึกษาขน้ั พื้นฐาน พุทธศักราช 2551 ซึ่งประกอบด้วยชดุ กจิ กรรมการเรียนรทู้ ง้ั หมด 5 ชุด ดงั นี้ ชดุ ท่ี 1 เรื่อง การพฒั นาโปรแกรมและการจาลองความคิด ชดุ ที่ 2 เรอื่ ง โครงสรา้ งของโปรแกรมภาษาซี ชดุ ท่ี 3 เร่ือง คาสัง่ รับค่าและแสดงผล ชดุ ท่ี 4 เร่อื ง โครงสรา้ งการเขียนโปรแกรม ชุดท่ี 5 เรื่อง ตวั แปรชดุ ชุดกิจกรรมการเรียนรู้การเขียนโปรแกรมภาษาคอมพิวเตอร์ รายวิชาภาษาซี ง30243 นี้เป็นชุดที่ 2 เรื่อง โครงสร้างของโปรแกรมภาษาซี ผู้จัดทาหวังเป็นอย่างย่ิงว่าชดุ กิจกรรมการเรียนรู้เรื่อง โครงสร้างของโปรแกรม ภาษาซี ชุดนี้จะช่วยให้ผู้เรียนมีความเข้าใจเกี่ยวกับโครงสร้างของโปรแกรมภาษาซีได้มากยิ่งขึ้น ซึ่งเป็นประโยชน์ อยา่ งยิ่งต่อการพฒั นาการเรียนรแู้ ละสร้างองค์ความรทู้ ่ียัง่ ยนื ของผู้เรียนต่อไป สุวรรณา จิตต์ปลืม้ 1 โรงเรยี นบางแพปฐมพิทยา ชุดกิจกรรมการเรียนรู้การเขยี นโปรแกรมภาษาคอมพิวเตอร์ รายวชิ าภาษาซี ง30243 ช้นั มัธยมศึกษาปที ่ี 5

ชุดท2่ี โครงสรา้ งของโปรแกรมภาษาซี หนา้ สำรบัญ 1 2 เรื่อง 3 คานา สารบญั 5 คาแนะนาในการใชช้ ดุ กิจกรรมการเรียนรู้สาหรบั ครู 6 คาแนะนาในการใช้ชุดกจิ กรรมการเรียนร้สู าหรบั นกั เรยี น 6 มาตรฐานการเรยี นรูแ้ ละตัวช้ีวัด จดุ ประสงค์การเรียนรู้ 7 แบบทดสอบก่อนเรียน 10 บัตรเน้อื หาที่ 1 เริม่ ตน้ กับภาษาซี 18 บัตรกิจกรรมที่ 1 เรมิ่ ต้นกบั ภาษาซี บัตรเน้อื หาท่ี 2 ขอ้ มลู และตัวแปรในภาษาซี 1 20 บตั รกิจกรรมท่ี 2 ข้อมูลและตัวแปรในภาษาซี 26 บตั รเน้ือหาที่ 3 ตวั ดาเนนิ การในภาษาซี บตั รกจิ กรรมที่ 3 ตวั ดาเนนิ การในภาษาซี 1 28 แบบทดสอบหลงั เรยี น บรรณานกุ รม 37 ภาคผนวก 39 แบบบนั ทกึ คะแนนระหว่างเรียน 42 เฉลยแบบทดสอบก่อนเรียน 43 เฉลยบตั รกจิ กรรมการเรยี นรทู้ ี่ 1 เรือ่ ง เร่มิ ตน้ กับภาษาซี 44 เฉลยบัตรกิจกรรมการเรียนรูท้ ่ี 2 เรอื่ ง ขอ้ มูลและตัวแปรในภาษาซี เฉลยบตั รกิจกรรมการเรยี นรทู้ ่ี 3 เรือ่ ง ตวั ดาเนินการในภาษาซี 45 เฉลยแบบทดสอบหลงั เรยี น 46 48 50 52 ชดุ กิจกรรมการเรยี นรกู้ ารเขยี นโปรแกรมภาษาคอมพิวเตอร์ 2 รายวชิ าภาษาซี ง30243 ช้ันมัธยมศึกษาปีท่ี 5

ชุดท2ี่ โครงสร้างของโปรแกรมภาษาซี คำแนะนำกำรใชช้ ดุ กิจกรรมกำรเรยี นรู้สำหรบั ครู เมื่อครูผู้สอนได้นาชุดกิจกรรมการเรียนรู้การเขียนโปรแกรมภาษาคอมพิวเตอร์ รายวิชาภาษาซี ง30243 ช้นั มธั ยมศกึ ษาปีท่ี 5 กล่มุ สาระการเรียนรกู้ ารงานอาชพี และเทคโนโลยี ไปใช้ควรปฏิบตั ดิ งั นี้ 1. ดาเนินการจัดกิจกรรมการเรียนการสอนโดยใช้ชุดกิจกรรมการเรียนรู้การเขียนโปรแกรม ภาษาคอมพิวเตอร์ รายวิชาภาษาซี ง30243 ชั้นมัธยมศึกษาปีที่ 5 กลุ่มสาระการเรียนรู้การงานอาชีพและ เทคโนโลยี ควบคู่ไปกบั แผนการจัดการเรียนรรู้ ายวชิ าภาษาซี ง30243 ระดบั ชัน้ มัธยมศกึ ษาปีที่ 5 2. หลงั จากได้ศกึ ษาเนอื้ หาแล้วให้นกั เรยี นตอบคาถามเพ่อื ประเมินความรู้แต่ละเรอ่ื ง 3. ควรให้นักเรยี นปฏบิ ัติชุดกจิ กรรมการเรียนรู้การเขยี นโปรแกรมภาษาคอมพวิ เตอร์ รายวิชาภาษาซี ง30243 ชั้นมัธยมศึกษาปีที่ 5 กลุ่มสาระการเรียนรู้การงานอาชีพและเทคโนโลยี เพื่อความเข้าใจโดยครูให้ คาแนะนาอย่างใกล้ชดิ 4. ให้นักเรียนตรวจสอบเฉลยท้ายเล่มเมื่อนักเรียนทากิจกรรมตามชุดการเรียนรู้ชุดที่ 2 เรื่อง โครงสร้างของโปรแกรมภาษาซี จบแลว้ เพ่อื ทราบผลการเรียนรขู้ องตนเอง 5. ทดสอบความรู้หลังเรียนจากที่นักเรียนทากิจกรรมการเรียนรู้จบชุดแล้วด้วยการทาแบบทดสอบ หลังเรียนในการเรียนรู้ด้วยชุดกิจกรรมการเรียนรู้การเขียนโปรแกรมภาษาคอมพิวเตอร์ รายวิชาภาษาซี ง30243 ชั้นมธั ยมศึกษาปีที่ 5 กลุ่มสาระการเรียนรู้การงานอาชีพและเทคโนโลยี เรือ่ งการพฒั นาโปรแกรมและ การจาลองความคิด นกั เรียนควรปฏิบตั ิดงั น้ี 1. นักเรียนจะได้รับชุดกจิ กรรมการเรียนรู้การเขียนโปรแกรมภาษาคอมพวิ เตอร์ รายวิชาภาษาซี ง30243 ชั้นมัธยมศึกษาปที ี่ 5 กลุ่มสาระการเรียนรู้การงานอาชพี และเทคโนโลยี เร่ืองการพัฒนาโปรแกรมและ การจาลองความคดิ 1 เล่มและซีดีประกอบชดุ การเรียนรู้ 1 แผ่น 2. วิธีการสอนในชุดกิจกรรมการเรียนรู้การเขียนโปรแกรมภาษาคอมพิวเตอร์ รายวิชาภาษาซี ง30243 ช้ันมัธยมศึกษาปีท่ี 5 กลุ่มสาระการเรียนรู้การงานอาชีพและเทคโนโลยี ชุดที่ 2 เรื่อง โครงสร้างของ โปรแกรมภาษาซี นักเรียนเรยี นรู้และทากจิ กรรมการเรียนรู้ ดังขัน้ ตอนตอ่ ไปน้ี 2.1 ศึกษาจดุ ประสงคก์ ารเรียนรู้ ภาระงานประจาหน่วย และการประเมินผล 2.2 เรียนรู้ด้วยวิธีการสอนโดยใช้กระบวนการทางวิทยาศาสตร์ การสืบเสาะหาความรู้ การสารวจตรวจสอบ การสบื ค้นข้อมลู และอภปิ ราย ขั้นตอนการสอนมี 6 ขั้นตอนคือ 2.2.1 ขัน้ นาเข้าส่บู ทเรียน - กระตุ้นเรา้ ความสนใจ หรอื ทบทวนความรู้เก่า 2.2.2 ข้นั นาเสนอ - นาเสนอความรู้ใหม่ ชดุ กจิ กรรมการเรยี นรูก้ ารเขยี นโปรแกรมภาษาคอมพวิ เตอร์ 3 รายวชิ าภาษาซี ง30243 ชน้ั มัธยมศกึ ษาปที ่ี 5

ชุดท2่ี โครงสร้างของโปรแกรมภาษาซี 2.2.3 ขั้นฝกึ - เน้นการเรียนรู้โดยใช้กระบวนการทางวิทยาศาสตร์ การสืบเสาะหาความรู้ การ สารวจตรวจสอบ การสืบค้นข้อมูลและอภปิ ราย 2.2.4 ขัน้ การทาบตั รกิจกรรม - ในแต่ละแผนการจัดการเรยี นรู้ มีภาระงานหรอื ชิ้นงานให้นักเรียนไดท้ ดสอบยอ่ ย ซึ่งทุกคนต้องผ่านขัน้ ตอนการทาบตั รกจิ กรรมนีจ้ ึงจะสามารถเรียนกจิ กรรมต่อไปได้ 2.2.5 ข้ันสรปุ - นักเรยี นชว่ ยกันสรุปความรู้ที่ไดจ้ ากบทเรยี นโดยมีครูคอยเพม่ิ เตมิ 2.2.6 ข้ันประยุกตใ์ ชแ้ ละสะท้อนคิด - นาความรู้ที่ได้จากแผนการจัดการเรียนรู้ต่าง ๆ ในหน่วยนั้นทาภาระงานและ สะท้อนคิดประจาหน่วยฝึกข้ันตอนนี้ นักเรยี นต้องดาเนินการเป็นกลุ่มด้วยการนาเสนอผลงานท่ีมีกระบวนการ สะทอ้ นคิดภายในกลุ่มเก่ียวกับงานของตนเองทั้งสิ่งทท่ี าได้และสิ่งทตี่ ้องปรับปรงุ ดังนั้นในข้ันตอนนี้นกั เรียนจึง มที ้ังกระบวนการนาความรู้ท่ีได้ไปประยุกต์ใช้ และการสะทอ้ นคิดในผลงานของกันและกันเพ่ือคัดเลอื กผลงาน ทด่ี ีที่สุดประจาหน่วยเป็นกาลังใจให้นกั เรียนในการทาผลงานในหน่วยตอ่ ไป อีกท้ังยังสามารถนาข้อสะท้อนคิด ของเพื่อนมาปรับปรงุ ผลงานของตนเองให้ดยี ิ่งขนึ้ 3. การประเมินผล 3.1 เนื้อหา - ใชแ้ บบทดสอบ 3.2 สมรรถนะ - ประเมนิ ตามภาระงาน 3.3 คุณลกั ษณะอันพึงประสงค์ - ประเมินโดยใช้แบบสังเกตพฤตกิ รรม ชุดกิจกรรมการเรยี นรู้การเขยี นโปรแกรมภาษาคอมพวิ เตอร์ 4 รายวชิ าภาษาซี ง30243 ช้ันมธั ยมศกึ ษาปีท่ี 5

ชดุ ท2่ี โครงสร้างของโปรแกรมภาษาซี คำแนะนำกำรใชช้ ดุ กิจกรรมกำรเรยี นรู้สำหรบั นักเรยี น ชดุ กิจกรรมการเรียนรู้การเขียนโปรแกรมภาษาคอมพวิ เตอร์ รายวิชาภาษาซี ง30243 ชั้นมธั ยมศึกษา ปีที่ 5 กลุ่มสาระการเรียนรู้การงานอาชพี และเทคโนโลยี ชุดท่ี 2 เรื่อง โครงสร้างของโปรแกรมภาษาซี ชุดน้ีใช้ ประกอบการจัดการเรียนการสอนของนักเรียน ชั้นมัธยมศึกษาปีที่ 5 โดยมีขั้นตอนการจัดกิจกรรมการเรียน การสอนดังนี้ 1. นักเรียนฟงั คาช้แี จงการใช้ชุดกจิ กรรมการเรียนรู้ให้เข้าใจ 2. ให้นักเรียนรับชุดกิจกรรมการเรียนรู้การเขียนโปรแกรมภาษาคอมพิวเตอร์ รายวิชาภาษาซี ง30243 ช้ันมัธยมศึกษาปีท่ี 5 กลุ่มสาระการเรียนรู้การงานอาชีพและเทคโนโลยี ชุดที่ 2 เรื่อง โครงสร้างของ โปรแกรมภาษาซี 3. นักเรียนเริ่มทาแบบทดสอบก่อนเรียนเพื่อประเมินว่านักเรียนมีพื้นฐานความรู้ ความเข้าใจมาก นอ้ ยเพียงใด 4. ให้นักเรียนศึกษาเนื้อหาทาความเข้าใจให้ดีตั้งแต่หน้าแรกถึงหน้าสุดท้ายตามลาดับอย่าข้าม ขนั้ ตอนและทาบตั รกจิ กรรมท้ายเลม่ ชดุ ท่ี 2 เรือ่ ง โครงสรา้ งของโปรแกรมภาษาซี 5. เม่ือพบคาช้แี จงหรือคาถามในแต่ละบตั รกจิ กรรมให้นักเรียนอ่านและทากิจกรรมท่ีกาหนดให้อย่าง รอบคอบ 6. ส่งผลงานการทาบตั รกจิ กรรมการเรียนรู้ท้ายเลม่ เพ่อื ใหค้ รูตรวจและบนั ทึกผล 7. เมอ่ื ทาบัตรกิจกรรมเสรจ็ แลว้ จดั เก็บอปุ กรณ์ใหเ้ รียบรอ้ ย 8. เมื่อนักเรียนทุกคนทากิจกรรมการเรียนรู้ครบแล้วให้นักเรียนทาแบบทดสอบหลังเรียนด้วยความ ต้งั ใจและซื่อสตั ย์ 9. รบั ฟังการบอกคะแนน คาชมเชย และคาแนะนาเพ่มิ เติมจากครู ชดุ กจิ กรรมการเรียนรกู้ ารเขยี นโปรแกรมภาษาคอมพิวเตอร์ 5 รายวชิ าภาษาซี ง30243 ชน้ั มธั ยมศกึ ษาปที ี่ 5

ชุดท2่ี โครงสร้างของโปรแกรมภาษาซี มำตรฐำนกำรเรียนรแู้ ละตัวช้ีวัด มาตรฐาน ง 3.1 เขา้ ใจ เห็นคุณค่า และใช้กระบวนการเทคโนโลยีสารสนเทศในการสืบคน้ ข้อมูล การเรยี นรู้ การสอื่ สาร การแก้ปัญหา การทางาน และอาชพี อยา่ งมีประสิทธภิ าพ ประสิทธิผลและมคี ุณธรรม ตัวชี้วดั ง 3.1 ม.4-6/5 แกป้ ญั หาด้วยกระบวนการเทคโนโลยีสารสนเทศอยา่ งมปี ระสทิ ธิภาพ จุดประสงค์กำรเรยี นรู้ 1. บอกโครงสรา้ งของโปรแกรมภาษาซไี ด้ 2. บอกความหมายของข้อมูลและชนิดของขอ้ มูลทใ่ี ช้ในการเขยี นโปรแกรมได้ 3. อธบิ ายและเปรียบเทยี บตัวแปรและค่าคงท่ที ใ่ี ช้ในการเขียนโปรแกรมได้ 4. บอกความหมายของนิพจนแ์ ละสามารถเขยี นนิพจน์เพอ่ื ใช้งานได้ 5. อธิบายตัวดาเนนิ การท่ีใช้ในการเขยี นโปรแกรมและสามารถใชต้ วั ดาเนินการต่างๆ ไดต้ ามความ เหมาะสม ชดุ กิจกรรมการเรยี นรูก้ ารเขยี นโปรแกรมภาษาคอมพิวเตอร์ 6 รายวชิ าภาษาซี ง30243 ชั้นมธั ยมศกึ ษาปีที่ 5

ชุดท2่ี โครงสร้างของโปรแกรมภาษาซี แบบทดสอบก่อนเรียน เร่ือง กำรพัฒนำโปรแกรมและกำรจำลองควำมคดิ คาชีแ้ จง 1. แบบทดสอบเป็นแบบปรนัย จานวน 10 ข้อ 2. ใหน้ กั เรียนเลือกคาตอบทถ่ี ูกต้องที่สดุ เพียงคาตอบเดียว แล้วใสเ่ ครอื่ งหมายกากบาท (x) ลงในกระดาษคาตอบ 1. โครงสร้างของโปรแกรมภาษาซีแบง่ ออกเป็นกี่ส่วน ก. 1 สว่ น ข. 2 สว่ น ค. 3 ส่วน ง. 4 ส่วน 2. การบอกใหค้ อมไพเลอรน์ าเฮดเดอร์ไฟลเ์ ข้ามาร่วมแปลนั้น ตอ้ งเร่ิมต้นดว้ ยเคร่อื งหมายใด ก. เครือ่ งหมาย # ข. เครอ่ื งหมาย @ ค. เครือ่ งหมาย $ ง. เคร่อื งหมาย & 3. ทุกโปรแกรมในภาษาซจี ะตอ้ งมีอะไร ก. int ข. main ค. var ง. printf 4. ประกาศตัวแปรชอื่ name ไว้ใช้เกบ็ ชือ่ เลน่ ของนักเรียน ก. int name; ข. float name; ค. char name; ง. string name; 5. ฟงั กช์ ่ันใดท่ใี ชเ้ ก็บคาส่งั เก่ียวกับการสง่ ขอ้ มูลเข้าและออก ก. conio.h ข. stdio.h ค. math.h ง. string.h 6. กาหนดให้ num=3.5 จากโจทย์ ควรประกาศตวั แปรชนิดใด ก. int ข. float ค. char ง. string ชุดกิจกรรมการเรียนรกู้ ารเขยี นโปรแกรมภาษาคอมพวิ เตอร์ 7 รายวชิ าภาษาซี ง30243 ชนั้ มธั ยมศึกษาปที ี่ 5

ชุดท2ี่ โครงสร้างของโปรแกรมภาษาซี 7. ขอ้ ใด คือฟังกช์ ่นั ในการแสดงข้อมูลออกทางจอภาพ ก. printf ข. scanf ค. write ง. display 8. เครือ่ งหมาย Semi colon ใช้ทาอะไร ในภาษาซี ก. เริม่ ตน้ โปรแกรม ข. ส้นิ สุดโปรแกรม ค. เรม่ิ ประโยคคาสั่ง ง. จบแต่ละประโยคคาส่งั 9. การคอมเมนต์ในภาษาซี ขอ้ ใดไม่ถกู ต้อง ก. //comment ข. //\\\\comment ค. /* comment */ ง. /* comment / 10. ข้อใดผิดกฏการตัง้ ชือ่ ตวั แปร ก. name_5 ข. _name5 ค. 5name ง. _name_5 ชดุ กจิ กรรมการเรยี นรู้การเขยี นโปรแกรมภาษาคอมพวิ เตอร์ 8 รายวชิ าภาษาซี ง30243 ชั้นมัธยมศกึ ษาปที ี่ 5

ชดุ ท2ี่ โครงสรา้ งของโปรแกรมภาษาซี กระดำษคำตอบ เรือ่ ง กำรพัฒนำโปรแกรมและกำรจำลอง ควำมคดิ  ก่อนเรียน  หลงั เรียน ชื่อ .................................................................................... ช้นั ................ เลขท่ี .............. ข้อที่ ก ข ค ง 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ชุดกิจกรรมการเรียนรกู้ ารเขยี นโปรแกรมภาษาคอมพวิ เตอร์ 9 รายวชิ าภาษาซี ง30243 ชัน้ มธั ยมศกึ ษาปีที่ 5

ชดุ ท2ี่ โครงสร้างของโปรแกรมภาษาซี บตั รเนื้อหำท่ี 1 เร่มิ ตน้ กบั ภำษำซี ประวัตคิ วามเป็นมาของภาษาซี ภาษาซไี ดร้ บั การพฒั นาเมือ่ ปี ค.ศ. 27911 นาชเดนนดิ รเด ยี่(Dennis M. Ritchie) เ้ังยื่อวา่ C เพราะ พัฒนามาจากภาษา BCPL และภาษา B ในย่วงแรกใย้ทดลองเขีชน คาิ่ังควบคุมในห้องปฏดบัเดการเบล (Bell Laboratories) เท่าน้ัน เม่ือปี ค.ศ. 2791 นาชไบรอนั เคอรอนดกยัน(Brian W. Kernighan) และนาชเดนนดิ รดเยี่ ร่วมกันกาหนดนดชามราชละเอีชดภาษาซี เผชแพร่ความรู้โดชจัดทาหนังิือ The C Programming Language มีหลาชบรดษัทให้ความินใจนาไปพัฒนาเ่อ จนมีภาษาซีหลาช รูปแบบและแพร่หลาชไปทั่วโลก แเ่ชังไม่มีมาเรฐานคาิั่งเพื่อให้ ิามารถใย้งานร่วมกันได้ ดังนั้นเม่ือปี ค.ศ. 2711 เยี่ได้นาชรด รว่ มกันิถาบนั กาหนดมาเANSI (American National Standards Institute) ิร้างมาเรฐานภาษาซีข้ึนมา มีผลให้ โปรแกรมคาิ่ังท่ี ิร้างด้วชภาษาซีิังกัดบรดษทั ใดๆ ก็เามที่ใย้คาิ่ังมาเรฐานของภาษา ิามารถนามาทางานร่วมกันได้ ชดุ กิจกรรมการเรยี นรู้การเขยี นโปรแกรมภาษาคอมพิวเตอร์ 10 รายวชิ าภาษาซี ง30243 ชั้นมธั ยมศึกษาปีท่ี 5

ชุดท2่ี โครงสร้างของโปรแกรมภาษาซี ลักษณะเดน่ ของภาษาซี 1. มคี วามสามารถในการใช้งานบนสภาพแวดลอ้ มทีแ่ ตกต่างกัน โปรแกรมภาษาซี สามารถรันได้หลาย ระดับต้ังแตเ่ มนเฟรมจนถึงไมโครคอมพิวเตอร์ สามารถเทยี บเคยี งกบั ภาษา อนื่ ๆ จึงสามารถนาไปใช้งาน รว่ มกับคอมพิวเตอรท์ ี่มีแพลตฟอร์มหรอื ใช้ระบบปฏิบตั ิการต่างกนั โดยไม่ตอ้ งแปลงชดุ คาสง่ั ใดๆ หรอื เปลย่ี น อาจปรบั เพียงเลก็ นอ้ ย 2. มปี ระสิทธิภาพสูง วัดจาก ชุดคาส่งั กะทัดรดั การจัดการหนว่ ยความจา การทางานมคี วามรวดเร็ว 3. ความสามารถในการโปรแกรมแบบโมดูล ภาษาซอี นุญาตใหแ้ บง่ โมดลู เพ่ือคอมไพลไ์ ดถ้ ูกออกแบบ ภาษาเชิงโครงสรา้ งดีเย่ียม ท่ีสาคญั ภาษาซีจะประกอบด้วยฟงั กช์ ่นั ในโมดลู ต่าง ๆ 4. พอยนเ์ ตอร์ สามารถกาหนดไดจ้ ากชนิดขอ้ มูลได้หลากหลาย 5. มีความยืดหยุ่นสูง สามารถเขยี นใชง้ านรว่ มกับภาษาระดบั ตา่ อย่างภาษาแอสแซมบลไี ด้ ตวั อกั ษร ตัวพิมพเ์ ล็กและตัวพิมพใ์ หญ่ แตกต่างกนั ภาษาซีจะมองเปน็ คนละตวั และไมส่ ามารถนามาใช้แทนกันได้ ดังน้ันการอา้ งชื่อตวั แปรและช่อื ฟงั กช์ ั่นควรพงึ ระวงั โครงสร้างของภาษาซี โปรแกรมภาษาซี ท่ีสามารถ execute ได้ ทุกโปรแกรมจะมีโครงสรา้ งอยา่ งงา่ ย ดังน้ี 11 1. สว่ นของการประกาศส่วนหวั ของโปรแกรม หรือที่เรียกว่า เฮดเดอร์ไฟล์ (Header File) เป็นการเรียกใช้เฮดเดอร์ไฟล์เข้ามาร่วมใช้ งานภายในโปรแกรม โดยไฟลเ์ ฮดเดอร์เป็นไฟล์ท่ีใช้ในการรวบรวมฟังกช์ นั่ การทางานต่าง ๆ ซ่งึ เฮดเดอร์ไฟล์จะ เขียนอยู่ภายในเครื่องหมาย < > เช่น #include <stdio.h> เป็นไฟล์เฮดเดอร์ที่รวบรวมเกี่ยวกับฟังก์ชั่น มาตรฐานทางดา้ นการรับข้อมูล (Input) และแสดงผลขอ้ มูล (Output) ยกตัวอย่างเชน่ ฟงั ก์ชน่ั printf ( ) เป็น ฟังกช์ น่ั ในการแสดงผลขอ้ มูล ซ่ึงบรรจอุ ยู่ในไฟล์ stdio.h เป็นต้น 2. ส่วนของชื่อฟังกช์ นั่ ในที่นี้ ฟังก์ชั่นที่กาหนดขึ้นมาชื่อฟังก์ชั่น main() โดยทุกโปรแกรมจะต้องมีฟังก์ชั่น main() ทาหน้าที่เป็นฟังก์ชั่นหลักในการทางานในการประมวลผลโปรแกรมทุกครั้ง โปรแกรมจะทาการ ประมวลผลทีฟ่ งั ก์ช่นั main() เปน็ ฟงั กช์ ัน่ แรก ซึ่งในการเขียนโปรแกรมภาษาซีทุกคร้ังจะขาดฟังก์ช่นั main() ไมไ่ ด้ ชดุ กิจกรรมการเรยี นร้กู ารเขยี นโปรแกรมภาษาคอมพิวเตอร์ รายวชิ าภาษาซี ง30243 ช้นั มัธยมศึกษาปที ี่ 5

ชุดท2่ี โครงสร้างของโปรแกรมภาษาซี 3. สว่ นตัวโปรแกรม ส่วนนเี้ ป็นส่วนในการเขยี นคาสงั่ ต่าง ๆ เพื่อส่งั ให้คอมพวิ เตอรท์ างาน ในการเขยี น คาสั่งจะเขียนภายในเครื่องหมายปีกกาเปิด { และเครื่องหมายปีกกาปิด } โดยปกติส่วนของการเขียน โปรแกรมจะสามารถแบง่ ออกได้เป็น 2 สว่ นดว้ ยกัน คอื 1) ส่วนของการประกาศตัวแปร คือ ส่วนที่ใช้ในการกาหนดตัวแปรที่จะใช้งานในการ เขียนโปรแกรม 2) สว่ นของคาสั่ง หรอื ฟงั ก์ช่นั ตา่ ง ๆ คอื ส่วนทใ่ี ช้สาหรับในการพมิ พค์ าส่งั และ ฟงั ก์ชัน่ ตา่ ง ๆ ซ่ึงหลงั จากพมิ พ์ฟงั กช์ ัน่ เสรจ็ แล้วจะตอ้ งปดิ ทา้ ยดว้ ยเครอ่ื งหมายเซมิโคลอน ; เสมอ 4. ส่วนของการเปิดโปรแกรมและปดิ โปรแกรม ตามโครงสรา้ งของภาษาซี จะต้องมีการกาหนดจุดเรมิ่ ต้นและจบโปรแกรม โดยในที่นี้ใช้ เครอื่ งหมายปีกกาเปิด { ในการระบตุ าแหน่งการเร่มิ ต้นโปรแกรม และ ใช้เครื่องหมายปีกกาปิด } ในการระบุตาแหนง่ การจบโปรแกรม จากลกั ษณะโครงสร้างอย่างง่ายของภาษาซี ดงั กล่าวมาข้างตน้ น้ัน สามารถเขียนรูปแบบโครงสรา้ ง อยา่ งงา่ ย ของโปรแกรมได้ดงั นี้ รปู แบบโครงสรา้ งอยา่ งงา่ ยของโปรแกรมภาษาซี # include<stdio.h> void main(void) { คาส่ังประกาศตัวแปร; คาสั่งหรือฟังก์ชนั ต่าง ๆ; } เพื่อให้มีความเข้าใจเกี่ยวกับโครงสร้างอย่างง่ายของโปรแกรมภาษาซี มากยิ่งขึ้น ให้ศึกษาจาก โปรแกรมตวั อยา่ งภาษาซี ดงั ตอ่ ไปน้ี ชดุ กจิ กรรมการเรียนรูก้ ารเขยี นโปรแกรมภาษาคอมพิวเตอร์ 12 รายวชิ าภาษาซี ง30243 ชัน้ มธั ยมศกึ ษาปีท่ี 5

ชุดท2่ี โครงสรา้ งของโปรแกรมภาษาซี โปรแกรมตวั อย่างที่ 2.1 แสดงโปรแกรมภาษาซี อย่างงา่ ย /* simple.c */ /* บรรทัดที่ 1 */ #include<stdio.h> /* บรรทดั ที่ 2 */ void main(void) /* บรรทดั ท่ี 3 */ { /* บรรทัดที่ 4 */ /* บรรทดั ที่ 5 */ printf(“Hello, C Language \\n”); } ผลลัพธท์ ไี่ ด้จากโปรแกรม Hello, C Language คาอธบิ ายโปรแกรม จากตัวอย่างโปรแกรมภาษาซี ข้างตน้ สามารถอธิบายการทางานได้ดงั นี้ บรรทดั ท่ี 1 #include<stdio.h> เปน็ คาสั่งทีเ่ รยี กแฟม้ ทช่ี อ่ื วา่ stdio.h ซง่ึ ภายในจะบรรจุคาส่ัง หรือ ฟังกช์ ัน ทีจ่ าเปน็ ต้องใชใ้ นภาษาซี เช่น printf( ), scanf( ) เป็นต้น บรรทัดท่ี 2 void main(void) เป็นการบอกให้ C compiler รู้ว่าฟงั กช์ ัน main( ) เปน็ ฟังก์ชนั ที่ไม่มีการส่ง คา่ ข้อมลู และไมม่ ีการรับค่าข้อมูลกลบั บรรทดั ที่ 3 เคร่ืองหมาย { เป็นการแสดงจดุ เร่ิมต้นของฟังกช์ นั main( ) บรรทดั ท่ี 4 คาส่งั printf(“Hello, C Language \\n”); เปน็ คาส่ังที่ใช้พมิ พ์ขอ้ ความทอ่ี ยใู่ นเครื่องหมาย “….” แสดงออกทางจอภาพแลว้ ข้ึนบรรทัดใหมเ่ พราะมีรหัส \\n (new line) บรรทดั ที่ 5 เครอ่ื งหมาย } เปน็ การแสดงจดุ สิ้นสุดของฟงั ก์ชนั main( ) ชดุ กิจกรรมการเรียนรกู้ ารเขยี นโปรแกรมภาษาคอมพิวเตอร์ 13 รายวชิ าภาษาซี ง30243 ชัน้ มธั ยมศึกษาปที ่ี 5

ชุดท2ี่ โครงสร้างของโปรแกรมภาษาซี สาหรบั ข้อความทอ่ี ย่ใู นเครอื่ งหมาย /*.......*/ เป็นคาอธิบายในโปรแกรมภาษาซี เพอื่ ที่จะอธิบายให้ ผูอ้ า่ นไดท้ ราบว่ากาลงั ทาอะไรในโปรแกรม สว่ นมากถา้ เขยี นโปรแกรมทม่ี ขี นาดใหญ่เราจาเป็นต้องใช้ เครื่องหมาย /*.......*/ โดยท่ี C compiler จะไม่ทางานใด ๆ เมือ่ เจอเครอื่ งหมาย /*… */ คาอธิบายในโปรแกรมภาษาซี คาอธบิ ายในโปรแกรม (program comment) คอื ขอ้ ความทแ่ี ทรกอยู่ภายในโปรแกรมซงึ่ คอมพวิ เตอร์ จะไม่แปลข้อความนี้ให้เป็นส่วนหนึ่งของโปรแกรม กล่าวคือจะไม่มีผลต่อการทางานของโปรแกรม เขียนไว้ เพื่ออธิบายโปรแกรมซึ่งในบางครั้งผู้เขียนโปรแกรมอาจต้องการเขียนคาอธิบายกากับขั้นตอนการทางานของ โปรแกรมในแตล่ ะข้ัน ทาให้เกิดประโยชน์กบั ผู้เขียนและผู้ท่ีอ่านโปรแกรมได้เข้าใจง่ายข้ึน และช่วยทาให้การ แก้ไขและปรบั ปรุงโปรแกรมเป็นไปไดง้ า่ ยยง่ิ ขึ้น โปรแกรมตัวอยา่ งท่ี 2.2 แสดงการใส่คาอธบิ ายในโปรแกรมบรรทัดเดยี ว โดยการใช้ เครอื่ งหมาย /* หน้าข้อความท่ีอธบิ าย และใสเ่ ครื่องหมาย */ หลงั ส้ินสดุ ข้อความท่อี ธิบาย /* The first program with C */ main() { statement(s); } จากโปรแกรมตัวอย่างข้างตน้ มีคาอธบิ ายโปรแกรมดงั น้ีคอื /* The first program with C */ เปน็ การอธิบายโปรแกรมบรรทัดเดยี ว บอกใหท้ ราบว่าโปรแกรมนเ้ี ปน็ โปรแกรมแรกท่เี ขียนด้วยภาษาซี โปรแกรมตัวอย่างที่ 2.3 แสดงการใส่คาอธิบายในโปรแกรมมากกว่า 1 บรรทดั โดยการใช้เครื่องหมาย /* หน้าบรรทัดแรกของข้อความที่อธิบาย และใส่เครื่องหมาย */ หลังสิ้นสุดข้อความที่อธิบายของบรรทัด สุดท้าย ชดุ กิจกรรมการเรียนรกู้ ารเขยี นโปรแกรมภาษาคอมพวิ เตอร์ 14 รายวชิ าภาษาซี ง30243 ชั้นมธั ยมศึกษาปีที่ 5

ชุดท2ี่ โครงสร้างของโปรแกรมภาษาซี /* test.c */ /* This program is to show how to write comments */ main() { statement(s); } จากตัวอยา่ งขา้ งต้นมคี าอธิบายโปรแกรมดงั น้คี ือ /* test.c */ เปน็ การอธิบายโปรแกรมบรรทดั เดยี ว บอกให้ทราบว่าโปรแกรมช่อื test.c และ /* This program is to show how to write comments */ เป็นการอธบิ ายโปรแกรม 2 บรรทัด แสดงให้เห็นถึงวธิ กี ารใส่คาอธิบายในโปรแกรม ข้อสังเกต ในชุดกิจกรรมเล่มน้ีจะปรากฏการใส่เคร่ืองหมาย /* … */ เพอ่ื อธบิ ายโปรแกรม ตลอดทั้งเล่ม ซึง่ สว่ นมากจะใชบ้ อกให้ทราบชือ่ โปรแกรม และบอกหมายเลขบรรทดั เพ่อื ใช้ ประกอบการอธิบายโปรแกรม ขนั้ ตอนการพฒั นาโปรแกรมภาษาซี ขั้นตอนการพัฒนาโปรแกรมภาษาซี 15 การพฒั นาโปรแกรมภาษาซี มีขัน้ ตอนดงั น้ี 1. เขียนโปรแกรมต้นฉบับ (source program) ดว้ ยภาษาซี ใช้โปรแกรม Dev c++ เพื่อเขยี นโปรแกรมตน้ ฉบบั ดว้ ยภาษาซี จากนน้ั บนั ทึกโปรแกรมพร้อมกับ ตัง้ ชื่อแฟม้ ไว้ แฟ้มท่ไี ดจ้ ะมีนามสกลุ *.c หรอื *.cpp เชน่ simple.c หรือ simple.cpp เป็นต้น นอกจากน้ี ยงั สามารถใช้โปรแกรม Dev c++ เขียนโปรแกรมภาษา C++ ได้อีกด้วย ชดุ กิจกรรมการเรียนรู้การเขยี นโปรแกรมภาษาคอมพิวเตอร์ รายวชิ าภาษาซี ง30243 ช้ันมัธยมศกึ ษาปีท่ี 5

ชุดท2ี่ โครงสร้างของโปรแกรมภาษาซี 2. แปลโปรแกรมภาษา C ไปเป็นโปรแกรมภาษาเครอื่ ง (object program) ใชค้ าส่ัง compile เพือ่ แปลโปรแกรมภาษาซี ไปเปน็ โปรแกรมภาษาเครื่อง แฟ้มทไี่ ดจ้ ะมี นามสกลุ *.obj ซงึ่ ในขั้นตอนน้ีโปรแกรมต้นฉบบั อาจเกดิ ความผิดพลาดทางไวยกรณ์ภาษา (syntax error) ขึน้ ได้ จงึ ตอ้ งย้อนกลับไปแกไ้ ขโปรแกรมตน้ ฉบบั ในขอ้ 1. ให้ถูกต้องเสียกอ่ น 3. เช่ือมโยง (link) โปรแกรมภาษาเครอื่ งเข้ากับ library function ของภาษาซี จะได้เปน็ execute program โดยใช้คาสงั่ link แฟ้มทไี่ ด้จะมีนามสกุล *.exe 4. ส่ังให้ execute program แสดงผลลัพธ์ออกมา โดยใช้คาสงั่ run ในขั้นตอนน้ผี เู้ ขียนโปรแกรม ควรตรวจสอบผลลัพธท์ ีไ่ ด้จากโปรแกรมว่าตรงกบั ความตอ้ งการของเรา หรือไม่ถา้ ผลลัพธท์ ีไ่ ดไ้ มต่ รงกบั ความต้องการให้กลับไปแกไ้ ขโปรแกรมต้นฉบบั ในข้อ 1. เสรจ็ แลว้ ทาข้ันตอน ข้อ 2. ถึง ข้อ 4. ซา้ อกี ทาซา้ เชน่ นีจ้ นกว่าจะได้ผลลพั ธ์ทตี่ อ้ งการ เขียนโปรแกรม แปลโปรแกรมภาษา เชื่อมโยง แสดงผลลพั ธ์ (source program) (compile) (link) (run) ชดุ กิจกรรมการเรยี นรกู้ ารเขยี นโปรแกรมภาษาคอมพวิ เตอร์ 16 รายวชิ าภาษาซี ง30243 ชั้นมัธยมศึกษาปที ่ี 5

ชุดท2ี่ โครงสร้างของโปรแกรมภาษาซี โดยสรุปเราสามารถเขยี นผงั งานแสดงขั้นตอนการพัฒนาโปรแกรมภาษาซี ไดด้ ังนี้ ชดุ กจิ กรรมการเรยี นรกู้ ารเขยี นโปรแกรมภาษาคอมพวิ เตอร์ 17 รายวชิ าภาษาซี ง30243 ชั้นมัธยมศกึ ษาปีท่ี 5

ชุดท2่ี โครงสรา้ งของโปรแกรมภาษาซี บัตรกจิ กรรมกำรเรยี นรู้ท่ี 1 10 เรื่องเรมิ่ ต้นกบั ภำษำซี 1. โครงสร้างของโปรแกรมภาษาซมี อี ะไรบ้าง พรอ้ มคาอธิบาย .................................................................................................................................................................. .................................................................................................................................................................. .................................................................................................................................................................. .................................................................................................................................................................. .................................................................................................................................................................. .................................................................................................................................................................. 2. ใหน้ กั เรียนยกตวั อย่างลกั ษณะเด่นของภาษาซี .................................................................................................................................................................. .................................................................................................................................................................. .................................................................................................................................................................. .................................................................................................................................................................. .................................................................................................................................................................. .................................................................................................................................................................. .................................................................................................................................................................. .................................................................................................................................................................. 3. การพฒั นาโปรแกรมภาษาซี มขี ัน้ ตอนอยา่ งไร .................................................................................................................................................................. .................................................................................................................................................................. .................................................................................................................................................................. .................................................................................................................................................................. .................................................................................................................................................................. .................................................................................................................................................................. .................................................................................................................................................................. .................................................................................................................................................................. .................................................................................................................................................................. .................................................................................................................................................................. ชุดกจิ กรรมการเรียนรูก้ ารเขยี นโปรแกรมภาษาคอมพิวเตอร์ 18 รายวชิ าภาษาซี ง30243 ชัน้ มธั ยมศกึ ษาปีท่ี 5

ชดุ ท2่ี โครงสรา้ งของโปรแกรมภาษาซี บตั รกิจกรรมกำรเรยี นรู้ท่ี 1 เรือ่ งเร่ิมตน้ กับภำษำซี 4. คอมเมต์ในภาษาซีมีก่ีรปู แบบ พร้อมอธิบายว่าแตกต่างกันอย่างไร และยกตัวอยา่ งประกอบ .................................................................................................................................................................. ................................................................................................................................................................. .................................................................................................................................................................. ................................................................................................................................................................. .................................................................................................................................................................. ................................................................................................................................................................. .................................................................................................................................................................. ................................................................................................................................................................. .................................................................................................................................................................. .................................................................................................................................................................. 5. ภาษาซีถูกพัฒนาขึน้ ใน ค.ศ. ใด โดยใคร และพัฒนามาจากภาษาใด ................................................................................................................................................................. .................................................................................................................................................................. ................................................................................................................................................................. .................................................................................................................................................................. .................................................................................................................................................................. ................................................................................................................................................................. .................................................................................................................................................................. ................................................................................................................................................................. .................................................................................................................................................................. .................................................................................................................................................................. ................................................................................................................................................................. .................................................................................................................................................................. .................................................................................................................................................................. ชุดกจิ กรรมการเรยี นรูก้ ารเขยี นโปรแกรมภาษาคอมพวิ เตอร์ 19 รายวชิ าภาษาซี ง30243 ช้ันมัธยมศึกษาปที ่ี 5

ชุดท2ี่ โครงสรา้ งของโปรแกรมภาษาซี บตั รเน้ือหำท่ี 2 ขอ้ มูลและตวั แปร ในภำษำซี ขอ้ มลู ของภาษาซี สาหรบั เร่อื งข้อมูลของภาษาซี จะกล่าวถึงเร่ืองตวั อักขระ คา่ คงที่ และตัวแปร ดังรายละเอียดตอ่ ไปน้ี 1. ตัวอกั ขระ (charactors) ตวั อกั ขระในภาษาซี สามารถจาแนกออกเปน็ 3 ประเภท คอื 1. ตวั เลข (digits) คือ ตัวเลข 0, 1, 2, …., 9 และตวั เลขฐานสบิ หก A, B, C, D, E และ F 2. ตัวอกั ษร (letters) สามารถใชต้ วั อกั ษรพมิ พใ์ หญ่ (uppercase letter) คือ A, B, C, …, Z และตวั อักษร พมิ พ์เลก็ (lowercase letter) คอื a, b, c, …., z รวมทงั้ สนิ้ 52 ตวั อักษร 3. ตวั อักขระพเิ ศษ (special character) ซึง่ ได้แก่ ! .(dot) ( ~ #*= ; %+ | / ^“> - ?<) [ : ,(comma) & _ ] ‘b (blank หรอื space) ยกเว้นเคร่ืองหมาย _ (underscore) เพยี งตวั เดียวทภี่ าษาซี จัดเป็นตัวอักษรตัวหน่ึง โดยทีต่ ัวอักขระชนิดต่าง ๆ นีจ้ ะถกู นาไปใชเ้ ปน็ ค่าคงที่ ตัวแปร ตัวดาเนนิ การ หรือนิพจน์ ท่ีใช้ ในภาษาซี ต่อไป ชุดกจิ กรรมการเรยี นรกู้ ารเขยี นโปรแกรมภาษาคอมพิวเตอร์ 20 รายวชิ าภาษาซี ง30243 ชั้นมัธยมศึกษาปีที่ 5

ชุดท2่ี โครงสร้างของโปรแกรมภาษาซี 2. ค่าคงที่ (constants) 21 คา่ คงท่ี คอื ตวั อักขระที่นามาประกอบกันตง้ั แต่ 1 ตัวอกั ขระข้นึ ไป เพ่ือบอกลักษณะอย่างใดอย่าง หนง่ึ ของขอ้ มูล บางครง้ั เราอาจเรยี กค่าคงท่วี ่า “ข้อมลู ” (data) ก็ได้ 1. ค่าคงท่ชี นดิ ตัวเลขจานวนเต็ม (integer constant) คา่ คงทช่ี นดิ นจ้ี ะเปน็ ตวั เลขจานวนเต็มซ่งึ อาจมี เครอื่ งหมายบวกหรือลบกไ็ ด้ เช่น 0, 9, 85, -698, 1832, -2080 เป็นต้น โดยตัวเลขจานวนเตม็ ท่ีจะสามารถเก็บ ได้ปกติจะอย่ใู นชว่ ง -32768 ถึง 32767 เทา่ น้นั บางครงั้ เรานิยมเรียกค่าคงทชี่ นดิ น้ีว่าคา่ คงท่ี int (integer) สาหรบั การเก็บคา่ คงท่ีชนดิ int น้ีภายในหนว่ ยความจา จะใช้เนอ้ื ท่ี 2 bytes นอกจากนยี้ ังสามารถ เขยี นค่าคงที่ชนิดนี้ให้อยใู่ นรปู แบบตัวเลขฐานแปดและฐานสิบหกได้ โดยใช้ตัวเลขศนู ย์ (0) นาหน้าแลว้ ตาม ดว้ ยเลขฐานแปดที่ต้องการหรอื จะใชต้ วั เลขศนู ย์เอ็กซ์ (0x หรือ 0X) นาหนา้ แล้วตามด้วยเลขฐานสิบหกที่ ตอ้ งการ เช่น 046, 027, 0xBD, 0X1BCF เป็นต้น 2. ค่าคงที่ชนดิ ตวั เลขทศนยิ ม (floating point constant) ค่าคงทีช่ นดิ น้ีจะเปน็ ตัวเลขจานวนทศนิยม ซงึ่ อาจจะมีเครือ่ งหมายบวก หรอื ลบกไ็ ด้ หรอื เปน็ ตวั เลขท่ีสามารถเขียนอย่ใู นรูป E ยกกาลงั ได้ เชน่ 3.0, 0.234, -0.54, 4E-06, 1.675E+10 เปน็ ต้น โดยตัวเลขทศนิยมน้ีจะสามารถเก็บได้ปกติจะอยูใ่ นชว่ ง 1.2E- 38 ถงึ 3.4E+38 เทา่ น้ัน สาหรบั การเก็บค่าคงท่ีชนิด float นีจ้ ะใชเ้ นือ้ ท่ีภายในหนว่ ยความจา 4 bytes โดยท่ี 3 bytes แรกจะเก็บคา่ ตัวเลขทศนยิ ม สว่ นอีก 1 bytes สุดท้ายจะเกบ็ ค่ายกกาลังเอาไว้ 3. ค่าคงทต่ี ัวเลขทศนิยมทีม่ คี วามละเอยี ดสองเท่า (double floating point) คา่ คงที่ชนิดนน้ี ยิ ม เรยี กว่า ค่าคงทแี่ บบ double ซง่ึ จะสามารถเก็บตัวเลขทศนิยมที่มีคา่ อยใู่ นช่วง 2.2E-308 ถงึ 1.8E+308 เทา่ น้นั สาหรบั การเก็บคา่ คงที่ชนดิ double น้ี จะใชเ้ นอื้ ท่ีภายในหน่วยความจา 8 bytes โดยใช้ 7 bytes แรกเกบ็ คา่ ตัวเลขทศนยิ ม สว่ นอีก 1 bytes สดุ ทา้ ยจะเกบ็ คา่ ยกกาลังเอาไว้ เช่นเดียวกับค่าคงท่ี ชนดิ float 4. ค่าคงที่ชนิดตวั อักขระตวั เดยี ว (single character constant) คา่ คงที่ชนดิ นีจ้ ะสามารถเกบ็ ตัว อกั ขระไดเ้ พียง 1 ตวั อักขระ โดยอย่ภู ายในเครอื่ งหมาย ‘ ’ (single quotation) เช่น ‘5’, ‘X’, ‘c’ เปน็ ตน้ สาหรบั การเกบ็ คา่ คงท่ีชนิด single character constant จะใช้เนือ้ ทภ่ี ายในหนว่ ยความจา 1 bytes 5. ค่าคงท่ีชนิดขอ้ ความ (strings constant) คา่ คงท่ชี นิดนีจ้ ะเก็บตวั อักขระทมี่ ีความยาวตัง้ แต่ 1 ตัว ขน้ึ ไป โดยจะเกบ็ อย่ใู นรูปของข้อมลู อะเรย์ (arrays) ซง่ึ ในแต่ละตัวอกั ขระจะใช้เนอื้ ทใ่ี นการเก็บ 1 bytes เรียง ติดต่อกันไปจนกระทั่งจบข้อความ และใน byte สุดทา้ ยจะเก็บ \\0 (null character) เอาไว้เพ่อื เป็นการบอกวา่ จบขอ้ ความแลว้ การเขียนค่าคงทชี่ นิดข้อความจะต้องเขียนอยู่ภายในเครือ่ งหมาย “……” (double quotation) เชน่ “X”, ”computer”, “4567”, “c” เปน็ ต้น ชุดกจิ กรรมการเรยี นรู้การเขยี นโปรแกรมภาษาคอมพวิ เตอร์ รายวชิ าภาษาซี ง30243 ชน้ั มัธยมศกึ ษาปที ่ี 5

ชดุ ท2่ี โครงสร้างของโปรแกรมภาษาซี ตัวอย่างท่ี 2.1 แสดงการเกบ็ ขอ้ มูลชนดิ ขอ้ ความ คาว่า “COMPUTER” ภายในหนว่ ยความจา จะมีลักษณะดังน้ี 3. ตวั แปร (variables) ตวั แปร คอื ชอ่ื ท่ีผูเ้ ขียนโปรแกรมต้ังขนึ้ เพ่อื ใชเ้ ป็นข้อมลู หรือใชเ้ กบ็ ขอ้ มูล ดงั น้นั เราต้องกาหนดตัว แปรให้สอดคลอ้ งกบั ชนิดขอ้ มูลเสมอ เพื่อใหร้ ะบบเตรยี มเน้อื ทใ่ี นหนว่ ยความจาให้สอดคลอ้ งกบั ตวั แปรชนดิ นน้ั ๆ ซง่ึ เน้อื หาท่ีกล่าวถึงเก่ียวกับตวั แปรประกอบด้วย หลกั เกณฑก์ ารตง้ั ชอ่ื ตวั แปร การประกาศตวั แปร และการกาหนดค่าเรม่ิ ต้นใหก้ ับตวั แปร 1. หลกั เกณฑ์การตง้ั ชอื่ ตวั แปร ในภาษาซี มีหลกั เกณฑ์การต้งั ชื่อตวั แปรดังน้ี 1. ชื่อตัวแปรจะตอ้ งขึ้นต้นด้วยตวั อักษรเทา่ นน้ั ตัวถัดมาเปน็ ได้ท้งั ตวั อักษร ตัวเลข แต่ตอ้ ง ไมม่ ีเคร่ืองหมายคานวณ บวก (+), ลบ (-), คูณ (*), หาร (/), หารเอาเศษ (%) และเครื่องหมายเวน้ วรรค (blank) คนั่ ระหวา่ งชือ่ ตัวแปร แต่ถา้ ตอ้ งการต้ังชอื่ ตวั แปรเวน้ วรรคใหใ้ ช้เครอ่ื งหมาย _ (underscore) คั่น แทนการเว้นวรรค เช่น sum_1, sum_2 เปน็ ต้น 2. ความยาวของช่ือตวั แปร ขน้ึ อยู่กับคอมไพเลอร์และระบบเครื่องคอมพวิ เตอร์ ซึ่งภาษาซี สามารถตงั้ ชื่อตวั แปรไดย้ าวถึง 32 ตวั แต่โดยปกติเราไมน่ ยิ มตงั้ ชื่อตวั แปรยาว ๆ 3. ชอื่ ตัวแปรตัวอกั ษรพมิ พใ์ หญ่และตวั อักษรพิมพเ์ ล็ก แมจ้ ะเขยี นคาเดยี วกัน หรือตัวอักษร พิมพใ์ หญ่ปนตวั อักษรพิมพ์เล็กทสี่ ลับตาแหน่งกัน ระบบถือว่าเป็นคนละตัวแปรกนั เช่น ตวั แปร MAX, max, Max, mAx, maX จะถือว่าตวั แปรทั้ง 5 ตวั นี้เป็นคนละตัวกนั 4. หา้ มตง้ั ชอื่ ตัวแปรซ้ากับคาสงวน (reserved word) หรือช่ือฟังก์ชัน หรอื ชอื่ คาสั่งในภาษา น้ัน ๆ asm, auto else typedef short while long char float double switch extern unsigned int case return continue struct register union for break enum const signed void default goto volatile sizeof do if static ชุดกิจกรรมการเรยี นร้กู ารเขยี นโปรแกรมภาษาคอมพิวเตอร์ 22 รายวชิ าภาษาซี ง30243 ชน้ั มธั ยมศกึ ษาปที ี่ 5

ชุดท2ี่ โครงสรา้ งของโปรแกรมภาษาซี 5. ชือ่ ตัวแปรควรต้งั ให้สัมพันธ์กับข้อมูลทต่ี ้องการเกบ็ เพอ่ื ป้องกันความสับสน เนอื่ งจาก โปรแกรมทมี่ ขี นาดใหญ่จะมตี วั แปรจานวนมาก ถ้าเราตั้งชอ่ื ตวั แปรโดยไมม่ ีระบบระเบียบท่ดี พี อจะทาให้ผู้อ่าน โปรแกรมเกดิ ความสบั สนและในกรณีทีโ่ ปรแกรมเกดิ ข้อผิดพลาดขน้ึ จะเสยี เวลาในการแกไ้ ขโปรแกรมมากขึน้ เชน่ ตัวแปร name ใชเ้ กบ็ ชอ่ื ตัวแปร age ใชเ้ ก็บอายุ ตวั แปร salary ใชเ้ กบ็ เงนิ เดือน ตวั แปร vat ใชเ้ ก็บภาษี 2. การประกาศตัวแปร (declaration of variables) ตัวแปรทกุ ตวั ต้องมีการประกาศช่อื ตัวแปร (variable name) และชนดิ ของตัวแปร (variable type) เอาไวก้ อ่ น จงึ จะสามารถนาตวั แปรท่ีประกาศไวม้ าใช้งานได้ รูปแบบการประกาศตวั แปร vtype vname ; โดยท่ี vtype คอื ชนขิ องตวั แปรพนื้ ฐานทน่ี ิยมใช้กนั มอี ยู่ 4 ชนิด คือ char, int, float, และ double ซ่ึงใน ความเป็นจรงิ แลว้ การประกาศชนดิ ของตวั แปรจะตอ้ งใหค้ วามสัมพันธ์กับค่าข้อมูลทตี่ ้องการเก็บด้วย vname คอื ช่ือของตวั แปร ถา้ มตี ัวแปรหลายตัวที่ต้องการใหม้ ชี นดิ ตวั แปรเหมอื นกนั สามารถใช้ เคร่ืองหมาย, (comma) คัน่ ระหวา่ งช่อื ตวั แปรได้ ตัวอยา่ งท่ี 2.2 แสดงการประกาศตวั แปร 1. char d, c[30]; จะไดต้ ัวแปร d มีชนิดเปน็ single character และตวั แปรสตริง c มีขนาด 30 bytes 2. int a, b; จะได้ตัวแปร a และ b มีชนดิ เป็น int คือใช้เนอ้ื ท่ีในหน่วยความจา 2 bytes สามารถเกบ็ ตัวเลข จานวนเตม็ ทีม่ คี ่าอยู่ในชว่ ง -32768 ถงึ 32767 3. float k, m, n, จะไดต้ วั แปร k, m และ n มีชนดิ เปน็ float คือใช้เน้อื ที่ในหน่วยความจา 4 bytes สามารถเกบ็ จานวน ทศนิยม และตวั เลขที่อยใู่ นรปู E ยกกาลังได้ 4. double w, x, y, z จะไดต้ วั แปร w, x, y และ z มีชนดิ เปน็ double คือใชเ้ นอ้ื ท่ีในหน่วยความจา 8 bytes สามารถเกบ็ จานวนทศนยิ ม หรือตัวเลขทีอ่ ยูใ่ นรปู E ยกกาลงั ท่มี คี วามละเอยี ดสงู กว่าชนดิ float ชดุ กิจกรรมการเรยี นรูก้ ารเขยี นโปรแกรมภาษาคอมพิวเตอร์ 23 รายวชิ าภาษาซี ง30243 ช้นั มัธยมศกึ ษาปีที่ 5

ชุดท2่ี โครงสร้างของโปรแกรมภาษาซี ตารางที่ 2.1 แสดงชนดิ ของตวั แปร จานวน bytes และพสิ ัยของคา่ ข้อมลู ในภาษาซี ชนิดของตวั แปร จานวน bytes ท่ใี ช้ พิสยั ในการเกบ็ ขอ้ มูล (variable types) (range) 1 char 2 -128 to 127 int 2 -32,768 to 32,767 short 4 -32,768 to 32,767 long 1 - unsigned char 2 2,147,483,648 to 2,147,483,647 unsigned int 2 unsigned short 4 0 to 255 unsigned long 2 0 to 65,535 4 0 to 65,535 enum 8 0 to 4,294,967,295 float 0 to 65,535 double 1.2E-38 to 3.4E+38 2.2E-308 to 1.8E+308 กรณีทตี่ อ้ งการประกาศตวั แปรและกาหนดค่าเริ่มต้นใหก้ ับตวั แปรดว้ ยสามารถทาไดด้ ังนี้ รูปแบบการประกาศตวั แปรและกาหนดคา่ ใหก้ ับตัวแปร กรณีท่มี ตี ัวแปร 1 ตวั vtype vname = value; กรณีที่มีตัวแปรมากกวา่ 1 ตัว vtype vname1 = value1, vname2 = value2 ,….., vnameN = valueN; กรณที ีม่ ีตวั แปรมากกว่า 1 ตวั ใหใ้ ช้เครือ่ งหมาย , (comma) คัน่ ระหวา่ งช่ือตวั แปรแตล่ ะตัว ตัวอย่างการประกาศตัวแปรและกาหนดคา่ ใหก้ ับตวั แปร การกาหนดคา่ เริ่มตน้ ใหก้ บั ตวั แปร (initializing variables) ตวั อย่างท่ี 2.3 แสดงการประกาศตวั แปรและกาหนดค่าให้ตวั แปร 1. char d=’D’,e=’E’; 2. char c[6]=”Hello”; 3. int a=9, b=25; 4. float k=5.9; 5. double y=3.543006089; ชุดกจิ กรรมการเรยี นร้กู ารเขยี นโปรแกรมภาษาคอมพิวเตอร์ 24 รายวชิ าภาษาซี ง30243 ชัน้ มธั ยมศึกษาปีที่ 5

ชดุ ท2ี่ โครงสร้างของโปรแกรมภาษาซี การกาหนดค่าเรมิ่ ตน้ ใหก้ บั ตวั แปร (initializing variables) หลงั จากทเ่ี ราไดป้ ระกาศตวั แปรไว้ ถา้ เราต้องการกาหนดค่าเริ่มตน้ ให้กับตัวแปรใดเราสามารถทาได้ ดงั น้ี รูปแบบกาหนดคา่ เรมิ่ ตน้ ใหก้ ับตวั แปร vname = value; โดยท่ี vname คือ ช่อื ตวั แปรทีไ่ ดป้ ระกาศแลว้ value คอื คา่ ข้อมูลที่จะนาไปเก็บไว้ในตัวแปร ซึง่ อาจเป็นค่าตัวเลขหรือข้อความกไ็ ด้ ถ้าเปน็ ขอ้ ความจะต้องเขยี นอยู่ในเครือ่ งหมาย “……” ตัวอยา่ งที่ 2.4 แสดงการประกาศคา่ ตวั แปรและกาหนดค่าเริ่มต้นให้กับตัวแปร int a, b, c=7; /* เปน็ การประกาศตวั แปร a, b, และ c, เป็น int และกาหนด ค่าตัวแปร c มคี ่า 7 */ a=b=c; /* เป็นการกาหนดคา่ ตัวแปร a และ b ให้มีค่าเท่ากบั ตัวแปร c (คอื มคี ่า เทา่ กบั 7) */ ชดุ กิจกรรมการเรยี นรู้การเขยี นโปรแกรมภาษาคอมพิวเตอร์ 25 รายวชิ าภาษาซี ง30243 ชนั้ มัธยมศกึ ษาปที ่ี 5

ชดุ ท2่ี โครงสร้างของโปรแกรมภาษาซี บตั รกจิ กรรมกำรเรยี นรู้ท่ี 2 เร่อื งขอ้ มูลและตวั แปรในภำษำซี 10 1. ให้นกั เรียนอธบฺิ ายใหนลักภเำกณษฑำก์ซาี รตัง้ ช่ือตวั แปรในภาษาซี มีขอ้ กาหนดอะไรบ้าง ..................................................................................................................................................................... ..................................................................................................................................................................... ..................................................................................................................................................................... ..................................................................................................................................................................... ..................................................................................................................................................................... ..................................................................................................................................................................... ..................................................................................................................................................................... ..................................................................................................................................................................... ..................................................................................................................................................................... ..................................................................................................................................................................... 2. ชนดิ ของตัวแปรในภาษาซที ่ีกาหนดให้ดังตอ่ ไปนี้ ใช้เก็บข้อมูลอะไรบา้ ง int …………………………………………………………………………………………………………………………. char …………………………………………………………………………………………………………………………. float …………………………………………………………………………………………………………………………. long …………………………………………………………………………………………………………………………. double …………………………………………………………………………………………………………………………. 3. ให้นกั เรียนยกตัวอย่างคาสงวน (Reserved Word) ในภาษาซมี า 5 คา 1. …………………………………………………………………………………………………………………………………………… 2. …………………………………………………………………………………………………………………………………………… 3. …………………………………………………………………………………………………………………………………………… 4. …………………………………………………………………………………………………………………………………………… 5. …………………………………………………………………………………………………………………………………………… ชุดกิจกรรมการเรยี นร้กู ารเขยี นโปรแกรมภาษาคอมพิวเตอร์ 26 รายวชิ าภาษาซี ง30243 ชัน้ มธั ยมศึกษาปีท่ี 5

ชดุ ท2่ี โครงสร้างของโปรแกรมภาษาซี บัตรกิจกรรมกำรเรยี นรู้ที่ 2 เร่ืองขอ้ มูลและตวั แปรในภำษำซี 4. จากการประกาศตใัวนแภปรำพษรำอ้ มCกับกาหนดค่าดังแสดงตอ่ ไปนี้ ข้อใดถูกและข้อใดผดิ โดยใหบ้ อก เหตุผลส่วนทีผ่ ิดมาดว้ ย 1. int a; ……………………………………………………………………………………. 2. int b ……………………………………………………………………………………. 3. int Com budget = 30000; ……………………………………………………………………………………. 4. int main = 10; ……………………………………………………………………………………. 5. int _cont = 451; ……………………………………………………………………………………. 6. char j = “Hello”; ……………………………………………………………………………………. 7. char j = ‘A’; ……………………………………………………………………………………. 8. char k = 0x41; ……………………………………………………………………………………. 9. float z = 1,000.999; ……………………………………………………………………………………. 10. float x = 45.067; ……………………………………………………………………………………. 5. ให้นักเรียนระบุวา่ การตง้ั ชื่อตัวแปรในขอ้ ตอ่ ไปนี้ ขอ้ ใดถกู หรือผิด ถ้าผิดบอกเหตุผลประกอบ 1. void ……………………………………………………………………………………. 2. MAX_Mine ……………………………………………………………………………………. 3. double ……………………………………………………………………………………. 4. time ……………………………………………………………………………………. 5. G ……………………………………………………………………………………. 6. return ……………………………………………………………………………………. 7. suwannawongse 1 ……………………………………………………………………………………. 8. birth year ……………………………………………………………………………………. 9. last_name ……………………………………………………………………………………. 10. #insert ……………………………………………………………………………………. ชุดกจิ กรรมการเรียนรู้การเขยี นโปรแกรมภาษาคอมพวิ เตอร์ 27 รายวชิ าภาษาซี ง30243 ช้ันมัธยมศึกษาปีท่ี 5

ชุดท2ี่ โครงสรา้ งของโปรแกรมภาษาซี ตัวดำเนนิ กำร บตั รเนอื้ หำที่ 3 ในภำษำซี ในหัวขอ้ เร่อื งการเขยี นโปรแกรมจะกล่าวถึงเน้ือหา 2 สว่ น คอื ความหมายของโปรแกรมคอมพวิ เตอร์ และภาษาคอมพิวเตอรด์ งั มรี ายละเอียดต่อไปนี้ ตวั ดาเนินการ (operators) ตัวดาเนนิ การบางครั้งเรยี กว่า “เคร่ืองหมาย” จะเข้าใจง่ายกว่า ในภาษาซี สามารถแบง่ ตวั ดาเนนิ การได้หลายประเภทดงั นี้ 1. ตวั ดาเนินการคณติ ศาสตร์ (mathematical operators) สญั ลกั ษณ์ (symbol) ตัวดาเนินการ (operators) ตัวอย่าง + บวก (addition) a+b - ลบ (subtraction) a-b * คณู (multiplication) a*b / หาร (division) a/b % หารเอาเศษ (remainder) a%b 2. ตัวดาเนินการความสัมพนั ธ์ (relational operators) ตวั อย่าง สัญลกั ษณ์ (symbol) ตัวดาเนินการ (operators) A<b a>b < นอ้ ยกว่า (less than) A<=b > มากกวา่ (greater than) <= น้อยกว่าหรอื เท่ากับ a>=b (less than or equal) A==b >= มากกว่าหรอื เทา่ กบั a!=b (greater than or equal) == เท่ากับ (equal) != ไม่เท่ากบั (not equal) ชุดกจิ กรรมการเรียนรกู้ ารเขยี นโปรแกรมภาษาคอมพวิ เตอร์ 28 รายวชิ าภาษาซี ง30243 ชั้นมัธยมศึกษาปีที่ 5

ชุดท2่ี โครงสร้างของโปรแกรมภาษาซี 3. ตัวดาเนนิ การเชิงตรรกะ (logical operators) ตัวอย่าง สญั ลักษณ์ (symbol) ตวั ดาเนนิ การ (operators) A<b && c>d a<b || c>d && และ (AND) || หรอื (OR) !(a<b) ! ไม่ (NOT) 4. ตวั ดาเนินการเพ่มิ ค่าและลดค่า (increment and decrement operators) สญั ลักษณ์ (symbol) ตัวดาเนนิ การ (operators) ตัวอย่าง ++ เพ่มิ ค่า (increment) a++ หรือ ++a -- ลดค่า (decrement) a-- หรอื --a 5. ตวั ดาเนินการบติ ไวส์ (bitwise operators) ตวั อยา่ ง สัญลกั ษณ์ (symbol) ตัวดาเนนิ การ (operators) a&b a|b & AND a^b | inclusive OR ~a ^ exclusive OR a>>2 ~ Complement a<<3 >> right shift << left shift 6. ตัวดาเนินการกาหนดค่า (compound assignment operators) สัญลกั ษณ์ (symbol) ตวั ดาเนนิ การ (operators) ตัวอยา่ ง = Assignment a=b += Addition a+=b หมายถงึ (a=a+b) -= Subtraction a-=b หมายถงึ (a=a-b) *= Multiplication a*=b หมายถึง (a=a*b) /= Division a/=b หมายถึง (a=a/b) %= Remainder a%=b หมายถงึ (a=a%b) &= bitwise AND a&=b หมายถึง (a=a&b) |= bitwise Inclusive OR a|=b หมายถงึ (a=a|b) ^= bitwise exclusive OR a^=b หมายถงึ (a=a^b) <<= right shift a<<2 หมายถึง (a=a<<2) >>= left shift a>>3 หมายถงึ (a=a>>3) ชุดกจิ กรรมการเรยี นรูก้ ารเขยี นโปรแกรมภาษาคอมพิวเตอร์ 29 รายวชิ าภาษาซี ง30243 ชน้ั มธั ยมศึกษาปที ่ี 5

ชุดท2่ี โครงสรา้ งของโปรแกรมภาษาซี 7. ตวั ดาเนนิ การแบบเงือ่ นไข (conditional operators) ตวั อยา่ ง สญั ลักษณ์ (symbol) ตวั ดาเนินการ (operators) Max = (a>b) ? a: b; Result = (expression) Conditional Operators ? Value1 : vaule2 ; ลาดบั การทางานของตัวดาเนินการ (precedence and associativity of operators) ลาดับท่ี ตวั ดาเนินการ ลกั ษณะการทางาน (Operator) (Associativity) 1 ( ) [ ] . -> Left to right 2 - ~!*& Light to left 3 ++ - - Right to left 4 */% Left to right 5 +- Left to right 6 << >> Left to right 7 < > < = >= Left to right 8 = = != Left to right 9 & (bitwise AND) Left to right 10 ^ (bitwise exclu OR) Left to right 11 | (bitwise inclu OR) Left to right 12 && Left to right 13 || Left to right 14 ?: Left to right 15 = += -= /= %= Right to left 16 <<= >>= Right to left ตวั ดาเนนิ การที่มีลาดับการทางานอนั ดบั ที่ 1 จะทางานก่อนอนั ดับที่ 2 โดยทางานไปเรื่อย ๆ จนกระทัง่ หมดตวั ดาเนินการ ส่วนลกั ษณะการทางานของตัวดาเนินการแต่ละอนั ดับนัน้ แตกตา่ งกนั ไป ซ่งึ จะ เปน็ การทางานจากซ้ายไปขวา (left to rigth) หรอื ขวาไปซ้าย (rigth to left) กไ็ ด้ ชุดกจิ กรรมการเรียนรกู้ ารเขยี นโปรแกรมภาษาคอมพิวเตอร์ 30 รายวชิ าภาษาซี ง30243 ชัน้ มัธยมศกึ ษาปีท่ี 5

ชดุ ท2ี่ โครงสรา้ งของโปรแกรมภาษาซี ตัวอย่างที่ 2.5 แสดงขน้ั ตอนการทางานของตัวดาเนนิ การ 8+5*3 ตัวดาเนนิ การ * อยู่ลาดับสูงกว่าตวั 4 +15 ดาเนนิ การ + จงึ ตอ้ งคณู เลขก่อนแลว้ ทาการ 19 การบวกเลขทหี ลัง 10 / 2 + 5 – 3 ตวั ดาเนินการ / อยลู่ าดบั สงู กวา่ ตัว 5+5–3 ดาเนินการ + และ - ส่วนตัว 10 - 3 ดาเนนิ การ + และ - อยู่ลาดับเดียวกัน แต่ให้ ทา 7 จากซ้ายไปขวา จงึ ทาบวกก่อนแล้วจึงทาลบ 9 * 3 - 20 / 5 + 6 ตัวดาเนินการ * และ / อยู่ลาดับเดยี วกันให้ทา จากซ้ายไปขวา คอื คณู เลขก่อน แล้วหาร จาก 27 - 4 + 6 ซา้ ยไปขวา คือ คณู เลขกอ่ น แลว้ หาร 23 + 6 ตวั ดาเนินการ + และ – อยลู่ าดับเดียวกนั ใหท้ า 29 จากซ้ายไปขวา คือ ลบเลขกอ่ นแล้ว จึงบวกทหี ลัง ชุดกิจกรรมการเรียนรู้การเขยี นโปรแกรมภาษาคอมพิวเตอร์ 31 รายวชิ าภาษาซี ง30243 ช้ันมธั ยมศกึ ษาปีท่ี 5

ชุดท2ี่ โครงสรา้ งของโปรแกรมภาษาซี นพิ จน์ (expression) นพิ จน์ คือ การนาคา่ คงท่ตี ัวแปรและตวั ดาเนนิ การมาเขยี นประกอบกัน เพื่อให้ตัวแปรภาษาสามารถ เข้าใจและคานวณหาผลลัพธ์ได้ตามท่ีเราตอ้ งการ ตัวอยา่ งท่ี 2.6 ถา้ ต้องการหาค่าจากสูตร a2+2ab+b2 เม่ือ a=2, b=3 เราจะต้องเขยี นสตู รดังกลา่ วให้เปน็ นพิ จนด์ งั น้ี a*a+2 *a *b+b*b ……………………..…………………………… แบบท่ี 1 หรอื pow(a,2) + 2 *a *b + pow(b,2) ……………………………… แบบที่ 2 สาหรบั ฟังก์ชัน pow(x,y) เป็นฟังก์ชันที่ใชห้ าคา่ ตวั เลขท่อี ยู่ในรปู เลขยกกาลัง โดยท่ี x เปน็ เลขฐานซ่ึงจะต้องมีคา่ เป็นเลขจานวนเต็มบวกหรือศูนย์กไ็ ด้ y เปน็ เลขยกกาลงั ซงึ่ อาจจะเป็นเลขจานวนเต็มบวกหรอื ลบกไ็ ด้ ดงั น้ัน pow(x,y) หมายถงึ xy สว่ น pow(a,2) หมายถงึ a2 และ pow(b,2) หมายถงึ b2 ขอ้ ควรระวงั ก่อนทีเ่ ราจะใช้ฟงั ก์ชนั pow(x,y) นี้จะต้องใช้คาสัง่ #include<math.h> อย่บู นส่วนต้นของ โปรแกรม เพอื่ นาแฟ้ม math.h เข้ามาไว้ในโปรแกรมภาษาซี กอ่ น มฉิ ะนนั้ อาจเกิดขอ้ ผิดพลาดในการแปล โปรแกรมไดเ้ พราะไม่สามารถหาฟังกช์ ัน pow(x,y) ได้ ตวั อย่างที่ 2.7 แสดงนิพจนต์ วั อยา่ ง ซ่งึ มีอย่หู ลายชนดิ ตังต่อไปน้ี 1. a+b*10+(3*c)*8 /* นิพจนท์ างคณิตศาสตร์*/ 2. (m>=n)&&(x<y) /* นพิ จนเ์ ชงิ ตรรกะและนพิ จนเ์ ชงิ เปรียบเทยี บความสมั พันธ์*/ 3. !(k==25) /* นพิ จนเ์ ชิงตรรกะและนพิ จนเ์ ชงิ เปรียบเทยี บความสัมพนั ธ*์ / 4. !(p) /* นพิ จนเ์ ชิงตรรกะ*/ 5. (i>10)||(j<5) /* นิพจน์เชิงตรรกะและนพิ จน์เชิงเปรยี บเทียบ*/ 6. if (y==z) /* นิพจน์เง่ือนไข*/ ตัวอยา่ งท่ี 2.8 แสดงการหาค่าผลลัพธจ์ ากนิพจน์ในภาษาซี กาหนดให้ int x=5, y=8, z=9; 1. x+(y*z) ผลลัพธค์ ือ 77 2. x+y*z+x*3 ผลลพั ธ์คือ 92 ชุดกิจกรรมการเรยี นรกู้ ารเขยี นโปรแกรมภาษาคอมพิวเตอร์ 32 รายวชิ าภาษาซี ง30243 ชนั้ มธั ยมศึกษาปที ่ี 5

ชุดท2่ี โครงสร้างของโปรแกรมภาษาซี การแปลงชนิดขอ้ มูลของภาษาซี (C type conversion) เมอื่ เราเขยี นโปรแกรมมักจะพบวา่ ใชต้ ัวดาเนินการกบั ตัวแปรของชนิดข้อมลู แตกต่างกัน เพ่อื อานวย ความสะดวกในการเขยี นโปรแกรมภาษาซี จงึ ไดก้ าหนดกฎเกณฑด์ ังน้ี ถ้าคา่ ตวั แปร หรือคา่ คงที่ตา่ งชนิดกัน ให้ทาการเปล่ยี นชนดิ ของข้อมูลทีม่ ขี นาดเลก็ ให้เป็นชนิดของข้อมูลทีใ่ หญ่ขึ้น ชนดิ ของข้อมูล x ชนดิ ของข้อมลู y x ชนิดของข้อมูล y int long long char int int int float float int double double float double double long double double ชนดิ ข้อมลู ต่าง ๆ long double long double --- --- --- กาหนดให้ x เป็นตัวแปรชนิดข้อมูลแบบ int และ y เป็นตวั แปรขอ้ มลู แบบ long เมอื่ นา x และ y มา บวก ลบ คูณ และหารกนั ผลลัพธ์ทไี่ ดจ้ ะเป็นชนิดข้อมลู แบบ long (เพราะ long มพี สิ ัยในการ เกบ็ ขอ้ มลู กว้างกว่า int) เชน่ int x = 7; float y = 2; ถ้า x/2 จะได้ผลลพั ธเ์ ป็น 3 (ชนิดข้อมลู แบบ int) ถ้า x/y จะไดผ้ ลลัพธเ์ ปน็ 3.500000 (ชนดิ ข้อมลู แบบ float) ข้อสังเกต ภาษาซี เปน็ ภาษาทด่ี ีมาก ทีอ่ านวยความสะดวกในการแปลงชนิดขอ้ มูลของตวั แปรให้ ใหญ่ขน้ึ ทาใหไ้ ม่มีปัญหาในการเก็บขอ้ มลู และเราไม่ต้องกงั วลผลท่ไี ดจ้ ากการดาเนนิ การของตัวแปรในนิพจน์ ต่าง ๆ นอกจากนี้ภาษาซี ยงั อนุญาตใหเ้ ราแปลงชนิดขอ้ มลู ไดช้ ว่ั คราวดว้ ยตวั ผู้เขยี นโปรแกรมเอง โดยให้ ศึกษาโปรแกรมตวั อยา่ งท่ี 2.4 และโปรแกรมตวั อยา่ งท่ี 2.5 โดยโปรแกรมตัวอย่างที่ 2.4 แสดงการคานวณ ค่าจา้ งท่ีผิด สว่ นโปรแกรมตัวอยา่ งที่ 2.5 แสดงการคานวณคา่ จา้ งทถี่ กู โดยการเปลี่ยนแปลงชนดิ ข้อมลู ชั่วคราว ชดุ กิจกรรมการเรียนรูก้ ารเขยี นโปรแกรมภาษาคอมพวิ เตอร์ 33 รายวชิ าภาษาซี ง30243 ช้นั มธั ยมศึกษาปีที่ 5

ชดุ ท2่ี โครงสร้างของโปรแกรมภาษาซี โปรแกรมตวั อยา่ งท่ี 2.4 แสดงโปรแกรมการคานวณคา่ จ้างที่ผดิ /* errcal.c */ /* This program calculate emloyees share */ #include<stdio.h> #include<conio.h> void main(void) { int profits, employees; /* บรรทดั ท่ี 1 */ clrscr(); /* บรรทดั ท่ี 2 */ profits = 9; /* บรรทัดท่ี 3 */ employees = 2; /* บรรทัดที่ 4 */ printf(\"Each employee gets %d\\n\",profits/employees); /* บรรทดั ท่ี 5 */ getch(); } ผลลพั ธ์ท่ีได้จากโปรแกรม Each employee gets 4 (ซงึ่ เปน็ คาตอบที่ผิด) คาอธบิ ายโปรแกรม จากโปรแกรมตวั อย่างที่ 2.4 สามารถอธบิ ายการทางานของโปรแกรมทสี่ าคญั ๆ ไดด้ งั นี้ บรรทดั ท่ี 1 เปน็ การประกาศตวั แปร profits และ employees ให้เป็นชนิด int บรรทัดท่ี 2 เปน็ คาส่ังใหล้ บจอภาพ บรรทดั ท่ี 3 และ 4 กาหนดคา่ ให้กบั ตัวแปร โดย profits มคี ่า 9 และ employees มีค่า 2 บรรทดั ที่ 5 ใหพ้ มิ พข์ อ้ ความ Each employee gets 4 ออกแสดงท่ีจอภาพ โดยตัวเลข 4 ได้ จากการคานวณ 9/2 คือค่าของตวั แปร porfits/ employees ชดุ กิจกรรมการเรยี นร้กู ารเขยี นโปรแกรมภาษาคอมพิวเตอร์ 34 รายวชิ าภาษาซี ง30243 ชน้ั มัธยมศึกษาปที ี่ 5

ชดุ ท2ี่ โครงสร้างของโปรแกรมภาษาซี จากโปรแกรมตัวอย่างที่ 2.4 เราคงเห็นแล้ววา่ ผลหารที่ไดจ้ ะเปน็ จานวนเตม็ ส่วนทเี่ ปน็ เลขทศนิยม จะตัดทิง้ ไป เมอื่ ภาษาซี ทางานกบั ขอ้ มูลชนดิ จานวนเต็ม เพื่อแก้ปญั หาทเ่ี กดิ การผดิ พลาด ในกรณีน้ีเรา สามารถเปล่ียนชนิดข้อมูลไดช้ ่ัวคราว คอื เปล่ยี นตวั แปร profits จากชนิดข้อมลู แบบ int ไปเป็น float ชั่วคราว ดังตวั อย่างโปรแกรมท่ี 2.5 ต่อไปน้ี โปรแกรมตัวอย่างท่ี 2.5 แสดงโปรแกรมการเปลีย่ นแปลงชนดิ ข้อมูลช่วั คราว /* change.c */ /* This program calculates employee share. */ #include<stdio.h> #include<conio.h> void main(void) { int profits, employees; clrscr(); profits = 9; employees = 2 ; printf(\"Each employee gets %f\", (float) profits/employees); /* บรรทัดที่ 1 */ getch(); } ผลลพั ธท์ ่ีไดจ้ ากโปรแกรม Each employee gets 4.500000 คาอธิบายโปรแกรม โปรแกรมขา้ งตน้ จะเหมอื นกบั โปรแกรมที่ 2.4 ทุกประการยกเว้น บรรทัดที่ 1 ในการคานวณ (float) profits / employees เป็นการเปลยี่ นตัวแปร profits จากชนิดขอ้ มูล int ใหเ้ ป็น float ชวั่ คราว ดังนน้ั ผลลัพธท์ ่ีได้จากโปรแกรมจงึ เป็น 4.500000 และใช้ %f ในการควบคุมการแสดงผล ชุดกิจกรรมการเรียนรกู้ ารเขยี นโปรแกรมภาษาคอมพวิ เตอร์ 35 รายวชิ าภาษาซี ง30243 ช้ันมธั ยมศกึ ษาปีท่ี 5

ชดุ ท2่ี โครงสรา้ งของโปรแกรมภาษาซี จากโปรแกรมตัวอย่างที่ 2.5 ข้างต้นได้ใช้ฟังก์ชัน printf( ) เพื่อแสดงให้อยู่ในรูปแบบที่ ต้องการ โดยใช้รหัสรูปแบบ %f (format code) %f เป็นรหัสรูปแบบการพิมพ์ข้อมูลชนิด float (ซึ่ง รายละเอียดกล่าวไว้ในบทที่ 3 ตารางที่ 3.2) ได้สรุปรหัสรูปแบบการพิมพ์ข้อมูลทั้งหมดที่ใช้กับฟังก์ชัน printf( ) ผู้เขียนโปรแกรมควรจาให้ได้ทั้งหมด เพื่อความสะดวกและรวดเร็วในการใช้เขียนโปรแกรมใน โอกาสตอ่ ไป ชุดกิจกรรมการเรียนรกู้ ารเขยี นโปรแกรมภาษาคอมพิวเตอร์ 36 รายวชิ าภาษาซี ง30243 ช้ันมธั ยมศึกษาปีท่ี 5

ชดุ ท2ี่ โครงสร้างของโปรแกรมภาษาซี บตั รกิจกรรมกำรเรยี นรู้ท่ี 3 10 เรือ่ งตวั ดำเนินกำรในภำษำซี 1. ใหน้ ักเรียนอธบิ ายความหมายของนิพจน์ …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… 2. ให้นักเรยี นอธิบายความหมายและประเภทของตวั ดาเนนิ การ …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… 3. ใหเ้ ขียนขน้ั ตอนการดาเนินการของนพิ จน์ตอ่ ไปน้ี x=5 -3 * 8 % 3 …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… 4. ใหเ้ ขียนขนั้ ตอนการดาเนินการของนิพจน์ตอ่ ไปนี้ x=(2 * 3 – 4)+4 – (1+1 ) …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… ชุดกจิ กรรมการเรยี นรกู้ ารเขยี นโปรแกรมภาษาคอมพิวเตอร์ 37 รายวชิ าภาษาซี ง30243 ชน้ั มธั ยมศึกษาปีที่ 5

ชุดท2่ี โครงสรา้ งของโปรแกรมภาษาซี บัตรกจิ กรรมกำรเรยี นรูท้ ่ี 3 เรอื่ งตัวดำเนนิ กำรในภำษำซี 5. กาหนดโปรแกรมดังน้ี #include <stdio.h> /* 1 */ main () /* 2 */ { /* 3 */ printf(“Hello!! This is my fiest program. \\n ”); /* 4 */ printf(“I love C programming. \\n”); /* 5 */ } /* 6 */ จากโปรแกรมใหอ้ ธบิ ายขน้ั ตอนการทางานและผลลพั ธข์ องโปรแกรม …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………………… ชดุ กิจกรรมการเรียนรกู้ ารเขยี นโปรแกรมภาษาคอมพวิ เตอร์ 38 รายวชิ าภาษาซี ง30243 ชน้ั มธั ยมศึกษาปีที่ 5

ชดุ ท2ี่ โครงสร้างของโปรแกรมภาษาซี แบบทดสอบหลังเรียน เร่ือง โครงสร้ำงของโปรแกรมภำษำซี คาชแี้ จง 1. แบบทดสอบเป็นแบบปรนัย จานวน 10 ขอ้ 2. ให้นักเรียนเลือกคาตอบที่ถกู ตอ้ งที่สดุ เพียงคาตอบเดียว แลว้ ใส่เครอ่ื งหมายกากบาท (x) ลงในกระดาษคาตอบ 1. ข้อใด คือฟงั กช์ ั่นในการแสดงข้อมลู ออกทางจอภาพ ก. printf ข. scanf ค. write ง. display 2. การบอกใหค้ อมไพเลอรน์ าเฮดเดอร์ไฟล์เข้ามารว่ มแปลนั้น ตอ้ งเริ่มต้นด้วยเครือ่ งหมายใด ก. เครอื่ งหมาย # ข. เคร่ืองหมาย @ ค. เครอ่ื งหมาย $ ง. เครอ่ื งหมาย & 3. ทุกโปรแกรมในภาษาซีจะต้องมีอะไร ก. int ข. main ค. var ง. printf 4. การคอมเมนตใ์ นภาษาซี ข้อใดไม่ถูกตอ้ ง ก. //comment ข. //\\\\comment ค. /* comment */ ง. /* comment / 5. ขอ้ ใดผดิ กฏการต้ังชือ่ ตวั แปร ก. name_5 ข. _name5 ค. 5name ง. _name_5 6. กาหนดให้ num=3.5 จากโจทย์ ควรประกาศตัวแปรชนดิ ใด ก. int ข. float ค. char ง. string ชุดกจิ กรรมการเรยี นรกู้ ารเขยี นโปรแกรมภาษาคอมพวิ เตอร์ 39 รายวชิ าภาษาซี ง30243 ช้นั มัธยมศกึ ษาปีท่ี 5

ชุดท2ี่ โครงสร้างของโปรแกรมภาษาซี 7. โครงสรา้ งของโปรแกรมภาษาซแี บง่ ออกเปน็ กส่ี ่วน ก. 1 สว่ น ข. 2 สว่ น ค. 3 ส่วน ง. 4 ส่วน 8. เคร่อื งหมาย Semi colon ใช้ทาอะไร ในภาษาซี ก. เร่ิมต้นโปรแกรม ข. ส้นิ สดุ โปรแกรม ค. เรมิ่ ประโยคคาสั่ง ง. จบแต่ละประโยคคาส่งั 9. ประกาศตัวแปรช่ือ name ไวใ้ ช้เกบ็ ชือ่ เลน่ ของนักเรียน ก. int name; ข. float name; ค. char name; ง. string name; 10. ฟังกช์ ่นั ใดท่ใี ชเ้ กบ็ คาส่ังเก่ียวกบั การสง่ ข้อมูลเข้าและออก ก. conio.h ข. stdio.h ค. math.h ง. string.h ชดุ กจิ กรรมการเรียนรู้การเขยี นโปรแกรมภาษาคอมพวิ เตอร์ 40 รายวชิ าภาษาซี ง30243 ชน้ั มัธยมศกึ ษาปีท่ี 5

ชุดท2่ี โครงสรา้ งของโปรแกรมภาษาซี กระดำษคำตอบ เรอ่ื ง โครงสร้ำงของโปรแกรมภำษำซี  ก่อนเรียน  หลงั เรยี น ชอ่ื .................................................................................... ชน้ั ................ เลขท่ี .............. ขอ้ ที่ ก ข ค ง 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ชุดกิจกรรมการเรยี นร้กู ารเขยี นโปรแกรมภาษาคอมพวิ เตอร์ 41 รายวชิ าภาษาซี ง30243 ชน้ั มัธยมศึกษาปีท่ี 5

ชุดท2่ี โครงสรา้ งของโปรแกรมภาษาซี บรรณำนุกรม กติ ติชัย ชีวาสุขถาวร. (2550). ภาษาซที ลี ะกา้ ว. กรงุ เทพฯ : เคทีพี คอมพ์ แอนด์ คอนซัลท์. กลุ รพี ศวิ าพรรักษ์. (2557). เทคโนโลยสี ารสนเทศและคอมพวิ เตอร์ 4-6. กรงุ เทพฯ : สานักพมิ พเ์ อมพันธ.์ ธีรวัฒน์ ประกอบผล. (2550). การเขยี นโปรแกรมระบบปฏิบตั กิ ารเท็กโหมด(ดว้ ยภาษาซ)ี . กรุงเทพฯ : ซคั เซสมีเดยี . นิรุธ อานวยศิลป์. (ม.ป.ป.). C Programming เขียนโปรแกรมภาษาซีฉบบั สมบูรณ.์ ม.ป.ท. : ดา่ นสุทธาการพิมพ์ พัฒพงษ์ อมรวงศ.์ (2554). การเขยี นโปรแกรมภาษาซี. ปทมุ ธานี : มีเดียอนิ เทลลิเจนซ์ เทคโนโลยี. มัณฑนา ปราการสมุทร. (2534). การเขยี นชดุ คาส่งั ภาษาซี. กรุงเทพมหานคร : ดวงกมลสมัย. สถาบนั ส่งเสริมการสอนวทิ ยาศาสตรแ์ ละเทคโนโลยี กระทรวงศกึ ษาธิการ. (2551). ภาษาซี ชว่ งชั้นท่ี 4 ช้ันมัธยมศกึ ษาปที ี่ 4 - 6. กรงุ เทพฯ : โรงพมิ พ์ครุ สุ ภาลาดพรา้ ว. สมชาย รตั นเลิศนสุ รณ์. (2545). การเขียนโปรแกรมคอมพิวเตอร์ดว้ ยภาษาซี. กรงุ เทพฯ : สมาคมสง่ เสรมิ เทคโนโลยี (ไทย-ญีป่ นุ่ ) โอภาส เอย่ี มสิรวิ งศ์. (2552). การเขยี นโปรแกรมด้วยภาษาซี (Programming with C). กรงุ เทพมหานคร : ซีเอด็ . ชุดกิจกรรมการเรยี นรู้การเขยี นโปรแกรมภาษาคอมพวิ เตอร์ 42 รายวชิ าภาษาซี ง30243 ชั้นมธั ยมศกึ ษาปีท่ี 5

ชุดท2่ี โครงสรา้ งของโปรแกรมภาษาซี ภาคผนวก ชดุ กจิ กรรมการเรยี นรกู้ ารเขยี นโปรแกรมภาษาคอมพวิ เตอร์ 43 รายวชิ าภาษาซี ง30243 ชั้นมัธยมศกึ ษาปีที่ 5

ชดุ ท2่ี โครงสร้างของโปรแกรมภาษาซี แบบบันทกึ คะแนนระหวำ่ งเรยี น เรอื่ ง กำรพฒั นำโปรแกรมและกำรจำลองควำมคิด ชดุ กจิ กรรมการเรยี นรกู้ ารเขยี นโปรแกรมภาษาคอมพวิ เตอร์ 44 รายวชิ าภาษาซี ง30243 ช้นั มัธยมศึกษาปที ่ี 5

ชดุ ท2่ี โครงสร้างของโปรแกรมภาษาซี เฉลยแบบทดสอบกอ่ นเรียน เรอ่ื ง โครงสรำ้ งของโปรแกรมภำษำซี ชื่อ .................................................................................... ชน้ั ................ เลขท่ี .............. ขอ้ ที่ ก ข ค ง 1. × 2. × 3. × 4. × 5. × 6. × 7. × 8. × 9. × 10. × ชุดกิจกรรมการเรียนรู้การเขยี นโปรแกรมภาษาคอมพิวเตอร์ 45 รายวชิ าภาษาซี ง30243 ชน้ั มัธยมศกึ ษาปีท่ี 5

ชุดท2่ี โครงสร้างของโปรแกรมภาษาซี เฉลยบตั รกจิ กรรมกำรเรยี นรู้ท่ี 1 10 เร่อื งเรมิ่ ต้นกับภำษำซี 1. โครงสรา้ งของโปรแกรมภาษาซีมีอะไรบ้าง พรอ้ มคาอธิบาย 1. มฟี ังก์ชันช่ือวา่ main () อย่างน้อยหนง่ึ ฟงั กช์ นั 2. ขอบเขตฟงั กช์ ัน main (delimiters) ในโปรแกรมภาษาซี ใชเ้ ครือ่ งหมาย {แทนการเริ่มตน้ ฟงั ก์ชนั และใช้เคร่ืองหมาย} แทนการสิน้ สุดฟงั กช์ ัน ดงั นน้ั เมอ่ื เขยี นฟงั ก์ชัน main () ทกุ ครั้งจะตอ้ งมี เคร่ืองหมาย {และ} อยู่ด้วยเสมอ 3. การปดิ ท้ายคาส่งั ในภาษาซี จะตอ้ งใชเ้ ครื่องหมาย; (semicolon) เป็นการบง่ ชใ้ี ห้ C compiler ทราบวา่ จบคาสง่ั (statement) แต่ละคาส่งั แล้ว 4. ชือ่ ฟังกช์ ันและคาสัง่ ในภาษาซี จะต้องเขยี นดว้ ยตวั อกั ษรตัวเล็ก (lowercase letter) ทั้งหมด 5. ชือ่ ตัวแปร (variable name) สามารถตง้ั ชอื่ โดยใช้ ตวั อักษรตัวเล็กหรอื ตัวอักษรตัวใหญ่ ก็ได้หรือใช้ตวั อกั ษรตัวเลก็ กับตัวอกั ษรตวั ใหญผ่ สมกันกไ็ ด้ อาทเิ ชน่ ชือ่ ตวั แปร name ไม่เหมอื นกับ Name หรือ NAME เปน็ ตน้ 2. ให้นกั เรยี นยกตวั อยา่ งลกั ษณะเด่นของภาษาซี 1. มีความสามารถในการใชง้ านบนสภาพแวดล้อมที่แตกต่างกัน โปรแกรมภาษาซี สามารถรัน ได้หลายระดับตั้งแต่เมนเฟรมจนถึงไมโครคอมพิวเตอร์ สามารถเทียบเคียงกับภาษา อื่นๆ จึงสามารถ นาไปใช้งานร่วมกับคอมพิวเตอร์ที่มีแพลตฟอร์มหรือใช้ระบบปฏิบัติการต่างกัน โดยไม่ต้องแปลง ชดุ คาสั่งใดๆ หรอื เปล่ยี นอาจปรับเพยี งเล็กนอ้ ย 2. มีประสิทธิภาพสูง วัดจาก ชุดคาส่ังกะทัดรัด การจัดการหน่วยความจา การทางานมีความ รวดเรว็ 3. ความสามารถในการโปรแกรมแบบโมดูล ภาษาซีอนุญาตให้แบ่งโมดูลเพื่อคอมไพล์ได้ถูก ออกแบบภาษาเชิงโครงสรา้ งดเี ยี่ยม ท่สี าคญั ภาษาซแี ละประกอบดว้ ยฟงั กช์ ัน่ ในโมดูลต่าง ๆ 4. พอยนเ์ ตอร์ สามารถกาหนดได้จากชนิดข้อมลู ไดห้ ลากหลาย 5. มีความยืดหยุ่นสูง สามารถเขียนใช้งานร่วมกับภาษาระดับต่าอย่างภาษาแอสแซมบลีได้ ตัวอกั ษรตวั พิมพ์เลก็ และตวั พิมพใ์ หญ่ แตกตา่ งกัน ภาษาซีจะมองเป็นคนละตวั และไม่สามารถนามาใช้ แทนกนั ได้ ดังน้นั การอ้างชือ่ ตัวแปรและชอื่ ฟังกช์ นั่ ควรพงึ ระวัง ชุดกิจกรรมการเรยี นรกู้ ารเขยี นโปรแกรมภาษาคอมพิวเตอร์ 46 รายวชิ าภาษาซี ง30243 ชั้นมธั ยมศึกษาปที ี่ 5

ชดุ ท2ี่ โครงสรา้ งของโปรแกรมภาษาซี เฉลยบตั รกิจกรรมกำรเรยี นรูท้ ่ี 1 เรื่องเริ่มต้นกบั ภำษำซี 3. การพัฒนาโปรแกรมภาษาซี มีข้นั ตอนอยา่ งไร 1. ใชโ้ ปรแกรม Dev c++ เพอ่ื เขยี นโปรแกรมตน้ ฉบับด้วยภาษาซี จากนน้ั บันทึกโปรแกรม พร้อมกับตั้งชือ่ แฟ้มไว้ แฟม้ ทไี่ ด้จะมนี ามสกลุ *.c หรอื *.cpp 2. แปลโปรแกรมภาษาซี ไปเปน็ โปรแกรมภาษาเคร่ือง (object program) ใชค้ าสั่ง compile เพือ่ แปลโปรแกรมภาษาซี ไปเป็นโปรแกรมภาษาเคร่ือง แฟม้ ท่ไี ด้จะ มนี ามสกุล *.obj ซึ่งในขัน้ ตอนนีโ้ ปรแกรมต้นฉบบั อาจเกดิ ความผิดพลาดทางไวยกรณภ์ าษา (syntax error) ขนึ้ ได้ จึงตอ้ งย้อนกลับไปแก้ไขโปรแกรมตน้ ฉบบั ในขอ้ 1. ใหถ้ ูกต้องเสยี กอ่ น 3. เชอ่ื มโยง (link) โปรแกรมภาษาเครือ่ งเขา้ กบั library function ของภาษาซี จะไดเ้ ปน็ execute program โดยใช้คาสั่ง link แฟ้มทไ่ี ดจ้ ะมนี ามสกุล *.exe 4. ส่ังให้ execute program แสดงผลลัพธอ์ อกมา โดยใช้คาส่ัง run ในขนั้ ตอนนีผ้ ู้เขียนโปรแกรม ควรตรวจสอบผลลัพธ์ท่ีได้จากโปรแกรมวา่ ตรงกบั ความต้องการ ของเราหรือไมถ่ ้าผลลพั ธ์ท่ไี ด้ไม่ตรงกบั ความต้องการใหก้ ลบั ไปแก้ไขโปรแกรมตน้ ฉบบั ในข้อ 1. เสรจ็ แลว้ ทาข้ันตอน ขอ้ 2. ถึง ขอ้ 4. ซ้าอีก ทาซ้าเช่นนจี้ นกว่าจะได้ผลลพั ธท์ ต่ี อ้ งการ 4. คอมเมนตใ์ นภาษาซีมีกีร่ ูปแบบ พรอ้ มอธิบายวา่ แตกต่างกนั อย่างไร และยกตวั อย่างประกอบ มี 2 แบบ คือ คอมเมนต์แบบบรรทัดเดยี ว ใช้เครอ่ื งหมาย // เช่น //ข้อความ คอมเมนต์แบบหลายบรรทัด ใชเ้ คร่ืองหมาย /* และ */ เชน่ /*ข้อความ*/ 5. ภาษาซถี ูกพัฒนาขน้ึ ใน ค.ศ. ใด โดยใครและพัฒนามาจากภาษาใด ภาษาซีได้รับการพัฒนาเม่ือปี ค.ศ.1972 โดยนายเดนนิส รติ ชี่ (Dennis M. Ritchie) ต้งั ชื่อวา่ C เพราะพัฒนามาจากภาษา BCPL และภาษา B ในชว่ งแรกใชท้ ดลองเขียนคาสั่งควบคมุ ใน ห้องปฏบิ ัติการเบล (Bell Laboratories) เท่าน้ัน เม่อื ปี ค.ศ.1978 นายไบรอัน เคอร์นกิ ฮนั (Brian W. Kernighan) และนายเดนนสิ ริตชี่ ร่วมกนั กาหนดนยิ ามรายละเอยี ดภาษาซี เผยแพรค่ วามรู้โดยจัดทา หนังสอื The C Programming Language ชดุ กจิ กรรมการเรียนรกู้ ารเขยี นโปรแกรมภาษาคอมพวิ เตอร์ 47 รายวชิ าภาษาซี ง30243 ชนั้ มัธยมศกึ ษาปีท่ี 5

ชดุ ท2ี่ โครงสรา้ งของโปรแกรมภาษาซี เฉลยบตั รกิจกรรมกำรเรยี นร้ทู ี่ 2 เรอ่ื งขอ้ มลู และตวั แปรในภำษำซี 10 1. ให้นักเรยี นอธิบายใหนลกัภเำกณษฑำก์ซาี รตั้งช่ือตวั แปรในภาษาซี มีข้อกาหนดอะไรบา้ ง 1. ชอื่ ตัวแปรจะต้องข้นึ ตน้ ดว้ ยตัวอักษรเท่านั้น ตัวถัดมาเปน็ ไดท้ ง้ั ตวั อกั ษร ตวั เลข แต่ตอ้ งไม่ มีเครื่องหมายคานวณ บวก (+), ลบ (-), คูณ (*), หาร (/), หารเอาเศษ (%) และเครอื่ งหมายเว้นวรรค (blank) คนั่ ระหว่างช่ือตวั แปร แต่ถา้ ต้องการตั้งชื่อตัวแปรเวน้ วรรคให้ใชเ้ คร่ืองหมาย _ (underscore) คนั่ แทนการเว้นวรรค เชน่ sum_1, sum_2 เป็นต้น 2. ความยาวของช่อื ตัวแปร ขึ้นอยู่กับคอมไพเลอรแ์ ละระบบเคร่ืองคอมพวิ เตอร์ ซึ่งภาษาซี สามารถต้งั ชอ่ื ตัวแปรไดย้ าวถงึ 32 ตัว แตโ่ ดยปกตเิ ราไม่นยิ มตง้ั ชอ่ื ตัวแปรยาว ๆ 3. ชอ่ื ตวั แปรตวั อกั ษรพมิ พใ์ หญแ่ ละตัวอักษรพิมพเ์ ลก็ แมจ้ ะเขียนคาเดยี วกนั หรอื ตัวอกั ษรพมิ พ์ ใหญป่ นตัวอกั ษรพิมพเ์ ลก็ ท่สี ลบั ตาแหน่งกนั ระบบถอื วา่ เป็นคนละตวั แปรกนั เช่น ตวั แปร MAX, max, Max, mAx, maX จะถือว่าตวั แปรทงั้ 5 ตัวนี้เป็นคนละตวั กนั 4. ห้ามต้ังชื่อตัวแปรซา้ กบั คาสงวน (reserved word) หรือช่ือฟังกช์ นั หรือชือ่ คาสัง่ ในภาษานนั้ ๆ 5. ชื่อตวั แปรควรตงั้ ให้สมั พนั ธ์กบั ขอ้ มลู ทีต่ ้องการเกบ็ เพอ่ื ปอ้ งกนั ความสบั สน เน่อื งจาก โปรแกรมทีม่ ขี นาดใหญ่จะมีตัวแปรจานวนมาก 2. ชนดิ ของตัวแปรในภาษาซี ทก่ี าหนดให้ดงั ตอ่ ไปน้ี ใช้เก็บขอ้ มูลอะไรบา้ ง int ค่าคงทช่ี นดิ ตวั เลขจานวนเต็ม char ค่าคงทช่ี นิดตวั อักขระตัวเดียว float ค่าคงทช่ี นิดตัวเลขทศนยิ ม long เกบ็ ขอ้ มูลชนิดจานวนเต็มแบบยาว double คา่ คงทตี่ ัวเลขทศนิยมท่มี ีความละเอียดสองเท่า 3. ให้นักเรียนยกตัวอย่างคาสงวน (Reserved Word) ในภาษาซีมา 5 คา 1. auto 2. switch 3. default 4. return 5. continue ชุดกิจกรรมการเรียนรูก้ ารเขยี นโปรแกรมภาษาคอมพวิ เตอร์ 48 รายวชิ าภาษาซี ง30243 ช้ันมัธยมศกึ ษาปีท่ี 5

ชดุ ท2ี่ โครงสรา้ งของโปรแกรมภาษาซี เฉลยบัตรกิจกรรมกำรเรยี นรทู้ ่ี 2 เรอ่ื งข้อมูลและตัวแปรในภำษำซี 4. จากการประกาศตใวั นแปภรำพษร้อำมซกี ับกาหนดค่าดงั แสดงต่อไปนี้ ข้อใดถูกและข้อใดผดิ โดยใหบ้ อก เหตุผลส่วนที่ผิดมาด้วย 1. int a; ถูกเ้อง 2. int b ผดด เนอื่ งจากไม่ได้ใิเ่ ครอ่ื งหมาช ; ท้าชคาิงั่ 3. int Com budget = 30000; ผดด เนอ่ื งจากเว้นย่องวา่ งภาชในยอ่ื 4. int main = 10; ถกู เอ้ ง 5. int _cont = 451; ถกู เอ้ ง 6. char j = “Hello”; ผดด เนือ่ งจาก j ถกู ประกาศใหเ้ ป็นเวั แปรยนดด char เก็บ อักขระได้เพชี งเัวเดีชว 7. char j = ‘A’; ถูกเ้อง 8. char k = 0x41; ถูกเ้อง 9. float z = 1,000.999; ผดด เนื่องจากมีการใิ่เคร่ืองหมาช , ในเวั เลข 10. float x = 45.067; ถกู เอ้ ง 5. ให้นักเรยี นระบุวา่ การตัง้ ชอ่ื ตัวแปรในขอ้ ตอ่ ไปนี้ ข้อใดถูกหรือผิด ถ้าผิดบอกเหตุผลประกอบ 1. void ผดด เน่ืองจาก void เป็นคาิงวน 2. MAX_Mine ถูกเ้อง 3. double ผดด เนอ่ื งจาก double เปน็ คาิงวน 4. time ถกู เ้อง 5. G ถกู เ้อง 6. return ผดด เนอ่ื งจาก return เป็นคาิงวน 7. suwannawongse 1 ผดด เนอ่ื งจาก มียอ่ งวา่ งระหวา่ งยอื่ และเวั เลข 8. birth year ผดด เน่ืองจากมีย่องวา่ ง 9. last_name ถกู เ้อง 10. #insert ผดด เนอ่ื งจากขึ้นเน้ ดว้ ช # ชดุ กจิ กรรมการเรียนรูก้ ารเขยี นโปรแกรมภาษาคอมพิวเตอร์ 49 รายวชิ าภาษาซี ง30243 ชน้ั มัธยมศึกษาปที ่ี 5


Like this book? You can publish your book online for free in a few minutes!
Create your own flipbook