The words you are searching are inside this book. To get more targeted content, please make full-text search by clicking here.

วิทยาการคำนวณ ม.4

Discover the best professional documents and content resources in AnyFlip Document Base.
Search
Published by Suphvksp, 2022-09-20 08:20:10

วิทยาการคำนวณ ม.4

วิทยาการคำนวณ ม.4

2วิทยาการคำนวณ ม.4

การแก้ปัญหาและขั้นตอนบวิทธีที่

Let's go
to

learning

คำนำ

หลักสูตรแกนกลางการศึกษาขั้นพื้นฐาน พุทธศักราช 2551 ได้กำหนดให้นักเรียน
ระดับชั้นมัธยมศึกษาปีที่ 4 ทุกคนต้องเรียนรายวิชาวิทยาการคำนวณ เพื่อให้มีความรู้
ทักษะเกี่ยวกับการพัฒนาโครงงาน นวัตกรรม พร้อม กับรู้เท่าทันสื่อ เทคโนโลยีโดยใช้
เทคโนโลยีในการทำงานอย่างสร้างสรรค์และเกิดประโยชน์

การออกแบบและเทคโนโลยีซึ่งทำการสอนในเนื้อหาเกี่ยวกับแนวคิดเชิงคำนวณและ
การพัฒนาโครงงาน มีเนื้อหาเกี่ยวกับการใช้แนวคิดเชิงคำนวณในการแก้ปัญหา ได้แก่
การแยกย่อยปัญหา การหารูปแบบ แนวคิดเชิง นามธรรม และชั้นตอนวิธีพร้อมกับนำองค์
ความรู้นี้ไปใช้ในการพัฒนาโครงงานได้อย่างสร้างสรรค์และเกิด ประโยชน์ต่อสังคม

ผู้จัดทำ
นายศุภฤกษ์ เพชรชนะ

สารบัญ หน้า
1
เรื่อง 6
2.1 การแก้ปัญหาด้วยคอมพิวเตอร์ 8
2.2 การระบุข้อมูลเข้า ข้อมูลออก และเงื่อนไขของปัญหา
2.3 การออกแบบขั้นตอนวิธี 10
2.4 การทําซ้ํา 13
2.5 การจัดเรียงและค้นหาข้อมูล 17
เอกสารอ้างอิง

บ2ทที่ การแก้ปัญหาและขั้นตอนวิธี

2.1 การแก้ปัญหาด้วยคอมพิวเตอร์
2.2 การระบุข้อมูลเข้า ข้อมูลออก และเงื่อนไขของปัญหา
2.3 การออกแบบขั้นตอนวิธี
2.4 การทําซ้ํา
2.5 การจัดเรียงและค้นหาข้อมูล

จุดประสงค์ของบทเรียน เมื่อเรียนจบบทนี้แล้วนักเรียนจะสามารถ

1. ระบุข้อมูลเข้า ข้อมูลออก และเงื่อนไขของปัญหา
2. ออกแบบขั้นตอนวิธีในการแก้ปัญหา โดยใช้รูปแบบต่าง ๆ เช่นการกําหนด
เงื่อนไข และการทําซ้ํา
3. ประยุกต์ใช้ขั้นตอนวิธีการจัดเรียงและค้นหาข้อมูลในการแก้ปัญหา

ท2ที่ การแก้ปัญหาและขั้นตอนวิธี 1

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

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

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

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

ขณะนี้เป็นเวลาเที่ยง นักเรียนเหน็ดเหนื่อยจากการเรียนมา ตั้งแต่เช้า
จึงต้องการจะสั่งคอมพิวเตอร์ว่า

“เลือกอาหารกลางวันที่เหมาะสมกับฉันให้หน่อย”
ปัญหาดังกล่าวคอมพิวเตอร์สามารถช่วยเลือกอาหาร ที่เหมาะสมกับ
ความต้องการได้ ถ้ามีข้อมูลเพียงพอและเงื่อนไข ในการตัดสินใจที่ชัดเจน

