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 ชุดที่ 9 ข้อมูลชนิดโครงสร้าง-และการจัดการแฟ้มข้อมูล

ชุดที่ 9 ข้อมูลชนิดโครงสร้าง-และการจัดการแฟ้มข้อมูล

Published by kruraphiphon2019, 2022-06-15 06:47:46

Description: ชุดที่ 9 ข้อมูลชนิดโครงสร้าง-และการจัดการแฟ้มข้อมูล

Search

Read the Text Version

นางรพพี ร นามมุลตรี ตาแหน่ง ครู วิทยฐานะ ครชู านาญการพิเศษ

คานา สำหรับชุดกิจกรรมกำรเรียนรู้แบบอิเล็กทรอนิกส์ วชิ ำ กำรเขียนโปรแกรมภำษำซี (ง33205) กลุ่มสำระกำรเรียนรู้กำรงำนอำชีพและเทคโนโลยี สำหรับนักเรยี นชน้ั มัธยมศึกษำปที ี่ 6 ชุดน้ี จดั ทำข้ึน เพือ่ ใชเ้ ปน็ ส่อื ประกอบกำรจดั กจิ กรรมกำรเรยี นรูด้ ้วยกำรเรียนรูแ้ บบสบื เสำะหำควำมรู้ 7 ขั้น (7E) วชิ ำ กำรเขยี นโปรแกรมภำษำซี (ง33205) กลุ่มสำระกำรเรียนรู้กำรงำนอำชีพและเทคโนโลยี สำหรบั นกั เรยี นช้ันมัธยมศึกษำปีท่ี 6 โรงเรยี นนำโพธพ์ิ ิทยำสรรพ์ สงั กัดสำนักงำนเขตพน้ื ท่กี ำรศึกษำ มัธยมศึกษำ เขต 26 เพ่ือพัฒนำผลสัมฤทธ์ทิ ำงกำรเรยี น และทักษะกำรคิดวิเครำะห์ สังเครำะห์ และ แก้ปญั หำ ตลอดจนควำมสำมำรถในกำรใชเ้ ทคโนโลยีและกำรทำงำนรว่ มกบั ผู้อนื่ ทงั้ นี้ ชุดกิจกรรมกำรเรยี นรูแ้ บบอเิ ลก็ ทรอนกิ ส์ วชิ ำ กำรเขียนโปรแกรมภำษำซี (ง33205) กลมุ่ สำระกำรเรียนรู้กำรงำนอำชพี และเทคโนโลยี สำหรบั นกั เรียนชนั้ มัธยมศกึ ษำปที ี่ 6 จะช่วยพัฒนำ ผลสมั ฤทธิท์ ำงกำรเรยี น และทกั ษะกำรคิดวิเครำะห์ สงั เครำะห์ และแกป้ ัญหำ ตลอดจน ควำมสำมำรถในกำรใช้เทคโนโลยีและกำรทำงำนร่วมกบั ผอู้ ่ืน จำกกำรทำกจิ กรรมเสริมทักษะย่อย ต่ำงๆ ประจำเน้ือหำสำระกำรเรยี นรูท้ กี่ ำหนดให้ตำมวธิ กี ำรเรยี นรูแ้ บบสืบเสำะหำควำมรู้ มคี วำม สอดคลอ้ งตำมมำตรฐำนกำรเรียนรู้และตัวชวี้ ัด หลกั สูตรแกนกลำงกำรศึกษำขัน้ พ้นื ฐำน พุทธศกั รำช 2551 และหลักสตู รสถำนศึกษำโรงเรียนนำโพธิพ์ ิทยำสรรพ์ สงั กดั สำนกั งำนเขตพืน้ ท่ีกำรศกึ ษำ มธั ยมศกึ ษำ เขต 26 มุ่งเน้นกำรเรยี นรูด้ ว้ ยตวั เอง และทำกิจกรรมรว่ มกบั ผอู้ ื่น เพื่อให้นักเรียนรูจ้ กั เข้ำสงั คมและปรับตัวใหเ้ ข้ำกับผูอ้ ่ืนได้ ตลอดจนสำมำรถนำควำมรู้ ควำมสำมำรถไปปรบั ประยุกต์ใช้ ในชวี ติ ประจำวนั ได้ ผ้จู ัดทำขอขอบพระคุณ และคณะครูอำจำรยท์ ุกท่ำนที่ให้กำรสนับสนนุ กำรพัฒนำชดุ กิจกรรม กำรเรียนรู้แบบอิเล็กทรอนกิ ส์ วิชำ กำรเขียนโปรแกรมภำษำซี (ง33205) กลุม่ สำระกำรเรียนรู้ กำรงำนอำชพี และเทคโนโลยี สำหรับนักเรียนชัน้ มัธยมศกึ ษำปีท่ี 6 นี้ ไดส้ ำเรจ็ ตำมวตั ถุประสงค์ จนทำใหม้ ีควำมสมบรู ณ์ถูกต้องเป็นอย่ำงดี และเปน็ ประโยชน์ต่อครู นักเรียน และผสู้ นใจได้เป็นอยำ่ งดี รพพี ร นำมมลุ ตรี

คาช้ีแจง ชุดกจิ กรรมกำรเรียนรู้แบบอิเล็กทรอนิกส์ วิชำ กำรเขยี นโปรแกรมภำษำซี (ง33205) กล่มุ สำระกำรเรยี นรู้กำรงำนอำชีพและเทคโนโลยี สำหรบั นักเรยี นช้นั มัธยมศกึ ษำปีที่ 6 มีเนื้อหำสำระ สอดคล้องกบั หลักสตู รกำรศึกษำข้ันพื้นฐำน พุทธศักรำช 2551 และหลกั สูตรสถำนศึกษำตำม กระทรวงศกึ ษำธกิ ำรกำหนด ซ่ึงนับว่ำมคี วำมสำคัญอยำ่ งยงิ่ สำหรบั นกั เรยี น เพรำะถือเป็นพื้นฐำน สำคญั ของกำรใช้เทคโนโลยีในยุค 4.0 และสอดคล้องกบั กำรเรยี นรู้ในศตวรรษที่ 21 นี้ เพื่อสง่ เสรมิ และพฒั นำกำรเรยี นรูด้ ้ำนเทคโนโลยแี กน่ กั เรียน ตลอดจนทักษะกำรคิดวเิ ครำะห์ สังเครำะห์ และ กำรแกป้ ัญหำ เพื่อกำรนำไปใชใ้ นชีวติ ประจำวัน ชดุ กจิ กรรมกำรเรียนร้แู บบอเิ ลก็ ทรอนิกส์ วิชำ กำรเขียนโปรแกรมภำษำซี (ง33205) กลุ่มสำระกำรเรียนรู้กำรงำนอำชีพและเทคโนโลยี สำหรบั นกั เรียนชั้นมธั ยมศึกษำปีท่ี 6 ชดุ นี้ ท่ีไดจ้ ดั ทำขึน้ ประกอบด้วย 9 ชดุ ดงั น้ี ชดุ ที่ 1 หลักกำรเขียนโปรแกรมเบ้ืองต้น ชุดที่ 2 กำรตดิ ตัง้ โปรแกรม Dev C++ ชดุ ท่ี 3 องคป์ ระกอบของภำษำซี ตัวแปร และชนิดข้อมลู ชุดท่ี 4 นพิ จนแ์ ละตัวดำเนนิ กำร ชุดที่ 5 ฟงั กช์ ันกำรรบั แสดงผล และฟังก์ชนั ทำงคณติ ศำสตร์ ชุดที่ 6 คำสัง่ ควบคุมเงอื่ นไข และกำรทำงำนเป็นรอบ ชดุ ท่ี 7 อำร์เรยแ์ ละฟังก์ชนั จัดกำรสตรงิ ชดุ ที่ 8 กำรสรำ้ งฟงั กช์ ันและตัวแปรชนดิ พอยน์เตอร์ ชุดท่ี 9 ขอ้ มลู ชนดิ โครงสรำ้ งและกำรจัดกำรแฟ้มข้อมูล ทง้ั น้ี ชดุ กจิ กรรมกำรเรยี นรแู้ บบอเิ ลก็ ทรอนกิ ส์ วชิ ำ กำรเขียนโปรแกรมภำษำซี (ง33205) กลุม่ สำระกำรเรียนรกู้ ำรงำนอำชพี และเทคโนโลยี สำหรับนกั เรียนชัน้ มธั ยมศกึ ษำปีที่ 6 เป็นหนังสอื อิเล็กทรอนกิ ส์ โดยสำมำรถ สแกนผ่ำน QR-Code หรอื ผำ่ นลิงค์เวบ็ ไซต์ https://pubhtml5.com/bookcase/wjru เพือ่ ใช้งำนตำมปกติ พร้อมกับรปู เลม่ จริง ตำมลิงค์ ออนไลนท์ ี่แนบนี้ QR-Code

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

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

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

สมรรถนะทีส่ าคัญ (C) 1. ควำมสำมำรถในกำรแก้ปัญหำ 2. ควำมสำมำรถในกำรให้เหตุผล 3. ควำมสำมำรถในกำรสือ่ สำร 4. ควำมสำมำรถในกำรเช่อื มโยง 5. ควำมสำมำรถในกำรใชค้ วำมคิดรเิ ริม่ สร้ำงสรรค์ ภาระหนา้ ที่ / ช้นิ งาน ชุดกิจกรรมกำรเรยี นรู้แบบอเิ ลก็ ทรอนิกส์ วชิ ำ กำรเขียนโปรแกรมภำษำซี (ง33205) กลุ่มสำระกำรเรยี นรู้กำรงำนอำชีพและเทคโนโลยี สำหรบั นกั เรยี นชน้ั มธั ยมศึกษำปที ่ี 6 ชุดที่ 5 ฟังกช์ ันกำรรบั และแสดงผล และฟงั กช์ นั ทำงคณติ ศำสตร์ 1. แบบทดสอบกอ่ นเรียน 2. กจิ กรรมระหว่ำงเรียน (กจิ กรรมท่ี 1-5) 3. แบบทดสอบหลังเรยี น กระบวนการจดั กจิ กรรมการเรียนรู้ กำรเรียนรูแ้ บบสืบเสำะหำควำมรู้ 7 ขัน้ (7E) การวดั ผลประเมินผลการเรยี นรู้ 1. แบบทดสอบก่อนเรียน คะแนนเฉลย่ี ร้อยละ 80 ขน้ึ ไป จึงจะผ่ำนเกณฑ์ 2. กจิ กรรมระหวำ่ งเรียน คะแนนเฉลยี่ รอ้ ยละ 80 ขน้ึ ไป จึงจะผ่ำนเกณฑ์ 3. แบบทดสอบหลังเรยี น คะแนนเฉล่ีย รอ้ ยละ 80 ขน้ึ ไป จึงจะผ่ำนเกณฑ์ 4. แบบประเมนิ สมรรถนะทส่ี ำคญั คะแนนเฉลยี่ รอ้ ยละ 60 ขึน้ ไป จงึ จะผำ่ นเกณฑ์ 5. แบบประเมินคุณลกั ษณะอันพึงประสงค์ คะแนนเฉลี่ย ร้อยละ 60 ขน้ึ ไป จึงจะผ่ำนเกณฑ์

