วันศุกร์ที่ 2 สิงหาคม พ.ศ. 2556

การพัฒนาโครงงานคอมพิวเตอร์

 

การพัฒนาโครงงานคอมพิวเตอร์

การพัฒนาโครงงานคอมพิวเตอร์

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

     โครงงานคอมพิวเตอร์มีหลายประเภท ขึ้นอยู่กับมุมมองในการพิจารณา เช่น วัตถุประสงค์การนำไปใช้ หรือกระบวนการในการสร้างผลผลิต โดยทั่วไปโครงงานคอมพิวเตอร์สามารถแบ่งได้ดังนี้

     ๑.๑) สื่อเพื่อการศึกษา

                เป็นโครงงานที่ใช้คอมพิวเตอร์ในการพัฒนาสื่อการเรียนการสอน โดยอาจสร้างเป็นโปรแกรมบทเรียน หรือบทเรียนออนไลน์ ที่อาจมีแบบฝึกหัดหรือคำถามเพื่อทดสอบ โครงงานประเภทนี้สามารถพัฒนาขึ้นเพื่อประกอบการเรียนการสอนในเนื้อหาวิชาต่าง ๆ เช่น บทเรียนออนไลน์เรื่องเทคโนโลยีสารสนเทศสมัยใหม่ บทเรียนออนไลน์เรื่องชุดกล่องสมองกล หนังสือเรียนอิเล็กทรอนิกส์เรื่องสำนวนสุภาษิต


     ๑.๒) พัฒนาเครื่องมือ

                 โครงงานพัฒนาเครื่องมือเป็นโครงงานที่ใช้คอมพิวเตอร์ในการพัฒนาโปรแกรมช่วยงานด้านต่าง ๆ เช่น โปรแกรมพิมพ์งาน โปรแกรมวาดรูป โปรแกรมสร้างภาพเคลื่อนไหว โปรแกรมคำนวณภาษี

        ๑.๓) จำลองทฤษฎี โครงงานจำลองทฤษฎีเป็นโครงงานที่ใช้คอมพิวเตอร์ในการพัฒนาโครงงานเพื่อจำลองการทดลองทฤษฎีในด้านต่าง ๆ เช่น การทดลองเรื่องการไหลของของเหลว การจำลองการเคลื่อนที่ตามกฎข้อที่ ๒ ของนิวตัน การจำลองการตกของวัตถุ


     ๑.๔) ประยุกต์ โครงงานประยุกต์เป็นโครงงานที่นำคอมพิวเตอร์มาประยุกต์ร่วมกับอุปกรณ์อื่นในการสร้าง หรือประดิษฐ์สิ่งของที่เป็นประโยชน์ หรือปรับปรุงเครื่องมือที่มีอยู่เดิมให้มีประสิทธิภาพสูงขึ้น ตัวอย่างโครงงานตรวจสอบควันพิษในอากาศ โครงงานบ้านอัตโนมัติ


     ๑.๕) เกม โครงงานเกมเป็นโครงงานที่ใช้คอมพิวเตอร์ในการพัฒนาโปรกรมเกมเพื่อการศึกษาเพื่อความบันเทิง โดยเกมที่พัฒนาขึ้นจะเน้นการใช้สมองในการฝึกความคิดอย่างมีหลักการ ตัวอย่างโครงงาน เช่น เกมทายคำศัพท์ ตะลุยมหันตภัยโลกร้อน



ประโยชน์ของการทำโครงงานคอมพิวเตอร์

๑) ได้เรียนรู้แนวทางการแก้ปัญหาที่เกิดจากการทำโครงงาน

๒) ส่งเสริมกระบวนการคิด การแก้ปัญหา และการตัดสินใจ

๓) ได้รับประสบการณ์ในการใช้คอมพิวเตอร์เพื่อแก้ปัญหา

๔) ส่งเสริมให้ใช้เวลาอย่างเป็นประโยชน์และสร้างสรรค์

๒. ขั้นตอนการทำโครงงาน

      ๒.๑ การเลือกหัวข้อโครงงาน หัวข้อโครงงานได้มาจากความต้องการความสนใจในการแก้ปัญหา หรือประยุกต์ใช้ในการดำเนินชีวิตประจำวัน สังเกตสิ่งที่อยู่รอบตัว หรือศึกษาจากโครงงานที่มีผู้พัฒนาแล้วและนำแนวทางมาพัฒนาต่อ ตั้งชื่อให้สอดคล้องกับเนื้อหา กระชับ น่าสนใจ ตัวอย่างหัวข้อโครงงาน เช่น

  • โครงงานเครื่องเตือนภัยน้ำท่วม

  • โครงงานเครื่องคิดเลขอัจฉริยะ

  • โครงงานตรวจสอบควันพิษในอากาศ

  • โครงงานสื่อออนไลน์พันธุ์ไม้ในโรงเรียน

      ๒. ๒ การศึกษาค้นคว้าหาข้อมูลที่เกี่ยวกับโครงงาน แหล่งข้อมูลมีหลายแหล่ง เช่น หนังสือ วารสาร อินเทอร์เน็ต ผู้เชี่ยวชาญ รวมทั้งศึกษาจากโครงงานที่คล้ายกัน ที่มีผู้พัฒนามาก่อนหน้าแล้ว ส่ิงสำคัีญคือ การอ้างอิงแหล่งที่มาและไม่คัดลอกผลงานผู้อื่น

                           เกร็ดน่ารู้  การนำข้อมูลจากเว็บไซต์ต้องพิจารณาถึงความน่าเชื่อถือของแหล่งผู้ให้ข้อมูล และควรหาข้อมูลจากหลายแหล่งแล้วทำการวิเคราะห์ข้อมูลก่อนนำไปใช้

      ๒.๓ การจัดทำข้อเสนอโครงงาน เป็นการกำหนดกรอบแนวคิด และวางแผนการพัฒนาโครงงาน รวมถึงตารางกำหนดการ ระยะเวลาที่ต้องทำงาน เพื่อช่วยให้สามารถคาดการณ์ความเป็นไปได้ในการทำโครงงาน โดยนำเสนอที่ปรึกษาหรือผู้ทรงคุณวุฒิที่เกี่ยวข้องให้ช่วยพิจารณาความเป็นไปได้ของการทำโครงงานั้น

                       สำหรับที่ปรึกษาหรือผู้ทรงคุณวุฒิ หมายถึง ผู้ที่มีความรู้และความเชี่ยวชาญในเนื้อหาที่จะทำโครงงาน สำหรับในที่นี้ที่ปรึกษาโครงงาน คือ ครูผู้สอนรายวิชาพื้นฐาน เทคโนโลยีสารสนเทศและการสื่อสาร และที่ปรึกษาโครงงานร่วม คือ ผู้สอนรายวิชาอื่น ๆ เช่น วิทยาศาสตร์ คณิตศาสตร์ สังคมศึกษา เป็นต้น

ตัวอย่างหัวข้อข้อเสนอโครงงานคอมพิวเตอร์ ดังนี้

ข้อเสนอโครงงานคอมพิวเตอร์

ชื่อโครงงาน (ภาษาไทย)………………

ชื่อโครงงาน (ภาษาอังกฤษ)………………

ประเภทโครงงาน………..

ชื่อผู้ทำโครงงาน………….

ชื่อที่ปรึกษาโครงงาน…………

ชื่อที่ปรึกษาโครงงานร่วม…………

ระยะเวลาดำเนินงาน……….

ที่มาและความสำคัญของโครงงาน (อธิบายถึงแนวคิดและเหตุผลของการทำโครงงาน)

……………………………..

วัตถุประสงค์ (สิ่งที่ต้องการในการทำโครงงาน ระบุเป็นข้อ)

…………………………..

ขอบเขตโครงงาน (คุณลักษณะ ขอบเขต เงื่อนไข และข้อจำกัดของการทำโครงงาน)

…………………………..
หลักการและทฤษฎี (ความรู้ หลักการ หรือทฤษฎีที่สนับสนุนการทำโครงงาน)
……………………………….
วิธีการดำเนินงาน

(กำหนดแนวทางการดำเนินงาน เครื่องมือ และอุปกรณ์ งบประมาณ และขั้นตอนการปฏิบัติงาน)

แนวทางการดำเนินงาน………………..

เครื่องมือและอุปกรณ์……………….

งบประมาณ………………………….

ขั้นตอนการปฏิบัติงาน

ภาคเรียนที่……..ปีการศึกษา…………

ที่

กิจกรรม/รายการปฏิบัติ

ระยะเวลาการดำเนินการ (เดือน)

ผู้รับผิดชอบ

หมายเหตุ

ผลที่คาดว่าจะได้รับ (ผลลัพธ์ที่ต้องการให้เกิดขึ้นเมื่อสิ้นสุดการทำโครงงาน)

………………..

แหล่งอ้างอิง (เอกสารหรือแหล่งข้อมูลต่าง ๆ ที่นำมาใช้ในการทำโครงงาน)

…………………………

      ๒.๔ การจัดทำโครงงาน ในขั้นตอนนี้มีการเตรียมคอมพิวเตอร์ ซอฟต์แวร์ และวัสดุอุปกรณ์ให้ครบถ้วน โดยต้องคำนึงถึงความประหยัด คุ้มค่า และมีจิตสำนึกรับผิดชอบต่อสังคม เช่น ถ้าใช้ซอฟต์แวร์ฟรีต้องศึกษาถึงข้อกำหนดในการใช้ซอฟต์แวร์นั้นแล้วปฏิบัติตามให้ถูกต้อง แต่ถ้าใช้ซอฟต์แวร์เชิงพาณิชย์ก็จัดหาให้ถูกต้องตามกฎหมาย เพื่อไม่ทำให้เกิดผลเสียกับตนเองและผู้อื่น

                   หลังจากจัดเตรียมวัสดุอุปกรณ์เรียบร้อยแล้ว ให้ดำเนินการตามตารางเวลาการทำงานอย่างเคร่งครัด ระหว่างทำโครงงานต้องบันทึกผลการทำงานเพื่อติดตามความก้าวหน้า ปัญหา อุปสรรค รวมถึงวิธีแก้ไข และควบคุมการปฏิบัติงานให้เป็นไปตามระยะเวลาที่กำหนด มีการตรวจสอบความถูกต้องของโครงงานตามแผนการดำเนินงานอย่างสม่ำเสมอ

      ๒.๕ การเขียนรายงาน ในขั้นตอนนี้เป็นการจัดทำเอกสาร รายละเอียดทั้งหมดในการพัฒนา และคู่มือการใช้งาน เพื่อเผยแพร่และใช้ในการพัฒนาโครงงานต่อไป เป็นประโยชน์สำหรับผู้ที่ต้องการศึกษาหาความรู้หรือต้องการทำโครงงานที่คล้ายกัน สามารถเรียนรู้จากประสบการณ์ที่ได้บันทึกไว้ การเขียนรายงานต้องใช้ภาษาที่อ่านง่าย ชัดเจน กระชับ ตรงประเด็น ใช้ถ้อยคำสุภาพ และมีสร้างความเสียหายให้กับผู้อื่น

หัวข้อในการเขียนรายงาน มีดังต่อไปนี้

ชื่อโครงงาน (ภาษาไทย)………………

ชื่อโครงงาน (ภาษาอังกฤษ)………………

ประเภทโครงงาน………..

ชื่อผู้ทำโครงงาน

๑. …………………….
๒. ……………………

ชื่อที่ปรึกษาโครงงาน…………

ชื่อที่ปรึกษาโครงงานร่วม…………

กิตติกรรมประกาศ………………..

บทคัดย่อ………………

บทที่ ๑ บทนำ

  • ที่มาและความสำคัญของโครงงาน (อธิบายถึงแนวคิดและเหตุผลของการทำโครงงาน)

……………………………..

  • วัตถุประสงค์ (สิ่งที่ต้องการในการทำโครงงาน ระบุเป็นข้อ)

…………………………..

  • ขอบเขตโครงงาน (คุณลักษณะ ขอบเขต เงื่อนไข และข้อจำกัดของการทำโครงงาน)