ที่ การแก้ปัญหาและขั้นตอนวิธี 2

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

2.1.2 เงื่อนไขที่ชัดเจน

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

เงิ้อนไข คำอธิบาย

เลือกประเภทเป็น "อาหารหลัก" จากนั้นเลือกมา -ประเภทอาหารที่ถูกต้อง
หนึ่งอย่าง -ได้อาหารหนึ่งอย่าง

เลือกประเภทเป็น "อาหารจานหลัก" ราคาไม่เกิน -ประเภทอาหารที่ถูกต้อง
40 บาท และมีความนิยมที่สูงสุด -ราคาอาหารไม่เกิน 40 บาท
-ความนิยมสูงสุด

(0.6xคะแนนคุณภาพ)+(0.4xคะแนนความนิยม) -ประเภทอาหารถูกต้อง
-คะแนนจากการคำนวณคุณภาพและความนิยมสูงสุด

ท2ที่ การแก้ปัญหาและขั้นตอนวิธี 3



จากตารางที่ 2.1 มีการให้คะแนนสําหรับการพิจารณาเลือกอาหารคือ
(0.6 x คะแนนคุณภาพ) + (0.4 x คะแนนความนิยม)
การกําหนดสัดส่วนของคะแนนคุณภาพและคะแนนความนิยมดังกล่าว เป็นการ
ให้ความสําคัญกับปัจจัยที่นํามาพิจารณาเลือกอาหารอย่างไร และ สามารถกําหนด
สัดส่วนเป็นอย่างอื่ นได้หรือไม่

ถ้าปัญหามีการระบุเงื่อนไขได้ชัดเจน จะสามารถช่วยให้การระบุขอบเขตของ

ข้อมูลที่ต้องการได้ชัดเจนมากยิ่งขึ้น เช่น ถ้าคําว่า "อาหารที่เหมาะสม” คืออาหาร

ที่ มีราคาถูกที่สุด ข้อมูลที่ต้องเก็บมีเฉพาะราคาอาหารก็เพียงพอ ไม่จําเป็นต้อง

เก็บ ข้อมูลคุณภาพอาหารหรือความนิยมก็ได้ การระบุเงื่อนไขได้ชัดเจนและตรง

ตามความ ต้องการนั้นเป็นสิ่งสําคัญที่จะทําให้คอมพิวเตอร์สร้างผลลัพธ์ที่มี

คุณภาพ 2.1.3 ขั้นตอนวิธีในการ

แก้ปัญหา นอกจากข้อมูลและเงื่อนไข ที่

ชัดเจนแล้ว การพัฒนาโปรแกรม จําเป็นต้องมี

ขั้นตอนในการ แก้ปัญหาที่ชัดเจนด้วย ในส่วนนี้

จะออกแบบขั้นตอนวิธีในการ แก้ปัญหาโดยใช้

ตัวอย่างข้อมูล รายการอาหารกลางวันดังตาราง

ที่ 2.2

ท2ที่ การแก้ปัญหาและขั้นตอนวิธี 4



ถ้านักเรียนต้องการค้นหาอาหารกลางวันประเภท “อาหารหลัก” โดยเลือก

อาหารที่มีคะแนนที่คํานวณ จาก (0.6 X คะแนนคุณภาพ) + (0.4 x คะแนนความ

นิยม) สูงที่สุด สามารถแบ่งขั้นตอนการทํางานได้ 3 ขั้นตอนดังนี้

1.เลือกรายการอาหารทั้งหมดที่เป็นอาหารหลัก

2.จากรายการอาหารหลัก คํานวณคะแนนของอาหารแต่ละชนิดตามเงื่อนไข

3.จากรายการอาหารหลักที่ได้คํานวณคะแนนแล้วเลือกอาหารที่มีคะแนนสูงที่สุด

ตัวอย่างการทำงานแต่ละขั้นตอนเป็นดังนี้
ขั้นที่ 1 เลือกรายการอาหารทั้งหมดที่เป็นจานหลัก