สารบญั คำนำ หน้า คำชแ้ี จง ก คำแนะนำสำหรับครู ข คำแนะนำสำหรบั นักเรียน ค ง ชุดกิจกรรมกำรเรยี นรู้แบบอเิ ล็กทรอนิกส์ วิชำ กำรเขยี นโปรแกรมภำษำซี (ง33205) กลุ่มสำระกำรเรียนรกู้ ำรงำนอำชพี และเทคโนโลยี สำหรับนกั เรยี นชั้นมธั ยมศึกษำปีที่ 6 จ สำรบัญ ช แบบทดสอบกอ่ นเรียน 1 กระดำษคำตอบแบบทดสอบกอ่ นเรียน 3 ใบควำมรู้ เรอื่ ง ข้อมูลชนดิ โครงสรำ้ งและกำรจัดกำรแฟ้มข้อมูล 4 23 กิจกรรมที่ 1 24 กิจกรรมที่ 2 25 กิจกรรมท่ี 3 26 กิจกรรมที่ 4 27 กจิ กรรมที่ 5 28 แบบทดสอบหลงั เรยี น 30 กระดำษคำตอบแบบทดสอบหลังเรียน 31 ภำคผนวก 32 เฉลยแบบทดสอบก่อนเรียน 33 เฉลยกิจกรรมที่ 1 34 เฉลยกิจกรรมท่ี 2 35 เฉลยกจิ กรรมที่ 3 36 เฉลยกิจกรรมท่ี 4 37 เฉลยกิจกรรมที่ 5 38 เฉลยแบบทดสอบหลังเรียน 39 แบบบนั ทกึ คะแนน 40 บรรณำนุกรม 41 ประวัติย่อผจู้ ดั ทำ

คาชี้แจง ให้นกั เรยี นเลอื กคำตอบที่ถกู ทส่ี ุดเพยี งคำตอบเดียวแลว้ ทำเครื่องหมำย X ลงใน กระดำษคำตอบ 1. ข้อมลู ชนดิ โครงสรำ้ งคล้ำยกับสงิ่ ใดต่อไปน้ี ก. เรคอร์ด ข. ฟิลด์ ค. แฟ้มข้อมูล ง. ตำรำง 2. กำรประกำศตวั แบบโครงสรำ้ งชือ่ student จะใชค้ ำสั่งใด ก. record ข. scanf ค. struct ง. fclose 3. ภำยหลังจำกกำรเปิดไฟลใ์ ชง้ ำนเป็นทีเ่ รยี บร้อยแลว้ ตอ้ งทำสิ่งใด ก. คอมไฟลโ์ ปรแกรมอีกครัง้ ข. ปดิ เคร่อื ง ค. ปดิ ไฟลด์ ว้ ย fclose() ง. ปิดไฟลด์ ้วย fopen() 4. ไบนำรีไฟลเ์ ป็นแฟ้มข้อมลู ทีจ่ ดั เกบ็ ข้อมลู ชนิดใด ก. เลขฐำนสบิ หก ข. เลขฐำนแปด ค. เลขฐำนสี่ ง. เลขฐำนสอง

5. กรณีท่ีไฟลเ์ ดิมนั้นมีข้อมูลบันทึกอยู่แล้วปรำกฏว่ำมีกำรเปิดไฟลด์ ังกลำ่ วแลว้ ทำใหข้ ้อมูลหำยหมด อยำกทรำบวำ่ เปน็ เพรำะอะไร ก. กำหนดไฟลพ์ อยน์เตอรผ์ ิด ข. เปิดไฟล์ด้วยโหมด w ค. เปิดไฟล์ดว้ ยโหมด a ง. เปดิ ไฟลด์ ้วยโหมด w+ 6. โหมดเปิดไฟล์ตำมขอ้ ใดต่อไปน้ีท่นี ำมำใชเ้ พอื่ สร้ำงไฟล์ใหม่ได้ หรือเพิม่ ขอ้ มลู ตอ่ ท้ำยได้โดยไมท่ ำ ใหข้ อ้ มลู เดมิ สูญหำย ก. โหมด w ข. โหมด a ค. โหมด a+ ง. โหมด w+ 7. ฟังกช์ ันใดต่อไปน้ี ที่สำมำรถนำมำใชบ้ ันทึกข้อมูลลงในแฟม้ เปน็ ลักำณะระเบยี นทลี ะบรรทดั ก. fprintf() ข. printf() ค. fscanf() ง. scanf() 8. ฟงั กช์ นั ใดต่อไปน้ีท่ีนำมำใช้อ่ำนขอ้ มลู จำกแฟ้ม ข. printf() ก. fprintf() ง. scanf() ค. fscanf() 9. ขอ้ ใดต่อไปน้ี เขียนผดิ ก. fprintf (fpt,“%s %d &d\\n”, name, sc1, sc2); ข. fprintf (fpt,“%s %d %d”, name, sc1, sc2); ค. fprintf (fpt,“%s %s %c %d %f %f %f\\n”, n1, n2, n3, n4, n5, n6, n7); ง. fprintf (fpt,“%s %d\\n”, txt, var1); 10. ข้อใดต่อไปน้ี เขยี นถูกต้อง ก. fscanf(“%d %d %d”); ข. fscanf(fpt, “%d %d %d\\n”, &n1, &n2, &n3); ค. fscanf(fpt, “%d %d %c”, &n1, &n2, &n3); ง. fscanf(fpt, “%d %f”, 10, 500, 5);

คาช้แี จง ใหน้ ักเรยี นเลือกคำตอบท่ีถกู ท่ีสุดเพยี งคำตอบเดียวแลว้ ทำเคร่อื งหมำย X ลงใน กระดำษคำตอบ ข้อ ก ข ค ง 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. สรุปคะแนน สรุปผล ผา่ น ไม่ผ่าน คะแนนเต็ม คะแนนท่ีได้ ……………...…. …………………. 10 คะแนน ………………. คะแนน

สมำชิกทจ่ี ดั เก็บอยู่ในตวั แปรอำรเ์ รย์ลว้ นเปน็ ชนิดเดยี วกันทั้งส้นิ ดังนน้ั ในกำรจัดกำรกบั ชดุ ขอ้ มลู ที่มีชนดิ ขอ้ มูลต่ำงๆ หลำยชนิดรวมกนั หรอื ท่ีเรียกว่ำ “เรคอรด์ ” จึงนำหลักกำรของอำรเ์ รย์ มำใช้งำนไมไ่ ด้ ในภำษำซีได้เตรียมข้อมูลชนิดหน่งึ ที่เรยี กว่ำ “ข้อมูลโครงสรา้ ง” ซึ่งมีรูปแบบกำรจดั เก็บ ข้อมลู เหมือนกบั เรคอร์ดท่ีแต่ละฟิลด์ภำยในเรคอรด์ น้นั สำมำรถมชี นดิ ข้อมลู แตกตำ่ งกันได้ ตัวอย่ำงเช่น เรคอรด์ ของพนักงำน ซึ่งประกอบด้วยฟิลดต์ ่ำงๆ ดงั นี้ ชอื่ ฟิลด์ ตำรำงท่ี 1 Employee ชนดิ ข้อมลู id ความหมาย ตัวอกั ษร 5 ตวั รหัสพนกั งำน ตัวอักษร 20 ตวั name ช่อื พนักงำน gender ตวั อักขระ experience เพศ เลขจำนวนเต็ม salary ประสบกำรณ์ (ปี) เลขจำนวนจรงิ เลขจำนวนจรงิ ot เงินเดือน เลขจำนวนจริง tax คำ่ ล่วงเวลำ เลขจำนวนจรงิ income ภำษี รำยได้ จะพบว่ำฟิลด์ตำ่ งๆ ทบ่ี รรจุอยู่ในเรคอร์ดชื่อ Employee น้ัน สำมำรถมีชนิดข้อมูล ที่แตกตำ่ งกัน ดังน้ันข้อมูลโครงสร้ำงจงึ หมำยถงึ แหล่งรวมของกลุ่มขอ้ มลู ท่ีมีควำมสัมพนั ธ์กันท่ีบรรจุ อยภู่ ำยในระเบยี นหน่ึงๆ สำหรับกำรประกำศตัวแบบโครงสร้ำงในภำษำซี มรี ูปแบบกำรเขียน ดงั น้ี รูปแบบ struct tag { member_1; member_2; :: member_n; }