…………………………..
บทที่ ๒ หลักการและทฤษฎี (ความรู้ หลักการ หรือทฤษฎีที่สนับสนุนการทำโครงงาน)
……………………………….
บทที่ ๓ วิธีการดำเนินงาน

………………

บทที่ ๔ ผลการศึกษา

…………….

บทที่ ๕ สรุปผลและข้อเสนอแนะ

……………….

บรรณานุกรม………….

คู่มือการใช้งาน…………

ลิงค์ตัวอย่างโครงงานซอฟต์แวร์

๑. โครงงานซอฟต์แวร์เรื่อง พัฒนาสื่อเพื่อการศึกษา  “ร่างกายของเรา”

๒. รายการโครงงาน

คลิปนำเสนอโครงงาน…ของโรงเรียนอื่น ๆ นะคะ ครูปอเห็นว่าน่าจะเป็นประโยชน์เลยนำมาให้ชมกันจ้ะ
ตัวอย่างผลงานนำเสนอโครงงานของนักเรียน เยาวชนไทยค่ะ

ตัวอย่างโครงงาน

1. การเขียนรายงานโครงงานการใช้โปรแกรม GSP ออกแบบลายไทย ของนักเรียน ชั้น ม.6
2. ตัวอย่างผลงานโครงงานของนักเรียนโรงเรียนระยองวิทยาคม ปีการศึกษา 2552
3. ตัวอย่างผลงานโครงงานของนักเรียนโรงเรียนระยองวิทยาคม ปีการศึกษา 2552
4. ตัวอย่างผลงานโครงงานของนักเรียนโรงเรียนระยองวิทยาคม ปีการศึกษา 2552
5. โครงงานพัฒนาเว็บบล็อกฯ

บทที่7 การพัฒนาโปรแกรม

ขั้นตอนการพัฒนาโปรแกรม 
7.1 ขั้นตอนการพัฒนาโปรแกรม
หลังจากที่ได้ออกแบบวิธีในการแก้ปัญหาซึ่งอยู่ในรูปแบบของรหัสลำลองหรือผังงานแล้ว ขั้นตอนต่อไป คือ การพัฒนาโปรแกรมตามผังงานดังกล่าว ซึ่งถ้านักเรียนเขียนโปรแกรมมีความรู้ความชำนาญในการเขียนโปรแกรมภาษาหนึ่งภาษาใดอยู่แล้ว จะสามารถทำได้โดยง่าย อย่างไรก็ตามนักเขียนโปรแกรมก็ยังต้องทำการตรวจสอบว่าโปรแกรมที่ได้พัฒนาขึ้น ทำงานได้ถูกต้อง และให้ผลลัพธ์ที่ไม่ผิดพลาดสำหรับทุกกรณี จึงจะสามารถนำโปรแกรมดังกล่าวไปใช้งานได้ นอกจากนี้นักเขียนโปรแกรมยังควรที่จะจัดทำเอกสาร ประกอบการพัฒนาโปรแกรม ซึ่งจะเป็นเครื่องมือให้ผู้ที่จะมาพัฒนาโปรแกรมต่อไปในอนาคต ทำความเข้าใจกับโปรแกรมที่จัดทำขึ้นได้สะดวกรวดเร็ว รวมถึงให้ผู้ใช้โปรแกรมเข้าใจวิธีการใช้งานโปรแกรมอย่างรวดเร็ว
7.1.1 การวิเคราะห์และออกแบบโปรแกรม
ในการพัฒนาโปรแกรมคอมพิวเตอร์ให้กับระบบงานขนาดใหญ่ที่มีการแบ่งงานวิเคราะห์ระบบและงานเขียนโปรแกรมออกจากกันนั้น โดยทั่วไปการมอบหมายงานให้นักเขียนโปรแกรม จะเป็นการกำหนดความต้องการของโปรแกรมในภาพรวม แต่ไม่ได้ระบุรายละเอียดขั้นเป็นรหัสลำลองหรือผังงานที่ละเอียด นักเขียนโปรแกรมจึงต้องศึกษาถึงความต้องการของงานที่ได้รับมอบหมาย ข้อมูลนำเข้า ข้อมูลส่งออก และกระบวนการในการแก้ปัญหาอย่างละเอียดเพื่อพัฒนาขึ้นเป็นขั้นตอนวิธีในการแก้ปัญหาซึ่งอยู่ในรูปแบบของผังงานอย่างละเอียด ซึ่งขั้นตอนดังกล่าวนี้ คือ การออกแบบผังงานดังได้กล่าวแล้วในบทที่ 6
7.1.2 การเขียนโปรแกรมจากรหัสลำลองหรือผังงาน
โดยทั่วไปการเขียนโปรแกรมจากรหัสลำลองหรือผังงานที่ได้ออกแบบไว้อย่างดีแล้ว นักเขียนโปรแกรมสามารถทำได้โดยง่ายและรวดเร็ว ซึ่งจะเป็นการแปลงจากแต่ละสัญลักษณ์ของผังงาน ไปเป็นคำสั่งที่สอดคล้องกันในภาษาโปรแกรมที่เลือกใช้ โดยโปรแกรมที่ดีจะต้องมีการตรวจสอบและแจ้งข้อผิดพลาดให้แก่ผู้ใช้งานโปรแกรมทราบ โดยที่การทำงานของโปรแกรมไม่สะดุดลง ตัวอย่างเช่น ในการพัฒนาโปรแกรมเพื่อหาค่าของผลหารถ้าหากว่ามีการรับข้อมูลนำเข้าเป็นตัวหาร แต่ผู้ใช้ป้อนข้อมูลตัวหารเป็นศูนย์ โปรแกรมจะเกิดข้อผิดพลาดในการทำงานเป็นชิ้น ดังนั้นโปรแกรมควรต้องทำการตรวจสอบว่า ถ้าตัวหารเป็นศูนย์ต้องแจ้งข้อความผิดพลาดให้ผู้ใช้ทราบ

รูปที่ 7.1 ผลลัพธ์จากโปรแกรมที่ตัวหาร (ก) ไม่เป็นศูนย์ และ (ข) เป็นศูนย์
รูปที่ 7.1 แสดงผลที่ได้จากโปรแกรมเมื่อตัวหารไม่เป็นศูนย์ และเมื่อตัวหารเป็นศูนย์จะเห็นว่าเมื่อตัวหารไม่เป็นศูนย์ โปรแกรมสามารถทำงานให้คำตอบได้อย่างถูกต้อง แต่ถ้าตัวหารเป็นศูนย์ และในโปรแกรมไม่ได้มีการตรวจสอบไว้ โปรแกรมจะทำงานผิดพลาด และหยุดการทำงานลงพร้อมกับแสดงข้อความบอกข้อผิดพลาดที่เกิดขึ้นออกมา ดังที่แสดงในรูปเป็นตัวอักษรเอียง
7.1.3 การเตรียมข้อมูลสำหรับทดสอบโปรแกรม
ในระหว่างขั้นตอนการออกแบบวิธีการแก้ปัญหาให้อยู่ในรูปของรหัสลำลองหรือผังงานนั้นนักเขียนโปรแกรมควรพิจารณาถึงข้อมูลที่จะนำมาใช้ในการทดสอบโปรแกรมที่จะเขียนขึ้นด้วยความสมบูรณ์ของข้อมูลที่ใช้ในการทดสอบโปรแกรมมีความสำคัญมาก เนื่องจากจะเป็นสิ่งบ่งบอกถึงความถูกต้องของโปรแกรมที่พัฒนาขึ้น ว่ามีความถูกต้องครอบคลุมข้อมูลนำเข้าทุกรูปแบบ โดยตรวจสอบว่ามีข้อมูลนำเข้ารูปแบบใดที่โปรแกรมไม่สามารถรองรับได้ เช่น ข้อมูลไม่อยู่ในช่วงที่ถูกต้อง และข้อมูลที่รับเข้าเป็นตัวเลขแต่ผู้ใช้ป้อนค่าเป็นตัวอักษร
7.1.4 การทดสอบโปรแกรม
หลังจากได้เขียนโปรแกรมและเตรียมข้อมูลสำหรับทดสอบอย่างครบถ้วนแล้ว ขั้นตอนทดสอบโปรแกรมก็จะสามารถดำเนินการได้ ถ้าหากว่าโปรแกรมที่พัฒนาขึ้นมีความซับซ้อนไม่มากนัก นักเขียนโปรแกรมสามารถทำการทดสอบโดยรับโปรแกรม ป้อนข้อมูลทีละชุด และตรวจสอบความถูกต้องของผลลัพธ์ที่ได้ ซึ่งเป็นวิธีที่ง่านและเหมาะสำหรับผู้เริ่มต้นฝึกหัดการเขียนโปรแกรม เนื่องจากสามารถทดสอบโปรแกรมได้อย่างรวดเร็ว ในบางครั้งนักเขียนโปรแกรมอาจต้องใช้โปรแกรมเฉพาะเพื่อทำการรันโปรแกรมที่พัฒนาขึ้น และทดสอบกับชุดข้อมูลทดสอบอย่างอัตโนมัติ
7.1.5 การจัดทำเอกสารประกอบโปรแกรม
ขั้นตอนสุดท้ายหลังจากที่ได้ทดสอบจนแน่ใจว่าโปรแกรมทำงานได้ถูกต้องกับชุดข้อมูลทดสอบทั้งหมดแล้ว คือการจัดทำเอกสารประกอบ ในขั้นตอนนี้นักเขียนโปรแกรมจะต้องรวบรวมรายละเอียดทั้งหมดในระหว่างการพัฒนาโปรแกรม เช่น รายละเอียดของปัญหาที่ได้ทำการวิเคราะห์ไว้ ข้อมูลออกที่ต้องการ ข้อมูลเข้าที่เป็นไปได้ทั้งหมด วิธีการประมวลผลเพื่อแก้ปัญหารหัสลำลองหรือผังงานที่ได้รับการปรับปรุงแล้ว และสอดคล้องกับโปรแกรมที่ได้พัฒนาขึ้น ภาษาที่ใช้คุณลักษณะของเครื่องคอมพิวเตอร์ และรุ่นของระบบปฏิบัติการที่โปรแกรมทำงานด้วย ชุดข้อมูลทดสอบ และผลการทดสอบโปรแกรม โดยนำรายละเอียดทั้งหมดนี้ มาจัดทำเป็นรายงานหรือเอกสาร เพื่อจัดเก็บควบคู่กับตัวโปรแกรมต้นฉบับที่พัฒนาขึ้น สำหรับใช้อ้างอิงในอนาคตเมื่อต้องการแก้ไข หรือพัฒนาโปรแกรมต่อไป นอกจากนี้ควรมีการจัดทำคู่มือสำหรับผู้ใช้ ซึ่งอธิบายขั้นตอนในการใช้งานโปรแกรม เพื่อให้ผู้ใช้เข้าใจวิธีใช้งานอย่างถูกต้องและรวดเร็ว
ในบทนี้จะได้อธิบายถึงรายละเอียดในขั้นตอนการเขียนโปรแกรม จากรหัสลำลองหรือผังงาน และภาษาโปรแกรมคอมพิวเตอร์ต่างๆต่อไป

7.2 ภาษาโปรแกรมคอมพิวเตอร์