รายการ ประเภท คุณถาพ ความนิยม ราคา
อาหาร

ข้าวผัด อาหารหลัก 7 5 25

ข้าวไข่เจียว อาหารหลัก 4 9 15

พุดดิ้ง ขนมหวาน 5 9 30

ไอศกรีมก ขนมหวาน 5 8 10
ระทิ ขนมหวาน 6 7 15

ขนมปัง
สังขยา

ข้าวยำ อาหารหลัก 10 3 25

ข้าวซอยไก่ อาหารหลัก 8 5 30

ท2ที่ การแก้ปัญหาและขั้นตอนวิธี 5

บ ขั้นที่ 2 จากรายการอาหารหลักที่คัดเลือกจากขั้นตอนที่ 1 นําคะแนน
คุณภาพและคะแนนความนิยม มาคํานวณคะแนนสําหรับเลือกอาหาร

รายการ ประเภท คุณถาพ ความนิยม ราคา คะแนนสำหรับเลือก
อาหาร อาหาร

ข้าวผัด อาหารหลัก 7 5 25 (0.6x7)+(0.4x5)=6.2

ข้าวไข่เจียว อาหารหลัก 4 9 15 6.0

ข้าวยำ อาหารหลัก 10 3 25 7.2

ข้าวซอยไก่ อาหารหลัก 8 5 30 6.8

ขั้นที่ 3 พิจารณารายการอาหารจากตารางที่ได้คํานวณคะแนนแล้วเลือกอาหารที่มี
คะแนนสูงที่สุด ซึ่ง ในที่นี้ได้รายการอาหารอันดับที่ 3 คือข้าวยํา เพราะมีคะแนนสูงสุดคือ
7.2 คะแนน

รายการ ประเภท คุณถาพ ความนิยม ราคา คะแนนสำหรับเลือก
อาหาร อาหาร

ข้าวยำ อาหารหลัก 10 3 25 7.2

ท2ที่ การแก้ปัญหาและขั้นตอนวิธี 6



2.1.4 ตัวแปร
ตัวแปร คือ ชื่อที่ใช้แทนข้อมูลขณะใดขณะหนึ่งในขั้นตอนวิธี จากตัวอย่างการ

เลือกอาหารในรายการ อาหารในหัวข้อ 2.1.3 พบว่ามีการใช้งานตัวแปรเช่น ตัวแปร
Q,R, และ S โดยทั่วไปแล้ว ในทางคอมพิวเตอร์ ตัวแปรจะถูกใช้เพื่อเก็บข้อมูล และอาจ
จะมีการเปลี่ยนแปลงค่าได้ตามบริบทการทํางาน

ในการเขียนขั้นตอนวิธีอาจจะระบุว่าให้กําหนดค่าให้กับตัวแปร หรืออาจใช้
สัญลักษณ์ - ในการเขียน เช่น

X <----10 จะเป็นการระบุให้ตัวแปร x มีค่าเท่ากับ 10
Z <---- Z +1 จะเป็นการกําหนดให้เพิ่มค่าตัวแปร 2 ขึ้นอีก 1 กล่าวคือ
ถ้าก่อนการทํางานตัวแปร 2 มีค่าเท่ากับ 10 หลังการทํางานตัวแปร 2 จะมีค่าเท่ากับ 11

2.2 การระบุข้อมูลเข้า ข้อมูลออก และเงื่อนไขของปัญหา
การแก้ปัญหาด้วยคอมพิวเตอร์นั้นก่อนที่จะระบุขั้นตอนวิธีที่ชัดเจนได้จะต้อง

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

1.ข้อมูลเข้า (input) เป็นข้อมูลที่ใช้เพื่อประมวลผล
2.ข้อมูลออก (output) เป็นข้อมูลผลลัพธ์ที่ต้องการ

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

ท2ที่ การแก้ปัญหาและขั้นตอนวิธี 7



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

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

ข้อมูลเข้า : ระดับความชื้นของดิน (ผ่านทางตัวตรวจจับ)
ข้อมูลออก : สัญญาณควบคุมการเปิดปิดน้ํา

ท2ที่ การแก้ปัญหาและขั้นตอนวิธี 8
2.3 การออกแบบขั้นตอนวิธี


ทักษะการคิดเชิงคํานวณ เช่น การแยกส่วนประกอบและการย่อยปัญหา

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

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

1) การบรรยาย เป็นการเขียนบรรยายวิธีการแก้ปัญหาอย่างเป็นลำดับ แต่อาจ
ยากต่อการนำไปใช้ เช่น วิธีการต้มบะหมี่กึ่งสำเร็จรูป

ท2ที่ การแก้ปัญหาและขั้นตอนวิธี 9



2) การเขียนผังงาน (Flowchart) เป็นการนำเสนอวิธีการแก้ปัญหาโดย

การนำขั้นตอนการประมวลผลมาเขียนเป็นรูปแบบของแผนภาพ ประกอบด้วย

สัญลักษณ์ต่างๆ ที่มีการกำหนดไว้เป็นมาตรฐาน ดังนั้น ผังงานโปรแกรมจึง

เป็นผังงานที่แสดงลำดับขั้นตอนการทำงานในโปรแกรม

ที่ การแก้ปัญหาและขั้นตอนวิธี 10

บท2 ตัวอย่าง การถ่ายทอดความคิดโดยใช้ผังงาน

เย้ ได้กินแล้ว

2.4 การทำซ้ำ

การแก้ปัญหาอาจต้องมีการทํางานลักษณะเดียวกันซ้ําหลายรอบ ในหัวข้อนี้
จะได้ศึกษารูปแบบการเขียนขั้นตอนวิธีการทําซ้ําแบบต่าง ๆ

2.4.1 การทําซ้ําในรายการ
การทําซ้ําในรายการจะ ต้องพิจารณาข้อมูลในรายการจน ครบทุกตัว ซึ่งเป็น
รูปแบบหนึ่ง ของการเขียนขั้นตอนวิธีเพื่อ พิจารณาข้อมูลจนครบทุกตัว

จากตัวอย่างการพัฒนาระบบแนะนําอาหารหัวข้อ 2.1.3 ขั้นตอนวิธีต่อไปนี้
เป็นการเลือกรายการอาหาร ที่มีคะแนนสูงที่สุด โดยจะพิจารณาอาหารไปที่ละรายการ
จากตารางที่ 2.4

บท2ที่ การแก้ปัญหาและขั้นตอนวิธี 11

รายการ ประเภท คุณถาพ ความนิยม ราคา คะแนนสำหรับเลือก
อาหาร อาหาร

ข้าวผัด อาหารหลัก 7 5 25 (0.6x7)+(0.4x5)=6.2

ข้าวไข่เจียว อาหารหลัก 4 9 15 6.0

ข้าวยำ อาหารหลัก 10 3 25 7.2

ข้าวซอยไก่ อาหารหลัก 8 5 30 6.8

ในขั้นตอนวิธีต่อไปนี้จะมีการเก็บลําดับที่ของอาหารที่มีคะแนนสูงที่สุดไว้ที่ตัวแปร x โดย
เมื่อเริ่มต้นจะ กําหนดให้รายการอาหารลําดับแรกเป็นรายการอาหารที่มีคะแนนสูงสุด

ขั้นตอนวิธี : หารายการอาหารที่มีคะแนนสําหรับเลือกอาหารมากที่สุด
ข้อมูลเข้า : ตารางรายการอาหารหลักที่มีการคํานวณคะแนนสําหรับเลือกอาหารแล้ว
ข้อมูลออก : อาหารที่เหมาะสมที่สุด โดยพิจารณาจากอาหารที่มีคะแนนสูงที่สุดในตาราง

1. ให้ x เท่ากับ 1
ให้ Smax แทนคะแนนของอาหารลําดับที่ X

2. พิจารณารายการอาหารหลักจากตาราง ที่ละรายการจนครบ
2.1 ขณะที่พิจารณาอาหารลําดับที่ y 2.2 ให้ S แทนคะแนนของอาหารลําดับที่ Y
2.3 ถ้า S มากกว่า Smax แล้ว
2.3.1 ให้ X มีค่าเท่ากับ y
2.3.2 ให้ Smax มีค่าเท่ากับ S

3. ตอบว่าอาหารลําดับที่ x เป็นอาหารที่เหมาะสมที่สุด

ท2ที่ การแก้ปัญหาและขั้นตอนวิธี 12



2.4.2 การทําซ้ําด้วยเงื่อนไข
นอกจากการเขียนขั้นตอนวิธีที่ทํางานกับรายการแล้ว นักเรียนอาจต้องใช้

การทําซ้ําในการคํานวณ แบบอื่น ๆ เช่น ถ้าต้องการประมาณค่าของรากที่สองของ
10 ที่เป็นทศนิยม 3 ตําแหน่ง เขียนขั้นตอนวิธีได้ ดังนี้

ขั้นตอนวิธี : ประมาณค่ารากที่สองของ 10 ที่เป็นทศนิยม 3 ตําแหน่ง
ข้อมูลเข้า : -
ข้อมูลออก : ค่าประมาณของรากที่สองของ 10 ที่เป็นทศนิยม 3 ตําแหน่ง
1. ให้ S <----- 0
2. ให้ A <----- 0 (เก็บค่าประมาณที่ดีที่สุด)
3. ทําซ้ําในขณะที่ S <= 10
3.1 ถ้า Is” - 10| < lA - 10) แล้ว

A <----- S

3.2 S <----- S + 0.001

4. คืนค่า a และจบการทํางาน

เกมทายเลข

เกมทายเลข จะสุ่มจํานวนเต็มระหว่าง 1 - 100 มาเป็นคําตอบหนึ่งจํานวน
และให้ผู้เล่นทายจํานวนที่ เป็นคําตอบ จากนั้นจะให้คําใบ้ว่าจํานวนที่ทายมากกว่า
หรือน้อยกว่าคําตอบ หรือตอบว่าเป็นคําตอบที่ ถูกต้อง ซึ่งมีขั้นตอนวิธีดังนี้

ขั้นตอนวิธี : เปรียบเทียบจํานวนที่ผู้เล่นทายกับคําตอบที่สุ่มไว้
ข้อมูลเข้า : จํานวนที่ผู้เล่นทาย
ข้อมูลออก : “ค่าน้อยเกินไป” “ค่ามากเกินไป" "ถูกต้อง”

1. ให้ secret - สุ่มจํานวนเต็มที่มีค่าระหว่าง 1 ถึง 100
2. ทําซ้ําไปเรื่อย ๆ

2.1 ให้ answer - จํานวนเต็มที่ผู้เล่นทาย
2.2 ถ้า answer < Secret แล้ว

ตอบผู้เล่นว่า "ค่าน้อยเกินไป”
2.3 ถ้า answer > Secret แล้ว

ตอบผู้เล่นว่า “ค่ามากเกินไป”
2.4 ถ้า answer = Secret แล้ว

2.4.1 ตอบผู้เล่นว่า "ทายถูกต้อง”
2.4.2 จบการทําซ้ํา

ท2ที่ การแก้ปัญหาและขั้นตอนวิธี 13



2.5 การจัดเรียงและค้นหาข้อมูล

ในหัวข้อนี้นักเรียนจะได้รู้จักกับขั้นตอนวิธีพื้นฐานในการจัดเรียงข้อมูล
(sort) และการค้นหาข้อมูล (search) ซึ่งเป็นกิจกรรมที่สัมพันธ์กันที่ใช้ในการแก้
ปัญหาที่พบบ่อย ในชีวิตประจําวัน

2.5.1 การจัดเรียงข้อมูล
การจัดเรียงข้อมูลเป็นสิ่งที่พบอยู่เสมอ เมื่อต้อง ประมวลผลข้อมูลจํา

นวนมาก เช่น เมื่อครูตรวจข้อสอบและ ต้องการบันทึกคะแนนลงใน
รายงานที่เรียงชื่อนักเรียน ตามลําดับเลขประจําตัว หรือเมื่อนักเรียนเก็บ
ข้อมูลจาก แบบสํารวจ และต้องการเรียงแบบสํารวจตามเงื่อนไข ที่
ต้องการ การเรียงลําดับข้อมูลด้วยเงื่อนไขที่เหมาะสม จะทําให้การค้นหา
ข้อมูลทําได้อย่างมีประสิทธิภาพ

โดยทั่วไปการเรียงลําดับจํานวนเต็ม อาจใช้การจัดเรียงข้อมูลได้ 2 แบบ คือ
1.การจัดเรียงแบบเลือก (selection sort)
นักเรียนจะเลือกข้อมูลที่มีค่าน้อยที่สุดมาไว้เป็นอันดับแรกและขีดทับข้อมูลที่
เลือกมาแล้ว จากนั้นใน รายการข้อมูลที่เหลืออยู่ จะเลือกข้อมูลที่มีค่าน้อยที่สุดมา
เป็นข้อมูลในรายการคําตอบอันดับที่สอง จากนั้น ก็จะเลือกข้อมูลที่น้อยที่สุดที่เหลือ
มาเป็นอันดับที่สาม ไปเรื่อย ๆ

2 การจัดเรียงแบบแทรก (insertion sort)
การเรียงลําดับแบบแทรก เป็นการนําข้อมูลที่ยังไม่ได้ถูกพิจารณามาแทรก

ในตําแหน่งที่ถูกต้อง โดยค่าของข้อมูลที่กําลังพิจารณาต้องมากกว่าหรือเท่ากับค่า
ของข้อมูลตัวหน้า และน้อยกว่าหรือเท่ากับค่า ของข้อมูลตัวหลังในรายการที่เรียงลํา
ดับแล้ว

ท2ที่ การแก้ปัญหาและขั้นตอนวิธี 14



2.5.2 การค้นหาข้อมูล

ในหัวข้อ 2.4.1 นักเรียนได้ศึกษาการค้นหาข้อมูล target ในรายการ A แล้ว
ขั้นตอนวิธีดังกล่าวเรียกว่าขั้นตอน วิธีค้นหาแบบตามลําดับ (Sequential search)
ขั้นตอนวิธี ดังกล่าวจะพิจารณาข้อมูลทุกตัวในรายการที่ละตัว ซึ่งเป็น ขั้นตอนวิธีที่ดี
ที่สุดที่เป็นไปได้ในกรณีที่ข้อมูลไม่มีการ เรียงลําดับ

อย่างไรก็ตามในกรณีที่รายการ Aมีการเรียงลําดับข้อมูล แล้ว จะมีขั้นตอนวิธี
ในการค้นหาที่มีประสิทธิภาพดีกว่ามาก

จากตัวอย่าง 2.9 ลองพิจารณากลยุทธ์ในการทายที่เริ่มทายตั้งแต่ 1 2 3 ไป
จนถึง 100 วิธีการนี้ ถ้าคําตอบเป็น 95 นักเรียนจะต้องทายถึง 95 ครั้งในทํานอง
กลับกัน ถ้าใช้กลยุทธ์ในการทายจากมากไปหา น้อย กล่าวคือ เริ่มทายตั้งแต่ 100
99 ลงไปจนถึง 1 ถ้าคําตอบมีค่าน้อย นักเรียนก็จะต้องใช้จํานวนครั้ง ในการทาย
มาก สังเกตว่าด้วยกลยุทธ์ทั้งสองแบบ นักเรียนไม่ได้ใช้ประโยชน์จากสมบัติการ
เรียงลําดับ ของตัวเลขเลย