โดยท่ี หมำยถงึ คำท่ีใชก้ ำหนดตัวแบบโครงสรำ้ ง Struct หมำยถึง ชื่อโครงสรำ้ ง tag หมำยถงึ สมำชกิ ภำยในโครงสร้ำง member struct employee { char id[5]; char name[20]; char gender; int experience; float salary; float ot; float tax; float income; }; ภำพท่ี 1 ตวั อยำ่ งกำรประกำศตวั แบบโครงสร้ำง employee จำกตัวอย่ำงขำ้ งตน้ เม่ือมีกำรประกำศตวั แบบโครงสรำ้ งชือ่ employee แลว้ ยังไม่สำมำรถ นำมำใชง้ ำนได้ เนอ่ื งจำกกำรประกำศดงั กล่ำวเป็นเพยี งกำรสร้ำงตวั แบบขึ้นมำเท่ำนั้น ดังน้ันเมอื่ ตอ้ งกำรใช้งำนจึงต้องมีกำรประกำศตวั แปรขึน้ มำ เพื่อใหต้ ัวแปรนไี้ ปใช้อ้ำงอิงบนตวั แบบโครงสร้ำง ท่ีสร้ำงขนึ้ ตัวอย่ำงกำรประกำศตวั แบบโครงสรำ้ ง employee พรอ้ มกำหนดตวั แปรช่อื emp ทใ่ี ช้ อ้ำงอิงสมำชิกภำยในโครงสร้ำง struct employee { //กำหนดตัวแบบโครงสร้ำงช่อื employee char id[5]; char name[20]; char gender; int experience; float salary; float ot; float tax; float income; }; struct employee emp; //กำหนดตวั แปรโครงสร้ำงในภำยหลัง ภำพที่ 2 ตัวอย่ำงกำหนดตัวแปรโครงสรำ้ งในภำยหลัง ชุดคำสงั่ ข้ำงต้น เป็นกำรประกำศตัวแปรโครงสรำ้ งภำยหลัง แต่กรณีทต่ี อ้ งกำรประกำศ ตวั แปรใหก้ ับโครงสรำ้ งโดยทันทเี มื่อได้สร้ำงตัวแบบขน้ึ มำ กส็ ำมำรถเขียนได้ดงั นี้

struct employee { char id[5]; char name[20]; char gender; int experience; float salary; float ot; float tax; float income; } emp; //กำหนดตวั แปรโครงสร้ำงโดยทนั ที ภำพท่ี 3 ตัวอยำ่ งกำรประกำศตัวแบบโครงสร้ำงโดยทนั ที และเม่ือตอ้ งกำรอำ้ งอิงสมำชิกแต่ละตัวภำยในโครงสร้ำง รวมถึงกำรกำหนดค่ำก็จะเขยี นไดด้ งั นี้ printf(\"Name %s \\n\", emp.name); printf(\"Salary %.2f \\n\", emp.salary); emp.gender = 'M'; ภำพท่ี 4 ตัวอย่ำงกำรอ้ำงสมำชิกและกำรกำหนดค่ำ อย่ำงไรกต็ ำมกรณีทีต่ อ้ งกำรใช้ตวั แปรมำกกวำ่ 1 ตวั ในกำรอ้ำงอิงตวั แบบโครงสรำ้ งดังกล่ำว กส็ ำมำรถทำได้ ด้วยกำรใช้เครือ่ งหมำย , ตำมด้วยตวั แปรท่ีกำหนดขึ้น เชน่ struct employee { //กำหนดตัวแปรโครงสร้ำงมำกกว่ำ 1 ตวั แปร char id[5]; char name[20]; char gender; int experience; float salary; float ot; float tax; float income; } emp1, emp2; ภำพท่ี 5 ตัวอยำ่ งกรณีท่ีต้องกำรใช้ตัวแปรมำกกว่ำ 1 ตวั แปร น่นั หมำยควำมว่ำทัง้ ตัวแปร emp1 และ emp2 จะเปน็ ตวั แปรชนิดโครงสรำ้ งทเี่ ป็นไปตำม ตวั แบบโครงสร้ำงช่อื employee นน่ั เอง หรืออำจประกำศตัวแปรโครงสร้ำงในภำยหลัง ด้วยชุดคำสั่งดงั น้ี struct employee emp1, emp2; //ประกำศตวั แปรโครงสร้ำงในภำยหลัง

1: #include <stdio.h> 2: 3: int main() 4: { 5: struct employee { 6: char id[6]; 7: char name[20]; 8: char gender; 9: int experience; 10: float salary; 11: float ot; 12: float tax; 13: float income; 14: }; 15: struct employee emp1={\"00001\",\"Somsak\",'M',3,12000,0,200,11800}; 16: struct employee emp2={\"00002\",\"Somsri\",'F',3,10000,10000,180,12820}; 18: 19: printf(\"%s %s %c %d %8.2f %8.2f %8.2f %8.2f\\n\", 20: emp1.id, emp1.name, emp1.gender,emp1.experience, 21: emp1.salary, emp1.ot, emp1.tax, emp1.income); 22: 23: printf(\"%s %s %c %d %8.2f %8.2f %8.2f %8.2f\\n\", 24: emp2.id, emp2.name, emp2.gender,emp2.experience, 25: emp2.salary, emp2.ot, emp2.tax, emp2.income); 26: } ภำพท่ี 6 กำรประกำศตัวแปรโครงสรำ้ งพร้อมกำหนดค่ำเริ่มตน้ ตำรำงท่ี 2 คำอธิบำยโปรแกรมกำรประกำศตัวแปรโครงสรำ้ งพร้อมกำหนดคำ่ เรมิ่ ตน้ บรรทดั ที่ ความหมาย 5-14 ประกำศตวั แปรแบบโครงสร้ำงชอื่ employee 16 ประกำศตัวแปร emp1 เปน็ ตัวแปรโครงสร้ำงของ employee พรอ้ มกำหนดค่ำ เร่มิ ตน้ 17 ประกำศตวั แปร emp2 เป็นตัวแปรโครงสรำ้ งของ employee พร้อมกำหนดคำ่ เร่มิ ต้น 19-21 พิมพ์ข้อมลู ของพนักงำนคนท่ี 1 (emp1) 23-25 พมิ พข์ ้อมูลของพนักงำนคนท่ี 2 (emp1) ภำพที่ 7 ผลลพั ธจ์ ำกกำรรนั โปรแกรมประกำศตัวแปรโครงสร้ำงพร้อมกำหนดค่ำเร่ิมต้น

1: #include <stdio.h> 2: #include <conio.h> 3: 4: void input(void); 5: void report(void); 6: 7: struct employee { 8: char id[6]; 9: char name[20]; 10: char gender; 11: float experience; 12: float salary; 13: float ot; 14: float tax; 15: float income; 16: } emp; 17: 18: int main() 19: { 20: input(); 21: puts(\"\\nPress any key to display report...\"); 22: getch(); 23: 24: report(); 25: } 26: 27: void input(void) 28: { 29: printf(\"* Input Employee Date *\\n\"); 30: printf(\"ID : \"); 31: gets(emp.id); 32: 33: printf(\"Name : \"); 34: gets(emp.name); 35: 36: printf(\"Gender : \"); 37: scanf(\"%c\", &emp.gender); 38: 39: printf(\"Experience : \"); 40: scanf(\"%d\", &emp.experience); 41: 42: printf(\"Salary : \"); 43: scanf(\"%f\", &emp.salary); 44: 45: printf(\"Overtime : \"); 46: scanf(\"%f\", &emp.ot); 47: 48: emp.tax = (emp.salary + emp.ot) * 0.02; 49: emp.income = emp.salary + emp.ot – emp.tax; 50: 51: } 52: 53: void report(void)

23: 24: report(); 25: } 26: 27: void input(void) 28: { 29: printf(\"* Input Employee Date *\\n\"); 30: printf(\"ID : \"); 31: gets(emp.id); 32: 33: printf(\"Name : \"); 34: gets(emp.name); 35: 36: printf(\"Gender : \"); 37: scanf(\"%c\", &emp.gender); 38: 39: printf(\"Experience : \"); 40: scanf(\"%d\", &emp.experience); 41: 42: printf(\"Salary : \"); 43: scanf(\"%f\", &emp.salary); 44: 45: printf(\"Overtime : \"); 46: scanf(\"%f\", &emp.ot); 47: 48: emp.tax = (emp.salary + emp.ot) * 0.02; 49: emp.income = emp.salary + emp.ot – emp.tax; 50: 51: } 52: 53: void report(void) 54: { 55: //พมิ พร์ ำยงำน 56: printf(\"* Display Data *\\n\"); 57: printf(\"ID : %s\\n\", emp.id); 58: printf(\"Name : %s\\n\", emp.name); 59: printf(\"Gender : %c\\n\", emp.gender); 60: printf(\"Experience: %d Year\\n\", emp.experience); 61: printf(\"Salary : %8.2f Baht\\n\", emp.salary); 62: printf(\"Overtime : %8.2f Baht\\n\", emp.ot); 63: printf(\"Tax 2%c : %8.2f Baht\\n\", '%', emp.tax); 64: printf(\"Net Income: %8.2f Baht\\n\", emp.income); 65 } ภำพท่ี 8 โปรแกรมกำรนำตวั แปรโครงสร้ำงไปใชง้ ำน

บรรทดั ท่ี ตำรำงท่ี 3 คำอธบิ ำยโปรแกรมกำรนำตวั แปรโครงสรำ้ งไปใชง้ ำน 4 ความหมาย 5 ประกำศฟงั ก์ชันตน้ แบบช่ือ input() 7-16 ประกำศฟงั ก์ชนั ตน้ แบบชือ่ report() ประกำศตวั แบบโครงสร้ำงชื่อ employee พร้อมทั้งประกำศตัวแปรโครงสรำ้ งชอ่ื 18 emp 20 ฟังก์ชัน main() 24 เรยี กใช้งำนฟังกช์ นั input() 27 เรยี กใชง้ ำนฟังก์ชนั report() 29-46 ฟงั ก์ชนั input() 48 พิมพข์ ้อควำมตำ่ งๆ พร้อมรับค่ำข้อมูลโครงสร้ำงเก็บไวใ้ นตัวแปร 49 คำนวณภำษี 2% จำกยอดเงินเดือนและค่ำล่วงเวลำ 53 คำนวณรำยไดส้ ุทธิ 56-64 ฟงั กช์ นั report() สงั่ พิมพ์ตวั แปรโครงสรำ้ ง ภำพที่ 9 ผลลัพธจ์ ำกกำรรนั โปรแกรมกำรนำตัวแปรโครงสร้ำงไปใชง้ ำน สำหรบั กรณีท่ีต้องกำรจดั เก็บข้อมลู โครงสร้ำงจำนวนมำกหรือหลำยๆ เรคอร์ด กำรประกำศ ตัวแปรโครงสรำ้ งหลำยๆ ตวั แปรคงไม่เหมะสม ดังนั้นวธิ แี ก้ไขกค็ ือกำรนำอำร์เรย์มำใช้ ด้วยกำร กำหนดเป็นอำรเ์ รยข์ องโครงสร้ำง อ้ำงองิ ถึงตัวแบบโครงสร้ำงชอื่ employee โดยจะสร้ำงอำร์เรยข์ องโครงสร้ำงว่ำ struct employee emp[10]; ดงั น้นั เม่ือต้องกำรอ้ำงองิ ชื่อพนกั งำนในตำแหนง่ อลิ ิเมนต์ท่ี 10 ก็จะเขียนว่ำ printf(\"Name : %s \\n\", emp[9].name;

หรอื กรณีกำหนดค่ำให้ ก็จะเขียนเปน็ strcpy(emp[9].name, \"Songsri\"); emp[9].salary = 15000; 1: #include <stdio.h> 2: #include <conio.h> 3: 4: void input(void); 5: void report(void); 6: void line(void); 7: 8: struct employee { 9: char id[6]; 10: char name[20]; 11: char gender; 12: float experience; 13: float salary; 14: float ot; 15: float tax; 16: float income; 17: } emp[10]; 18: 19: int main() 20: { 21: input(); 22: puts(\"\\nPress any key to display report...\"); 23: getch(); 24: clrscr(); 25: report(); 26: } 27: 28: void input(void) 29: { 30: for(int i = 0; i< 10; i++) 31: { 32: printf(\"\\n* Input Employee Date *\\n\"); 33: printf(\"%2d. ID : \", i + 1); 34: scanf(\"%s\", emp[i].id); 35: fflush(stdin); 36: 37: printf(\" Name : \"); 38: gets(emp[i].name); 39: 40: printf(\" Gender : \"); 41: scanf(\"%c\", &emp[i].gender); 42: 43: printf(\" Experience : \"); 44: scanf(\"%d\", &emp[i].experience); 45: 46: printf(\" Salary : \"); 47: scanf(\"%f\", &emp[i].salary); 48: 49: printf(\"Overtime : \"); 50: scanf(\"%f\", &emp[i].ot); 51: 52: emp[i].tax = (emp[i].salary + emp[i].ot) * 0.02; 53: emp[i].income = emp[i].salary + emp[i].ot – emp[i].tax; 54: } 55: } 56: 57: void report(void) 58: { 59: printf(\"\\t\\t\\t*** Payroll Report ***\\n\"); 60: line(); 61: printf(\"Seq. ID Name Gender Expr. Salary OT\"); 62: printf(\" Tax Income\\n\"); 63: line(); 64:

45: 46: printf(\" Salary : \"); 47: scanf(\"%f\", &emp[i].salary); 48: 49: printf(\"Overtime : \"); 50: scanf(\"%f\", &emp[i].ot); 51: 52: emp[i].tax = (emp[i].salary + emp[i].ot) * 0.02; 53: emp[i].income = emp[i].salary + emp[i].ot – emp[i].tax; 54: } 55: } 56: 57: void report(void) 58: { 59: printf(\"\\t\\t\\t*** Payroll Report ***\\n\"); 60: line(); 61: printf(\"Seq. ID Name Gender Expr. Salary OT\"); 62: printf(\" Tax Income\\n\"); 63: line(); 64: 65: for(int i=0; i< 10; i++) 66: { 67: printf(\"%2d %5s %-10s %c %8d %12.2f %8.2f %10.2f\\n\",i+1, 68: emp[i].id, emp[i].name, emp[i].gender, emp[i].experience, 69: emp[i].salary, emp[i].ot, emp[i].tax, emp[i].income); 70: } 71: line(); 72: } 73: 74: void line(void) 75: { 76: for(int i=1; i<=72; i++) 77: printf(\"=\"); 78: putchar('\\n'); 79: } ภำพที่ 10 โปรแกรมใชอ้ ำร์เรยข์ องตัวแปรโครงสรำ้ งไปใชง้ ำน ตำรำงท่ี 4 คำอธบิ ำยโปรแกรมกำรใชอ้ ำรเ์ รย์ของตัวแปรโครงสรำ้ งไปใชง้ ำน บรรทดั ที่ ความหมาย 4 ประกำศฟังกช์ ันตน้ แบบชอ่ื input() 5 ประกำศฟงั ก์ชันตน้ แบบชื่อ report() 6 ประกำศฟังกช์ นั ตน้ แบบชอื่ line() 8-17 กำหนดตัวแบบโครงสรำ้ งชื่อ employee พรอ้ มทง้ั ประกำศตัวแปรโครงสรำ้ งช่ือ emp โดยเป็นชนิดตวั แปรอำร์เรยข์ องโครงสร้ำงขนำด 10 อิลิเมนต์ 19 ฟงั ก์ชัน main() ซึง่ เปน็ ฟังก์ชันหลัก 21 เรยี กใชง้ ำนฟังกช์ ัน input() 25 เรยี กใชง้ ำนฟังก์ชนั report() 28 ฟังกช์ นั input() ซ่งึ เป็นฟงั กช์ ันทีส่ รำ้ งขน้ึ เอง ท่ีใช้สำหรับรับคำ่ ข้อมลู และคำนวณเงินได้ 30 สร้ำงลปู เพ่ือทำซำ้ จำนวน 10 รอบ 32-50 พมิ พ์ข้อควำมและรบั ค่ำ เพือ่ จดั เกบ็ ไวใ้ นตัวแปรอำร์เรยข์ องโครสรำ้ งของแตล่ ะอลิ ิเมนต์

(ตอ่ ) คำนวณภำษี 2% 52 คำนวณรำยไดส้ ุทธิ 53 ฟงั กช์ ัน report() ซ่งึ เปน็ ฟังก์ชันทส่ี ร้ำงข้ึนเองทใี่ ชส้ ำหรบั สงั่ พมิ พร์ ำยงำน 57 พิมพ์ชอ่ื รำยงำน 59 เรยี กใช้ฟังก์ชนั line() เพ่ือตีเส้น 60 พมิ พห์ วั ขอ้ ของแตล่ ะคอลมั น์ในรำยงำน 62-62 เรยี กใช้ฟังกช์ ัน line() เพ่ือตเี สน้ 63 ลปู ทำซ้ำจำนวน 10 รอบ 65 ส่ังพมิ พ์คำ่ ตัวแปรอำร์เรย์ของโครงสร้ำงในแต่ละอลิ เิ มนต์ 67-69 เรียกใช้ฟังกช์ ัน line() เพื่อตเี ส้น 71 ภำพที่ 11 ผลลัพธ์จำกกำรรนั โปรแกรมกำรใช้อำร์เรยข์ องตัวแปรโครงสรำ้ งไปใช้งำน และจำกตัวอยำ่ งภำพท่ี 11 น้ีเอง จะพบว่ำกำรใชง้ ำนอำรเ์ รย์ของโครงสร้ำงนัน้ เหมำะสมกบั กรณที ี่ต้องกำรจัดเก็บข้อมลู ในลกั ษณะเรคอร์ด หรอื ระเบียนท่ีชดุ ขอ้ มูลภำยในสำมำรถมีชนิดขอ้ มลู ทีแ่ ตกตำ่ งกันได้ และต้องกำรจัดเก็บหลำยเรคอร์ด และจำกควำมรตู้ รงจดุ นเ้ี องท่ีสำมำรถนำหลกั กำร ดังกลำ่ วไปใช้เพ่อื กำรบนั ทึกเรคอร์ดลงในแฟ้มข้อมลู ได้

กำรจดั เกบ็ ขอ้ มลู ที่ป้อนผำ่ นทำงแปน้ พิมพ์นั้น หำกจบโปรแกรมแลว้ สั่งรนั ใหม่ นัน่ หมำยถึง ข้อมูลที่เคยป้อนไปน้นั จะหำยหมดจำเป็นต้องป้อนใหม่ เนื่องจำกข้อมลู เหล่ำนนั้ ถูกบันทึกอยใู่ น หนว่ ยควำมจำหลัก ซ่ึงเปน็ หน่วยควำมจำแบบชวั่ ครำวนน่ั เอง ดงั นนั้ ในกรณีทตี่ ้องกำรจดั เก็บขอ้ มลู ทเ่ี คยป้อนไปแล้ว และสำมำรถนำกลบั มำใช้งำนได้ใน ภำยหลังได้ จงึ จำเปน็ ตอ้ งใชอ้ ีกวธิ หี นึง่ นั่นก็คือกำรบันทึกข้อมลู ลงในแฟม้ ขอ้ มลู ซ่งึ แฟ้มขอ้ มูลนเ้ี อง จะถกู จัดเก็บไวใ้ นหน่วยควำมจำสำรองอยำ่ งเชน่ ฮำร์ดดสิ ก์ เปน็ ต้น สาหรับประเภทแฟ้มข้อมลู จะประกอบดว้ ย 2 ชนิด คอื 1. เทก็ ซ์ไฟล์ (Text Files) คำว่ำ เทก็ ซ์ไฟล์ ควำมหมำยก็บง่ บอกอยแู่ ล้ววำ่ เปน็ แฟ้มท่ี จัดเก็บข้อควำม ซ่ึงมคี ุณลักษณะสำคัญคือจะบันทกึ ข้อมูลท่ีเป็นข้อควำมตำ่ งๆ ตำมรหัสแอสกีของ แต่ละตัวอักขระ ดงั นั้นเท็กซ์ไฟจึงสำมำรถถูกเปิดอำ่ นด้วยโปรแกรม Notepad ได้ และสำมำรถอำ่ น ข้อควำมทบี่ นั ทึกไว้ได้อยำ่ งเข้ำใจ อย่ำงไรก็ตำมสำหรับเรคอร์ดที่ถูกบันทึกลงในเท็กซ์ไฟล์นั้น ในแตล่ ะเรคอรด์ จะตอ้ งถูกปิดท้ำยดว้ ยรหัสปดั บรรทดั ใหม่ (\\n) ด้วย เพอ่ื ให้รบั รู้ว่ำแตล่ ะบรรทัดจะ เปน็ ข้อมลู ของเรคอร์ดนนั้ ๆ 2. ไบนารไี ฟล์ (Binary Files) เป็นแฟม้ ข้อมลู ท่จี ัดเก็บขอ้ มูลชนดิ เลขฐำนสอง ดงั นัน้ ไบนำรี ไฟลเ์ ม่ือถูกเปิดดว้ ย โปรแกรม Notepad แล้ว จะเป็นรหัสข้อมูลต่ำงๆ ทเี่ รำไม่สำมำรถอ่ำนได้อยำ่ ง เขำ้ ใจเนอ่ื งจำกเป็นภำษำเครื่องนน่ั เอง อย่ำงไรกต็ ำมในที่น้ีจะขอกล่ำวถึงกำรจดั กำรแฟ้มข้อมลู บนเท็กไฟล์เท่ำนั้น ซึง่ จะเกีย่ วขอ้ งกับ กำรบันทกึ ขอ้ มูล และกำรดึงข้อมลู ออกมำใชง้ ำน ทั้งน้ีกำรท่ีจะเขียนโปรแกรมเพื่อจัดกำรกับ แฟม้ ขอ้ มูลได้น้นั จำเป็นต้องเรียนรู้ถึงชุดคำส่งั ที่เกีย่ วข้องตำ่ งๆ ดว้ ย กำรจดั กำรกับแฟ้มข้อมลู ในภำษำซีจะเกยี่ วข้องกับตัวแปรพอยน์เตอร์ ซ่ึงพอยน์เตอร์จะนำไป ช้ีระบุถงึ ตำแหน่งเรคอร์ดรวมถึงกำรดำเนนิ งำนเก่ยี วกบั กำรเปิดแฟม้ ข้อมูลและปิดแฟ้มข้อมลู 1. ฟังก์ชัน fopen() เป็นฟังกช์ ันท่นี ำมำใชเ้ พอื่ กำรเปดิ แฟ้มข้อมูล รูปแบบ FILE *fpt; fpt = fopen(filename, mode); โดยที่ หมำยถงึ ชุดคำสัง่ ท่ีดำเนนิ เก่ียวกับไฟล์ FILE หมำยถงึ กำหนดใหต้ วั แปร fpt เป็นไฟล์พอยน์เตอร์ *fpt หมำยถงึ ฟังก์ชันทน่ี ำมำใช้เพ่อื กำรเปดิ ไฟล์ fopen หมำยถึง ชือ่ แฟม้ ขอ้ มลู filename หมำยถงึ โหมดกำรทำงำนของแฟ้ม ซ่ึงประกอบดว้ ย mode

ตำรำงที่ 5 โหมดต่ำงๆ โหมด ความหมาย “W” สร้ำงเทก็ ซ์ไฟล์ใหม่ เพ่ือบันทึกข้อมลู “r” เปิดเท็กซ์ไฟล์ เพอ่ื อำ่ นขอ้ มูล “a” เปิดเทก็ ซ์ไฟล์ เพื่อบันทึกขอ้ มูลเพิ่มเตมิ (ต่อทำ้ ย) “r+” เปิดเท็กซ์ไฟล์ใหม่ เพื่ออำ่ นหรอื บันทกึ ขอ้ มลู “w+” สร้ำงเท็กซ์ไฟล์ใหม่ เพือ่อำ่ นหรอื บนั ทึกข้อมูล “a+” เปดิ เท็กซ์ไฟลเ์ พ่ือบันทึกข้อมูลเพ่มิ เตมิ หรือสร้ำงใหม่กรณีไม่พบชื่อแฟ้ม ตวั อยำ่ งกำรเปิดไฟลโ์ หมด “w” เพอื่ สรำ้ งเท็กซ์ไฟล์ใหม่ FILE *fpt; fpt = fopen(\"c:\\\\myData.txt\", \"w\"); หมำยควำมว่ำ ได้กำหนดตัวแปร fpt เป็นไฟล์พอยน์เตอร์และให้ fpt ท่ีเป็นตัวแปรไฟล์พอยน์ เตอรน์ น้ั ชี้ไปยังตำแหน่งแรกของแฟม้ ขอ้ มลู ช่อื myData.txt ดว้ ยโหมด “w” ซึ่งเป็นกำรสร้ำงเท็กซ์ ไฟล์ใหม่ อย่ำงไรก็ตำมโหมด “w” จะส่งผลให้ไฟล์ดังกล่ำวถกู สรำ้ งขึ้นและหำกไฟล์นี้มีอยู่ก่อนและ มขี ้อมลู บรรจอุ ยกู่ จ็ ะถูกลบออกไปทั้งหมด ดังนัน้ จงึ ควรเลือกโหมดใชง้ ำนให้ถูกต้องดว้ ย สำหรับไฟลข์ ้อมูลชื่อ myData.txt ทส่ี ร้ำงข้นึ นั้นจะอยภู่ ำยในโฟลเดอร์ c:\\ หรือ c:\\myData.txt ซึ่งจะพบวำ่ ในทีน่ ี้ไดเ้ ขียนในรูปแบบ c:\\\\myData.txt ทง้ั น้ีเนื่องจำกหำกใช้ เคร่อื งหมำย \\ ในภำษำซีจะหมำยถึงกำรใช้รหสั พเิ ศษ ดงั นั้นเมื่อต้องกำรอำ้ งอิงถงึ พำธของไฟล์ข้อมูล จึงจำเปน็ ต้องใช้เคร่ืองหมำย \\\\ แทน อย่ำงไรกต็ ำมในภำษำซยี ังอนุญำตใหใ้ ชเ้ คร่ืองหมำย / แทนกไ็ ด้ ดงั น้นั จึงสำมำรถเขียนใหม่ได้ ดงั น้ี fpt = fopen(\"c:\\\\myData.txt\", \"w\"); ซง่ึ สำมำรถใชง้ ำนแทนกนั ไดเ้ ช่นกัน 2. ฟังก์ชัน fclose() เป็นฟงั กช์ ันท่ใี ชส้ ำหรบั ปิดแฟ้มข้อมูล โดยหลงั จำกท่ไี ดเ้ ปิดแฟม้ ข้อมลู ด้วยฟังกช์ ัน fopen() เพื่อใช้งำนแล้ว หำกเลิกใชง้ ำนกจ็ ะต้องปดิ แฟ้มข้อมลู ด้วยฟงั ก์ชนั fclose() ดว้ ย รปู แบบ fclose (fpt); โดยท่ี หมำยถงึ ฟังกช์ นั ทน่ี ำมำใชเ้ พอื่ กำรปดิ แฟ้มข้อมลู fclose() หมำยถงึ ตัวแปรไฟล์พอยน์เตอร์ fpt

ตวั อย่างเช่น FILE *file1; file = fopen(\"c:\\\\data\\\\emp.txt\", \"w\"); :: : :: : fclose(file); //ปิ ดแฟ้มข้อมูล 3. ฟังก์ชนั fprintf0 เป็นฟงั กช์ นั ทใี่ ชส้ ำหรบั บนั ทึกขอ้ มลู ลงในแฟม้ รปู แบบ fprintf(fpt, \"formatControlSting\", printList); โดยท่ี หมำยถึง ฟงั ก์ชนั ท่นี ำมำใชเ้ พื่อกำรสัง่ ให้บันทึกข้อมูลลงในแฟ้ม fprintf หมำยถึง ตวั แปรไฟลพ์ อยน์เตอร์ fpt หมำยถงึ ตวั แบบข้อมูล ซ่ึงกำรใชง้ ำนเหมอื นกบั ฟังก์ชัน print() formatControlSting หมำยถงึ ตวั แปร ซงึ่ จะต้องสัมพันธก์ บั ตวั แบบข้อมูล printList ตัวอย่างเชน่ //บนั ทึกข้อมลู ลงในแฟ้ม FILE *file1; file = fopen(\"c:\\\\data\\\\emp.txt\", \"w+\"); :: : :: : fprintf(file1, \"%s %d\\n\", name, sc1, sc2); fclose(file); สังเกตวำ่ ได้มีกำรใสร่ หัส \\n เขำ้ ไปดว้ ย เพื่อให้ปัดบรรทัดใหม่โดยถือวำ่ ข้อมลู ในแต่ละบรรทัด เปน็ ข้อมูลของเรคอร์ดหนึง่ ๆ นน่ั เอง 4. ฟังก์ชัน fscanf0 เป็นฟงั ก์ชนั ทนี่ ำมำใช้สำหรบั อ่ำนข้อมลู จำกแฟม้ รปู แบบ fscanf(fpt, \"fotmatControlsting\", inputList); โดยที่ หมำยถึง ฟงั ก์ชนั ทน่ี ำมำใช้เพ่ือกำรส่ังให้อ่ำนข้อมูลจำกแฟ้ม fscanf หมำยถงึ ตวั แปรไฟล์พอยนเ์ ตอร์ fpt หมำยถงึ ตัวแบบข้อมูลซึ่งกำรใชง้ ำนเหมอื นกับฟังกช์ ัน scanf() formatControlSing หมำยถงึ ตวั แปร ซงึ่ จะตอ้ งสัมพันธ์กบั ตวั แบบข้อมูล inputList

ตวั อย่างเช่น FILE *file1; file = fopen(\"c:\\\\data\\\\emp.txt\", \"w+\"); :: : : :: : : fprintf(file1, \"%s %d\", name, sc1, sc2); //อำ่ นข้อมลู จำกแฟ้มและเก็บไว้ในตวั แปร prinf(\"%10s %5.2d %5.2d\\n\", name, sc1, sc2); fclose(file); 1: #include <stdio.h> 2: #include <conio.h> 3: 4:int main() 5: { 6: /*ประกำศตัวแบบโครงสร้ำง */ 7: struct employee { 8: char id[6]; 9: char name[20]; 10: char gender; 11: float experience; 12: float salary; 13: float ot; 14: float tax; 15: float income; 16: } emp[10]; 17: 18: FILE *fpt1; 19: fpt1 = fopen(\"c:\\\\coding\\\\emp.txt\", \"w\"); //สร้ำงแฟ้มขอ้ มูล 20: 21: for(int i = 0; i < 10; i++) 22: { 23: printf(\"\\n* Input Employee Date *\\n\"); 24: printf(\"%2d. ID : \", i + 1); 25: scanf(\"%s\", emp[i].id); 26: fflush(stdin); 27: 28: printf(\" Name : \"); 29: gets(emp[i].name); 30: 31: printf(\" Gender : \"); 32: scanf(\"%c\", &emp[i].gender); 33: 34: printf(\" Experience : \"); 35: scanf(\"%d\", &emp[i].experince); 36: 37: printf(\" Salary : \"); 38: scanf(\"%f\", &emp[i].salary); 39: 40: printf(\"Overtime : \"); 41: scanf(\"%f\", &emp[i].ot); 42: 43: emp[i].tax = (emp[i].salary + emp[i].ot) * 0.02; 44: emp[i].income = emp[i].salary + emp[i].ot – emp[i].tax; 45: 46: fprintf(fpt1, \"%s %s %c %d %f %f %f %f\\n\", 47: emp[i].id, emp[i].name, emp[i].gender, emp[i].experience, 48: emp[i].salary, emp[i].ot, emp[i].txt, emp[i].income); 49: } 50: fclose(fpt1); 51: }

21: for(int i = 0; i < 10; i++) 22: 23: { 24: 25: printf(\"\\n* Input Employee Date *\\n\"); 26: 27: printf(\"%2d. ID : \", i + 1); 28: 29: scanf(\"%s\", emp[i].id); 30: 31: fflush(stdin); 32: 33: printf(\" Name : \"); 34: gets(emp[i].name); 35: 36: printf(\" Gender : \"); 37: scanf(\"%c\", &emp[i].gender); 38: 39: printf(\" Experience : \"); 40: scanf(\"%d\", &emp[i].experience); 41: 42: printf(\" Salary : \"); 43: scanf(\"%f\", &emp[i].salary); 44: 45: printf(\"Overtime : \"); 46: scanf(\"%f\", &emp[i].ot); 47: 48: emp[i].tax = (emp[i].salary + emp[i].ot) * 0.02; 49: emp[i].income = emp[i].salary + emp[i].ot – emp[i].tax; 50: 51: } fprintf(fpt1, \"%s %s %c %d %f %f %f %f\\n\", emp[i].id, emp[i].name, emp[i].gender, emp[i].experience, emp[i].salary, emp[i].ot, emp[i].txt, emp[i].income); } fclose(fpt1); ภำพที่ 12 โปรแกรมบันทกึ อำร์เรย์ของโครงสรำ้ งลงในเท็กซ์ไฟล์ ตำรำงที่ 6 คำอธิบำยโปรแกรมบนั ทึกอำร์เรยข์ องโครงสรำ้ งลงในเท็กซ์ไฟล์ บรรทดั ที่ ความหมาย 7-16 ประกำศตัวแบบโครงสร้ำงช่ือ employee พร้อมท้ังประกำศตัวแปร emp เป็น อำร์เรย์ของโครงสร้ำง โดยมีขนำด 10 อลิ เิ มนต์ 18 กำหนดตวั แปร fpt1 เป็นตวั แปรไฟล์พอยนเ์ ตอร์ 19 ทำกำรเปิดแฟม้ ข้อมลู ชอ่ื emp.txt ด้วยโหมด w ซึ่งหมำยถึงกำรสร้ำงแฟม้ ข้อมลู ใหม่ 21 สร้ำงลปู เพ่ือทำซ้ำจำนวน 10 รอบ 23-41 ชุดคำสั่งที่ใช้พิมพ์ข้อควำมพร้อมรบั คำ่ ขอ้ มลู เก็บไวใ้ นตัวแปรอำร์เรยข์ องโครงสรำ้ ง 43-44 คำนวณภำษี และรำยได้ 46-48 บนั ทกึ ข้อมลู ลงในแฟ้ม 49 จดุ สน้ิ สดุ ของลูปทำซำ้ 50 ปิดแฟม้ ข้อมูล

แสดงกำรป้อนข้อมูลจนครบ 10 ชุด แฟ้ม emp.txt ทถ่ี กู สรำ้ งขึ้นมำให้ดบั เบ้ิลคลิก เพ่ือเปิดไฟล์ดงั กลำ่ วดู ข้อมลู ที่ถกู บันทกึ ลงไปในแฟม้ ภำพที่ 13 โปรแกรมบันทกึ อำร์เรย์ของโครงสร้ำงลงในเท็กซ์ไฟล์ และจำกโปรแกรมตัวอย่ำงภำพท่ี 13 นเ้ี อง เรำจะไดแ้ ฟม้ ข้อมูลท่ถี ูกสร้ำงขึน้ คือ emp.txt ซึง่ ภำยในจะบรรจุข้อมลู ต่ำงๆ ที่ไดป้ ้อนเขำ้ ไป และภำพที่ 14 ตอ่ ไปนี้ จะดำเนินกำรดงึ ข้อมูลจำกแฟม้ ดังกลำ่ วออกมำพิมพ์เปน็ รำยงำน

1: #include <stdio.h> 2: #include <conio.h> 3: 4:void line(void); 5: 6: int main() 7: { 8: char id[6], name[20], gender; 9: int experience; 10: float salary, ot, tax, income; 11: 12: FILE *fpt1; 13: fpt1 = fopen(\"c:\\\\coding\\\\emp.txt\", \"r\"); 14: 15: printf(\"\\t\\t\\t*** Payroll Report ***\\n\"); 16: line(); 17: printf(\"Seq. ID Name Gender Expr. Salary OT\"); 18: printf(\" Tax Income\\n\"); 19: line(); 20: 21: for(int i=0; i< 10; i++) 22: { 23 fscanf(fpt1, \"%s %s %c %d %f %f %f\", 24: id, name, &gender, experience, salary, ot, tax, income); 25: 26: printf(\"%2d %5c %-10s %c %8d %12.2f %8.2f %8.2f %10.2f \\n\", 27: i+1, id, name, gender, experience, salary, ot, tax, income); 28: } 29: line(); 30: fclose(fpt1); 31: } 32: 33: void line(void) 34: { 35: for(int i=1; i<=72; i++) 36: printf(\"=\"); 37: putchar('\\n'); 38: } ภำพที่ 14 โปรแกรมอ่ำนขอ้ มูลจำกเทก็ ไฟลม์ ำพิมพเ์ ปน็ รำยงำน ตำรำงที่ 7 คำอธิบำยโปรแกรมอ่ำนข้อมลู จำกเท็กไฟล์มำพิมพ์เป็นรำยงำน บรรทัดที่ ความหมาย 4 ประกำศฟังกช์ ันต้นแบบชอื่ line() 8-10 ประกำศตวั แปรทีใ่ ช้สำหรับเก็บค่ำ 12-13 เปิดแฟม้ ชื่อ emp.txt ด้วยโหมด r เพื่ออ่ำนข้อมูล 15-19 พิมพ์หัวข้อรำยงำนพร้อมเรยี กใช้ฟงั กช์ นั line() เพื่อตีเส้น 21 ลปู ทำซำ้ จำนวน 10 รอบ เพ่อื อำ่ นข้อมูลจำนวน 10 เรคอร์ด 23-24 อำ่ นข้อมลู จำกแฟ้ม และจัดเก็บไวใ้ นตัวแปร 26-27 สงั่ พิมพค์ ำ่ ตัวแปร 28 จุดส้ินสดุ ของลูปทำซ้ำ 29 เรยี กใช้ฟังกช์ ัน line() เพื่อตเี ส้น 30 ปดิ แฟม้ ข้อมูล 33-38 ชดุ คำสง่ั ภำยในฟงั ก์ชัน line()

ภำพท่ี 15 ผลลัพธ์จำกกำรรันโปรแกรมอำ่ นข้อมลู จำกเท็กไฟล์มำพิมพ์เป็นรำยงำน อย่ำงไรก็ตำมจำกตวั อย่ำงข้ำงต้น จะพบวำ่ มีกำรกำหนดจำนวนรอบทำช้ำจำนวน 10 รอบ เพ่อื อ่ำนข้อมลู ซึ่งในควำมเป็นจรงิ แล้ว จำนวนข้อมูลทอ่ี ยู่ในแฟม้ นน้ั อำจมีเท่ำไรกไ็ ด้ และเรำอำจจะไม่ รจู้ ำนวนก็ได้ ดงั น้ัน ให้พิจำรณำจำกโปรแกรมต่อไปน้ี และลองพจิ ำรณำควำมแตกต่ำงดู 1: #include <stdio.h> 2: #include <conio.h> 3: 4:void line(void); 5: 6: int main() 7: { 8: char id[6], name[20], gender; 9: int experience; 10: float salary, ot tax, income; 11: int i = 1; 12: 13: FILE *fpt1; 14: fpt1 = fopen(\"c:\\\\coding\\\\emp.txt\", \"r\"); 15: 16: printf(\"\\t\\t\\t*** Payroll Report ***\\n\"); 16: line(); 17: printf(\"Seq. ID Name Gender Expr. Salary OT\"); 18: printf(\" Tax Income\\n\"); 19: line(); 20: 21 while (fscanf(fpt1, \"%s %s %c %d %f %f %f\", 22: id, name, &gender, experience, salary, ot, tax, income)!=EOF) 23: 24: printf(\"%2d %5c %-10s %c %8d %12.2f %8.2f %8.2f %10.2f \\n\", 25: i++, id, name, gender, experience,salary, ot, tax, income); 26: 27: line(); 28: fclose(fpt1); 29: } 30: 31: 32: void line(void) 33: { 34: for(int i=1; i<=72; i++) 35: printf(\"=\"); 36: putchar('\\n'); 37: } ภำพท่ี 16 โปรแกรมอำ่ นข้อมูลจำกเท็กซ์ไฟล์มำพิมพเ์ ป็นรำยงำน โดยจะมีกำรตรวจสอบด้วยกำรวนซ้ำอ่ำนข้อมูลไปเรื่อยๆ จนกระทั่งจบแฟ้ม

กำรใช้ลูป while ในกำรควบคมุ จำกน้นั จะมีกำรตรวจสอบวำ่ ขอ้ มูลที่อ่ำนนน้ั ได้จบแฟ้มหรือ ยังดว้ ยกำรใชค้ ำวำ่ EOF (End of Fi le) ดังนั้น ลูปดังกล่ำวจะอ่ำนเรคอร์ดจำกแฟ้มข้อมูลทีละเร คอรด์ ไปจนกระท่งั จบแฟ้มข้อมลู สรปุ ทา้ ยบท ขอ้ มูลโครงสร้ำง มีรูปแบบกำรจัดเกบ็ ข้อมลู เหมือนกบั ระเบียนหรอื เรคอร์ด ที่แตล่ ะฟิลด์ ภำยในเรดอรด์ นัน้ สำมำรถมีชนดิ ข้อมูลแตกตำ่ งกนั ได้ กรณีทตี่ ้องกำรจัดเกบ็ ข้อมลู โครงสร้ำงหลำยๆ เรคอร์ด กำรประกำศตวั แปรโครงสร้ำง หลำยๆ ตวั แปรคงไม่เหมำะสม ดงั นัน้ วิธีแก้ไขกค็ ือกำรนำอำร์เรยม์ ำชว่ ยดว้ ยกำรประกำศเป็นอำรเ์ รย์ ของโครงสร้ำง เท็กซ์ไฟล์ เปน็ แฟม้ ที่จดั เก็บข้อควำมซ่ึงมคี ุณลักษณะสำคัญคอื จะบันทึกข้อมลู ทเี่ ป็นคือควำม ต่ำงๆ ตำมรหสั แอสกีของแต่ละตัวอักขระ ดังนน้ั เท็กซไ์ ฟล์จึงสำมำรถถูกเปิดอ่ำนด้วยโปรแกรม Notepad และสำมำรถอ่ำนข้อควำมที่บนั ทึกไว้ได้อย่ำงเข้ำใจ ไบนำรีไพล์ เป็นแฟ้มข้อมูลทจี่ ัดเกบ็ ข้อมลู ชนดิ เลขฐำนสอง ดังน้นั ไบนำรีไฟล์เม่ือถูกเปิดด้วย โปรแกรม Notepad แล้ว จะเป็นรหสั ขอ้ มูลต่ำงๆ ท่อี ่ำนไม่รเู้ รอ่ื งเนื่องจำกเปน็ ภำษำเคร่ืองนนั่ เอง ฟังกช์ นั fopen() นำมำใชเ้ พ่ือกำรเปิดแฟม้ ข้อมลู ตำมโหมดท่ีต้องกำร ฟังกช์ ัน fclose() นำมำใชเ้ พ่ือกำรปิดแฟม้ ขอมูล ฟงั ก์ชนั fprint() เป็นฟงั กช์ นั ท่ใี ชส้ ำหรบั บนั ทึกข้อมลู ลงในแฟ้ม ฟังกช์ นั fscanf() เป็นฟงั กช์ นั ทีน่ ำมำใชส้ ำหรบั กำรอ่ำนข้อมลู จำกแฟ้ม ตัง้ ใจศกึ ษาใบความรู้ นะคะนักเรียน

คาชี้แจง ใหน้ กั เรยี นเตมิ คำในชอ่ งว่ำงตอ่ ไปน้ีใหถ้ ูกต้อง 1: #include <stdio.h> 2: #include <conio.h> 3: 4:void line(void); 5: 6: int main() 7: { 8: char id[6], name[20], gender; 9: int experience; 10: float salary, ot, tax, income; 11: 12: FILE *fpt1; 13: fpt1 = fopen(\"c:\\\\coding\\\\emp.txt\", \"r\"); 14: 15: printf(\"\\t\\t\\t*** Payroll Report ***\\n\"); 16: line(); 17: printf(\"Seq. ID Name Gender Expr. Salary OT\"); 18: printf(\" Tax Income\\n\"); 19: line(); 20: 21: for(int i=0; i< 10; i++) 22: { 23 fscanf(fpt1, \"%s %s %c %d %f %f %f\", 24: id, name, &gender, experience, salary, ot, tax, income); 25: 26: printf(\"%2d %5c %-10s %c %8d %12.2f %8.2f %8.2f %10.2f \\n\", 27: i+1, id, name, gender, experience, salary, ot, tax, income); 28: } 29: line(); 30: fclose(fpt1); 31: } 32: 33: void line(void) 34: { 35: for(int i=1; i<=72; i++) 36: printf(\"=\"); c37: putchar('\\n'); 38: } สรปุ คะแนน สรุปผล ผ่าน ไม่ผ่าน คะแนนเต็ม คะแนนทไี่ ด้ ……………...…. …………………. 10 คะแนน ………………. คะแนน

คาชีแ้ จง ให้นกั เรยี นตอบคำถำมต่อไปนี้ให้ถูกต้อง 1. ข้อมูลโครงสรำ้ งมีรูปแบบกำรจดั เกบ็ ข้อมลู แบบใด พร้อมอธิบำย ตอบ ……………………………………………………………………….………………………………………………………… …………..………………………………………………………………………………………………………………………………… …………..………………………………………………………………………………………………………………………………… 2. กำรประกำศตวั แบบโครงสรำ้ งในภำษำซมี ีรปู แบบกำรเขยี นอยำ่ งไร ตอบ ……………………………………………………………………….………………………………………………………… …………..………………………………………………………………………………………………………………………………… …………..………………………………………………………………………………………………………………………………… 3. กรณีท่ตี อ้ งกำรจดั เกบ็ ข้อมูลโครงสรำ้ งจำนวนมำก หรอื หลำยๆ เรคอร์ด มวี ธิ ีแก้ไขอย่ำงไร ตอบ ……………………………………………………………………….………………………………………………………… …………..………………………………………………………………………………………………………………………………… …………..………………………………………………………………………………………………………………………………… 4. ในกรณที ี่ต้องกำรจัดเก็บข้อมูลที่เคยป้อนไปแล้ว ตอ้ งกำรนำกลบั มำใช้งำนได้ภำยหลังต้องใชว้ ิธใี ด ตอบ ……………………………………………………………………….………………………………………………………… …………..………………………………………………………………………………………………………………………………… …………..………………………………………………………………………………………………………………………………… 5. ฟงั กช์ นั fopen() นำมำใช้งำนอะไร ตอบ ……………………………………………………………………….………………………………………………………… …………..………………………………………………………………………………………………………………………………… …………..………………………………………………………………………………………………………………………………… สรปุ คะแนน สรุปผล ผ่าน ไมผ่ ่าน คะแนนเต็ม คะแนนทไ่ี ด้ ……………...…. …………………. 10 คะแนน ………………. คะแนน

คาช้ีแจง ให้นกั เรียนปฏบิ ัติกิจกรรมกลมุ่ ดังต่อไปนี้ 1. ให้นกั เรยี นแบง่ กลุ่มออกเป็น กล่มุ ละ 4-5 คน เพือ่ ทำกิจกรรมกลุ่ม 2. ให้ฝกึ เขยี นโปรแกรมตำมตัวอย่ำงท่ีกำหนดให้ เพื่อไล่โปรแกรม 3. ให้วิเครำะห์หำผลลพั ธใ์ ห้ถูกตอ้ ง 1: #include <stdio.h> 2: 3: int main() 4: { 5: struct employee { 6: char id[6]; 7: char name[20]; 8: char gender; 9: int experience; 10: float salary; 11: float ot; 12: float tax; 13: float income; 14: }; 15: struct employee emp1={\"00001\",\"Somsak\",'M',3,12000,0,200,11800}; 16: struct employee emp2={\"00002\",\"Somsri\",'F',3,10000,10000,180,12820}; 18: 19: printf(\"%s %s %c %d %8.2f %8.2f %8.2f %8.2f\\n\", 20: emp1.id, emp1.name, emp1.gender,emp1.experience, 21: emp1.salary, emp1.ot, emp1.tax, emp1.income); 22: 23: printf(\"%s %s %c %d %8.2f %8.2f %8.2f %8.2f\\n\", 24: emp2.id, emp2.name, emp2.gender,emp2.experience, 25: emp2.salary, emp2.ot, emp2.tax, emp2.income); 26: } ……………………………………………………………………….…………………………………………………………………….. ……………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………… สรุปคะแนน สรุปผล ผา่ น ไม่ผา่ น คะแนนเต็ม คะแนนท่ไี ด้ ……………...…. …………………. 15 คะแนน ………………. คะแนน

คาชแ้ี จง ให้นักเรียนปฏบิ ัติกิจกรรมกลุ่มดังต่อไปนี้ 1. ใหน้ กั เรยี นแบง่ กลุ่มออกเป็น กลมุ่ ละ 4-5 คน เพื่อทำกจิ กรรมกลุ่ม 2. ให้นักเรียนเขียนโปรแกรมเพอื่ จดั กำรกบั ระเบยี นดงั ตอ่ ไปนี้ ดว้ ยตัวแปรชนดิ โครงสร้ำง พร้อมทัง้ บันทึกข้อมูลลงในแฟ้ม “ครตู ะวนั เป็นครปู ระจำช้นั ของนกั เรียนชนั้ มัธยมศกึ ษำปที ่ี 4/1 ตอ้ งกำรบนั ทึกระเบียน ผลกำรเรียนประจำภำคเรียนที่ 1/2561 ซึ่งประกอบด้วย เลขทน่ี ง่ั ชอื่ นักเรยี น และเกรดเฉลีย่ สะสม ของนักเรียนจำนวน 30 คน” ……………………………………………………………………….…………………………………………………………………….. ……………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………… สรุปคะแนน สรปุ ผล ผา่ น ไมผ่ า่ น คะแนนเต็ม คะแนนทไ่ี ด้ ……………...…. …………………. 15 คะแนน ………………. คะแนน

คาชีแ้ จง ใหน้ กั เรยี นปฏิบตั ิกิจกรรมดงั ต่อไปน้ี 1. ช่วยกนั สรุปองคค์ วำมรู้ 2. สรำ้ งแผนทค่ี วำมคดิ จำกกำรสรปุ องค์ควำมรู้ 3. สรปุ องคค์ วำมรใู้ นสมดุ บันทกึ ส่วนตัว 4. นำเสนอแผนทีค่ วำมคิด ............................................................................................................................. ................................... ................................................................................................ ................................................................ ............................................................................................................................. ................................... ............................................................................................................................................................. ... ............................................................................................................................. ................................... ............................................................................................................................. ................................... ................................................................................................................................................................ ............................................................................................................................. ................................... ............................................................................................................................. ................................... ................................................................................................ ................................................................ ............................................................................................................................. ................................... ............................................................................................................................................................. ... ............................................................................................................................. ................................. ............................................................................................................................. ................................... ................................................................................................................................................................ ............................................................................................................................. ................................... .............................................................................................................................. .................................. ................................................................................................. ............................................................... ............................................................................................................................. ................................... สรปุ คะแนน สรุปผล ผ่าน ไมผ่ ่าน คะแนนเตม็ คะแนนทไ่ี ด้ ……………...…. …………………. 15 คะแนน ………………. คะแนน

คาชี้แจง ใหน้ กั เรยี นเลอื กคำตอบที่ถกู ท่สี ดุ เพียงคำตอบเดียวแล้วทำเครือ่ งหมำย X ลงใน กระดำษคำตอบ 1. ข้อมลู ชนิดโครงสร้ำงคล้ำยกบั สิ่งใดต่อไปนี้ ก. ตำรำง ข. ฟิลด์ ค. แฟม้ ข้อมูล ง. เรคอร์ด 2. กำรประกำศตัวแบบโครงสรำ้ งชอ่ื student จะใช้คำส่ังใด ก. record ข. struct ค. scanf ง. fclose 3. ภำยหลงั จำกกำรเปิดไฟล์ใชง้ ำนเป็นทเ่ี รียบร้อยแล้ว ต้องทำสงิ่ ใด ก. คอมไฟล์โปรแกรมอีกครั้ง ข. ปดิ ไฟลด์ ้วย fclose() ค. ปิดเครือ่ ง ง. ปิดไฟลด์ ว้ ย fopen() 4. ไบนำรไี ฟลเ์ ปน็ แฟม้ ข้อมลู ทจี่ ัดเก็บข้อมูลชนิดใด ก. เลขฐำนสอง ข. เลขฐำนแปด ค. เลขฐำนสี่ ง. เลขฐำนสบิ หก

5. กรณีทีไ่ ฟลเ์ ดิมนั้นมีข้อมลู บันทึกอยู่แล้วปรำกฏวำ่ มีกำรเปดิ ไฟล์ดงั กล่ำวแลว้ ทำใหข้ ้อมูลหำยหมด อยำกทรำบว่ำเปน็ เพรำะอะไร ก. กำหนดไฟล์พอยนเ์ ตอรผ์ ิด ข. เปิดไฟลด์ ว้ ยโหมด w+ ค. เปดิ ไฟล์ด้วยโหมด a ง. เปิดไฟล์ดว้ ยโหมด w 6. โหมดเปดิ ไฟลต์ ำมข้อใดต่อไปนี้ที่นำมำใชเ้ พือ่ สรำ้ งไฟลใ์ หมไ่ ด้ หรอื เพ่มิ ข้อมูลตอ่ ท้ำยไดโ้ ดยไม่ทำ ให้ข้อมูลเดมิ สญู หำย ก. โหมด w ข. โหมด a+ ค. โหมด a ง. โหมด w+ 7. ฟังก์ชนั ใดต่อไปน้ี ที่สำมำรถนำมำใชบ้ ันทึกข้อมลู ลงในแฟ้มเปน็ ลักำณะระเบยี นทีละบรรทัด ก. fprintf() ข. printf() ค. fscanf() ง. scanf() 8. ฟงั กช์ ันใดต่อไปนี้ทนี่ ำมำใช้อำ่ นขอ้ มูลจำกแฟม้ ก. fscanf() ข. printf() ค. fprintf() ง. scanf() 9. ขอ้ ใดต่อไปนี้ เขียนผิด ก. fprintf (fpt,“%s %d &d\\n”, name, sc1, sc2); ข. fprintf (fpt,“%s %d %d”, name, sc1, sc2); ค. fprintf (fpt,“%s %d\\n”, txt, var1); ง. fprintf (fpt,“%s %s %c %d %f %f %f\\n”, n1, n2, n3, n4, n5, n6, n7); 10. ขอ้ ใดต่อไปนี้เขียนถูกต้อง ก. fscanf(fpt, “%d %d %d\\n”, &n1, &n2, &n3); ข. fscanf(“%d %d %d”); ค. fscanf(fpt, “%d %d %c”, &n1, &n2, &n3); ง. fscanf(fpt, “%d %f”, 10, 500, 5);

คาช้แี จง ใหน้ กั เรียนเลือกคำตอบท่ีถูกท่ีสดุ เพยี งคำตอบเดียวแลว้ ทำเคร่อื งหมำย X ลงใน กระดำษคำตอบ ขอ้ ก ข ค ง 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. สรปุ คะแนน สรุปผล ผา่ น ไม่ผ่าน คะแนนเตม็ คะแนนท่ีได้ ……………...…. …………………. 10 คะแนน ………………. คะแนน



คาช้แี จง ใหน้ ักเรียนเลือกคำตอบที่ถูกทส่ี ุดเพียงคำตอบเดียวแล้วทำเครอ่ื งหมำย X ลงใน กระดำษคำตอบ ขอ้ ก ข ค ง 1.  2.  3.  4.  5.  6.  7.  8.  9.  10.  ตอบถกู ก่ีข้อคะ

คาชแ้ี จง ใหน้ กั เรยี นเตมิ คำในชอ่ งว่ำงตอ่ ไปนี้ใหถ้ ูกต้อง 1: #include <stdio.h> 2: #include <conio.h> 3: 4:void line(void); 5: 6: int main() 7: { 8: char id[6], name[20], gender; 9: int experience; 10: float salary, ot, tax, income; 11: 12: FILE *fpt1; 13: fpt1 = fopen(\"c:\\\\coding\\\\emp.txt\", \"r\"); 14: 15: printf(\"\\t\\t\\t*** Payroll Report ***\\n\"); 16: line(); 17: printf(\"Seq. ID Name Gender Expr. Salary OT\"); 18: printf(\" Tax Income\\n\"); 19: line(); 20: 21: for(int i=0; i< 10; i++) 22: { 23 fscanf(fpt1, \"%s %s %c %d %f %f %f\", 24: id, name, &gender, experience, salary, ot, tax, income); 25: 26: printf(\"%2d %5c %-10s %c %8d %12.2f %8.2f %8.2f %10.2f \\n\", 27: i+1, id, name, gender, experience, salary, ot, tax, income); 28: } 29: line(); 30: fclose(fpt1); 31: } 32: 33: void line(void) 34: { 35: for(int i=1; i<=72; i++) 36: printf(\"=\"); c37: putchar('\\n'); 38: }

คาชแ้ี จง ให้นักเรยี นตอบคำถำมต่อไปนใ้ี ห้ถกู ต้อง 1. ข้อมลู โครงสรำ้ งมรี ปู แบบกำรจดั เกบ็ ขอ้ มูลแบบใด อธบิ ำยมำพอสังเขป ตอบ จดั เก็บข้อมูลเหมือนกบั เรคอร์ด ทแ่ี ตล่ ะฟิลดภ์ ำยในเรคอรด์ น้นั สำมำรถมชี นิดข้อมลู แตกต่ำงกนั ได้ 2. กำรประกำศตวั แบบโครงสรำ้ งในภำษำซมี รี ปู แบบกำรเขยี นอย่ำงไร ตอบ struct tag { member_1; member_2; :: member_n; } 3. กรณีท่ีตอ้ งกำรจัดเกบ็ ข้อมูลโครงสรำ้ งจำนวนมำก หรือหลำยๆ เรคอร์ด มีวิธแี ก้ไขอย่ำงไร ตอบ กำรนำอำรเ์ รย์มำใชด้ ว้ ยกำรกำหนดเปน็ อำรเ์ รย์ของโครงสร้ำง 4. ในกรณีท่ีต้องกำรจดั เกบ็ ข้อมูลทีเ่ คยปอ้ นไปแล้ว ต้องกำรนำกลบั มำใชง้ ำนได้ภำยหลงั ต้องใชว้ ธิ ใี ด ตอบ วิธกี ำรบนั ทึกข้อมูลลงในแฟม้ ขอ้ มูล ซ่งึ แฟ้มข้อมูลน้จี ะถูกจัดเก็บไวใ้ นหน่อยควำมจำสำรอง 5. ฟังก์ชนั fopen() มีหนำ้ ทอี่ ยำ่ งไร ตอบ นำมำใชเ้ พ่ือกำรเปดิ แฟ้มข้อมูลตำมโหมดที่ตอ้ งกำร อยา่ ลืมทวนคาตอบ นะคะนักเรยี น

คาชี้แจง ใหน้ กั เรียนปฏิบตั กิ ิจกรรมกลุม่ ดังต่อไปนี้ 1. ให้นกั เรยี นแบ่งกลุ่มออกเป็น กลมุ่ ละ 4-5 คน เพ่อื ทำกิจกรรมกล่มุ 2. ใหฝ้ ึกเขียนโปรแกรมตำมตัวอยำ่ งท่ีกำหนดให้ เพื่อไล่โปรแกรม 3. ให้วเิ ครำะห์หำผลลัพธ์ให้ถูกต้อง เกณฑ์การประเมิน คาชีแ้ จง โปรดทำเครือ่ งหมำย  ลงในช่องวำ่ งตำมระดับคะแนนที่เป็นจริง ระดบั คะแนน 3 ระดับ ดังนี้ 3 คะแนน หมำยถงึ ดี 2 คะแนน หมำยถงึ พอใช้ 1 คะแนน หมำยถึง ควรปรับปรุง รายการประเมนิ ระดับคะแนน หมายเหตุ 321 1. ปฏบิ ตั ติ ำมขน้ั ตอนอย่ำงถกู ต้องและครบถว้ น 2. อธบิ ำยขั้นตอนได้อยำ่ งถูกต้องและชัดเจน 3. แกไ้ ขปัญหำและสถำนกำรณไ์ ด้อยำ่ งสรำ้ งสรรค์ 4. ทำงำนเสร็จเรียบร้อยตำมเวลำกำหนด 5. สนใจศึกษำหำควำมรู้เพิ่มเติมดว้ ยตนเอง รวม เกณฑ์การประเมนิ ต้องผ่ำนรอ้ ยละ 80 ขึน้ ไป หรือ 12 คะแนนขนึ้ ไป  ผำ่ น  ไม่ผ่ำน ลงชอ่ื ..........................................ผู้ประเมนิ (..........................................)

คาชแี้ จง ใหน้ กั เรียนปฏิบตั กิ ิจกรรมกลุ่มดังต่อไปน้ี 1. ให้นกั เรียนแบง่ กลุ่มออกเป็น กลุ่มละ 4-5 คน เพ่อื ทำกิจกรรมกลมุ่ 2. ให้นกั เรียนเขียนโปรแกรมเพือ่ จดั กำรกับระเบียนดงั ตอ่ ไปนี้ ด้วยตวั แปรชนิดโครงสรำ้ ง พรอ้ มทง้ั บันทึกข้อมลู ลงในแฟ้ม “ครูตะวัน เป็นครูประจำช้นั ของนักเรียนชนั้ มัธยมศึกษำปีที่ 4/1 ตอ้ งกำรบนั ทึกระเบียน ผลกำรเรียนประจำภำคเรยี นที่ 1/2561 ซ่ึงประกอบด้วย เลขทนี่ ่งั ชือ่ นักเรียน และเกรดเฉลีย่ สะสม ของนักเรยี นจำนวน 30 คน” เกณฑก์ ารประเมิน คาช้แี จง โปรดทำเครอื่ งหมำย  ลงในชอ่ งว่ำงตำมระดับคะแนนทีเ่ ป็นจรงิ ระดบั คะแนน 3 ระดับ ดังน้ี 3 คะแนน หมำยถึง ดี 2 คะแนน หมำยถงึ พอใช้ 1 คะแนน หมำยถึง ควรปรบั ปรงุ รายการประเมิน ระดับคะแนน หมายเหตุ 321 1. ปฏบิ ัตติ ำมขั้นตอนอยำ่ งถกู ต้องและครบถว้ น 2. อธบิ ำยขนั้ ตอนได้อยำ่ งถูกต้องและชัดเจน 3. แก้ไขปัญหำและสถำนกำรณ์ได้อย่ำงสรำ้ งสรรค์ 4. ทำงำนเสรจ็ เรียบร้อยตำมเวลำกำหนด 5. สนใจศกึ ษำหำควำมรู้เพ่ิมเติมด้วยตนเอง รวม เกณฑก์ ารประเมนิ ต้องผ่ำนร้อยละ 80 ขึ้นไป หรือ 12 คะแนนขน้ึ ไป  ผำ่ น  ไมผ่ ่ำน ลงช่ือ..........................................ผู้ประเมิน (..........................................)

คาชแ้ี จง ให้นักเรยี นปฏิบัตกิ ิจกรรมดงั ต่อไปน้ี 1. ชว่ ยกนั สรปุ องคค์ วำมรู้ 2. สร้ำงแผนที่ควำมคดิ จำกกำรสรปุ องคค์ วำมรู้ 3. สรปุ องคค์ วำมรใู้ นสมดุ บันทึกส่วนตวั 4. นำเสนอแผนทค่ี วำมคิด เกณฑก์ ารประเมนิ คาช้แี จง โปรดทำเครอื่ งหมำย  ลงในชอ่ งว่ำงตำมระดับคะแนนทเ่ี ป็นจริง ระดบั คะแนน 3 ระดบั ดงั น้ี 3 คะแนน หมำยถึง ดี 2 คะแนน หมำยถงึ พอใช้ 1 คะแนน หมำยถงึ ควรปรบั ปรุง รายการประเมิน ระดบั คะแนน หมายเหตุ 321 1. สรปุ องค์ประกอบควำมร้ไู ด้ชัดเจนและครบถว้ น 2. บอกควำมสำคญั ได้ตรงประเด็น 3. สะอำด เรยี บรอ้ ย และสวยงำม 4. ควำมคิดสรำ้ งสรรค์ 5. ควำมกล้ำแสดงออกในกำรนำเสนองำน รวม เกณฑก์ ารประเมิน ตอ้ งผำ่ นร้อยละ 80 ขน้ึ ไป หรือ 12 คะแนนขน้ึ ไป  ผำ่ น  ไมผ่ ำ่ น ลงชอื่ ..........................................ผูป้ ระเมนิ (..........................................)

คาช้แี จง ใหน้ กั เรยี นเลือกคำตอบท่ีถูกทส่ี ุดเพียงคำตอบเดียวแล้วทำเคร่อื งหมำย X ลงใน กระดำษคำตอบ ขอ้ ก ข ค ง 1.  2.  3.  4.  5.  6.  7.  8.  9.  10.  ตอบถกู กีข่ ้อคะ

การประเมนิ คะแนนเตม็ คะแนนที่ได้ ความก้าวหน้า แบบทดสอบก่อนเรียน แบบทดสอบหลงั เรยี น 10 เกณฑ์การประเมนิ 10 ตอ้ งผำ่ นร้อยละ 80 ขนึ้ ไป หรอื 8 คะแนนขนึ้ ไป  ผ่ำน  ไม่ผ่ำน การประเมนิ คะแนนเตม็ คะแนนทไ่ี ด้ ค่าเฉลยี่ S.D. รอ้ ยละ กจิ กรรมที่ 1 10 กจิ กรรมที่ 2 10 กิจกรรมท่ี 3 15 กจิ กรรมท่ี 4 15 กจิ กรรมท่ี 5 15 รวม 65 เกณฑก์ ารประเมิน ต้องผ่ำนรอ้ ยละ 80 ขึ้นไป หรือ 52 คะแนนข้นึ ไป  ผ่ำน  ไมผ่ ำ่ น ลงชือ่ .....................................................ผ้ปู ระเมนิ (....................................................)

กรมวิชำกำร กระทรวงศึกษำธิกำร. (2545). หลักสตู รการศึกษาขัน้ พืน้ ฐาน พุทธศักราช 2544. กรงุ เทพฯ : ครุ ุสภำลำดพรำ้ ว. กระทรวงศกึ ษำธกิ ำร (2551) หลักสตู รแกนกลางการศึกษาขนั้ พ้นื ฐาน พุทธศกั ราช 2551. สำนกั งำนคณะกรรมกำรกำรศกึ ษำขัน้ พืน้ ฐำน กรุงเทพฯโรงพมิ พ์ชมุ ชมุ สหกรณ์ ________. (2552). มาตรฐานและตัวชี้วัด ตามกลุ่มสาระการเรียนร้กู ารงานอาชีพและเทคโนโลยี หลักสตู รแกนกลางการศึกษาข้ันพื้นฐาน พทุ ธศกั ราช 2551. กรงุ เทพฯ : ชุมนมุ สหกรณ์ กำรเกษตรแหง่ ประเทศไทย. ________. (2560). มาตรฐานและตัวชว้ี ัด ตามกลุ่มสาระการเรียนรวู้ ิทยาศาสตรแ์ ละเทคโนโลยี หลกั สตู รแกนกลางการศกึ ษาข้ันพ้ืนฐาน พทุ ธศักราช 2551 ฉบับปรับปรุง พ.ศ. 2560. กรุงเทพฯ : ชมุ นุมสหกรณก์ ำรเกษตรแห่งประเทศไทย. ครรชิต มำลยั วงศ์ และวชิ ติ ปุณวัตร์. (2532). เทคนคิ การออกแบบโปรแกรม. กรุงเทพฯ : ซีเอ็ดยูเคชนั่ . ธีรวฒั น์ ประกอบผล. (2562). คู่มือการเขียนโปรแกรมภาษา C ฉบับสมบูรณ์. กรงุ เทพฯ : ซเี อ็ดยูเคช่ัน. นรำธร สังข์ประเสริฐ. (2562). การเขียนโปรแกรมคอมพิวเตอร์ด้วยภาษาซ.ี กรุงเทพฯ : ซเี อด็ ยูเคช่ัน. พิสณุ ฟองศรี. (2556). การสร้างและพัฒนาเครื่องมอื วิจัย. กรงุ เทพฯ : ดำ่ นสุทธำกำรพมิ พ์. ______. (2556). การวิจยั การศึกษา. กรุงเทพฯ : ดำ่ นสุทธำกำรพิมพ.์ ฝำ่ ยตำรำวิชำกำรคอมพิวเตอร์. (2558). การเขียนโปรแกรมเบ้อื งตน้ (ภาษาซี). กรุงเทพฯ : ซเี อ็ด ยูเคช่นั . วรรณวิภำ จำเรญิ ดำรำรัศมี. (2539). วิทยาการคอมพิวเตอรเ์ บอ้ื งต้น. กรุงเทพฯ : ซีเอ็ดยูเคชน่ั . สำลี รักสุทธ.ี (2553). การจดั ทาส่ือนวัตกรรมและแผนประกอบสื่อนวัตกรรม. นนทบุรี : เพมิ่ ทรพั ย์ สุพจน์ สงำ่ กอง และปิยะ นำกสงค์. (2561). คู่มือการเขียนโปรแกรมภาษา C++. กรงุ เทพฯ : ซีเอด็ ยเู คช่ัน. สวุ ิทย์ มูลคำ. (2550). กลยุทธก์ ารสอนคดิ วิเคราะห.์ กรุงเทพฯ: ภำพพิมพ.์ โอภำส เอ่ยี มสิริวงศ์. (2552). การเขียนโปรแกรมด้วยภาษา C (Programming with C). กรุงเทพฯ : ซเี อด็ ยูเคชัน่ . ______. (2557). การเขียนโปรแกรมด้วยภาษา C. กรุงเทพฯ : ซีเอด็ ยูเคช่นั .

ขอ้ มูลท่ัวไป ช่อื – สกลุ นำงรพพี ร นำมมุลตรี วัน เดือน ปีเกดิ 19 มนี ำคม พ.ศ. 2515 ทอี่ ยู่ปัจจุบัน 110 หมูท่ ่ี 20 ตำบลเขวำ อำเภอเมือง จงั หวดั มหำสำรคำม รหสั ไปรษณีย์ 44000 E-mail [email protected] เบอรโ์ ทร 081-975-2310 การปฏบิ ตั ิงานปัจจบุ ัน ตาแหนง่ ครู วิทยฐำนะ ครูชำนำญกำรพเิ ศษ สถานท่ที างานปัจจุบนั โรงเรียนนำโพธ์ิพิทยำสรรพ์ ตำบลนำโพธ์ิ อำเภอกุดรงั จงั หวัดมหำสำรคำม รหัสไปรษณยี ์ 44130 สำนักงำนเขตพนื้ ท่ีกำรศึกษำมัธยมศกึ ษำ เขต 26 ประวตั ิการศึกษา จบ พ.ศ. 2537 หลกั สตู รวทิ ยำศำสตรบณั ฑติ สำขำวชิ ำวิทยำกำรคอมพิวเตอร์ มหำวทิ ยำลยั ศลิ ปำกร (วทิ ยำเขตพระรำชวังสนำมจันทร)์ อำเภอเมือง จังหวดั นครปฐม