Published กรกฎาคม 17, 2012 by anttawiporn
ภาษาโปรแกรมคอมพิวเตอร์
การแก้ปัญหาด้วยคอมพิวเตอร์นั้น หลังจากที่ได้วิเคราะห์ปัญหาจนได้ขั้นตอนวิธีในการแก้ปัญหา ซึ่งอาจจะอยู่ในรูปแบบรหัสลำลอง หรือผังงาน ขั้นตอนต่อไปคือการเขียนโปรแกรมคอมพิวเตอร์ขึ้นเพื่อแก้ปัญหาตามขั้นตอนที่ได้วางแผนไว้ แต่เนื่องจากคอมพิวเตอร์จะรับรู้คำสั่งที่เป็นภาษาเครื่องเท่านั้นและมนุษย์ไม่สามารถเขียนโปรแกรมภาษาเครื่องได้โดยตรง เนื่องจากไม่สะดวก ยากต่อการทำความเข้า จึงได้มีการสร้างภาษาคอมพิวเตอร์ระดับสูงขึ้นมาเพื่อให้ง่ายต่อการเขียนโปรแกรม ผู้เขียนโปรแกรมไม่จำเป็นต้องเรียนรู้การทำงาน และโครงสร้างภายในของเครื่องคอมพิวเตอร์ ก็สามารถเขียนโปรแกรมได้โดยต้องผ่านการแปลให้เป็นภาษาเครื่องก่อนที่จะใช้สั่งงานคอมพิวเตอร์ได้
7.2.1 ภาษาเชิงกระบวนความ(procedural languages)
โปรแกรมคอมพิวเตอร์ที่เขียนด้วยภาษาเชิงกระบวนความมีลักษณะการทำงานตามลำดับของคำสั่ง จากคำสั่งแรกจนถึงคำสั่งสุดท้าย และบางคำสั่งอาจจะถูกทำซ้ำ หรือบางคำสั่งอาจจะไม่ถูกกระทำเลยขึ้นอยู่กับเงื่อนไขในโปรแกรม ภาษาในกลุ่มนี้เหมาะสำหรับการเริ่มต้นทำความเข้าใจกับการเขียนโปรแกรมคอมพิวเตอร์ เนื่องจากช่วยให้ผู้เรียนรู้จักการคิดอย่างเป็นระบบ อันเป็นพื้นฐานสำคัญในการเขียนโปรแกรมภาษาอื่น นอกจากนี้ในภาษาโปรแกรมประเภทอื่นก็จะยังมีรูปแบบการทำงานเชิงกระบวนความแฝงอยู่ภายในด้วยเสมอ การใช้งานภาษาในกลุ่มนี้ เช่น งานคำนวณทางวิทยาศาสตร์อาจเลือกใช้ภาษาฟอร์แทรน(FORTRAN) งานประมวลผลข้อมูลทางธุรกิจการเงินหรือธนาคารอาจเลือกใช้ภาษาโคบอล (COBOL)หรือภาษาอาร์พีจี (RPG) การเขียนโปรแกรมควบคุมการทำงานของระบบคอมพิวเตอร์มักเลือกใช้ภาษาซีเนื่องจากภาษาเครื่องที่ได้จะทำงานได้รวดเร็ว หรือการเรียนการสอนการโปรแกรมเชิงกระบวนความอาจเลือกใช้ภาษาปาสคาล (Pascal) หรือภาษาซี เป็นต้น

       7.2.2 ภาษาเชิงวัตถุ(Object-Oriented Languages)
ภาษาเชิงวัตถุจะอำนวยความสะดวกให้กับผู้เขียนโปรแกรมในการพัฒนาโปรแกรมที่ใหญ่และซับซ้อนได้เป็นอย่างดี อีกทั้งยังสามารถใช้เขียนโปรแกรมในลักษณะเดียวกับภาษาเชิงกระบวนความได้เช่นกัน ภาษาในกลุมนี้ เช่น ภาษาจาวา (Java) ภาษาซีชาร์ป (C#) และภาษาซีพลัสพลัส (C++)รูปที่ 7.5 แสดงตัวอย่างโปรแกรมภาษาซีพลัสพลัสที่ให้ผู้เล่นทายตัวเลขที่โปรแกรมสุ่มขึ้นมาหนึ่งตัว

7.2.3ภาษาอื่นๆ1) โฟร์ทจีแอล (fourth-generation languages: 4GLs) เป็นกลุ่มของภาษาที่แตกต่างจากภาษาเชิงกระบวนความ ที่เน้นให้ผู้ใช้สามารถเข้าถึงข้อมูลในฐานข้อมูลได้โดยง่าย ภาษาจะมีความคล้ายคลึงกับภาษาอังกฤษที่ใช้กันอยู่ ตัวอย่างของภาษา 4GL เช่น ภาษาเอสคิวแอล (SQL)
2) เอชทีเอ็มแอล (Hypertext Markup Language: HTML ) เป็นภาษาที่ใช้จัดรูปแบบการแสดงผลของข้อความและรูปภาพ รวมถึงสื่อประสมบนหน้าเว็บ ดังนั้นเอชทีเอ็มแอลจึงไม่ได้ถูกจัดเป็นภาษาที่ใช้ในการเขียนโปรแกรมอย่างแท้จริง แต่เป็นการกำหนดวิธีการในการแสดงผล เอชทีเอ็มแอลจะใช้แท็ก (tags) เป็นตัวกำหนดว่าส่วนใดในเอกสารจะให้แสดงผลอย่างไร รูปที่ 7.7 (ก) แสดงตัวอย่างของภาษาเอชทีเอ็มแอลที่ใช้ในการสร้างเว็บเพจในรูปที่ 7.7 (ข)


7.3 การโปรแกรมด้วยภาษาซี

Published กรกฎาคม 10, 2012 by anttawiporn
7.3 การโปรแกรมด้วยภาษาซี
ในบทนี้จะได้แนะนำให้รู้จักกับภาษาซี ซึ่งเป็นภาษาที่เขียนเป็นแบบโครงสร้าง และเป็นภาษาที่ใช้เป็นพื้นฐานในการเรียนรู้การเขียนโปรแกรมเชิงกระบวนความได้เป็นอย่างดี
7.3.1 โครงสร้างของภาษาซี
โครงสร้างพื้นฐานของโปรแกรมภาษาซีจะต้องประกอบด้วยฟังก์ชันอย่างน้อย 1 ฟังก์ชัน คือ ฟังก์ชัน main( ) ซึ่งมีรูปแบบดังรูปที่ 7.8

รูปที่ 7.8 โครงสร้างพื้นฐานของโปรแกรมภาษาซี
ฟังก์ชัน main( ) ประกอบด้วย 3 ส่วนหลัก คือ
1) ส่วนหัวของฟังก์ชัน ในบรรทัดที่ 1 ประกอบด้วย ชนิดข้อมูล ชื่อฟังก์ชัน main ตามด้วยเครื่องหมาย ( และเครื่องหมาย ) ตามลำดับ สำหรับชนิดข้อมูล เป็นการระบุว่าฟังก์ชันนี้จะส่งค่ากลับไปให้กับฟังก์ชันผู้เรียกเป็นข้อมูลชนิดใด โดยทั่วไปแล้วสำหรับฟังก์ชัน main ( ) จะส่งค่ากลับเป็นชนิดข้อมูลจำนวนเต็มหรือ int
2) ส่วนการประกาศตัวแปร ในบรรทัดที่ 2 ใช้สำหรับประกาศตัวแปรชนิดต่างๆ เพื่อเก็บข้อมูลระหว่างการประมวลผล
3) ส่วนคำสั่ง ในบรรทัดที่ 3 ประกอบด้วยคำสั่งต่างๆ ซึ่งอาจรวมถึงการเรียกใช้ฟังก์ชันอื่นได้ด้วย
ส่วนประกอบตัวแปรและส่วนคำสั่งจะต้องเขียนอยู่ระหว่างเครื่องหมาย { และเครื่องหมา } เสมอทั้งสองส่วนนี้ใช้สำหรับนิยามการทำงานของฟังก์ชัน main ( ) และคำสั่งทุกคำสั่งในภาษาซีจะต้องปิดท้ายเครื่องหมาย ; (semicolon) เสมอ
7.3.2 องค์ประกอบของภาษาซี
ในที่นี้จะได้อธิบายองค์ประกอบพื้นฐานของภาษาซีจากตัวอย่างของโปรแกรมในรูปที่ 7.10 ซึ่งเป็นโปรแกรมที่พัฒนามาจากผังงานในตัวอย่างที่ 6.9 โดยเพิ่มการนับจำนวนครั้งของการทายทั้งหมดด้วย (รูปที่ 7.9) แสดงผังงานที่สอดคล้องกับโปรแกรมในรูปที่ 7.10)

รูปที่ 7.9 ผังงานสำหรับโปรแกรมภาษาซีในรูปที่ 7.10

รูปที่ 7.10 ตัวอย่างโปรแกรมภาษาซี
- การประกาศรวมแฟ้มส่วนหัว (header file)

การประกาศรวมแฟ้มส่วนหัวดีงแสดงในบรรทัดที่ 1 และ 2 เป็นการรวมเอาฟังก์ชันมาตรฐานของภาษาซีเข้ามาร่วมใช้งานกับโปรแกรมที่เขียนขึ้น ทำให้นักเขียนโปรแกรมสามารถเรียกใช้ฟังก์ชันมาตรฐานที่ภาษาซีเตรียมไว้ให้ได้ เช่น ฟังก์ชัน printf ( ) และ scanf ( ) เป็นต้น
- การประกาศตัวแปร (variable declaration)

ในบรรทัดที่ 6 ถึง 8 เป็นการประกาศตัวแปร ซึ่งเป็นข้อกำหนดของภาษาซีที่ต้องมีการประกาศตัวแปรไว้ที่ตอนต้นของฟังก์ชัน ก่อนที่จะสามารถใช้งานตัวแปรเหล่านั้นได้ ในที่นี้มีการประกาศตัวแปร target, number และ no_of_guesses เป็นชนิดจำนวนเต็ม (int) สังเกตว่ารูปแบบของการประกาศตัวแปร คือ data_type identification_name;
ซึ่ง data_type เป็นชนิดของข้อมูล และ identification_name เป็นชื่อตัวแปรที่กำหนดขึ้นให้มีชนิดตามที่ระบุ นอกจากนี้ยังสามารถกำหนดค่าเริ่มต้นให้กับตัวแปรที่เพิ่งจะประกาศขึ้นได้เลย ดังเช่นที่กำหนดค่า 1 .ให้กับตัวแปร no_of_guesses ในบรรทัดที่ 8
- การรับข้อมูลเข้า

ในบรรทัดที่ 10,12 และ 20 เป็นการเรียกใช้ฟังก์ชัน scanf ( ) ในการรับข้อมูลเข้า โดยต้องมีการระบุ พารามิเตอร์ คือ ตัวแรกเป็นสายอักขระของการกำหนดรูปแบบของข้อมูลเข้าที่ต้องการรับ ในที่นี้คือ “%d” หมายถึงว่าต้องการรับข้อมูลเข้าที่อยู่ในรูปแบบจำนวนเต็ม และตัวที่สองเป็นตำแหน่งในหน่วยความจำของตัวแปรที่ต้องการใช้เก็บค่าที่รับเข้ามา สังเกตว่าภาษาซีใช้เครื่องหมาย & นำหน้าชื่อตัวแปร เป็นการอ้างถึงตำแหน่งในหน่วยความจำของตัวแปรนั้น
พารามิเตอร์ 
พารามิเตอร์ (parameter) หมายถึง ชื่อที่ถูกอ้างถึงในส่วนหัวของฟังก์ชัน หรือโปรแกรมย่อย ซึ่งจะถูกแทนที่ด้วยค่าที่ฟังก์ชันผู้เรียกส่งผ่านมาให้ในขณะที่ทีการเรียกใช้ฟังก์ชันหรือโปรแกรมย่อยนั้นๆ
- การพิมพ์ผลลัพธ์

ในบรรทัดที่ 11,16,18 และ 19 เป็นการเรียกฟังก์ชัน printf ( ) เพื่อพิมพ์ข้อความออกทางจอภาพซึ่งเราสามารถกำหนดข้อความอยู่ภายในเครื่องหมายอัญประกาศให้เป็นพารามิเตอร์ของฟังก์ชัน printf ( ) ได้เลย

สำหรับในบรรทัดที่ 23 จะมีการพิมพ์ค่าของตัวแปรชนิดจำนวนเต็ม no_of_quesses ด้วย โดยจะต้องระบุรูปแบบข้อมูลของตัวแปรที่ต้องการให้พิมพ์ภายในข้อความที่เป็นพารามิเตอร์ตัวแรกด้วย ในที่นี้ตัวแปร no_of_quesses เป็นชนิด int ซึ่งจะใช้รูปแบบกำหนดการพิมพ์คือ “%d” ในลักษณะเดียวกันกับฟังก์ชัน scanf ( ) นั่นเอง
- คำสั่งควบคุมการทำงานแบบวนซ้ำ

คำสั่ง while เป็นคำสั่งเพื่อควบคุมว่าชุดคำสั่งภายใต้คำสั่ง while (คือ ตั้งแต่บรรทัดที่ 14 ถึง 22) จะถูกวนทำซ้ำอีกหรือไม่ โดยเมื่อโปรแกรมทำงานมาถึงบรรทัดที่ 13 จะตรวจสอบก่อนว่าเงื่อนไขเป็นจริงหรือไม่ ในที่นี้คือตรวจสอบว่าค่าของตัวแปร number ไม่เท่ากันกับค่าของตัวแปร target หรือไม่ ถ้าเป็นจริง ก็จะไปทำงานตามคำสั่งภายในบรรทัดดังกล่าวหนึ่งรอบ ก่อนที่จะย้อนกลับไปตรวจสอบเงื่อนไขอีกครั้ง ถ้าเงื่อนไขเป็นเท็จ ก็จะไปทำงานในบรรทัดที่ 23 ต่อไป
- คำสั่งกำหนดค่าให้กับตัวแปร

ในบรรทัดที่ 21 เป็นการกำหนดค่าใหม่ให้กับตัวแปร no_of_quesses โดยใช้เครื่องหมายกำหนดค่า ( = ) ซึ่งเป็นการกำหนดให้ตัวแปรที่อยู่ทางซ้ายของเครื่องหมายกำหนดค่า มีค่าเท่ากับค่าของนิพจน์ทางขวาของเครื่องหมายกำหนดค่า ซึ่งในที่นี้เป็นการเพิ่มค่าของตัวแปร no_of_quesses ขึ้นอีก 1 นั่นเอง
ภาษาซีที่ใช้นิพจน์ทางคณิตศาสตร์เพื่อคำนวณและเปรียบเทียบ นิพจน์ประกอบด้วยตัวถูกดำเนินการ (operand) และตัวดำเนินการ (operator) ที่สามารถถูกลดรูปหรือถูกประเมินให้เป็นค่าทางคณิตศาสตร์เพียงค่าเดียวได้ เช่น 2*5 เป็นนิพจน์ เนื่องจากสามารถหาค่าได้เป็น 10 ตัวดำเนินการในภาษาซีมีหลายประเภท ดังตารางที่ 7.1 แสดงความหมายและตัวอย่างการใช้งานตัวดำเนินการในภาษาซี
ตารางที่ 7.1 ตัวดำเนินการ ความหมายและตัวอย่างการใช้งานในภาษาซี
- คำสั่งควบคุมการทำงานแบบมีทางเลือก

คำสั่ง if-else ในบรรทัดที่ 15 ถึง 18 เป็นการเลือกว่าจะทำงานตามคำสั่งภายใต้ if หรือภายใต้ else แล้วแต่เงื่อนไขที่อยู่หลัง if ในบรรทัดที่ 15 โดยถ้าเงื่อนไขเป็นจริง จะทำงานภายใต้ if นั่นคือคำสั่งในบรรทัดที่ 16 เท่านั้น แล้วจะข้ามไปทำงานในบรรทัดที่ 19 เลย แต่ถ้าเงื่อนไขในบรรทัดที่ 15 เป็นเท็จ ก็จะข้ามคำสั่งภายใต้ if ไปทำงานที่คำสั่งภายใต้ else ในบรรทัดที่ 18 เท่านั้น ก่อนที่จะทำงานในบรรทัดที่ 19 ต่อไป
- คำสั่ง return

ในบรรทัดที่ 25 คำสั่ง return เป็นการจบการทำงานของฟังก์ชัน แล้วส่งค่าที่ระบุ (คือค่า 0 ) กลับไปให้กับฟังก์ชันที่เรียกมา สำหรับโปรแกรมภาษาซีที่ถูกเรียกให้ทำงานจากระบบปฏิบัติการนั้น เนื่องจากระบบปฏิบัติการเป็นผู้เรียกให้ฟังก์ชัน main ( ) ในโปรแกรมทำงาน ดังนั้นเมื่อโปรแกรมทำงานเสร็จสิ้นลง ฟังก์ชัน main ( ) จึงส่งค่า 0 ไปให้กับระบบปฏิบัติการ
ตัวอย่างผลจากการรันโปรแกรมได้แสดงไว้ในรูปที่ 7.11

รูปที่ 7.11 ผลจากการรันโปรแกรมภาษาซีในรูปที่ 7.10

7.4 การพัฒนาโครงงานคอมพิวเตอร์

Published กรกฎาคม 10, 2012 by anttawiporn
โครงงานคอมพิวเตอร์เป็นการนำเอาความรู้ในด้านการเขียนโปรแกรม มาใช้ร่วมกับอุปกรณ์คอมพิวเตอร์
รวมถึงอุปกรณ์อื่นที่เกี่ยวข้อง เพื่อผลิตผลงานสำหรับแก้ปัญหา หรือนำผลงานมาประยุกต์ในงานจริง
นักเรียนจะต้องใช้ความรู้และประสบการณ์ เพื่อวางแผนการพัฒนา โครงงาน โดยอาจขอคำปรึกษาจากอาจารย์
ผู้สอน หรือผู้ทรงคุณวุฒิอื่น เป้าหมายสูงสุดของการจัดทำโครงงานคือ การที่โครงงานได้ถูกนำไปใช้งานจริง
และก่อให้เกิดประโยชน์ในชีวิตจริงของผู้นำไปใช้
ในการเลือกหัวข้อโครงงานนั้นผู้พัฒนาอาจเริ่มจากการใช้ความคิดสร้างสรรค์ ร่วมกับประสบการณ์
ในการคิดค้นถึงสิ่งที่เป็นปัญหา และความเป็นไปได้ในการนำเอาระบบคอมพิวเตอร์มาช่วยงาน โดยทั่วไปแล้ว
โครงงานคอมพิวเตอร์สามารถแบ่งออกได้เป็น 5 ประเภท คือ
1. โครงงานพัฒนาสื่อเพื่อการศึกษา
เป็นการสร้างบทเรียนที่อาจมีแบบฝึกหัดหรือคำถามเพื่อทดสอบด้วย
2.โครงงานพัฒนาเครื่องมือเป็นการพัฒนาโปรแกรมช่วยงานในด้านต่างๆ
3. โครงงานจำลองทฤษฎีเป็นการพัฒนาโปรแกรมเพื่อจำลองการทดลองในด้านต่างๆที่ไม่สามารถทดลองด้วยสถานการณ์จริงได้
4.โครงงานประยุกต์เป็นการนำเอาคอมพิวเตอร์มาประยุกต์ร่วมกับอุปกรณ์อื่นในการประดิษฐ์สิ่งของหรือปรับปรุง
เครื่องมือที่มีอยู่เดิมให้มีประสิทธิภาพสูงขึ้น
5.โครงงานพัฒนาเกมเป็นการสร้างเกมเพื่อการศึกษาหรือความบันเทิง

บทที่7 การพัฒนาโปรแกรม

ขั้นตอนการพัฒนาโปรแกรม 
7.1 ขั้นตอนการพัฒนาโปรแกรม
หลังจากที่ได้ออกแบบวิธีในการแก้ปัญหาซึ่งอยู่ในรูปแบบของรหัสลำลองหรือผังงานแล้ว ขั้นตอนต่อไป คือ การพัฒนาโปรแกรมตามผังงานดังกล่าว ซึ่งถ้านักเรียนเขียนโปรแกรมมีความรู้ความชำนาญในการเขียนโปรแกรมภาษาหนึ่งภาษาใดอยู่แล้ว จะสามารถทำได้โดยง่าย อย่างไรก็ตามนักเขียนโปรแกรมก็ยังต้องทำการตรวจสอบว่าโปรแกรมที่ได้พัฒนาขึ้น ทำงานได้ถูกต้อง และให้ผลลัพธ์ที่ไม่ผิดพลาดสำหรับทุกกรณี จึงจะสามารถนำโปรแกรมดังกล่าวไปใช้งานได้ นอกจากนี้นักเขียนโปรแกรมยังควรที่จะจัดทำเอกสาร ประกอบการพัฒนาโปรแกรม ซึ่งจะเป็นเครื่องมือให้ผู้ที่จะมาพัฒนาโปรแกรมต่อไปในอนาคต ทำความเข้าใจกับโปรแกรมที่จัดทำขึ้นได้สะดวกรวดเร็ว รวมถึงให้ผู้ใช้โปรแกรมเข้าใจวิธีการใช้งานโปรแกรมอย่างรวดเร็ว
7.1.1 การวิเคราะห์และออกแบบโปรแกรม
ในการพัฒนาโปรแกรมคอมพิวเตอร์ให้กับระบบงานขนาดใหญ่ที่มีการแบ่งงานวิเคราะห์ระบบและงานเขียนโปรแกรมออกจากกันนั้น โดยทั่วไปการมอบหมายงานให้นักเขียนโปรแกรม จะเป็นการกำหนดความต้องการของโปรแกรมในภาพรวม แต่ไม่ได้ระบุรายละเอียดขั้นเป็นรหัสลำลองหรือผังงานที่ละเอียด นักเขียนโปรแกรมจึงต้องศึกษาถึงความต้องการของงานที่ได้รับมอบหมาย ข้อมูลนำเข้า ข้อมูลส่งออก และกระบวนการในการแก้ปัญหาอย่างละเอียดเพื่อพัฒนาขึ้นเป็นขั้นตอนวิธีในการแก้ปัญหาซึ่งอยู่ในรูปแบบของผังงานอย่างละเอียด ซึ่งขั้นตอนดังกล่าวนี้ คือ การออกแบบผังงานดังได้กล่าวแล้วในบทที่ 6
7.1.2 การเขียนโปรแกรมจากรหัสลำลองหรือผังงาน
โดยทั่วไปการเขียนโปรแกรมจากรหัสลำลองหรือผังงานที่ได้ออกแบบไว้อย่างดีแล้ว นักเขียนโปรแกรมสามารถทำได้โดยง่ายและรวดเร็ว ซึ่งจะเป็นการแปลงจากแต่ละสัญลักษณ์ของผังงาน ไปเป็นคำสั่งที่สอดคล้องกันในภาษาโปรแกรมที่เลือกใช้ โดยโปรแกรมที่ดีจะต้องมีการตรวจสอบและแจ้งข้อผิดพลาดให้แก่ผู้ใช้งานโปรแกรมทราบ โดยที่การทำงานของโปรแกรมไม่สะดุดลง ตัวอย่างเช่น ในการพัฒนาโปรแกรมเพื่อหาค่าของผลหารถ้าหากว่ามีการรับข้อมูลนำเข้าเป็นตัวหาร แต่ผู้ใช้ป้อนข้อมูลตัวหารเป็นศูนย์ โปรแกรมจะเกิดข้อผิดพลาดในการทำงานเป็นชิ้น ดังนั้นโปรแกรมควรต้องทำการตรวจสอบว่า ถ้าตัวหารเป็นศูนย์ต้องแจ้งข้อความผิดพลาดให้ผู้ใช้ทราบ

รูปที่ 7.1 ผลลัพธ์จากโปรแกรมที่ตัวหาร (ก) ไม่เป็นศูนย์ และ (ข) เป็นศูนย์
รูปที่ 7.1 แสดงผลที่ได้จากโปรแกรมเมื่อตัวหารไม่เป็นศูนย์ และเมื่อตัวหารเป็นศูนย์จะเห็นว่าเมื่อตัวหารไม่เป็นศูนย์ โปรแกรมสามารถทำงานให้คำตอบได้อย่างถูกต้อง แต่ถ้าตัวหารเป็นศูนย์ และในโปรแกรมไม่ได้มีการตรวจสอบไว้ โปรแกรมจะทำงานผิดพลาด และหยุดการทำงานลงพร้อมกับแสดงข้อความบอกข้อผิดพลาดที่เกิดขึ้นออกมา ดังที่แสดงในรูปเป็นตัวอักษรเอียง
7.1.3 การเตรียมข้อมูลสำหรับทดสอบโปรแกรม
ในระหว่างขั้นตอนการออกแบบวิธีการแก้ปัญหาให้อยู่ในรูปของรหัสลำลองหรือผังงานนั้นนักเขียนโปรแกรมควรพิจารณาถึงข้อมูลที่จะนำมาใช้ในการทดสอบโปรแกรมที่จะเขียนขึ้นด้วยความสมบูรณ์ของข้อมูลที่ใช้ในการทดสอบโปรแกรมมีความสำคัญมาก เนื่องจากจะเป็นสิ่งบ่งบอกถึงความถูกต้องของโปรแกรมที่พัฒนาขึ้น ว่ามีความถูกต้องครอบคลุมข้อมูลนำเข้าทุกรูปแบบ โดยตรวจสอบว่ามีข้อมูลนำเข้ารูปแบบใดที่โปรแกรมไม่สามารถรองรับได้ เช่น ข้อมูลไม่อยู่ในช่วงที่ถูกต้อง และข้อมูลที่รับเข้าเป็นตัวเลขแต่ผู้ใช้ป้อนค่าเป็นตัวอักษร
7.1.4 การทดสอบโปรแกรม
หลังจากได้เขียนโปรแกรมและเตรียมข้อมูลสำหรับทดสอบอย่างครบถ้วนแล้ว ขั้นตอนทดสอบโปรแกรมก็จะสามารถดำเนินการได้ ถ้าหากว่าโปรแกรมที่พัฒนาขึ้นมีความซับซ้อนไม่มากนัก นักเขียนโปรแกรมสามารถทำการทดสอบโดยรับโปรแกรม ป้อนข้อมูลทีละชุด และตรวจสอบความถูกต้องของผลลัพธ์ที่ได้ ซึ่งเป็นวิธีที่ง่านและเหมาะสำหรับผู้เริ่มต้นฝึกหัดการเขียนโปรแกรม เนื่องจากสามารถทดสอบโปรแกรมได้อย่างรวดเร็ว ในบางครั้งนักเขียนโปรแกรมอาจต้องใช้โปรแกรมเฉพาะเพื่อทำการรันโปรแกรมที่พัฒนาขึ้น และทดสอบกับชุดข้อมูลทดสอบอย่างอัตโนมัติ
7.1.5 การจัดทำเอกสารประกอบโปรแกรม
ขั้นตอนสุดท้ายหลังจากที่ได้ทดสอบจนแน่ใจว่าโปรแกรมทำงานได้ถูกต้องกับชุดข้อมูลทดสอบทั้งหมดแล้ว คือการจัดทำเอกสารประกอบ ในขั้นตอนนี้นักเขียนโปรแกรมจะต้องรวบรวมรายละเอียดทั้งหมดในระหว่างการพัฒนาโปรแกรม เช่น รายละเอียดของปัญหาที่ได้ทำการวิเคราะห์ไว้ ข้อมูลออกที่ต้องการ ข้อมูลเข้าที่เป็นไปได้ทั้งหมด วิธีการประมวลผลเพื่อแก้ปัญหารหัสลำลองหรือผังงานที่ได้รับการปรับปรุงแล้ว และสอดคล้องกับโปรแกรมที่ได้พัฒนาขึ้น ภาษาที่ใช้คุณลักษณะของเครื่องคอมพิวเตอร์ และรุ่นของระบบปฏิบัติการที่โปรแกรมทำงานด้วย ชุดข้อมูลทดสอบ และผลการทดสอบโปรแกรม โดยนำรายละเอียดทั้งหมดนี้ มาจัดทำเป็นรายงานหรือเอกสาร เพื่อจัดเก็บควบคู่กับตัวโปรแกรมต้นฉบับที่พัฒนาขึ้น สำหรับใช้อ้างอิงในอนาคตเมื่อต้องการแก้ไข หรือพัฒนาโปรแกรมต่อไป นอกจากนี้ควรมีการจัดทำคู่มือสำหรับผู้ใช้ ซึ่งอธิบายขั้นตอนในการใช้งานโปรแกรม เพื่อให้ผู้ใช้เข้าใจวิธีใช้งานอย่างถูกต้องและรวดเร็ว
ในบทนี้จะได้อธิบายถึงรายละเอียดในขั้นตอนการเขียนโปรแกรม จากรหัสลำลองหรือผังงาน และภาษาโปรแกรมคอมพิวเตอร์ต่างๆต่อไป

7.2 ภาษาโปรแกรมคอมพิวเตอร์

Published กรกฎาคม 17, 2012 by anttawiporn
ภาษาโปรแกรมคอมพิวเตอร์
การแก้ปัญหาด้วยคอมพิวเตอร์นั้น หลังจากที่ได้วิเคราะห์ปัญหาจนได้ขั้นตอนวิธีในการแก้ปัญหา ซึ่งอาจจะอยู่ในรูปแบบรหัสลำลอง หรือผังงาน ขั้นตอนต่อไปคือการเขียนโปรแกรมคอมพิวเตอร์ขึ้นเพื่อแก้ปัญหาตามขั้นตอนที่ได้วางแผนไว้ แต่เนื่องจากคอมพิวเตอร์จะรับรู้คำสั่งที่เป็นภาษาเครื่องเท่านั้นและมนุษย์ไม่สามารถเขียนโปรแกรมภาษาเครื่องได้โดยตรง เนื่องจากไม่สะดวก ยากต่อการทำความเข้า จึงได้มีการสร้างภาษาคอมพิวเตอร์ระดับสูงขึ้นมาเพื่อให้ง่ายต่อการเขียนโปรแกรม ผู้เขียนโปรแกรมไม่จำเป็นต้องเรียนรู้การทำงาน และโครงสร้างภายในของเครื่องคอมพิวเตอร์ ก็สามารถเขียนโปรแกรมได้โดยต้องผ่านการแปลให้เป็นภาษาเครื่องก่อนที่จะใช้สั่งงานคอมพิวเตอร์ได้
7.2.1 ภาษาเชิงกระบวนความ(procedural languages)
โปรแกรมคอมพิวเตอร์ที่เขียนด้วยภาษาเชิงกระบวนความมีลักษณะการทำงานตามลำดับของคำสั่ง จากคำสั่งแรกจนถึงคำสั่งสุดท้าย และบางคำสั่งอาจจะถูกทำซ้ำ หรือบางคำสั่งอาจจะไม่ถูกกระทำเลยขึ้นอยู่กับเงื่อนไขในโปรแกรม ภาษาในกลุ่มนี้เหมาะสำหรับการเริ่มต้นทำความเข้าใจกับการเขียนโปรแกรมคอมพิวเตอร์ เนื่องจากช่วยให้ผู้เรียนรู้จักการคิดอย่างเป็นระบบ อันเป็นพื้นฐานสำคัญในการเขียนโปรแกรมภาษาอื่น นอกจากนี้ในภาษาโปรแกรมประเภทอื่นก็จะยังมีรูปแบบการทำงานเชิงกระบวนความแฝงอยู่ภายในด้วยเสมอ การใช้งานภาษาในกลุ่มนี้ เช่น งานคำนวณทางวิทยาศาสตร์อาจเลือกใช้ภาษาฟอร์แทรน(FORTRAN) งานประมวลผลข้อมูลทางธุรกิจการเงินหรือธนาคารอาจเลือกใช้ภาษาโคบอล (COBOL)หรือภาษาอาร์พีจี (RPG) การเขียนโปรแกรมควบคุมการทำงานของระบบคอมพิวเตอร์มักเลือกใช้ภาษาซีเนื่องจากภาษาเครื่องที่ได้จะทำงานได้รวดเร็ว หรือการเรียนการสอนการโปรแกรมเชิงกระบวนความอาจเลือกใช้ภาษาปาสคาล (Pascal) หรือภาษาซี เป็นต้น

       7.2.2 ภาษาเชิงวัตถุ(Object-Oriented Languages)
ภาษาเชิงวัตถุจะอำนวยความสะดวกให้กับผู้เขียนโปรแกรมในการพัฒนาโปรแกรมที่ใหญ่และซับซ้อนได้เป็นอย่างดี อีกทั้งยังสามารถใช้เขียนโปรแกรมในลักษณะเดียวกับภาษาเชิงกระบวนความได้เช่นกัน ภาษาในกลุมนี้ เช่น ภาษาจาวา (Java) ภาษาซีชาร์ป (C#) และภาษาซีพลัสพลัส (C++)รูปที่ 7.5 แสดงตัวอย่างโปรแกรมภาษาซีพลัสพลัสที่ให้ผู้เล่นทายตัวเลขที่โปรแกรมสุ่มขึ้นมาหนึ่งตัว

7.2.3ภาษาอื่นๆ1) โฟร์ทจีแอล (fourth-generation languages: 4GLs) เป็นกลุ่มของภาษาที่แตกต่างจากภาษาเชิงกระบวนความ ที่เน้นให้ผู้ใช้สามารถเข้าถึงข้อมูลในฐานข้อมูลได้โดยง่าย ภาษาจะมีความคล้ายคลึงกับภาษาอังกฤษที่ใช้กันอยู่ ตัวอย่างของภาษา 4GL เช่น ภาษาเอสคิวแอล (SQL)
2) เอชทีเอ็มแอล (Hypertext Markup Language: HTML ) เป็นภาษาที่ใช้จัดรูปแบบการแสดงผลของข้อความและรูปภาพ รวมถึงสื่อประสมบนหน้าเว็บ ดังนั้นเอชทีเอ็มแอลจึงไม่ได้ถูกจัดเป็นภาษาที่ใช้ในการเขียนโปรแกรมอย่างแท้จริง แต่เป็นการกำหนดวิธีการในการแสดงผล เอชทีเอ็มแอลจะใช้แท็ก (tags) เป็นตัวกำหนดว่าส่วนใดในเอกสารจะให้แสดงผลอย่างไร รูปที่ 7.7 (ก) แสดงตัวอย่างของภาษาเอชทีเอ็มแอลที่ใช้ในการสร้างเว็บเพจในรูปที่ 7.7 (ข)


7.3 การโปรแกรมด้วยภาษาซี

Published กรกฎาคม 10, 2012 by anttawiporn
7.3 การโปรแกรมด้วยภาษาซี
ในบทนี้จะได้แนะนำให้รู้จักกับภาษาซี ซึ่งเป็นภาษาที่เขียนเป็นแบบโครงสร้าง และเป็นภาษาที่ใช้เป็นพื้นฐานในการเรียนรู้การเขียนโปรแกรมเชิงกระบวนความได้เป็นอย่างดี
7.3.1 โครงสร้างของภาษาซี
โครงสร้างพื้นฐานของโปรแกรมภาษาซีจะต้องประกอบด้วยฟังก์ชันอย่างน้อย 1 ฟังก์ชัน คือ ฟังก์ชัน main( ) ซึ่งมีรูปแบบดังรูปที่ 7.8

รูปที่ 7.8 โครงสร้างพื้นฐานของโปรแกรมภาษาซี
ฟังก์ชัน main( ) ประกอบด้วย 3 ส่วนหลัก คือ
1) ส่วนหัวของฟังก์ชัน ในบรรทัดที่ 1 ประกอบด้วย ชนิดข้อมูล ชื่อฟังก์ชัน main ตามด้วยเครื่องหมาย ( และเครื่องหมาย ) ตามลำดับ สำหรับชนิดข้อมูล เป็นการระบุว่าฟังก์ชันนี้จะส่งค่ากลับไปให้กับฟังก์ชันผู้เรียกเป็นข้อมูลชนิดใด โดยทั่วไปแล้วสำหรับฟังก์ชัน main ( ) จะส่งค่ากลับเป็นชนิดข้อมูลจำนวนเต็มหรือ int
2) ส่วนการประกาศตัวแปร ในบรรทัดที่ 2 ใช้สำหรับประกาศตัวแปรชนิดต่างๆ เพื่อเก็บข้อมูลระหว่างการประมวลผล
3) ส่วนคำสั่ง ในบรรทัดที่ 3 ประกอบด้วยคำสั่งต่างๆ ซึ่งอาจรวมถึงการเรียกใช้ฟังก์ชันอื่นได้ด้วย
ส่วนประกอบตัวแปรและส่วนคำสั่งจะต้องเขียนอยู่ระหว่างเครื่องหมาย { และเครื่องหมา } เสมอทั้งสองส่วนนี้ใช้สำหรับนิยามการทำงานของฟังก์ชัน main ( ) และคำสั่งทุกคำสั่งในภาษาซีจะต้องปิดท้ายเครื่องหมาย ; (semicolon) เสมอ
7.3.2 องค์ประกอบของภาษาซี
ในที่นี้จะได้อธิบายองค์ประกอบพื้นฐานของภาษาซีจากตัวอย่างของโปรแกรมในรูปที่ 7.10 ซึ่งเป็นโปรแกรมที่พัฒนามาจากผังงานในตัวอย่างที่ 6.9 โดยเพิ่มการนับจำนวนครั้งของการทายทั้งหมดด้วย (รูปที่ 7.9) แสดงผังงานที่สอดคล้องกับโปรแกรมในรูปที่ 7.10)

รูปที่ 7.9 ผังงานสำหรับโปรแกรมภาษาซีในรูปที่ 7.10

รูปที่ 7.10 ตัวอย่างโปรแกรมภาษาซี
- การประกาศรวมแฟ้มส่วนหัว (header file)

การประกาศรวมแฟ้มส่วนหัวดีงแสดงในบรรทัดที่ 1 และ 2 เป็นการรวมเอาฟังก์ชันมาตรฐานของภาษาซีเข้ามาร่วมใช้งานกับโปรแกรมที่เขียนขึ้น ทำให้นักเขียนโปรแกรมสามารถเรียกใช้ฟังก์ชันมาตรฐานที่ภาษาซีเตรียมไว้ให้ได้ เช่น ฟังก์ชัน printf ( ) และ scanf ( ) เป็นต้น
- การประกาศตัวแปร (variable declaration)

ในบรรทัดที่ 6 ถึง 8 เป็นการประกาศตัวแปร ซึ่งเป็นข้อกำหนดของภาษาซีที่ต้องมีการประกาศตัวแปรไว้ที่ตอนต้นของฟังก์ชัน ก่อนที่จะสามารถใช้งานตัวแปรเหล่านั้นได้ ในที่นี้มีการประกาศตัวแปร target, number และ no_of_guesses เป็นชนิดจำนวนเต็ม (int) สังเกตว่ารูปแบบของการประกาศตัวแปร คือ data_type identification_name;
ซึ่ง data_type เป็นชนิดของข้อมูล และ identification_name เป็นชื่อตัวแปรที่กำหนดขึ้นให้มีชนิดตามที่ระบุ นอกจากนี้ยังสามารถกำหนดค่าเริ่มต้นให้กับตัวแปรที่เพิ่งจะประกาศขึ้นได้เลย ดังเช่นที่กำหนดค่า 1 .ให้กับตัวแปร no_of_guesses ในบรรทัดที่ 8
- การรับข้อมูลเข้า

ในบรรทัดที่ 10,12 และ 20 เป็นการเรียกใช้ฟังก์ชัน scanf ( ) ในการรับข้อมูลเข้า โดยต้องมีการระบุ พารามิเตอร์ คือ ตัวแรกเป็นสายอักขระของการกำหนดรูปแบบของข้อมูลเข้าที่ต้องการรับ ในที่นี้คือ “%d” หมายถึงว่าต้องการรับข้อมูลเข้าที่อยู่ในรูปแบบจำนวนเต็ม และตัวที่สองเป็นตำแหน่งในหน่วยความจำของตัวแปรที่ต้องการใช้เก็บค่าที่รับเข้ามา สังเกตว่าภาษาซีใช้เครื่องหมาย & นำหน้าชื่อตัวแปร เป็นการอ้างถึงตำแหน่งในหน่วยความจำของตัวแปรนั้น
พารามิเตอร์ 
พารามิเตอร์ (parameter) หมายถึง ชื่อที่ถูกอ้างถึงในส่วนหัวของฟังก์ชัน หรือโปรแกรมย่อย ซึ่งจะถูกแทนที่ด้วยค่าที่ฟังก์ชันผู้เรียกส่งผ่านมาให้ในขณะที่ทีการเรียกใช้ฟังก์ชันหรือโปรแกรมย่อยนั้นๆ
- การพิมพ์ผลลัพธ์

ในบรรทัดที่ 11,16,18 และ 19 เป็นการเรียกฟังก์ชัน printf ( ) เพื่อพิมพ์ข้อความออกทางจอภาพซึ่งเราสามารถกำหนดข้อความอยู่ภายในเครื่องหมายอัญประกาศให้เป็นพารามิเตอร์ของฟังก์ชัน printf ( ) ได้เลย

สำหรับในบรรทัดที่ 23 จะมีการพิมพ์ค่าของตัวแปรชนิดจำนวนเต็ม no_of_quesses ด้วย โดยจะต้องระบุรูปแบบข้อมูลของตัวแปรที่ต้องการให้พิมพ์ภายในข้อความที่เป็นพารามิเตอร์ตัวแรกด้วย ในที่นี้ตัวแปร no_of_quesses เป็นชนิด int ซึ่งจะใช้รูปแบบกำหนดการพิมพ์คือ “%d” ในลักษณะเดียวกันกับฟังก์ชัน scanf ( ) นั่นเอง
- คำสั่งควบคุมการทำงานแบบวนซ้ำ

คำสั่ง while เป็นคำสั่งเพื่อควบคุมว่าชุดคำสั่งภายใต้คำสั่ง while (คือ ตั้งแต่บรรทัดที่ 14 ถึง 22) จะถูกวนทำซ้ำอีกหรือไม่ โดยเมื่อโปรแกรมทำงานมาถึงบรรทัดที่ 13 จะตรวจสอบก่อนว่าเงื่อนไขเป็นจริงหรือไม่ ในที่นี้คือตรวจสอบว่าค่าของตัวแปร number ไม่เท่ากันกับค่าของตัวแปร target หรือไม่ ถ้าเป็นจริง ก็จะไปทำงานตามคำสั่งภายในบรรทัดดังกล่าวหนึ่งรอบ ก่อนที่จะย้อนกลับไปตรวจสอบเงื่อนไขอีกครั้ง ถ้าเงื่อนไขเป็นเท็จ ก็จะไปทำงานในบรรทัดที่ 23 ต่อไป
- คำสั่งกำหนดค่าให้กับตัวแปร

ในบรรทัดที่ 21 เป็นการกำหนดค่าใหม่ให้กับตัวแปร no_of_quesses โดยใช้เครื่องหมายกำหนดค่า ( = ) ซึ่งเป็นการกำหนดให้ตัวแปรที่อยู่ทางซ้ายของเครื่องหมายกำหนดค่า มีค่าเท่ากับค่าของนิพจน์ทางขวาของเครื่องหมายกำหนดค่า ซึ่งในที่นี้เป็นการเพิ่มค่าของตัวแปร no_of_quesses ขึ้นอีก 1 นั่นเอง
ภาษาซีที่ใช้นิพจน์ทางคณิตศาสตร์เพื่อคำนวณและเปรียบเทียบ นิพจน์ประกอบด้วยตัวถูกดำเนินการ (operand) และตัวดำเนินการ (operator) ที่สามารถถูกลดรูปหรือถูกประเมินให้เป็นค่าทางคณิตศาสตร์เพียงค่าเดียวได้ เช่น 2*5 เป็นนิพจน์ เนื่องจากสามารถหาค่าได้เป็น 10 ตัวดำเนินการในภาษาซีมีหลายประเภท ดังตารางที่ 7.1 แสดงความหมายและตัวอย่างการใช้งานตัวดำเนินการในภาษาซี
ตารางที่ 7.1 ตัวดำเนินการ ความหมายและตัวอย่างการใช้งานในภาษาซี
- คำสั่งควบคุมการทำงานแบบมีทางเลือก

คำสั่ง if-else ในบรรทัดที่ 15 ถึง 18 เป็นการเลือกว่าจะทำงานตามคำสั่งภายใต้ if หรือภายใต้ else แล้วแต่เงื่อนไขที่อยู่หลัง if ในบรรทัดที่ 15 โดยถ้าเงื่อนไขเป็นจริง จะทำงานภายใต้ if นั่นคือคำสั่งในบรรทัดที่ 16 เท่านั้น แล้วจะข้ามไปทำงานในบรรทัดที่ 19 เลย แต่ถ้าเงื่อนไขในบรรทัดที่ 15 เป็นเท็จ ก็จะข้ามคำสั่งภายใต้ if ไปทำงานที่คำสั่งภายใต้ else ในบรรทัดที่ 18 เท่านั้น ก่อนที่จะทำงานในบรรทัดที่ 19 ต่อไป
- คำสั่ง return

ในบรรทัดที่ 25 คำสั่ง return เป็นการจบการทำงานของฟังก์ชัน แล้วส่งค่าที่ระบุ (คือค่า 0 ) กลับไปให้กับฟังก์ชันที่เรียกมา สำหรับโปรแกรมภาษาซีที่ถูกเรียกให้ทำงานจากระบบปฏิบัติการนั้น เนื่องจากระบบปฏิบัติการเป็นผู้เรียกให้ฟังก์ชัน main ( ) ในโปรแกรมทำงาน ดังนั้นเมื่อโปรแกรมทำงานเสร็จสิ้นลง ฟังก์ชัน main ( ) จึงส่งค่า 0 ไปให้กับระบบปฏิบัติการ
ตัวอย่างผลจากการรันโปรแกรมได้แสดงไว้ในรูปที่ 7.11

รูปที่ 7.11 ผลจากการรันโปรแกรมภาษาซีในรูปที่ 7.10

7.4 การพัฒนาโครงงานคอมพิวเตอร์

Published กรกฎาคม 10, 2012 by anttawiporn
โครงงานคอมพิวเตอร์เป็นการนำเอาความรู้ในด้านการเขียนโปรแกรม มาใช้ร่วมกับอุปกรณ์คอมพิวเตอร์
รวมถึงอุปกรณ์อื่นที่เกี่ยวข้อง เพื่อผลิตผลงานสำหรับแก้ปัญหา หรือนำผลงานมาประยุกต์ในงานจริง
นักเรียนจะต้องใช้ความรู้และประสบการณ์ เพื่อวางแผนการพัฒนา โครงงาน โดยอาจขอคำปรึกษาจากอาจารย์
ผู้สอน หรือผู้ทรงคุณวุฒิอื่น เป้าหมายสูงสุดของการจัดทำโครงงานคือ การที่โครงงานได้ถูกนำไปใช้งานจริง
และก่อให้เกิดประโยชน์ในชีวิตจริงของผู้นำไปใช้
ในการเลือกหัวข้อโครงงานนั้นผู้พัฒนาอาจเริ่มจากการใช้ความคิดสร้างสรรค์ ร่วมกับประสบการณ์
ในการคิดค้นถึงสิ่งที่เป็นปัญหา และความเป็นไปได้ในการนำเอาระบบคอมพิวเตอร์มาช่วยงาน โดยทั่วไปแล้ว
โครงงานคอมพิวเตอร์สามารถแบ่งออกได้เป็น 5 ประเภท คือ
1. โครงงานพัฒนาสื่อเพื่อการศึกษา
เป็นการสร้างบทเรียนที่อาจมีแบบฝึกหัดหรือคำถามเพื่อทดสอบด้วย
2.โครงงานพัฒนาเครื่องมือเป็นการพัฒนาโปรแกรมช่วยงานในด้านต่างๆ
3. โครงงานจำลองทฤษฎีเป็นการพัฒนาโปรแกรมเพื่อจำลองการทดลองในด้านต่างๆที่ไม่สามารถทดลองด้วยสถานการณ์จริงได้
4.โครงงานประยุกต์เป็นการนำเอาคอมพิวเตอร์มาประยุกต์ร่วมกับอุปกรณ์อื่นในการประดิษฐ์สิ่งของหรือปรับปรุง
เครื่องมือที่มีอยู่เดิมให้มีประสิทธิภาพสูงขึ้น
5.โครงงานพัฒนาเกมเป็นการสร้างเกมเพื่อการศึกษาหรือความบันเทิง

หลักการแก้ปัญหาด้วยคอมพิวเตอร์

บทที่ 6 ( 6.1 หลักการแก้ปัญหา )

ในชีวิตประจำวันทุกคนต้องเคยพบกับปัญหาต่างๆ ไม่ว่าจะเป็นปัญหาด้านการเรียน การงานการเงิน หรือแม้แต่ในการเล่นเกม จนอาจกล่าวได้ว่าการแก้ปัญหาเป็นกิจกรรมพื้นฐานอย่างหนึ่งของมนุษย์ เมื่อพบกับปัญหาแต่ละคนมีวิธีที่จะจัดการหรือแก้ปัญหาเหล่านั้นแตกต่างกันไป ซึ่งแตละวิธีการอาจเหมือนหรือแตกต่างกัน ทั้งนี้ขึ้นอยู้กับความรู้ ความสามารถ และประสบการณ์ของแต่ละบุคคลอย่างไรก็ตาม เมื่อได้มีการนำวิธีการแก้ปัญหาต่างๆ มาวิเคราะห์ จะพบว่าวิธีการเหล่านี้สามารถสรุปเป็นทฤษฎีซึ่งมีรูปแบบที่แน่นอนได้ และปัญหาบางลักษณะอาจต้องอาศัยความรู้ในระดับสูงเพื่อแก็ไขได้อย่างสมบูรณ์แบบ ในบทนี้ผู้เรียนจะได้ศ฿กษาเกี่ยวกับหลักและวิธีการแก้ปัญหาด้วยคอมพิวเตอร์ และการนำภาษาโปรแกรมคอมพิวเตอร์และเครื่องมือต่างๆ มาช่วยในการแก้ปัญหา
โดยทั่งไปการแก้ปัญหาหนึ่งอาจทำได้หลายวิธี ตัวอย่างเช่น ปัญหาจากการเล่นเกมทายใจก็สามารถแก้ได้หลายวิธีเช่นกัน เพียงแต่ว่าแต่ละวิธีที่แตกต่างกันจะทำให้ผู้เล่นเกมแก้ปัญหาได้ช้าเร็วไม่เท่ากัน
ตัวอย่างเกมทายใจ
เกมทายใจคือเกมที่จะให้ผู้เล่นทายตัวเลข 3 ตัวโดยต้องทายถูกตัวเลขและตำแหน่งซึ่งต้องใช้ผุ้เล่น 2 คน ผู้เล่นคนที่หน฿่งกำหนดตัวเลข 3 ตัวที่ไม่ซ้ำกันโดยเลือกจาตัวเลข 1-9 และผู้เล่นคนที่หนึ่งต้องแจ้งผลการทายว่าตัวเลขที่ทายมานั้นถูกต้องกี่ตัว และถูกต้องกี่ตำแหน่ง ตัวอย่างเช่น ถ้าตัวเลขที่กำหนดไว้เป็น 8 1 5 และผู้เล่นคนที่สองทายว่า 1 2 3 ผู้เล่นคนที่หนึ่งต้องแจ้งว่าตัวเลขที่ทายนั้นถูกเพียงตัวเดียวและไมามีตัวใดถูกตำแหน่ง
ตัวอย่างการเล่นเกมทายใจ
จะเห็นได้ว่าในครั้งแรกๆ ของการทาย ผู้ทายจะใช้วิธีลองผิดลองถูกโดยการสุ่มตัวเลข 1-9 สำหรับเลขทั้ง 3 ตัว ดยไม่ให้มีตัวเลขซ้ำกัน ซึ้งเมื่อผู้กำหนดให้รายละเอียดเกี่ยวกับจำนวนตัวเลขและจำนวนตำแหน่งที่ถูกต้องแล้ว ผู้ทายก็สามารถแยกตัวเลขที่ไม่ถูกต้องทั้งค่าของตัวเลขและตำแหน่ง ออกจากการทายคำตอบของปัญหาในครั้งถัดๆไป การใช้เหตุผลเพื่อแยกตัวเลขที่ไม่ต้องการใรการทายแต่ละครั้งนี้ จะช่วยให้ผู้ทายสามารถค้นพบคำตอบของปัญหาได้ในที่สุด
การแก้ปัญหาโดยใช้รูปแบบของการใช้เหตุผลประกอบกับการแยกคำตอบที่ไม่ต้องการ จะขึ้นอยู่กับเงื่อนไขของปัญหา ในบางปัญหาวิธีการนี้อาจไม่สามารถหาคำตอบสุดท้ายได้ แต่อาจช่วยจำกัดจำนวนคำตอบที่เป็นไปได้ให้น้อยลง นอกจากวิธีการแก้ปัญหาที่ยกตัวอย่างมาซึ่งได้แก่ การลองผิดลองถูก การใช้เหตุผลและการใช้วิธีแยกคำตอบที่ไม่ต้องการ ยังมีวิธีการแก้ปัญหาอีกมากมายที่สามารถเลือกใช้ให้เหมาะสมกับตัวปัญหาและประสบการณ์ของผู้แก้ปัญหาเอง อย่างไรก็ตาม เมื่อพิจารณาในภาพรวมจะพบว่า วิธีการเหล่านี้ล้วนมีขั้นตอนหลักที่คล้ายคลึงกัน ซึ่งประกอบด้วย 4 ขั้นตอน
ขั้นตอนการแก้ปัญหา
1.การวิเคราะห์และกำหนดรายละเอียดของปัญหา
ขั้นตอนแรกของการแก้ปัญหาใดๆ ก็ตาม จะต้องเริ่มต้นด้วยการทำความเข้าใจกับปัญหาให้ถ่องแท้ เพื่อวิเคราะห์เงื่อนไขของปัญหาให้ชัดเจน รวมไปถึงข้อมุลที่จำเป็นในการแก้ปัญหาและรูปแบบหรือลักษณะของผลลัพะหรือคำตอบที่ต้องการโดยเหล่านี้จะเป็นประโยชน์ในการเลือกวิธีการแก้ปัญหาต่อไปกล่าวดดยสรุป การวิเคราะห์และกำหนดรายละเอียดของปัญหามีองค์ประกอบดังนี้
1.1 การระบุข้อมูลออก
1.2 การระบุข้อมูลเข้า
1.3 ราบละเอียดของปัญหา
1.1 การระบุข้อมูลออก
ข้อมูลออกหรือคำตอบ คือสิ่งที่โจทย์ต้องการในการแก้ปัญหาด้วยคอมพิวเตอร์จำเป็นต้องระบุให้ชัดเจนว่าสิ่งที่ต้องการให้เป้นผลลัพธ์ของปัญหาคืออะไร และต้องการให้แสดงออกในรูปแบบใด เช่น การประมวลผลข้อมูลการเบิกถอนเงินจากเครื่องเอทีเอ็ม ต้อมีการแสดงข้อมูลออกเป็นจำนวนเงินที่ถอนไป และจำนวนเงินคงเหลือในบัญชี อีกทั้งยังต้องออกแบบการจัดวางข้อมูลเหล่านี้เพื่อพิมพ์ลงในใบบันทึกรายการด้วย
ตัวอย่างข้อมูลออก
1.2 การระบุข้อมูลเข้า
   ข้อมูลเข้าคือ ข้อมูลเริ่มต้นหรือเงื่อนไขที่โจทย์กำหนดมาให้ตั้งแต่แรก ในการแก้ปัญหา ผู้แก้ปัญหาจะต้องใช้ข้อมูลเหล่านี้ในการประมวลผู้เพื่อให้ได้ผลลัพธ์ตามที่ต้องการ ตัวอย่างเช่น การเบิกถอนเงินด้วยบัตรเอทีเอ็มข้างต้น ผู้ถอนเงินต้องมีข้อมูลระบุตัวตนว่าเป็นเจ้าของบัญชีตัวจริง ได้แก่ บัตรเอทีเอ็ม และรหัสประจะตัว 4 หลักและยังต้องระบุข้อมูลให้ครบถ้วนว่าต้องการเบิกถอนจากบัญชีใดเป็นจำนวนเงินเท่าใด เป็นต้น
ตัวอย่างข้อมูลเข้า
1.3 รายละเอียดของปัญหา
รายละเอียดของปัญหา คือ การพิจารณาความต้องการของปัญหา ให้แสดงการวิเคราะห์และกำหนดรายละเอียดของการหาค่าเฉลี่ยนของจำนวนเต็ม 5 จำนวนองค์ประกอบของขั้นตอนการวิเคราะห์และกำหนดรายละเอียดของปัญหาสามารถแสดงได้ดังนี้
2. การเลือกเครื่องมือและวิธีออกแบบขั้นตอนวิธีในการแก้ปัญหา
เมื่อได้รายละเอียดเบื้องหลังของปัญหา รามทั้งวิธีการประมวลผลแล้ว ขั้นตอนต่อไปเป็นการตัดสินใจว่าจะใช้เครื่องมือใดในการแก้ปัญหา ถ้าหากเป็นปัญหาทั่งไปในชีวิตประจะวันหรือปัญหาทางคณิตศาสตร์ง่ายๆ   อาจไม่ต้องใช้เครื่องมือพิเศษในการแก้ปัญหา แต่ใช้เพียงการคำนวนด้วยกระดาษทด หรือเครื่องคิดเลขก็สามารหาคำตอบได้แล้ว
ตัวอย่างเครื่องมือในการแก้ปัญหา
สำหรับปัญหาทีมีขั้นตอนในการแก้ปัญหาอย่างซับซ้อน หรือต้องมีการแก้ปัญหาในลักษณะเดิซ้ำอีกหลายครั้ง จำเป็นต้องใช้คอมพิวเตอร์เป็นอุปกรณ์ในการแก้ปัญหา โดยเขียนโปรแกรมเพื่อรับข้อมูลเข้าไปประมวลผล และยังต้องเลือกว่าจะใช้ดปรแกรมคอมพิวเตอร์ภาษาใด ซึ้งขึ้นอยู่กับความคุ้นเคยในการใช้งานของผู้เขียนโปรแกรม และลักษณะเฉพาะของแต่ละภาษาที่เหมาะสมกับปัญหานั้นๆ
ในการแก้ปัญหาดดยใช้คอมพิวเตอร์นั้น การออกแบบวิธีแก้ปัญหาอย่างเป็นขั้นตอนและง่ายต่อการทำความเข้าใจสำคัญมาก เพราะจะทำให้สามารถเขียนโปรแกรมจากขั้นตอนที่ได้ออกแบบไว้อย่างง่ายดาย เครื่องมือที่ใช้เพื่อการออกแบบขั้นตอนวิธี เช่น รหัสลำลอง (pseudocode) ซึ่งเป็นการจำลองขั้นตอนวิธีแก้ปัญหา โดยการอธิบายด้วยคำพูดที่เข้าใจได้ง่ายเป็นขั้นๆหรือผังงาน (flowchart) ซึ่งเป็นการใช้สัญลักษณ์ในการแสดงรายละเอียดและลำดับของแต่ละขั้นตอนที่ใช้แก้ปัญหา ข้อดีอีกประการหนึ่งของการใช้เครื่องมือเหล่านี้ช่วยในการออกแบบวิแก้ปัญหาคือ จะทำให้สามารถตรวจสอบความถูกต้อง หาจุดผิดพลาด และแก้ไขขั้นตอนในการแก้ปัญหาที่ซับซ้อนได้รวดเร็ว นักเขียนโปรแกรมจึงควรฝึกฝนการใช้งานเครื่องมือเหล่านี้ให้เชี่ยวชาญ
ตัวอย่างผังงาน
ตัวอย่างรหัสลำลอง
3. การดำเนินการแก้ปัญหา
การดำเนินการแก้ปัญหา เป็นขั้นตอนการใช้โปรแกรมประยุกต์หรือเขียนโปรแกรมขึ้นเองโดยใช้ภาษาคอมพิวเตอร์ ซึ่งต้องอาศัยความเชี่ยวชาญเฉพาะในการใช้โปรแกรมหรือภาคอมพิวเตอร์นั้นๆ ข้นตอนนี้จะเสร็จได้เร็วหรืช้าขึ้นอยู่กับหลายปัจจัย เช่น ความชัดเจนและถูกต้องของวิธีแก้ปัญหาที่ได้ออกแบบไว้ และสามารถในการเขียนหรือใช้งานโปรแกรมหรือภาษาคอมพิวเตอร์ที่เลือ ในขั้นตอนนี้ผู้พัฒนาควรคำนึงถึงความยืดหยุ่นของดปรแกรมที่ได้ออกแบบขึ้นด้วย เพื่อให้สามารถรองรับการเปลี่ยนแปลงที่อาจเกิดขึ้นในอนาคต เช่น การเปลี่ยนแปลงข้อมูลเข้า การเปลี่ยนรูปแบบของข้อมูลออกหรือวิธีการประมวลผลที่เปลี่ยนไป นอกจากนี้โปรแกรมควรต้องรองรับการขยายตัวในอนาคตได้อีกด้วย

การดำเนินการแก้ปัญหาโดยการเขียนโปรแกรม

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

บทที่ 6 ( 6.2 เครื่องมือที่ใช้ในการออกแบบและขั้นตอนวิธีในการแก้ปัญหา )

การออกแบบวิธีในการแก้ปัญหาเป็นกระบวนการที่ต้องอาศัยประสบการณ์ ความรู้ความเข้าใจในปัญหา และความคิดอย่างมรเหตุผลและเป็นขั้นตอนแล้ว ยังต้องอาศัยเครื่องมือที่จะช่วยถ่ายทอดความคิดออกมาเป็นลายลักษณ์อักษร หรือเป็นแผนภาพซึ้งจะช่วยให้สามารถแก้ปัญหาได้ดีโดยเพาะปัญหาที่ยุ่งยากซับซ้อนอีกทั้งยังเป็นแนวทางให้ผู้ที่เกี่ยวข้องหรือผู้ดำเนินการปรับปรุงในอนาคตเข้าในวิธีแก้ปัญหาที่เราพัฒนาขึ้นได้ง่าย เครื่องมือที่ใช้ในการอกแบบวิธีแก้ปัญหามี 2 ลักษณะคือ
6.2.1 รหัสลำลอง
รหัสลำลองเป็นการใช้คำบรรยายเพื่ออธิบายขั้นตองวิธีในการแก็ปัญหา การเขียนรหังลำลองไม่มีรูปแบบที่แน่นอน ขึ้นอยู่กับประสบการณ์และความถนัดของผู้เขียน ซึ่งอาจจะเขียนอย่างละเอียดหรือย่อ และในบางครั้งที่อาจอธิบายในลักษณะคล้ายคำพูด หรืออาจจะเขียนในรูปแบบคล้ายภาโปรแกรมก็ได้เช่นกัน การใช้รหัสลำลองในการออกแบบวิธีแก้ปัญหามีข้อดีคือ เขียนง่ายผู้เขียนคำนึงถึงเพียงแต่วิธีแก้ปัญหา โดยไม่ต้องกังวลว่าจะเขียนผิดรูปแบบหรือไม่และถ้าผู้เขียนมีความชำนาญแล้ว การเขียนรหัสลำลองในรูปแบบคล้ายกับภาษาโปรแกรมจะทำให้สามารดัดแปลงไปเป็นโปรแกรมคอมพิวเตอร์ได้โดยง่าย แสดงถึงการใช้รหังลำลองในการถ่ายทอดความคิดเพื่อแก้ปัญหาทั่งไป และปัญหาทางคณิตศาสตร์
6.2.2 ผังงาน
ผังงานเป็นการอธิบายขั้นตอนวิธีการแก้ปัญหาโดยใช้รูปสัญลักษณ์มาเรียงต่อกันสัญลักษณ์แต่ละแบบจะมีถึงความหมายถึงกระบวนการที่แตกต่างกัน โดยจะมีคำอธิบายสั้นๆเพิ่มเติมในสัญลักษณ์ ความหมายของสัญลักษณ์ต่างๆ ที่ใช้ในผังงานที่ถูกกำหนดโดยสถาบันมาตรฐานแห่งชาติอเมริกา (The American National Standard Institute : ANSI)เพื่อให้สามารถสื่อความหมายได้ตรงกัน ซึ่งมีรายละเอียดของสัญลักษณ์และความหมายที่ควรทราบ
สัญลักษณ์และความหมายของผังงาน
ในการเขียนผังงานมีหลักการ คือ ให้เลือกสัยลักษณ์แทนกนะบวนการที่ถูกต้อง และเขียนข้อความสั้นๆ แทนสิ่งที่ต้องกระทำลงในรูปสัญลักษณ์ แล้วนำมาเรียงต่อกัน เชื่อมแต่ละสัญลักษณ์ด้วยลูกศร โดยทั่วไปแล้ว จะเรียงลำดับของสัญลักษณ์ไว้จากบนลงล่าง ตามลำดับชองการทำงาน หรือ อาจจะใช้หัวลูกศรระบุลำดับก่อนหลังของการทำงานก็ได้
การเชื่อมต่อสัญลักษณ์ต่างๆ ของผังงาน อาจทำให้มีการตัดกันของเส้นลุกศรจนอาจเกิดความสับสนได้ ผู้เขียนจึงควรเลือกใช้สัญลักษณ์จุดเชื่อมต่อในหน้าเดีวกัน โดยระบุตัวอักษรเดียวกันเพื่อหมายถึงการเชื่อมสองจุดของผังงานเข้าด้วยกัน แต่ถ้าผังงานใหญ่เกินหน้ากระดาษ ให้เลือกใช้สัญลักษณ์จุดเชื่อมต่อหน้ากระดาษ เพื่อเชื่อมระหว่างสองจุดของผังงานที่ข้ามไปอยู่คนละหน้ากัน

บทที่ 6 ( 6.3 โครงสร้างการโปรแกรม )

ก่อนการเขียนโปรแกรม ผู้พัฒนาโปรแกรมจะต้องเลือกภาษาคอมพิวเตร์ ที่จะนำมาใช้ช่วยงานโดยพิจารณาจากปัจจัยต่างๆ ในการทำงาน เช่น ลักษณะของปัญหา ความถนัดของนักเขียนดโปรแกรม สภาพแวดล้อมในการทำงานของระบบคอมพิวเตอร์ เป็นต้น เนื่องจากในปัจจุบันมีภาษาคอมพิวเตอร์ให้เลือกได้หลายภาษา เช่น ภาษาปาสคาล ภาษาซี ภาษาจาวา และภาษาเดลฟาย ภึงแม้แต่ละภาษาจะมีรูปแบบและหลักการในการสร้างงานที่แตกต่างกันแต่ทุกภาษาจะต้องมีโครงสร้างควบคุมหลักทั้ง 3 แบบ ได้แก่ โดครงสร้างแบบลำดับ (sequential structure) โครงสร้างแบบทางเลือก (selection structure) และโครงสร้างแบบวนซ้ำ(repetition structure)
6.3.1 โครงสร้างแบบลำดับ ( sequential structure )
โปรแกรมที่ทำงานเป็นขั้นตอนเพื่อแก้ปัญหาจะทำงานตามคำสั่งที่เขียนไว้ตามลำดับ ตั้งแต่คำสั่งแรกไปจนถึงคำสั่งสุดท้าย โดยที่คำสั่งในที่นี้อาจเป็นคำสั่งเดี่ยวๆ หรือเป็นคำสั่งเชิงซ้อนทีมีหลายคำสั่งย่อยประกอบกันในลักษณะเป็นโครงสร้างแบบทางเลือกหรือแบบวนซ้ำก็ได้
โครงสร้างแบบเรียงลำดับเมื่อเขียนเป็นผังงาน จะมีลักษณะดังเช่นรูปที่ 6.9 และมีกระบวนการทำงานพื้ฐานอยู่ 3 ชนิด ดังแสดงในรูปที่ 6.10 ได้แก่
-การคำนวณ เป็นกระบวนการที่คอมพิเตอร์ทำการคำนวณ ประมวลผล ซึ่งจะรวมไปถึงการกำหนดค่าให้กับตัวแปร เพื่อให้สามารถนำค่าของตัวแปรนั้นมาใช้ในภายหลังได้
- การรับข้อมูลเข้า เป็นกระบวนการรับข้อมูลจากอุปกรณ์ของหน่วยรับเข้า เช่น คีย์บอร์ด เพื่อนำค่าไปกำหนดให้กับตัวแปร และเก็บไว้ในหน่วยความจำ
- การส่งข้อมูลออก เป็นกระบวนการนำค่าของข้อมูลไปแสดงผลยังอุปกรณ์ของหน่วยส่งออก เช่น จอภาพหรือเครื่องพิมพ์ ข้อมูลที่จะส่งออกโดยทั่งไปจะเป็นค่าคงที่ หรือค่าของตัวแปร
ในการดำเนินการเพื่อแก้ปัญหาด้วยคอมพิวเตอร์ กระบวนการเหล่านี้ต้องถูกแปลงให้อยู่รูปของคำสั่งหลายคำสั่งประกอบกันเพื่อให้ทำงานตามขั้นตอนที่ได้ออกแบบไว้ เช่น กรบวนการการคำนวณในการเพิ่มค่าของตัวแปร counter ขึ้นอีกหนึ่ง จะใช้คำสั่ง ” counter < counter + 1  ” กระบวนการรับข้อมูลเข้าเพื่อเก็บไว้ในตัวแปร x จะใช้คำสั่ง  ” input x” และกระบวนการส่งข้อมูลออกไปยังจอภาพเพื่อแสดงผลของตัวแปร average จะใช้คำสั่ง “print avereage” เป็นต้น
6.3.2 โครงสร้างแบบทางเลือก (selection structure)
ปัญหาบางอย่างต้องการการตัดสินใจ เพื่อเลือกว่าจะใช้วิธีการใด โดยต้องมีการตรวจสอบว่าเงื่อนไขที่ใช้ในการตัดสินใจว่าเป็นจริงหรือเท็จ ถ้าเป็นจริงจะไปเลือกทำคำสั่งชุดหนึ่ง แต่ถ้าเป็นเท็จจะไปเลือกทำคำสั่งอีกชุดหนึ่ง ซึ่งชุดคำสั่งเหล่านี้จะประกอบด้วยโครงสร้างแบบลำดับนั่นเอง
6.3.3 โครงสร้างแบบวนซ้ำ (repetition structure)
ในการแก้ปัญหาบางอย่างอาจต้องมีการทำงานในบางคำสั่งหรือชุดของคำสั่งซ้ำกันมากกว่าหนึ่งรอบขึ้นไป โครงสร้างแบบมีการวนซ้ำนี้ต้องมีการตัดสินใจร่วมอยู่ด้วยเสมอ เพื่อเป็นเงื่อนไขที่ตัดสินใจว่าเมื่อใดจะวนซ้ำ หรือเมื่อไรจะถึงเวลาหยุดวนซ้ำโดยทั่วไปผังงานของการวนว้ำจะมีลักษณะดังรูปที่ 6.14 หรือรูปที่ 6.15 โดยมีความแตกต่างกันตือ ในรูปที่  6.14 เป็นการวนซ้ำแบบที่ต้องตรวจสอบเงื่อนไขที่จะใช้วนซ้ำก่อนที่จะทำงานในชุดคำสั่งในโครงสร้างแบบวนซ้ำ เรียกว่า การวนซ้ำแบบ while ซึ่งจะสังเกตได้ว่าถ้าเงื่อนไขไม่เป็นจริงตั้งแต่แรก คำสั่งแบบโครงสร้างในการวนซ้ำจะไม่ถูกเรียกให้ทำงานเลยแต่สำหรับ 6.15 เป็นการวนซ้ำแบบมีการตรวจสอบเงื่อนไขที่จะให้วนซ้ำหลังจากที่ได้ทำงานตามชุดคำสั่ง ในโครงสร้างแบบวนซ้ำไปรอบหนึ่งแล้วเรียกว่า การวนว้ำแบบ until สำหรับตัวอย่างของการวนซ้ำ เช่น การรับค่าตัวเลขเข้ามาหลายค่า ในโครงสร้าเพื่อคำนวนหาผลรวม ในตัวอย่างที่ 6.7 ถือเป็นการวนซ้ำแบบ until