กลยุทธ์ที่มีประสิทธิภาพมากกว่าในการเล่นเกมทายเลขคือเริ่มต้นทายตัวเลข
ที่อยู่ตรงกลางของขอบเขต ที่เป็นไปได้ ถ้าตัวเลขที่ทายไม่ถูกต้อง ให้พิจารณาปรับ
ขอบเขตของคําตอบที่เป็นไปได้จากผลการทายที่ได้ รับ เช่น ถ้าขอบเขตของคําตอบ
อยู่ระหว่าง 1 - 7 และทายว่าคําตอบคือ 4 แต่พบว่า 4 เป็นคําทายที่มาก เกินไป จะ
สามารถปรับขอบเขตได้เป็น 1 - 3 แนวคิดดังกล่าวสามารถแสดงเป็นกลยุทธ์การ
ทายเลขได้ดังรูป 2.6 ที่ใช้จํานวนการทายไม่เกิน 3 ครั้ง ซึ่งจะเป็นกรณีที่แย่ที่สุด
(worst case) ของกลยุทธ์นี้

ท2ที่ การแก้ปัญหาและขั้นตอนวิธี 15



ถ้านักเรียนต้องการค้นหาข้อมูล target ในรายการที่เรียงลําดับแล้ว กลยุทธ์
การทายเลขที่กล่าวมา ข้างต้นสามารถประยุกต์ใช้ในการค้นหา target ได้โดยการทาย
ดัชนีของ target ในรายการ A ที่เรียงลําดับ แล้ว กล่าวคือ ถ้ารายการ A มีข้อมูล n
จํานวน เมื่อเริ่มต้นดัชนีที่เป็นไปได้ของ target จะมีค่าระหว่าง 1 - n นักเรียน
สามารถทายดัชนี 1 ที่อยู่ตรงกลางของขอบเขตนี้ หลังจากนั้นนักเรียนสามารถตัด
สินคําตอบว่าดัชนี ที่ทายไปนั้นเป็นดัชนีที่ถูกต้อง เป็นดัชนีที่มีค่าน้อยเกินไป หรือเป็น
ดัชนีที่มีค่ามากเกินไปโดยเปรียบเทียบ target กับข้อมูลลําดับที่ 1 ในรายการ และนํา
ผลที่ได้ไปปรับขอบเขตของดัชนีที่เป็นไปได้เพื่อใช้ในการทาย รอบถัดไป พิจารณา
ตัวอย่างการค้นหา John จากรายการข้อมูลที่เรียงลําดับตามพจนานุกรมดังต่อไปนี้

ถ้านักเรียนต้องการค้นหาข้อมูล target ในรายการที่เรียงลําดับแล้ว กลยุทธ์
การทายเลขที่กล่าวมา ข้างต้นสามารถประยุกต์ใช้ในการค้นหา target ได้โดยการทาย
ดัชนีของ target ในรายการ A ที่เรียงลําดับ แล้ว กล่าวคือ ถ้ารายการ A มีข้อมูล n
จํานวน เมื่อเริ่มต้นดัชนีที่เป็นไปได้ของ target จะมีค่าระหว่าง 1 - n นักเรียน
สามารถทายดัชนี 1 ที่อยู่ตรงกลางของขอบเขตนี้ หลังจากนั้นนักเรียนสามารถตัด
สินคําตอบว่าดัชนี ที่ทายไปนั้นเป็นดัชนีที่ถูกต้อง เป็นดัชนีที่มีค่าน้อยเกินไป หรือเป็น
ดัชนีที่มีค่ามากเกินไปโดยเปรียบเทียบ target กับข้อมูลลําดับที่ 1 ในรายการ และนํา
ผลที่ได้ไปปรับขอบเขตของดัชนีที่เป็นไปได้เพื่อใช้ในการทาย รอบถัดไป พิจารณา
ตัวอย่างการค้นหา John จากรายการข้อมูลที่เรียงลําดับตามพจนานุกรมดังต่อไปนี้

ท2ที่ การแก้ปัญหาและขั้นตอนวิธี 16



เนื่องจากขอบเขตของดัชนีที่เป็นไปได้คือ 1-7 ดัชนีแรกที่จะทายคือ 4 เมื่อ
พิจารณาข้อมูลลําดับที่ 4 ที่มีค่าเป็น James แล้ว พบว่า John นั้นมาหลัง James จึง
ปรับขอบเขตของดัชนีเป็น 5 - 7 ขั้นถัด ไปจะทายว่าดัชนีมีค่าเป็น 6 เมื่อพิจารณา
ข้อมูล ลําดับที่ 6 ที่มีค่าเป็น Mary แล้ว พบว่า John มา ก่อน Mary ทําให้ต้องปรับ
ขอบเขตของดัชนีเป็น 5 ซึ่งเป็นค่าดัชนีที่เป็นไปได้เพียงค่าเดียว เมื่อพิจารณา ข้อมูล
ลําดับดังกล่าวจะพบชื่อ John อยู่ที่ตําแหน่ง

วิธีการค้นหาลักษณะนี้เรียกว่าเป็นการค้นหา แบบทวิภาค (binary search)
เพราะว่าแต่ละขั้นจะ แบ่งรายการข้อมูลออกเป็นสองส่วน ขั้นตอนวิธีดัง กล่าวเขียนได้
ดังนี้

ขั้นตอนวิธี : การค้นหาข้อมูลแบบทวิภาค
ข้อมูลเข้า : รายการ A ที่มีข้อมูลเรียง ตามลําดับจากน้อยไปหามาก
ข้อมูลออก : ดัชนี 1 ในรายการ A ที่ เป็นตําแหน่งของข้อมูล target

1. ให้ n - จํานวนข้อมูลในรายการ A
2. ให้ left - 1
3. ให้ right - n // ขั้นตอนวิธีจะเก็บขอบเขตของดัชนีเป็นไปได้ว่าอยู่ระหว่าง
left - right

4. ทําซ้ําขณะที่ left <= right
4.1 ให้ mid - (left + right)}2[หารโดยปัดเศษทิ้ง)
4.2 ให้ x.- ข้อมูลลําดับที่ mid ในรายการ A
4.3 ถ้า x = target แล้วให้คืนค่าดัชนีเท่ากับ mid และจบการทํางาน
4.4 ถ้า x < target แล้ว
// ดัชนี mid มีค่าน้อยเกินไป ให้ left - mid + 1
// ในกรณีนี้ให้ปรับขอบเขตล่าง 4.5 ถ้า x> target แล้ว
// ดัชนี mid มีค่ามากเกินไป ให้ right - mid - 1
* ในกรณีนี้ให้ปรับขอบเขตบน

5. คืนคําตอบว่าไม่พบข้อมูล target ในรายการ A

เอกสารอ้างอิง 17

สถาบันส่งเสรืมการสอนวิทยาศาสตร์และเทคโนโลยี กระทรวงศึกษาธีการ (สสวท).
วิทยาการคำนวณ ชั้นมัธยมศึกษาปีที่ 4. กรุงเทพฯ : จุฬาลงกรณ์
มหาวิทยาลัย,2561.

อารียา ศรีประเสริฐ. 2560. การออกแบบชั้นตอนวิธี.[ระบบออนไลน์].เข้าถึงได้จาก :
http://surl.li/cvaba. (วันที่สืบค้นข้อมูล : 23 สิงหาคม 2565).

บทวิคทำยนาวกณาร ม.4

ที่ 2

การแก้ปัญหา
และ

ขั้นตอนวิธี

ชื่อนายศุภฤกษ์ เพชรชนะ
รหัสนักศึกษา 6311135031

สาขาวิชาคอมพิวเตอร์
คณะครุศาสตร์

มหาวิทยาลัยราชภัฏนครศรีธรรมราช




Click to View FlipBook Version