ก
ข คำนำ เอกสารประกอบการเรยี น รายวชิ า การเขียนโปรแกรม 2 กลุ่มสาระการเรยี นรู้ วิทยาศาสตร์และเทคโนโลยี สาหรับนกั เรยี นชนั้ มธั ยมศกึ ษาปีท่ี 5 ใช้ประกอบกิจกรรม การเรยี นการสอนซึง่ นกั เรียนสามารถปฏบิ ัตไิ ด้ด้วยตนเอง ประกอบด้วยเอกสาร ประกอบการเรยี น จานวน 6 เลม่ ดังตอ่ ไปนี้ เลม่ ท่ี 1 ภาษาคอมพวิ เตอรเ์ บอ้ื งตน้ เล่มท่ี 2 เรม่ิ ตน้ กับภาษาซี เล่มที่ 3 ข้อมลู พืน้ ฐานและตวั ดาเนินการ เล่มที่ 4 คำสง่ั พ้ืนฐำนในภำษำซี เลม่ ที่ 5 คาสง่ั ควบคมุ แบบทางเลือก เลม่ ท่ี 6 คาส่งั ควบคุบแบบวนซา้ เอกสารประกอบการเรยี น เลม่ ที่ 4 เรอ่ื ง คาส่ังพ้นื ฐานในภาษาซีจดั ทาข้นึ เพ่อื เปน็ ส่ือการเรยี นการสอน โดยมเี นอื้ หาเก่ียวกับคาส่งั คานวณ คาสั่งรบั และแสดงผลข้อมูล ผู้จัดทาหวังเป็นอย่างย่ิงว่า เอกสารประกอบการเรียนเล่มนี้ จะเกิดประโยชน์ ในการใช้เป็นแนวทางในการเรียนการสอนสาหรบั ครแู ละนักเรียนไดเ้ ป็นอย่างดี พิมพ์พศิ า นาคขา
ค สำรบญั เรือ่ ง หน้ำ คานา ...................................................................................................................... ก สารบัญ .................................................................................................................. ข คาชี้แจงในการใช้เอกสารประกอบการเรยี น ........................................................... ค คาชี้แจงสาหรบั ครู .................................................................................................. ง คาชี้แจงสาหรบั นักเรียน ......................................................................................... จ แผนภูมิขน้ั ตอนการเรียนโดยใช้เอกสารประกอบการเรยี น ……………...................... ฉ มาตรฐานการเรยี นรู้ ตวั ชีว้ ัด จุดประสงคก์ ารเรียนรู้ .............................................. ช ใบความรู้ เรอื่ ง คาสัง่ พ้ืนฐานในภาษาซี .................................................................. 1 แบบฝกึ หัด .............................................................................................................. 25 เฉลยแบบฝกึ หดั ..................................................................................................... 29 แบบทดสอบหลังเรยี น ............................................................................................ 33 เฉลยแบบทดสอบหลงั เรยี น .................................................................................... 35 บรรณานุกรม .......................................................................................................... 36
ง คำช้แี จงในกำรใช้เอกสำรประกอบกำรเรียน 1. เอกสารประกอบการเรียน รายวชิ า การเขยี นโปรแกรม 2 กลุ่มสาระการเรยี นรู้ วิทยาศาสตรแ์ ละเทคโนโลยี สาหรับนักเรียนชนั้ มธั ยมศึกษาปที ี่ 5 เล่มที่ 4 คาสั่งพ้นื ฐาน ในภาษาซี เวลาที่ใช้ 4 ช่ัวโมง 2. เอกสารประกอบการเรียนแต่ละเล่ม ประกอบด้วยส่วนประกอบต่าง ๆ ดงั น้ี 2.1 คาชแี้ จงเก่ียวกบั เอกสารประกอบการเรียน 2.2 แผนภมู ิลาดับขัน้ ตอนการเรียนรู้ 2.3 คาชีแ้ จงสาหรบั ครู 2.4 คาช้ีแจงสาหรับนกั เรยี น 2.5 ใบความรู้ 2.6 แบบฝกึ หัด 2.7 แบบเฉลย 2.8 แบบทดสอบหลงั เรียน
จ คำชแี้ จงสำหรับครู เอกสารประกอบการเรียน รายวชิ า การเขียนโปรแกรม 2 กลมุ่ สาระการเรียนรู้ วทิ ยาศาสตรแ์ ละเทคโนโลยี สาหรับนกั เรยี นชนั้ มธั ยมศึกษาปที ่ี 5 มขี ้นั ตอนการจัด กจิ กรรมการเรยี นการสอน ดังน้ี 1. ครูแจกเอกสารประกอบการเรยี น รายวิชา การเขียนโปรแกรม 2 กลมุ่ สาระ การเรียนรู้วิทยาศาสตรแ์ ละเทคโนโลยี สาหรบั นกั เรียนชนั้ มธั ยมศึกษาปีท่ี 5 เลม่ ที่ 4 เรอื่ ง คาส่ังพนื้ ฐานในภาษาซี ใหน้ ักเรยี นทกุ คน 2. ครูอธบิ ายขน้ั ตอนการเรียนโดยใช้เอกสารประกอบการเรยี น ใหน้ กั เรยี นเขา้ ใจ ก่อนลงมือปฏบิ ตั ิ ใช้เวลา 4 ชั่วโมง 3. ครใู หน้ กั เรียนศึกษาเอกสารประกอบการเรยี น เลม่ ที่ 4 เร่อื ง คาสั่งพนื้ ฐานใน ภาษาซี แล้วทาใบกจิ กรรม เพ่อื ให้นกั เรียนได้ทบทวนและเกิดความรูค้ วามเขา้ ใจอย่างถูกตอ้ ง 5. ครูให้นกั เรยี นทาแบบฝกึ หัด เพ่อื วดั และประเมินผลว่านักเรยี น มคี วามรู้และความเข้าใจหลงั จากการเรียนมากหรอื น้อยเพยี งใด 6. ครูสงั เกตพฤติกรรมตามคุณลักษณะที่พงึ ประสงคแ์ ละบนั ทึกผล 7. ครตู รวจแบบฝกึ หดั 8. ครูใหน้ กั เรยี นทาแบบทดสอบหลังเรยี นและ แจ้งคะแนนให้นกั เรยี นทราบและ ชมเชยนกั เรียนพร้อมให้คาแนะนาเพ่มิ เติม
ฉ คำช้ีแจงสำหรบั นักเรยี น 1. ศกึ ษาเอกสารประกอบการเรยี น รายวิชา การเขียนโปรแกรม 2 กลุ่มสาระ การเรียนร้วู ทิ ยาศาสตร์และเทคโนโลยี สาหรบั นักเรยี นชน้ั มัธยมศึกษาปที ี่ 5 และทาความ เข้าใจ คาแนะนา คาชแี้ จง วิธีการใชเ้ อกสารประกอบการเรยี นเลม่ นี้ อย่างละเอียด 2. ศกึ ษามาตรฐาน ตัวชี้วัด จุดประสงคก์ ารเรียนร้ขู องเอกสารประกอบการเรียน ให้เขา้ ใจ 3. ศึกษาเนื้อหาทกุ หัวข้อจากใบความรู้ให้เข้าใจ 4. ทาแบบฝกึ หดั ท้ายเล่ม 5. ตรวจคาตอบแบบฝกึ หดั ทา้ ยเล่ม 6. ทาแบบทดสอบหลงั เรียน 7. การเรียนดว้ ยเอกสารประกอบการเรียน รายวิชา การเขยี นโปรแกรม 2 ชนั้ มัธยมศกึ ษาปีที่ 5 แล้ว ยังเปน็ การฝกึ ให้นักเรียนเปน็ ผู้มลี กั ษณะพึงประสงค์ ในเรื่องตอ่ ไปน้ีดว้ ย คอื 7.1 ฝึกความซ่อื สัตย์ต่อตนเองและผู้อ่นื 7.2 ฝึกการทางานให้เสรจ็ ตามเวลา การส่งงานตามกาหนด 7.3 ฝึกความรับผดิ ชอบในการทางาน 7.4 ฝกึ ความเป็นระเบียบเรียบรอ้ ยในการจดั เก็บเอกสารงาน 8. ห้ามทาเครอ่ื งหมายใด ๆ ลงในเอกสารประกอบการเรียนฉบบั น้ี
ช แผนภมู ขิ ั้นตอนกำรเรยี นโดยใชเ้ อกสำรประกอบกำรเรยี น เล่มที่ 4 คำสงั่ พ้นื ฐำนในภำษำซี อ่ำนคำชแ้ี จงกำรใช้เอกสำรประกอบกำรเรียน ศกึ ษำจุดประสงค์ ศกึ ษำใบควำมรู้ ทำแบบฝึกหัดและตรวจแบบฝึกหดั ทำแบบทดสอบหลงั เรยี น ผำ่ นเกณฑ์ ไม่ผำ่ นเกณฑ์ ศึกษำเอกสำรประกอบกำรเรยี นเล่มต่อไป
ซ สำระท่ี 4 เทคโนโลยี มำตรฐำนกำรเรียนรู้ มาตรฐาน ว 4.2 เข้าใจและใช้แนวคิดเชงิ คานวณในการแกป้ ญั หาทพ่ี บในชวี ิตจรงิ อย่างเปน็ ขัน้ ตอน และเป็นระบบ ใชเ้ ทคโนโลยสี ารสนเทศและการสอื่ สาร ในการเรยี นรู้ การทางาน และการแก้ปัญหาได้อย่างมีประสิทธภิ าพ รเู้ ทา่ ทนั และมจี รยิ ธรรม ตวั ชวี้ ดั 1. ออกแบบอัลกอริทมึ ที่ใชแ้ นวคดิ เชงิ คานวณในการแก้ปัญหา หรอื การทางาน ทพ่ี บในชวี ติ จรงิ 2. ออกแบบและเขยี นโปรแกรมท่ใี ช้ตรรกะและฟงั กช์ นั ในการแกป้ ัญหา 3. อภปิ รายองค์ประกอบและหลักการทางานของระบบคอมพวิ เตอร์ และ เทคโนโลยกี ารสอ่ื สาร เพ่ือประยุกต์ใช้งานหรือแก้ปญั หาเบือ้ งตน้ 4. ใช้เทคโนโลยีสารสนเทศอย่างปลอดภัย มคี วามรับผดิ ชอบ สร้างและแสดงสิทธิ ในการเผยแพร่ผลงาน จดุ ประสงคก์ ำรเรยี นรู้ 1. บอกวิธกี ารใชค้ าสง่ั ในการคานวณและนาไปเขียนโปรแกรมได้ 2. บอกวิธกี ารใชค้ าสั่งในการแสดงผลขอ้ มูลและนาไปเขยี นโปรแกรมได้ 3. บอกวธิ ีการใชค้ าส่ังในการรับขอ้ มลู และนาไปเขียนโปรแกรมได้
1 ใบควำมรู้ เรอ่ื ง คำสั่งพน้ื ฐำนในภำษำซี คำสงั่ ในภำษำซี สำมำรถแยกให้เหน็ ชัดเจนได้ เปน็ 2 ลกั ษณะ คือ - คาสงั ท่เี ป็นรูปแบบคาสั่งจรงิ ๆ เช่น คาสง่ั กาหนดค่า คาส่งั ควบคมุ เปน็ ต้น - คาส่งั ท่เี ปน็ รูปแบบของฟังก์ชัน เชน่ คาสงั รบั ขอ้ มลู คาส่ังแสดงผลข้อมูล เป็นต้น ในโปรแกรมภาษาซี โปรแกรมหนง่ึ ๆ อาจประกอบด้วย คาสัง่ ที่เปน็ รปู แบบคาสั่งจรงิ ๆ และคาสง่ั ท่ีเป็นรูปแบบของฟังกช์ ัน อยดู่ ว้ ยกันก็ได้ 4.1.1 คำสง่ั คำนวณ (Assignment Statements) เป็นรูปแบบคาสง่ั จริง ๆ ของภาษาซี เอาไวส้ าหรบั สง่ั ให้คอมพวิ เตอร์ คานวณ หรืออาจใช้ในการกาหนดค่าเร่ิมตน้ ให้กับตวั แปร หรอื ยา้ ย ค่าตวั แปรจากท่หี นึ่ง ไปยังอกี ท่ีหนึง่ ก็ได้ รปู แบบ ตวั แปร = ตัวแปร ค่ำคงตัว หรอื นิพจน์ ; ควำมหมำย เคร่ืองหมำย = (เท่ำกับ) มีความหมายแตกต่างจากคณติ ศาสตร์ ในภาษาซีหมายถึงการกาหนดค่า (Assignment) ฝั่งขวา ใหก้ ับ ตวั แปรฝ่ังซ้าย โดย ตัวแปร จะหมายถงึ การนาคา่ ตวั แปรฝั่งขวาไปเก็บในตัวแปรฝงั่ ซา้ ย คำ่ คงตัว จะหมายถงึ การนาค่าคงตัวไปเกบ็ ในตวั แปรฝงั่ ซ้าย นิพจน์ จะหมายถงึ การนาคา่ ผลลพั ธ์การประมวลผลนิพจน์ ไปเกบ็ ในตัวแปรฝ่ังซา้ ย
2 ตวั อยา่ งท่ี 1 การประกาศตัวแปรจานวนเตม็ และการกาหนดคา่ ให้ตัวแปร ( ex4-01.c ) บรรทดั รหสั ต้นฉบบั (Source Code) อธบิ ำยคำสงั่ /* ประกาศ main เป็นฟงั กช์ ันหลัก ชนิดจานวนเตม็ /*1*/ int main() { และเร่ิมต้น block ของฟงั ก์ชัน main (เริ่มต้น โปรแกรม) */ /*2*/ int i; /* ประกาศตวั แปร i เปน็ ชนดิ จานวนเตม็ */ /*3*/ i = 20; /* กาหนดคา่ 20 ใหก้ ับตวั แปร i */ /*4*/ return 0; /* คนื ค่า 0 ให้ฟงั กช์ ัน main โปรแกรมทางานถกู ต้อง สมบรู ณ์ */ /*5*/ } /* สิน้ สุด block ของฟงั ก์ชัน main (สนิ้ สดุ โปรแกรม)*/ ตัวอยา่ งท่ี 2 การประกาศตัวแปรหลายตัวพรอ้ มการกาหนดค่าเรม่ิ ต้น และการกาหนดคา่ ใหก้ ับ ตัวแปรโดยการใชน้ พิ จน์ ( ex4-02.c ) บรรทัด รหัสต้นฉบับ (Source Code) อธบิ ำยคำส่ัง /* ประกาศ main เปน็ ฟงั ก์ชันหลกั ชนดิ /*1*/ int main() { จานวนเตม็ และเริ่มตน้ block ของฟังกช์ ัน main (เริ่มตน้ โปรแกรม) */ /* ประกาศตัวแปร x และ y เป็นชนิดจานวน /*2*/ int x = 5 , y = 7; เตม็ พร้อมกาหนดคา่ เริ่มต้นให้กบั ตัวแปร x และ y เปน็ 5 และ 7 ตามลาดับ */ /*3*/ float a; /* ประกาศตวั แปร a เป็นจานวนจริง */ /* ประมวลผลนิพจน์ 0.5 * x *y /*4*/ a = 0.5 * x * y; จะได้ 0.5*5*7 เป็น 17.500000 แลว้ นาค่าท่ี ได้ ไปเก็บไวใ้ นตวั แปร a */ /*5*/ return 0; /* คืนคา่ 0 ให้ฟงั ก์ชนั main โปรแกรมทางาน ถกู ตอ้ งสมบูรณ์ */ /*6*/ } /* สิ้นสุด block ของฟังก์ชัน main (ส้ินสดุ โปรแกรม) */
3 4.1.2 คำสง่ั คำนวณ เพิม่ /ลดคำ่ คร้ังละ 1 รูปแบบคำสัง่ เพิม่ คา่ /ลดค่า คร้ังละ 1 กำรลดคำ่ ครง้ั ละ 1 กำรเพ่มิ คำ่ คร้ังละ 1 (ผลลัพธเ์ หมือนกันท้ัง 4 คำสั่ง) ตวั แปร = ตัวแปร - 1; (ผลลัพธเ์ หมือนกันทัง้ 4 คำส่ัง) ตวั แปร -- ; ตัวแปร = ตวั แปร + 1; -- ตวั แปร ; ตวั แปร ++ ; ตัวแปร -= 1 ; ++ ตัวแปร ; ตวั แปร += 1 ; ตัวอยำ่ งคำส่ัง เพม่ิ ค่า/ลดคา่ ใหต้ วั แปร i คร้งั ละ 1 กำรลดคำ่ ครัง้ ละ 1 กำรเพมิ่ ค่ำ ครั้งละ 1 (ผลลพั ธเ์ หมือนกนั ทั้ง 4 คำสงั่ ) i = i - 1; (ผลลัพธเ์ หมอื นกนั ท้งั 4 คำสงั่ ) i-- ; i = i + 1; i++ ; --i ; ++i ; i -= 1 ; i += 1 ; หมำยเหตุ สามารถเปล่ียนตัวแปร i เปน็ ตัวแปรอ่ืนได้ 4.1.3 คำสงั่ เพิม่ /ลดคำ่ คร้ังละใด ๆ รปู แบบคำสง่ั เพม่ิ ค่า/ลดค่า คร้งั ละใด ๆ กำรเพม่ิ คำ่ ครง้ั ละใด ๆ กำรลดค่ำ คร้งั ละใด ๆ (ผลลัพธเ์ หมือนกนั ทง้ั 2 คำส่งั ) (ผลลัพธเ์ หมอื นกนั ทง้ั 2 คำสง่ั ) ตัวแปร = ตวั แปร + n; ตวั แปร = ตวั แปร - n; ตัวแปร += n ; ตวั แปร -= n ; หมำยเหตุ n คอื ใหร้ ะบุเปน็ ค่าคงตัวหรือตวั แปร
4 ตวั อยำ่ งคำสัง่ เพิ่มคา่ /ลดค่า ให้ตัวแปร i คร้งั ละ 5 กำรเพม่ิ คำ่ ครงั้ ละ 5 กำรลดค่ำ ครั้งละ 5 (ผลลัพธเ์ หมอื นกันทงั้ 2 คำส่ัง) (ผลลพั ธเ์ หมือนกนั ทงั้ 2 คำสง่ั ) i = i + 5; i = i - 5; i += 5 ; i -= 5 ; หมำยเหตุ สามารถเปลีย่ นตวั แปร i เป็นตัวแปรอนื่ ได้ และสามารถเปลี่ยนคา่ คงตัว 5 เปน็ จานวนอนื่ ได้ตามต้องการ ตัวอย่ำงคำสั่ง เพ่มิ ค่า/ลดค่า ใหต้ ัวแปร i ครง้ั ละ k กำรเพ่ิมคำ่ ครง้ั ละ k กำรลดคำ่ ครง้ั ละ k (ผลลัพธเ์ หมือนกันทง้ั 2 คำส่ัง) (ผลลัพธเ์ หมือนกนั ทัง้ 2 คำสั่ง) i = i + k; i = i - k; i += k ; i -= k ; หมำยเหตุ สามารถเปล่ยี นตวั แปร i และ k เปน็ ตัวแปรอื่นได้ ตามต้องการ 4.1.4 รูปแบบคำสง่ั ตัวดาเนินการคานวณ คูณ หาร และหารเอาเศษ (Modulus) รูปแบบคำสั่ง ตวั ดาเนินการคานวณคูณ หารและหารเอาเศษ (รูปแบบคาสัง่ 1 และ 2 ให้ผลลพั ธ์เหมอื นกนั ) รปู แบบคำสง่ั 1 รปู แบบคำสง่ั 2 ตัวแปร = ตัวแปร * n ; ตัวแปร *= n ; ตวั แปร = ตัวแปร / n ; ตัวแปร /= n ; ตวั แปร = ตวั แปร % n ; ตวั แปร %= n ; ควำมหมำย n คือ ค่าคงตวั ตวั แปร หรอื นิพจน์ ตวั อย่ำงคำสงั่ ตัวดาเนนิ การคานวณ คูณ หารและหารเอาเศษ (Modulus) (คาสั่ง 1 และ 2 ให้ผลลัพธ์เหมอื นกัน) คำส่งั 1 คำสงั่ 2 ควำมหมำยของคำสั่ง i = i*10 ; i *= 10 ; ประมวลผล i*10 กอ่ น แล้วนาผลลพั ธไ์ ปเกบ็ ใน i ทางซา้ ย d = d/5 ; d /= 5 ; ประมวลผล d/5 ก่อน แล้วนาผลลัพธ์ไปเกบ็ ใน d ทางซ้าย k = k%2 ; k %= 2 ; ประมวลผล k%2 กอ่ น แลว้ นาผลลัพธ์ไปเกบ็ ใน k ทางซา้ ย หมำยเหตุ สามารถใชต้ วั แปรแทนค่าคงตวั เพ่อื ความยืดหยนุ่ ของโปรแกรม เชน่ i *= n; ผลลพั ธเ์ หมือนกบั i = i * n;
5 ตัวอย่ำงท่ี 4 กำรใช้คำสงั่ คำนวณเพ่ิมคำ่ และลดค่ำ คร้ังละใด ๆ ( ex4-04.c ) บรรทัด รหัสต้นฉบับ (Source Code) อธบิ ำยคำสงั่ /* ประกาศ main เปน็ ฟงั กช์ นั หลกั ชนดิ /*1*/ int main() { จานวนเต็ม และเริ่มตน้ block ของฟงั กช์ ัน main (เริม่ ตน้ โปรแกรม) */ /* ประกาศตวั แปร i j k และ a เปน็ /*2*/ int i = 5 , j = 0 , k = 7 , a = 12; ชนดิ จานวนเต็ม พร้อมกาหนดคา่ เร่มิ ต้นให้กับ ตวั แปร i j k และ a เปน็ 5 0 7 และ 12 ตามลาดับ */ /* ประกาศตวั แปร x y z และ c เปน็ /*3*/ int x = 4 , y = 2 , z = 8 , c = 7; ชนิดจานวนเตม็ พร้อมกาหนดค่าเริม่ ต้นให้กับ ตัวแปร x y z และ c เป็น 4 2 8 และ 7 ตามลาดับ */ /*4*/ i = i + 5 ; /* ประมวลผล i + 5 กอ่ น จะได้ 5 + 5 เปน็ 10 แล้วจึงนา 10 ไปเกบ็ ใน i */ /* เปน็ คาสง่ั เหมอื น j = j + 6 ; /*5*/ j += 6 ; จงึ ประมวลผล j + 6 ก่อน จะได้ 0 + 6 เปน็ 6 แล้วจึงนา 6 ไปเกบ็ ใน j */ /* เปน็ คาสง่ั เหมอื น k = k + a ; /*6*/ k += a ; จึงประมวลผล k + a กอ่ น จะได้ 7 + 12 เปน็ 19 แลว้ จงึ นา 19 ไปเกบ็ ใน k */ /*7*/ x = x - 4 ; /* ประมวลผล x - 4 ก่อน จะได้ 4 - 4 เปน็ 0 แลว้ จงึ นา 0 ไปเกบ็ ใน x */ /* เปน็ คาสั่งเหมอื น y = y - 2 ; /*8*/ y -= 2 ; จึงประมวลผล y - 2 กอ่ น จะได้ 2 - 2 เป็น 0 แล้วจงึ นา 0 ไปเก็บใน y */ /* เป็นคาส่ังเหมือน z = z - c ; /*9*/ z -= c ; จึงประมวลผล z - c ก่อน จะได้ 8 - 7 เปน็ 1 แล้วจงึ นา 1 ไปเกบ็ ใน z */ /*10*/ return 0; /* คนื ค่า 0 ให้ฟงั กช์ ัน main โปรแกรม ทางานถกู ตอ้ งสมบูรณ์ */ /*11*/ } /* สิน้ สดุ block ของฟงั กช์ นั main (สนิ้ สดุ โปรแกรม) */
6 หมำยเหตุ เมือ่ จบโปรแกรม คา่ ท่ีเก็บในตัวแปร i j k และ a คอื 10 6 19 และ 12 ตามลาดับ คา่ ท่ีเก็บในตวั แปร x y z และ c คือ 0 0 1 และ 7 ตามลาดับ ตัวอยำ่ งที่ 5 กำรใชค้ ำส่ังคำนวณ คูณ หำร และหำรเอำเศษ (Modulus) ( ex4-05.c ) บรรทัด รหสั ต้นฉบับ (Source Code) อธบิ ำยคำสง่ั /* ประกาศ main เป็นฟังก์ชนั หลัก ชนดิ /*1*/ int main() { จานวนเต็ม และเรม่ิ ต้น block ของฟงั ก์ชนั main (เริ่มตน้ โปรแกรม) */ /* ประกาศตัวแปร i j k และ a เป็น /*2*/ int i = 5 , j = 4 , k = 7 , ชนิดจานวนเต็ม พรอ้ มกาหนดค่าเริม่ ตน้ a = 3; ใหก้ ับตวั แปร i j k และ a เป็น 5 4 7 และ 3 ตามลาดบั */ /* ประมวลผล i x 3 ก่อน จะได้ 5 x 3 เป็น /*3*/ i = i * 3 ; 15 แลว้ จงึ นา 15 ไปเก็บใน i */ /* เปน็ คาสงั่ เหมอื น j = j / 2 ; /*4*/ j /= 2 ; จึงประมวลผล j 2 ก่อน จะได้ 4 2 เปน็ 2 แล้วจึงนา 2 ไปเก็บใน j */ /* เป็นคาสง่ั เหมือน k = k % a ; /*5*/ k %= a ; จึงประมวลผล k modulus a ก่อน จะได้ 7 modulus 3 เป็น 1 แลว้ จงึ นา 1 ไปเก็บใน k */ /*6*/ return 0; /* คนื คา่ 0 ใหฟ้ ังกช์ นั main โปรแกรม ทางานถกู ตอ้ งสมบรู ณ์ */ /*7*/ } /* สิน้ สุด block ของฟังก์ชัน main (สน้ิ สดุ โปรแกรม) */ หมำยเหตุเ มื่อจบโปรแกรมค่าที่เกบ็ ในตวั แปร i j k และ a คือ 15 2 1 และ 3 ตามลาดับ
7 4.2.1 คำส่ังแสดงผลขอ้ มลู คำสัง่ printf() คำส่งั printf() เป็นคาสั่งที่ใช้ในการแสดงผลข้อมูลทอ่ี ยใู่ นตวั แปร ค่าคงตวั นิพจน์ ออกมา ทางจอภาพ ซึ่งคาส่ัง printf() น้ีถูกเกบ็ ไวใ้ น I/O Library เวลาจะใชค้ าส่งั ตอ้ งบอกใหต้ วั แปลชุดคาส่ัง ภาษาซรี ับรูก้ ่อน โดยใช้คาสง่ั ตวั ประมวลผลกอ่ นซี #include <stdio.h> เขา้ มากอ่ น โดยเอาไว้สว่ น หัวของโปรแกรม รปู แบบคำส่งั printf(control , argument-list); argument-list ตัวแปร คา่ คงตัว หรอื นพิ จน์ ท่ตี ้องการนามาแสดงผล ถ้ามีมากกว่า 1 คา่ จะต้องแยกกนั โดยใช้เคร่ืองหมายคอมมา่ ( , ) control จะต้องเขยี นอย่ภู ายใต้เครือ่ งหมาย \" \" ภายในเครื่องหมายประกอบด้วย ข้อความ รหัสควบคุมการแสดงผล และรหัสรูปแบบขอ้ มลู รายละเอียดดงั น้ี 1. ขอ้ ควำมท่ีเป็นคำอธบิ ำย ท่ตี อ้ งการใหแ้ สดงผลออกมา ส่วนมากจะใชเ้ พ่ือ แตง่ รูปแบบของรายงานใหอ้ ่านเข้าใจและสวยงาม 2. รหสั ควบคุมกำรแสดงผล ทีใ่ ช้ในการควบคมุ การแสดงผลจะตอ้ งอย่หู ลงั เครือ่ งหมาย 3. รหสั รูปแบบขอ้ มลู ท่ีใชใ้ นการกาหนดการแสดงผลของข้อมูลจะต้องอยู่ ตามหลังเครอ่ื งหมาย % จานวนรหัสรูปแบบข้อมูล ตอ้ งสอดคลอ้ งกบั จานวน ค่าขอ้ มลู ใน argument-list
8 ตำรำงแสดง รหัสควบคุมการแสดงผล ใช้สำหรบั รหสั ควบคุมกำรแสดงผล (escape character) ขึน้ บรรทัดใหม่ 1 บรรทัด \\n tab เว้นวรรค 1 tab (8 อักขระ) \\t ส่งเสียงปี๊บเตือน 1 คร้งั \\a แสดงอกั ขระ ' 1 ตัว \\' แสดงอกั ขระ \" 1 ตัว \\\" แสดงอกั ขระ \\ 1 ตวั \\\\ ตำรำงแสดง รหัสรปู แบบขอ้ มูล ใชส้ ำหรับข้อมูลหรอื ตัวแปรแบบ รหัสรปู แบบข้อมูล char และ unsigned char %c float และ double %f int และ unsigned int %d char[] หรอื สายอักขระ %s ข้อมูลแบบตัวเลขฐานแปด %o ขอ้ มูลแบบตวั เลขฐานสบิ หก %x ขอ้ มูลในรูป e ยกกาลงั %e
9 ตวั อยำ่ งที่ 6 กำรใช้คำสั่งแสดงข้อควำม \"My First Program\" ทำงจอภำพ ( ex4-06.c ) บรรทัด รหัสต้นฉบบั (Source Code) อธบิ ำยคำส่งั /* เปน็ คาสงั่ ของตวั ประมวลผลกอ่ นซี จะมี ผลให้แฟม้ stdio.h ซงึ่ เปน็ แฟ้มสว่ นหัวทีใ่ ช้ /*1*/ #include <stdio.h> เก็บรวบรวมคาส่ังเกย่ี วกับการรบั และ แสดงผลขอ้ มลู ถูกอ่านเข้ามาเพื่อประมวลผล รว่ มกบั โปรแกรมนี้ */ /* ประกาศ main เป็นฟังก์ชนั หลกั ชนดิ /*2*/ int main() { จานวนเตม็ และเรมิ่ ต้น block ของฟังกช์ นั main (เรมิ่ ต้นโปรแกรม) */ /*3*/ printf(\"My First Program\"); /* แสดงขอ้ ความ \"My First Program\" ทาง จอภาพ */ /*4*/ return 0; /* คืนคา่ 0 ใหฟ้ งั ก์ชนั main โปรแกรม ทางานถกู ตอ้ งสมบูรณ์ */ /*5*/ } /* สนิ้ สดุ block ของฟงั ก์ชนั main (ส้ินสุด โปรแกรม) */ หมำยเหตุ คำสั่ง printf เป็นคาส่ังแสดงผลขอ้ มูลท่ีรวมอยู่ในแฟม้ stdio.h ใชส้ ่งั ใหแ้ สดง ขอ้ ความในเครื่องหมาย \" \" ออกทางจอภาพ ผลกำรรนั โปรแกรม
10 ตวั อย่ำงท่ี 7 กำรใช้คำสั่งแสดงข้อควำม 2 บรรทัด ดังภำพ โดยใช้ printf เพยี งคร้ังเดยี ว ( ex4-07.c ) บรรทดั รหัสต้นฉบบั (Source Code) อธบิ ำยคำสง่ั /* เปน็ คาสง่ั ของตวั ประมวลผลกอ่ นซี จะมีผล ให้แฟ้ม stdio.h ซึ่งเปน็ แฟ้มส่วนหัวทีใ่ ช้เก็บ /*1*/ #include <stdio.h> รวบรวมคาส่ังเกย่ี วกบั การรบั และแสดงผล ข้อมูล ถูกอ่านเข้ามาเพื่อประมวลผลรว่ มกับ โปรแกรมน้ี */ /* ประกาศ main เปน็ ฟังก์ชนั หลกั ชนดิ /*2*/ int main() { จานวนเตม็ และเริม่ ตน้ block ของฟงั กช์ ัน main (เริม่ ตน้ โปรแกรม) */ /*3*/ printf(\"\\tName : /* เว้นช่องว่าง 1 tab แลว้ แสดงขอ้ ความ Natthachai\\n\\tSurname : \"Name : Natthachai\" แล้วขึน้ บรรทัดใหม่ 1 Chalat\"); บรรทดั แลว้ เว้นช่องวา่ ง 1 tab แลว้ แสดง ขอ้ ความ \"Surname : Chalat\" ทางจอภาพ */ /*4*/ return 0; /* คนื ค่า 0 ใหฟ้ ังกช์ นั main โปรแกรมทางาน ถูกต้องสมบูรณ์ */ /*5*/ } /* สน้ิ สุด block ของฟังก์ชนั main (สิ้นสุด โปรแกรม) */ หมำยเหตุ คาส่ัง printf จะไมแ่ สดง \\t และ \\n ออกมา แตจ่ ะเว้นช่องวา่ ง 1 tab และ ขึน้ บรรทัดใหม่ 1 บรรทดั แทน ผลกำรรนั โปรแกรม
11 ตวั อย่ำงท่ี 8 กำรใชค้ ำสั่งแสดงขอ้ ควำม \"The sum is \" และจำนวน 15 ที่เก็บในตวั แปร sum โดยใช้คำสง่ั printf เพียงครัง้ เดียว ( ex4-08.c ) บรรทดั รหสั ต้นฉบบั (Source Code) อธบิ ำยคำส่งั /*1*/ #include <stdio.h> /* เปน็ คาสัง่ ของตวั ประมวลผลกอ่ นซี จะมี /*2*/ int main() { ผลให้แฟ้ม stdio.h ซึ่งเปน็ แฟ้มสว่ นหัวทใ่ี ช้ เกบ็ รวบรวมคาสงั่ เก่ยี วกบั การรับและ /*3*/ int sum = 15; แสดงผลข้อมูล ถูกอ่านเขา้ มาเพอื่ ประมวลผล รว่ มกบั โปรแกรมน้ี */ /*4*/ printf(\"The sum is %d\" , sum\"); /* ประกาศ main เป็นฟงั ก์ชันหลัก ชนดิ จานวนเต็ม และเรมิ่ ตน้ block ของฟงั ก์ชนั /*5*/ return 0; main (เร่มิ ตน้ โปรแกรม) */ /*6*/ } /* ประกาศตวั แปร sum เปน็ ชนิดจานวนเตม็ พรอ้ มกาหนดค่าเริ่มต้นให้กบั ตวั แปร sum เปน็ 15 */ /* แสดงขอ้ ความ \"The sum is %d\" ทาง จอภาพ โดยแสดงคา่ ของ sum ใน %d แทน */ /* คืนค่า 0 ใหฟ้ ังก์ชนั main โปรแกรม ทางานถกู ต้องสมบรู ณ์ */ /* สิน้ สุด block ของฟังกช์ ัน main (สน้ิ สุด โปรแกรม) */ หมำยเหตุ คาสั่ง printf จะไม่แสดง %d ออกมา แตจ่ ะแสดงคา่ ของขอ้ มูลออกมาแทน ผลกำรรนั โปรแกรม
12 ตวั อย่ำงท่ี 9 กำรใชค้ ำส่ังแสดงขอ้ ควำมและกำรประมวลผลนิพจน์ทำงคณติ ศำสตร์ ( ex4-09.c ) บรรทัด รหัสตน้ ฉบบั (Source Code) อธิบำยคำสั่ง /* เป็นคาสงั่ ของตวั ประมวลผลก่อนซี จะมีผล ใหแ้ ฟ้ม stdio.h ซง่ึ เปน็ แฟ้มส่วนหัวที่ใช้เกบ็ /*1*/ #include <stdio.h> รวบรวมคาส่ังเกี่ยวกับการรบั และแสดงผล ขอ้ มลู ถูกอา่ นเข้ามาเพ่ือประมวลผลรว่ มกับ โปรแกรมน้ี */ /* ประกาศ main เป็นฟังก์ชันหลกั ชนดิ /*2*/ int main() { จานวนเตม็ และเริ่มต้น block ของฟังกช์ นั main (เริ่มต้นโปรแกรม) */ /* ประกาศตวั แปร x และ y เปน็ ชนิดจานวน /*3*/ int x = 8 , y = 4; เตม็ พร้อมกาหนดค่าเร่ิมต้นใหก้ ับตวั แปร x และ y เป็น 8 และ 4 ตามลาดับ */ /* แสดงขอ้ ความ \"%d + %d = %d\" ทาง /*4*/ printf(\"%d + %d = %d\" , x , y จอภาพ โดยแสดงค่าของ x ใน %d ตัวแรก , x+y); แสดงค่า y ใน %d ตวั ท่ี 2 และแสดงค่า ผลบวก x + y ใน %d ตัวท่ี 3 แทน */ /*5*/ return 0; /* คืนคา่ 0 ใหฟ้ งั กช์ ัน main โปรแกรมทางาน ถกู ตอ้ งสมบรู ณ์ */ /*6*/ } /* สนิ้ สดุ block ของฟังกช์ นั main (สน้ิ สุด โปรแกรม) */ หมำยเหตุ การแสดงผลนพิ จน์ ในคาสั่ง printf จะประมวลผลนิพจน์น้ันกอ่ น แล้วจงึ นา ผลลัพธไ์ ปแสดงในรหัสรปู แบบขอ้ มูลทก่ี าหนด ผลกำรรนั โปรแกรม
13 ตัวอยำ่ งที่ 10จงเขียนโปรแกรมคำนวณพื้นท่ีวงกลม รัศมีเทำ่ กบั 5 ( ex4-10.c ) จำกโจทย์ เขียนผงั งาน แสดงการแกป้ ญั หา ไดด้ ังนี้
14 จำกผังงำน เขียนโปรแกรมได้ดงั นี้ อธบิ ำยคำสัง่ บรรทดั รหัสต้นฉบบั (Source Code) /* เป็นคาสั่งของตวั ประมวลผลก่อนซี จะมผี ล /*1*/ #include <stdio.h> ใหแ้ ฟ้ม stdio.h ซึง่ เปน็ แฟม้ ส่วนหวั ท่ใี ช้เก็บ รวบรวมคาสัง่ เกย่ี วกับการรบั และแสดงผล /*2*/ int main() { ขอ้ มูล ถกู อ่านเข้ามาเพ่อื ประมวลผลรว่ มกับ โปรแกรมน้ี */ /*3*/ int r = 5; /*4*/ float area; /* ประกาศ main เป็นฟังกช์ ันหลัก ชนดิ /*5*/ area = 22.0/7.0*r*r; จานวนเตม็ และเร่ิมต้น block ของฟังก์ชัน main (เร่ิมต้นโปรแกรม) */ /*6*/ printf(\"radius : %3d ,Area of Circle : %7.2f\" , r ,area); /* ประกาศตัวแปร r เป็นชนดิ จานวนเต็ม พรอ้ มกาหนดคา่ เร่มิ ตน้ ให้กบั ตัวแปร r เปน็ 5 /*7*/ return 0; */ /*8*/ } /* ประกาศตัวแปร area เปน็ ชนิดจานวนจรงิ /* ประมวลผล 22.0/7.0*r*r กอ่ น จะได้ (22.0/7.0) x 5 x 5 เปน็ 78.571429 แล้วจึง นา 78.571429 ไปเกบ็ ใน area */ /* แสดงข้อความ \"radius : %3d ,Area of Circle : %7.2f\" ทางจอภาพ โดยแสดงค่า r ใน %3d และแสดงค่า area ใน %7.2f */ /* คนื คา่ 0 ให้ฟงั กช์ ัน main โปรแกรมทางาน ถูกตอ้ งสมบรู ณ์ */ /* สนิ้ สดุ block ของฟงั ก์ชนั main (สิน้ สดุ โปรแกรม) */ หมำยเหตุ %3d หมายถงึ จองชอ่ งไวแ้ สดงผลจานวนเต็ม ได้ 3 ช่อง %7.2f หมายถึง จองช่องไว้แสดงผลทง้ั หมด 7 ชอ่ ง แบง่ เป็น แสดงจานวนเตม็ ได้ 4 ชอ่ ง แสดงทศนิยมได้ 2 ตาแหนง่ และจดุ 1 ช่อง ผลกำรรนั โปรแกรม
15 ตัวอยำ่ งท่ี 11 กำรใชร้ หัสรปู แบบข้อมลู แสดงขอ้ มลู ชนดิ จำนวนเต็มและอักขระ ( ex4-11.c ) บรรทดั รหัสต้นฉบบั (Source Code) อธบิ ำยคำสัง่ /*1*/ #include <stdio.h> /* เปน็ คาสงั่ ของตวั ประมวลผลก่อนซี จะมผี ลให้แฟ้ม /*2*/ int main() { stdio.h ซ่งึ เปน็ แฟม้ สว่ นหัวท่ีใช้เกบ็ รวบรวมคาส่ัง เกย่ี วกบั การรับและแสดงผลข้อมูล ถูกอ่านเขา้ มาเพ่อื /*3*/ int asc = 65; ประมวลผลรว่ มกบั โปรแกรมน้ี */ /*4*/ char ch = 'A'; /* ประกาศ main เปน็ ฟงั ก์ชันหลัก ชนดิ จานวนเตม็ และเร่มิ ต้น block ของฟังก์ชนั main (เร่มิ ต้น /*5*/ printf(\"Character : %c ASCII- โปรแกรม) */ Code : %d\\n\" , ch , ch); /* ประกาศตัวแปร asc เป็นชนดิ จานวนเต็ม พรอ้ ม /*6*/ printf(\"Character : %c ASCII- กาหนดคา่ เร่ิมตน้ ใหก้ ับตวั แปร asc เป็น 65 */ Code : %d\\n\" , asc , asc); /* ประกาศตัวแปร ch เป็นชนดิ อกั ขระ พร้อม /*7*/ return 0; กาหนดคา่ เริม่ ตน้ ใหก้ บั ตัวแปร ch เปน็ 'A' */ /*8*/ } /* แสดงข้อความ \"Character : %c ASCII-Code : %d\" โดยแสดงค่า ch ใน %c และแสดงค่า ch ใน %d แลว้ ข้นึ บรรทดั ใหม่ */ /* แสดงขอ้ ความ \"Character : %c ASCII-Code : %d\" โดยแสดงคา่ asc ใน %c และแสดงค่า asc ใน %d แลว้ ขน้ึ บรรทดั ใหม่ */ /* คนื ค่า 0 ใหฟ้ งั กช์ ัน main โปรแกรมทางานถูกต้อง สมบรู ณ์ */ /* สิ้นสุด block ของฟงั กช์ นั main (ส้นิ สดุ โปรแกรม) */ หมำยเหตุ จะเหน็ ว่าผลที่ได้ท้ัง 2 บรรทดั เหมือนกนั แสดงวา่ 65 เป็นเลขจานวนเตม็ ที่ เม่อื นามา แสดงผลด้วยรปู แบบของขอ้ มูล %c จะได้ 'A' และเมอ่ื นาอกั ขระ 'A' มาแสดงผลดว้ ย รปู แบบของข้อมูล %d จะได้ 65 (ในคอมพิวเตอร์จะเก็บอักขระไวเ้ ป็นตวั เลข โดยตัวเลขที่ใชแ้ ทนอักขระ เรียกว่า รหัสแอสกี)
16 ผลกำรรันโปรแกรม 4.2.2 คำสัง่ รบั คำ่ ข้อมลู คำสั่ง scanf() คำสง่ั scanf() เป็นคาสั่งที่ใชใ้ นการรบั ข้อมลู จากแปน้ พมิ พ์ (Keyboard) เข้ามาเก็บไว้ในตัว แปร รูปแบบคำสั่ง scanf(control , argument-list); argument-list ตวั แปรสาหรับไว้เกบ็ ค่าขอ้ มลู ทร่ี ับจากแปน้ พิมพ์ ถา้ มีตวั แปรมากกวา่ หนง่ึ ตวั ใหแ้ ยกกันดว้ ยเครอื่ งหมายคอมมา่ ( , ) และต้องนาหน้าตัวแปรด้วย เครอื่ งหมาย & ทกุ ตัว ยกเว้นตัวแปรชุด control จะตอ้ งเขยี นอยู่ภายใต้เครอื่ งหมาย \" \" ภายในเคร่ืองหมาย ประกอบด้วย รหสั รปู แบบข้อมลู (รหัสเหมอื นกับท่ใี ช้ในคาสงั่ printf) หาก ตอ้ งการรบั ขอ้ มลู มากกวา่ หนึง่ ตวั ใหแ้ ยกกันด้วยเวน้ วรรค (space bar) หรอื จะกาหนดเปน็ รูปแบบอืน่ ก็ได้ แต่ตอนรับคา่ ต้องปอ้ นรปู แบบใหต้ รงกนั โดย จานวนรหสั รูปแบบข้อมลู ตอ้ งสอดคลอ้ งกับจานวนตวั แปรใน argument- list
17 ตวั อย่ำงที่ 12กำรรบั คำ่ จำนวนเตม็ 1 จำนวน จำกแปน้ พิมพ์ ( ex4-12.c ) บรรทัด รหสั ตน้ ฉบบั (Source Code) อธบิ ำยคำสง่ั /*1*/ #include <stdio.h> /* เปน็ คาสงั่ ของตวั ประมวลผลก่อนซี จะมี /*2*/ int main() { ผลให้แฟม้ stdio.h ซึง่ เปน็ แฟ้มสว่ นหัวทใ่ี ช้ /*3*/ int x; เก็บรวบรวมคาส่ังเกย่ี วกบั การรบั และ /*4*/ scanf(\"%d\" , &x); แสดงผลขอ้ มูล ถกู อา่ นเข้ามาเพือ่ ประมวลผล /*5*/ return 0; ร่วมกับโปรแกรมน้ี */ /*6*/ } /* ประกาศ main เปน็ ฟังกช์ ันหลัก ชนดิ จานวนเตม็ และเรม่ิ ต้น block ของฟงั กช์ ัน main (เรม่ิ ตน้ โปรแกรม) */ /* ประกาศตวั แปร x เป็นชนิดจานวนเตม็ */ /* รบั คา่ เลขจานวนเต็ม จากแปน้ พมิ พ์ ไป เกบ็ ไวใ้ นตัวแปร x เมอื่ ป้อนขอ้ มลู เสร็จแลว้ ต้องกดแป้น Enter เพือ่ ยืนยันข้อมลู และทา คาสง่ั ถดั ไป */ /* คนื คา่ 0 ใหฟ้ ังกช์ ัน main โปรแกรม ทางานถกู ต้องสมบรู ณ์ */ /* สิ้นสุด block ของฟงั กช์ ัน main (สิน้ สดุ โปรแกรม) */ หมำยเหตุ เมอื่ คาสงั่ scanf ทางาน เครือ่ งจะหยุดรอรับค่า (เคอร์เซอร์กระพริบ) เมื่อปอ้ นข้อมลู เสร็จแล้ว ต้องกดแปน้ Enter เพื่อยืนยนั ขอ้ มลู และทาคาสง่ั ถดั ไป
18 ตวั อยำ่ งที่ 13 กำรรับค่ำจำนวนเต็ม 2 จำนวน จำกแป้นพิมพ์ ( ex4-13.c ) บรรทัด รหสั ต้นฉบบั (Source Code) อธิบำยคำสง่ั /* เปน็ คาสัง่ ของตัวประมวลผลกอ่ นซี จะมี ผลให้แฟม้ stdio.h ซึ่งเปน็ แฟ้มสว่ นหวั ทใ่ี ช้ /*1*/ #include <stdio.h> เกบ็ รวบรวมคาสงั่ เกีย่ วกบั การรบั และ แสดงผลขอ้ มูล ถูกอา่ นเข้ามาเพือ่ ประมวลผล ร่วมกับโปรแกรมนี้ */ /* ประกาศ main เปน็ ฟังกช์ นั หลกั ชนิด /*2*/ int main() { จานวนเตม็ และเร่ิมตน้ block ของฟงั ก์ชนั main (เร่มิ ตน้ โปรแกรม) */ /*3*/ int x , y; /* ประกาศตวั แปร x และ y เป็นชนดิ จานวน เตม็ */ /* รบั คา่ เลขจานวนเตม็ 2 จานวน จาก แป้นพมิ พ์ ไปเกบ็ ไวใ้ นตวั แปร x และ y /*4*/ scanf(\"%d %d\" , &x , &y); ตามลาดับ คน่ั จานวนสองจานวนด้วยเวน้ วรรค เมอ่ื ปอ้ นข้อมลู เสร็จแล้ว ตอ้ งกดแป้น Enter เพื่อยนื ยนั ขอ้ มูลและทาคาส่งั ถดั ไป */ /* แสดงขอ้ ความ \"x = %d y = %d\" โดย /*5*/ printf(\"x = %d y = %d\" , x , y); แสดงค่า x ใน %d ตวั แรก และแสดงค่า y ใน %d ตัวท่ี 2 */ /*6*/ return 0; /* คืนคา่ 0 ให้ฟงั กช์ นั main โปรแกรม ทางานถูกตอ้ งสมบรู ณ์ */ /*7*/ } /* สน้ิ สดุ block ของฟงั ก์ชนั main (ส้นิ สุด โปรแกรม) */ หมำยเหตุ คำสง่ั scanf(\"%d %d\" , &x , &y); เปน็ คาสั่งรบั ค่าจานวนเต็ม 2 จานวน จากแปน้ พมิ พ์ ไปเกบ็ ไวใ้ นตัวแปร x และ y ตามลาดบั โดยปอ้ นค่าที่ 1 แลว้ เวน้ วรรค (space bar) แล้วจงึ ปอ้ นค่าที่ 2 เมื่อปอ้ นข้อมลู เสรจ็ แล้ว ต้องกดแป้น Enter เพอ่ื ยืนยันขอ้ มลู และทาคาส่งั ถัดไป
19 ตัวอยำ่ งผลกำรรนั โปรแกรม ตวั อย่ำงที่ 14กำรจัดรูปแบบอ่นื ๆ ในกำรรับคำ่ จำนวนเต็ม 2 จำนวน จำกแปน้ พิมพ์ ( ex4-14.c ) บรรทัด รหสั ต้นฉบับ (Source Code) อธิบำยคำส่งั /* เปน็ คาสั่งของตวั ประมวลผลกอ่ นซี จะมผี ล ใหแ้ ฟ้ม stdio.h ซึง่ เปน็ แฟม้ ส่วนหวั ทีใ่ ชเ้ ก็บ /*1*/ #include <stdio.h> รวบรวมคาสัง่ เกีย่ วกบั การรับและแสดงผล ขอ้ มลู ถูกอ่านเข้ามาเพอ่ื ประมวลผลรว่ มกบั โปรแกรมน้ี */ /* ประกาศ main เป็นฟงั กช์ นั หลัก ชนดิ /*2*/ int main() { จานวนเต็ม และเรมิ่ ตน้ block ของฟังก์ชัน main (เรมิ่ ต้นโปรแกรม) */ /*3*/ int x , y; /* ประกาศตวั แปร x และ y เปน็ ชนดิ จานวน เตม็ */ /* รับค่าเลขจานวนเตม็ 2 จานวน จาก แปน้ พมิ พ์ ไปเก็บไว้ในตัวแปร x และ y ตามลาดบั คนั่ จานวนสองจานวนดว้ ย /*4*/ scanf(\"%d, %d\" , &x , &y); เครอ่ื งหมายคอมม่า ( , ) ตามทกี่ าหนดไว้ใน รปู แบบคาสงั่ เม่อื ป้อนข้อมูลเสรจ็ แล้ว ต้องกด แป้น Enter เพื่อยนื ยันขอ้ มูลและทาคาสง่ั ถัดไป */ /*5*/ printf(\"x = %d y = %d\" , x , /* แสดงข้อความ \"x = %d y = %d\" โดย y); แสดงคา่ x ใน %d ตวั แรก และแสดงคา่ y ใน %d ตัวที่ 2 */ /*6*/ return 0; /* คนื คา่ 0 ใหฟ้ ังก์ชนั main โปรแกรมทางาน ถกู ตอ้ งสมบูรณ์ */ /*7*/ } /* สน้ิ สุด block ของฟังกช์ นั main (สนิ้ สุด โปรแกรม) */
20 ตัวอย่ำงผลกำรรันโปรแกรม ตัวอย่ำงท่ี 15กำรรับคำ่ 3 คำ่ ต่ำงชนดิ กนั จำกแปน้ พิมพ์ วธิ ีที่ 1 ( ex4-15.c ) บรรทดั รหสั ต้นฉบับ อธิบำยคำส่งั /* เปน็ คาสั่งของตวั ประมวลผลกอ่ นซี จะมีผลให้แฟม้ /*1*/ #include <stdio.h> stdio.h ซึ่งเปน็ แฟม้ ส่วนหวั ทใี่ ช้เก็บรวบรวมคาสั่ง เก่ยี วกบั การรับและแสดงผลข้อมลู ถูกอา่ นเขา้ มาเพือ่ ประมวลผลรว่ มกับโปรแกรมนี้ */ /* ประกาศ main เป็นฟังกช์ ันหลกั ชนดิ จานวนเต็ม /*2*/ int main() { และเริม่ ต้น block ของฟงั กช์ นั main (เรมิ่ ตน้ โปรแกรม) */ /*3*/ char x; /* ประกาศตวั แปร x เป็นชนดิ อักขระ */ /*4*/ int y; /* ประกาศตวั แปร y เปน็ ชนดิ จานวนเตม็ */ /*5*/ float z; /* ประกาศตวั แปร z เปน็ ชนดิ จานวนจรงิ */ /* รับค่าอักขระ จากแป้นพิมพ์ ไปเกบ็ ไว้ในตัวแปร x /*6*/ scanf(\"%c\" , &x); เม่อื ป้อนข้อมูลเสร็จแล้ว ต้องกดแปน้ Enter เพ่อื ยนื ยนั ข้อมูลและทาคาสั่งถัดไป */ /* รบั ค่าเลขจานวนเต็ม จากแปน้ พิมพ์ ไปเก็บไวใ้ นตัว /*7*/ scanf(\"%d\" , &y); แปร y เม่อื ป้อนข้อมูลเสรจ็ แลว้ ต้องกดแปน้ Enter เพ่ือยืนยันข้อมูลและทาคาสง่ั ถัดไป */ /* รบั ค่าเลขจานวนจริง จากแปน้ พิมพ์ ไปเกบ็ ไวใ้ นตัว /*8*/ scanf(\"%f\" , &z); แปร z เม่อื ปอ้ นขอ้ มูลเสรจ็ แล้ว ต้องกดแปน้ Enter เพื่อยืนยันขอ้ มูลและทาคาสงั่ ถดั ไป */ /*9*/ printf(\"x = %c y = %d /* แสดงขอ้ ความ \"x = %c y = %d z = %f\" โดย z = %f\" , x , y , z ); แสดงค่า x ใน %c แสดงคา่ y ใน %d และแสดงค่า z ใน %f */ /*10*/ return 0; /* คืนคา่ 0 ใหฟ้ งั ก์ชัน main โปรแกรมทางาน ถูกตอ้ งสมบูรณ์ */ /*11*/ } /* สน้ิ สุด block ของฟังก์ชัน main (สนิ้ สดุ โปรแกรม) */
21 ตัวอยำ่ งผลกำรรนั โปรแกรม ตัวอยำ่ งที่ 16กำรรบั ค่ำ 3 ค่ำ ต่ำงชนดิ กนั จำกแป้นพิมพ์ วิธีท่ี 2 ( ex4-16.c ) บรรทัด รหสั ต้นฉบับ (Source Code) อธบิ ำยคำสั่ง /* เป็นคาส่ังของตวั ประมวลผลกอ่ นซี จะมีผล ให้แฟ้ม stdio.h ซึง่ เป็นแฟ้มส่วนหวั ท่ีใชเ้ ก็บ /*1*/ #include <stdio.h> รวบรวมคาส่ังเกีย่ วกับการรบั และแสดงผล ขอ้ มูล ถูกอา่ นเข้ามาเพอ่ื ประมวลผลร่วมกับ โปรแกรมนี้ */ /* ประกาศ main เป็นฟงั ก์ชันหลกั ชนดิ /*2*/ int main() { จานวนเตม็ และเร่ิมต้น block ของฟงั กช์ ัน main (เริ่มตน้ โปรแกรม) */ /*3*/ char x; /* ประกาศตัวแปร x เปน็ ชนดิ อักขระ */ /*4*/ int y; /* ประกาศตัวแปร y เป็นชนิดจานวนเตม็ */ /*5*/ float z; /* ประกาศตัวแปร z เปน็ ชนิดจานวนจรงิ */ /* รับคา่ อกั ขระ จานวนเต็ม และจานวนจริง จากแป้นพมิ พ์ ไปเกบ็ ไวใ้ นตวั แปร x y และ z /*6*/ scanf(\"%c %d %f\" , &x , &y , ตามลาดบั แต่ละคา่ คน่ั ด้วยเวน้ วรรค (space &z); bar) เมอื่ ปอ้ นขอ้ มลู เสร็จทง้ั 3 ค่าแล้ว ต้องกด แปน้ Enter เพอื่ ยนื ยนั ขอ้ มลู และทาคาสั่ง ถัดไป */ /*7*/ printf(\"x = %c y = %d z = %f\" /* แสดงข้อความ \"x = %c y = %d z = %f\" , x , y , z ); โดยแสดงคา่ x ใน %c แสดงคา่ y ใน %d และแสดงคา่ z ใน %f */ /*8*/ return 0; /* คนื ค่า 0 ให้ฟังก์ชนั main โปรแกรมทางาน ถูกตอ้ งสมบรู ณ์ */ /*9*/ } /* สิน้ สดุ block ของฟงั กช์ ัน main (สนิ้ สดุ โปรแกรม) */
22 ตวั อยำ่ งผลกำรรันโปรแกรม ตวั อย่ำงท่ี 17 จงเขียนโปรแกรมคำนวณพนื้ ทีส่ ำมเหล่ยี ม ( ex4-17.c ) จำกโจทย์ เขียนผังงาน แสดงการแก้ปญั หา ได้ดังนี้
23 จำกผงั งำน เขียนโปรแกรมได้ดงั น้ี บรรทดั รหัสต้นฉบบั (Source Code) อธิบำยคำส่งั /*1*/ #include <stdio.h> /* เป็นคาส่ังของตวั ประมวลผลกอ่ นซี จะมผี ลให้ แฟม้ stdio.h ซงึ่ เปน็ แฟ้มสว่ นหวั ท่ีใช้เกบ็ /*2*/ int main() { รวบรวมคาส่ังเกี่ยวกับการรับและแสดงผลขอ้ มลู /*3*/ float b , h; ถกู อา่ นเขา้ มาเพื่อประมวลผลรว่ มกับโปรแกรมน้ี /*4*/ printf(\"Area of Triangle\\n\"); */ /*5*/ printf(\"Base : \"); /*6*/ scanf(\"%f\" , &b); /* ประกาศ main เปน็ ฟงั กช์ นั หลัก ชนิดจานวน /*7*/ printf(\"Height : \"); เต็ม และเร่ิมตน้ block ของฟังกช์ ัน main /*8*/ scanf(\"%f\" , &h); (เรม่ิ ตน้ โปรแกรม) */ printf(\"Triangle :Base =%.2f /* ประกาศตวั แปร b และ h เปน็ ชนดิ จานวน /*9*/ Height =%.2f Area =%.2f\", จรงิ */ b,h,0.5*b*h); /* แสดงข้อความ \"Area of Triangle\" แล้วขึ้น /*10*/ return 0; บรรทดั ใหม่ */ /*11*/ } /* แสดงขอ้ ความ \"Base : \" เพอื่ แจ้งให้ผู้ใช้ โปรแกรมทราบวา่ ตอ้ งปอ้ นขอ้ มูลอะไร */ /* รับคา่ จานวนจริง จากแป้นพิมพ์ ไปเกบ็ ไวใ้ น ตวั แปร b เมือ่ ปอ้ นข้อมลู เสรจ็ แล้ว ตอ้ งกดแป้น Enter เพอ่ื ยืนยนั ขอ้ มูลและทาคาสั่งถัดไป */ /* แสดงข้อความ \"Height : \" เพอ่ื แจ้งใหผ้ ใู้ ช้ โปรแกรมทราบว่า ตอ้ งปอ้ นข้อมูลอะไร */ /* รับคา่ จานวนจริง จากแป้นพมิ พ์ ไปเกบ็ ไว้ใน ตัวแปร h เมื่อปอ้ นขอ้ มลู เสร็จแลว้ ต้องกดแป้น Enter เพ่อื ยนื ยนั ข้อมูลและทาคาส่งั ถัดไป */ /* แสดงขอ้ ความ \"Triangle :Base =%.2f Height =%.2f Area =%.2f\" โดยแสดงค่า b ใน %.2f ตัวแรก แสดงคา่ h ใน %.2f ตวั ท่ี 2 และ แสดงค่า 0.5*b*h ใน %.2f ตัวที่ 3 (%.2f คือ แสดงผลเปน็ จุดทศนยิ ม 2 ตาแหนง่ ) */ /* คนื ค่า 0 ใหฟ้ ังก์ชัน main โปรแกรมทางาน ถกู ตอ้ งสมบูรณ์ */ /* ส้ินสุด block ของฟังก์ชัน main (สนิ้ สุด โปรแกรม) */
24 หมำยเหตุ แสดงกำรใช้คำสงั่ printf กบั scanf คู่กัน โดยใชค้ าสง่ั printf เพือ่ แสดงขอ้ ความ ให้ผูใ้ ชโ้ ปรแกรมทราบว่า ถงึ ข้ันตอนไหนและตอ้ งทาอะไร (เปน็ การสื่อสารกับผใู้ ช้ โปรแกรม) แล้วจึงใช้คาส่งั scanf ใหผ้ ู้ใชป้ อ้ นขอ้ มูล ตวั อยำ่ งผลกำรรนั โปรแกรม
25 แบบฝกึ หดั ทำ้ ยบท คำชแี้ จง ให้นกั เรียนสรปุ เนื้อหาความรูท้ ีไ่ ด้จากการศึกษาค้นคว้า บทเรยี นบนเครอื ข่ายอินเทอร์เนต็ เรื่อง การโปรแกรมเบ้ืองตน้ หนว่ ยที่ 4 คาสง่ั พน้ื ฐานในภาษาซี หรอื สืบค้นจากอินเทอรเ์ นต็ ให้ไดใ้ จความสาคญั ถกู ต้องครบถ้วน ตามหัวข้อที่กาหนดให้ตอ่ ไปนี้ 1. จงเขียนคาสั่งอื่น ท่ใี ช้แทนคาสัง่ ทีก่ าหนดให้ โดยการประมวลผลยังคงเหมอื นเดมิ int main() { int i = 5 , j = 3 , k = 20 ; i++; ใหผ้ ลเหมอื นกบั คาสั่ง i = i + 1; i = i + 2; ให้ผลเหมือนกบั คาสง่ั i += 2; i = i * 2; ใหผ้ ลเหมือนกบั คาสั่ง i *= 2; 1) j++; ใหผ้ ลเหมอื นกับคาสง่ั ............................................. 2) j = j + 3; ให้ผลเหมอื นกับคาสั่ง............................................. 3) j = j * 4; ใหผ้ ลเหมอื นกับคาส่งั ............................................. 4) k--; ใหผ้ ลเหมือนกบั คาสง่ั ............................................. 5) k = k - 3; ให้ผลเหมอื นกบั คาสง่ั ............................................. 6) k = k / 2; ให้ผลเหมือนกบั คาส่งั ............................................. 7) k = k%2; ใหผ้ ลเหมอื นกบั คาสัง่ ............................................. return 0; } 2. จงประมวลผลโปรแกรมทีก่ าหนดใหใ้ นกระดาษ แล้วให้บอกค่าท่ีเก็บในตัวแปรแตล่ ะบรรทัด int main() { int i = 5 , j = 3 , k = 20 ; i++; i เก็บคา่ 6 i = i + 2; i เก็บคา่ 8 i = i * 2; i เกบ็ คา 16 1) j++; j เกบ็ คา่ .......................... 2) j = j + 3; j เกบ็ ค่า.......................... 3) j = j * 4; j เกบ็ คา่ .......................... 4) k--; k เก็บคา่ ..........................
26 5) k = k - 3; k เกบ็ ค่า.......................... 6) k = k / 2; k เกบ็ คา่ .......................... 7) k = k%2; k เก็บคา่ .......................... return 0; } 3. จบั คู่ รหัสรูปแบบขอ้ มลู และรหัสควบคุมการแสดงผล กบั ความหมายทางด้านขวามอื โดยนาตวั อกั ษรทอี่ ย่หู น้าความหมายทางด้านขวามอื มาเตมิ ในชอ่ งวา่ งหน้าข้อทางดา้ นซา้ ย ให้สอดคลอ้ งกนั คำตอบ ขอ้ รหัสในภำษำซี ควำมหมำย ............. 1) \\n ก. char และ unsigned char ............. 2) \\\\ ข. float และ double ............. 3) %f ค. int และ unsigned int ............. 4) \\\" ง. char[] หรือ สายอกั ขระ ............. 5) \\t จ. ขน้ึ บรรทดั ใหม่ 1 บรรทัด ............. 6) %d ฉ. tab เว้นวรรค 1 tab (8 อักขระ) ............. 7) \\a ช. สง่ เสียงป๊ีบเตอื น 1 ครง้ั ............. 8) %c ซ. แสดงอกั ขระ ' 1 ตวั ............. 9) \\' ฌ. แสดงอักขระ \" 1 ตัว ............. 10) %s ญ. แสดงอกั ขระ \\ 1 ตวั 4. จงเตมิ รหัสรูปแบบขอ้ มูลในคาสั่ง printf ใหส้ อดคลอ้ งกบั ชนิดตวั แปรทีก่ าหนดให้ int main() { int i = 5 , j = 3 ; float x = 50.50 , y = 100.99; char a = 'A' , b = 'B'; 1) printf(\"i = %........\\n\" , i ); 2) printf(\"j = %........ x = %........\\n\" , j , x ); 3) printf(\"a = %........ b = %........\\n\" , a , b ); 4) printf(\"i - 3 = %........ x * 2 = %........ b = %........ \\n\" , i - 3 , x*2 , b ); return 0; }
27 5. จงเตมิ รหัสรปู แบบข้อมลู ในคาสง่ั scanf ให้สอดคล้องกบั ชนดิ ตวั แปรทกี่ าหนดให้ int main() { int i , j ; float x , y ; char a , b ; 1) scanf(\"%........\" , &i ); 2) scanf(\"%........ %........\" , &x , &a); 3) scanf(\"%........ %........\" , &a , &b); 4) scanf(\"%........ %........ %........\" , &i , &y , &j ); return 0; } 6. จงเขียนโปรแกรม คานวณพ้ืนทส่ี ี่เหล่ยี มผนื ผ้า โดยกาหนดตวั แปร side1 และ side2 เป็น ชนิดจานวนเต็ม แทนดา้ นของส่เี หล่ียมผืนผ้า กวา้ งและยาว ตามลาดบั และตวั แปร area เป็นชนดิ จานวนเต็ม แทนพ้ืนทส่ี ่เี หลยี่ มผืนผา้ สูตรในการคานวณหาพืน้ ทสี่ ีเ่ หล่ยี มผืนผ้า คือ กว้าง คณู ยาว (area = side1 * side2) โดยกาหนดใหร้ บั คา่ กวา้ ง (side1) และ ยาว (side2) ทางแป้นพมิ พ์ แสดงผลพื้นท่ี (area) ทางจอภาพ (ดงั ภาพตวั อย่างการประมวลผล ดา้ นลา่ งน้ี)
28 ตวั อย่างแสดงผลลพั ธ์ เมื่อป้อนความกว้าง เป็น 4 และความยาว เปน็ 5 จะแสดงผล พ้นื ท่ี เปน็ 20 รหสั คำส่ัง (Source Code) #include <stdio.h> //ประกาศตัวแปร int main() { //แสดงข้อความแจ้งผใู้ ชใ้ หป้ อ้ นขอ้ มูล //รบั ขอ้ มลู side1 ............... side1 , side2 , area; //แสดงข้อความแจ้งผ้ใู ช้ใหป้ อ้ นข้อมูล //รบั ขอ้ มลู side2 printf(\"Input Side1 : \"); //คานวณพนื้ ทส่ี ่เี หล่ยี มผนื ผ้า (จากสตู ร) ......................................; //แสดงผลพ้นื ทส่ี เี่ หลี่ยมผนื ผ้า printf(\"Input Side2 : \"); ......................................; ......................................; ......................................; return 0; }
29 เฉลยแบบฝึกหดั 1. จงเขียนคาสัง่ อืน่ ท่ใี ชแ้ ทนคาสั่งทก่ี าหนดให้ โดยการประมวลผลยังคงเหมอื นเดมิ int main() { int i = 5 , j = 3 , k = 20 ; i++; ใหผ้ ลเหมือนกบั คาสั่ง i = i + 1; , ++I, i+=1 i = i + 2; ใหผ้ ลเหมอื นกับคาสั่ง i += 2; i = i * 2; ใหผ้ ลเหมือนกับคาสง่ั i *= 2; 1) j++; ให้ผลเหมอื นกบั คาส่งั j = j + 1; , ++j , j + = 1; 2) j = j + 3; ให้ผลเหมือนกับคาส่งั j+ = 3; 3) j = j * 4; ให้ผลเหมือนกับคาสัง่ j* = 4; 4) k--; ใหผ้ ลเหมอื นกับคาสั่ง k = k – 1; , - - k; , k - = 1; 5) k = k - 3; ให้ผลเหมอื นกบั คาสั่ง k - = 3; 6) k = k / 2; ให้ผลเหมือนกับคาสั่ง k /=2; 7) k = k%2; ใหผ้ ลเหมือนกบั คาสง่ั k %=2; return 0; } 2. จงประมวลผลโปรแกรมท่กี าหนดให้ในกระดาษ แลว้ ใหบ้ อกค่าท่ีเก็บในตวั แปรแต่ละบรรทดั int main() { int i = 5 , j = 3 , k = 20 ; i++; i เกบ็ ค่า 6 i = i + 2; i เกบ็ คา่ 8 i = i * 2; i เกบ็ คา 16 1) j++; j เก็บคา่ j = j + 1 / 3 + 1 = 4 2) j = j + 3; j เกบ็ ค่า 4+ 3 = 7 3) j = j * 4; j เกบ็ ค่า 7 * 4 = 28 4) k- -; k เก็บค่า k = 20 - 1 = 19 5) k = k - 3; k เก็บค่า 19 – 3 = 16 6) k = k / 2; k เกบ็ ค่า 16/2 = 8 7) k = k%2; k เกบ็ ค่า 8%2 = 0 //เศษ 0 return 0; }
30 3. จบั คู่ รหัสรปู แบบข้อมูลและรหัสควบคมุ การแสดงผล กับความหมายทางดา้ นขวามอื โดยนาตัวอักษรทอ่ี ยหู่ นา้ ความหมายทางดา้ นขวามือ มาเตมิ ในช่องวา่ งหนา้ ข้อทางดา้ นซ้าย ให้สอดคล้องกัน คำตอบ ขอ้ รหสั ในภำษำซี ควำมหมำย จ 1) \\n ก. char และ unsigned char ญ 2) \\\\ ข. float และ double ข 3) %f ค. int และ unsigned int ฌ 4) \\\" ง. char[] หรอื สายอกั ขระ ฉ 5) \\t จ. ข้ึนบรรทดั ใหม่ 1 บรรทดั ค 6) %d ฉ. tab เวน้ วรรค 1 tab (8 อักขระ) ช 7) \\a ช. สง่ เสยี งป๊บี เตอื น 1 ครง้ั ก 8) %c ซ. แสดงอกั ขระ ' 1 ตวั ซ 9) \\' ฌ. แสดงอกั ขระ \" 1 ตัว ง 10) %s ญ. แสดงอักขระ \\ 1 ตัว 4. จงเตมิ รหัสรปู แบบข้อมลู ในคาส่ัง printf ใหส้ อดคลอ้ งกบั ชนดิ ตัวแปรที่กาหนดให้ int main() { int i = 5 , j = 3 ; float x = 50.50 , y = 100.99; char a = 'A' , b = 'B'; 1) printf(\"i = %....d....\\n\" , i ); 2) printf(\"j = %... d.... x = %..f......\\n\" , j , x ); 3) printf(\"a = %.....c... b = %.. c....\\n\" , a , b ); 4) printf(\"i - 3 = %.. d... x * 2 = %.. f ..b = %... c... \\n\" , i - 3 , x*2 , b ); return 0; }
31 5. จงเติมรหัสรูปแบบข้อมูลในคาส่ัง scanf ให้สอดคล้องกับชนิดตัวแปรทกี่ าหนดให้ int main() { int i , j ; float x , y ; char a , b ; 1) scanf(\"%..d......\" , &i ); 2) scanf(\"%..f...... %..c......\" , &x , &a); 3) scanf(\"%..c...... %....c....\" , &a , &b); 4) scanf(\"%..d...... %...f..... %...d.....\" , &i , &y , &j ); return 0; } 6.จงเขียนโปรแกรม คานวณพื้นท่ีสเี่ หลีย่ มผนื ผ้า โดยกาหนดตวั แปร side1 และ side2 เปน็ ชนิด จานวนเตม็ แทนด้านของสเ่ี หล่ียมผนื ผ้า กวา้ งและยาว ตามลาดับ และตัวแปร area เป็นชนดิ จานวนเตม็ แทนพื้นทส่ี เ่ี หลยี่ มผนื ผ้า สูตรในการคานวณหาพ้นื ที่สเ่ี หลีย่ มผนื ผ้า คอื กว้าง คณู ยาว (area = side1 * side2) โดยกาหนดใหร้ ับค่า กวา้ ง (side1) และ ยาว (side2) ทาง แป้นพิมพ์ แสดงผลพนื้ ที่ (area) ทางจอภาพ (ดงั ภาพตัวอยา่ งการประมวลผลด้านล่างนี)้
32 ตัวอยา่ งแสดงผลลัพธ์ เม่ือปอ้ นความกว้าง เป็น 4 และความยาว เป็น 5 จะแสดงผลพ้นื ที่ เป็น 20 รหัสคำสัง่ (Source Code) #include <stdio.h> int main() { int side1 , side2 , area; //ประกาศตวั แปร printf(\"Input Side1 : \"); //แสดงขอ้ ความแจ้งผู้ใช้ให้ปอ้ นข้อมูล scanf(“&d” ,&side1); //รับขอ้ มลู side1 printf(\"Input Side2 : \"); //แสดงข้อความแจ้งผ้ใู ชใ้ หป้ อ้ นข้อมูล scanf(“&d” ,&side2); //รบั ข้อมูล side2 area=side1*side2; //คานวณพ้นื ทสี่ ี่เหล่ียมผืนผ้า (จากสตู ร) printf(“Area of Rectangle : %d ”,area); //แสดงผลพ้ืนทส่ี เี่ หลย่ี มผนื ผ้า return 0; }
33 แบบทดสอบหลงั เรียน คาช้ีแจง ให้คลกิ เลอื กตวั เลือกที่ถกู ที่สุดเพียงคาตอบเดยี ว 1. จากสว่ นของโปรแกรมดังภาพ แล้ว x จะมีค่าเท่าใด* ก. 3 ข. 7 ค. 2 ง. 5 2. จากสว่ นของโปรแกรมดงั ภาพ แล้ว x จะมีค่าเท่าใด* ก. 2 ก. 7 ข. 5 ค. 10 3. รหัสควบคุมการแสดงผล ให้ข้นึ บรรทัดใหม่ ในคาส่ัง printf คือข้อใด* ก. \\\\ ข. \\a ค. \\n ง. \\t 4. รหัสรูปแบบข้อมูล ในคาสั่ง printf และคาสัง่ scanf ข้อใดที่ใช้สาหรับข้อมูล ชนิดจานวนเตม็ (int) ชนิดจานวนจริง (float) และชนิดอักขระ ตามลาดบั * ก. %f , %f , %c ข. %f , %d , %c ค. %d , %f , %c ง. %d , %d , %c
34 5. %10.2f ในคาส่ัง printf หมายความว่าอย่างไร* ก. แสดงจานวนเต็ม 7 ตาแหน่ง ทศนิยม 2 ตาแหน่ง ข. แสดงจานวนเต็ม 8 ตาแหนง่ ทศนิยม 2 ตาแหน่ง ค. แสดงจานวนเต็ม 10 ตาแหน่ง ทศนิยม 2 ตาแหน่ง ง. แสดงจานวนทศนิยม 12 ตาแหน่ง 6. กาหนดให้ x = 10.5 แล้วในคาสัง่ printf(\"%5.2f\", x); จะแสดงผลลัพธ์อย่างไร ก. 10.500000 ข. 10.500000000 ค. 10.5 ง. 10.50 7. ก่อนท่ีจะเรียกใช้คาส่ัง printf และ scanf ได้ ต้องทาข้นั ตอนใดก่อน* ก. #include <string.h> ข. #include <stdio.h> ค. #include <conio.h> ง. #include <stdlib.h> 8. คาส่ัง scanf ในเคร่อื งหมาย \" \" มีไว้กาหนดอะไร* ก. ตัวแปร ข. ข้อความ ค. รหัสรูปแบบข้อมูล ง. รหัสควบคุมการแสดงผล 9. กาหนดให้ num เป็นตัวแปรชนิดจานวนเต็ม แล้วข้อใดใช้คาสั่ง scanf ได้ถกู ตอ้ ง* ก. scanf(\"%d\" , &num); ข. scanf(\"%d\" , num); ค. scanf(\"%f\" , num); ง. scanf(\"%f\" , &num); 10. กาหนดให้ x , y เปน็ ตัวแปรชนิดจานวนจริง แล้วข้อใดใช้คาส่ัง scanf รับค่า 2 จานวน ได้ถูกต้อง * ก. scanf(\"%f %f\" , &x , &y ); ข. scanf(\"%d %d\" , x , y ); ค. scanf(\"%d %d\" , &x , &y ); ง. scanf(\"%f %f\" , x , y );
35 เฉลยแบบทดสอบหลังเรยี น ขอ้ ที่ คำตอบ 1ข 2ง 3ค 4ค 5ก 6ง 7ข 8ค 9ก 10 ข
36 บรรณำนกุ รม กลุ รพี ศิวาพรรกั ษ์. (2557). เทคโนโลยีสำรสนเทศและคอมพวิ เตอร์ 4-6. กรงุ เทพฯ : สานกั พิมพ์เอมพันธ.์ พฒั พงษ์ อมรวงศ์. (2554). กำรเขยี นโปรแกรมภำษำซี. ปทุมธานี : มเี ดยี อินเทลลเิ จนซ์ เทคโนโลยี. มัณฑนา ปราการสมุทร. (2534). กำรเขียนชุดคำสั่งภำษำซี. กรงุ เทพมหานคร : ดวงกมลสมยั . สถาบนั ส่งเสริมการสอนวทิ ยาศาสตรแ์ ละเทคโนโลยี กระทรวงศึกษาธกิ าร. (2551). ภำษำซชี ่วงช้นั ที่ 4 ชั้นมัธยมศกึ ษำปที ่ี 4 - 6. กรุงเทพฯ : โรงพมิ พ์ คุรุสภาลาดพร้าว. ส่งเสริมการสอนวิทยาศาสตรแ์ ละเทคโนโลยี กระทรวงศึกษาธกิ าร, สถาบัน. (2560). ตวั ชีว้ ัดและสำระกำรเรยี นรแู้ กนกลำง กลมุ่ สำระกำรเรยี นรูว้ ิทยำศำสตร์ (ฉบบั ปรับปรงุ พ.ศ. 2560) ตำมหลักสูตรแกนกลำงกำรศกึ ษำขน้ั พืน้ ฐำน พุทธศกั รำช 2551. กรุงเทพฯ : โรงพิมพช์ ุมชนสหกรณก์ ารเกษตรแห่งประเทศ ไทยจากดั . โอภาส เอย่ี มสิริวงศ์. (2552). กำรเขียนโปรแกรมดว้ ยภำษำซี (Programming with C). กรงุ เทพมหานคร : ซีเอด็ . http://wbi.ohonline.in.th/cp/index.html
37
Search
Read the Text Version
- 1 - 45
Pages: