บทที่ 2
การแก้ปัญหา
เนื้อหาที่เรียน
- ขั้นตอนการแก้ปัญหา
- การเขียนรหัสลาลองและผังงาน
- การกาหนดค่าให้ตัวแปร
- ภาษาโปรแกรม
จุดประสงค์ของบทเรียน
เมื่อเรียนจบบทนี้แล้ว นักเรียนจะสามารถ
- อธิบายขั้นตอนการแก้ปัญหา
- วางแผนการแก้ปัญหาโดยใช้รหัสลาลองและผังงาน
- แก้ปัญหาตามขั้นตอนการแก้ปัญหา
SATURN
JUPITER
MA
MERCURY
ในโลกยุคดิจิทัล การดาเนินชีวิตต้องมีการใช้งานอุปกรณ์
เทคโนโลยีสารสนเทศเพื่อการสื่อสารอยู่ตลอดเวลา โดยมีระบบ
การทางานที่ซับซ้อนอยู่เบื้องหลัง เช่น สมาร์ตโฟนที่ทาหน้าที่
หลักในการสื่อสารและมีโปรแกรมสาหรับสื่อสารการทางานอยู่
เบื้องหลังการทาธุรกรรมทางการเงินจากเครื่องเอทีเอ็มผู้ใช้
สามารถฝากถอน หรือโอนเงินได้ ซึ่งภายในมีโปรแกรมควบคุม
การทางาน การทางานของอุปกรณ์ที่ชาญฉลาดเหล่านี้ล้วนอาศัย
การเขียนโปรแกรมเพื่อแก้ปัญหาทั้งสิ้น
การเขียนโปรแกรมเพื่อแก้ปัญหานั้นไม่จาเป็นต้องใช้กับ
สถานการณ์ที่ซับซ้อนเสมอไป แต่ยังสามารถเขียนโปรแกรมเพื่อ
แก้ปัญหาในชีวิตประจาวันได้ ตัวอย่างเช่น นักเรียนอาจเขียน
โปรแกรมประมวลผลข้อมูล โดยมีการรวบรวมข้อมูลปริมาณ
มากจากหลายแหล่ง แทนที่จะคานวณทุกอย่างบนกระดาษทด
หรือเครื่องคิดเลขซ ้
า ๆ กันสาหรับข้อมูลแต่ละชุด นักเรียน
สามารถกลั่นกรองแนวคิดของตนเอง ออกแบบขั้นตอนวิธี และ
เขียนโปรแกรมเพื่อช่วยประมวลผลข้อมูล
ทบทวนความรู้ก่อนเรียน
เขียนเครื่องหมาย ✓ หน้าข้อความที่ถูกต้อง
การถ่ายทอดความคิดในการแก้ปัญหาหรือการทางาน อาจ
เขียนเป็นข้อความที่แสดงให้เห็นการแก้ปัญหาหรือการทางานที่
เป็นลาดับขั้นตอน
การแสดงลาดับขั้นตอนในการทางานหรือการแก้ปัญหา
อาจใช้ภาพ สัญลักษณ์ ข้อความหรือการบอกเล่า
หากพิจารณาลาดับขั้นตอนการทางาน สามารถบอกถึง
ผลลัพธ์ที่จะเกิดขึ้นได้
นักเรียนทราบหรือไม่ว่าทุกคนสามารถเขียนโปรแกรม
ได้ เนื่องจากพื้นฐานการเขียนโปรแกรม คือการคิด
แก้ปัญหาอย่างเป็นขั้นตอนและเป็นระบบ ซึ่งนักเรียนต้อง
เคยฝึกฝนวิธีการแก้ปัญหาต่าง ๆ ในชีวิตจริงมาแล้วทั้งสิ้น
ในบทนี้จะกล่าวถึงขั้นตอนและเครื่องมือสาหรับแก้ปัญหา
ทั้งปัญหาในชีวิตประจาวันและปัญหาที่ใช้ในการคานวณ
เป็นพื้นฐานเพื่อนาไปสู่การเขียนโปรแกรม
2.1 ขั้นตอนการแก้ปัญหา
การแก้ปัญหาเป็นกิจกรรมพื้นฐานในการดารงชีวิตของ
มนุษย์ ปัญหาบางปัญหาสามารถหาคาตอบได้ในทันที ขณะที่
บางปัญหาอาจต้องใช้เวลานานในการค้นหาคาตอบ ซึ่ง
คาตอบที่ได้ต้องสามารถพิสูจน์ได้ว่าเป็นคาตอบที่ถูกต้อง
น่าเชื่อถือ และสามารถนาไปอ้างอิงต่อได้ การแก้ปัญหาของ
แต่ละบุคคลมีขั้นตอนและใช้เวลาที่แตกต่างกัน ความรู้และ
ประสบการณ์จะส่งผลต่อความสามารถในการแก้ปัญหา
อย่างไรก็ตามทุกคนต่างต้องการหาวิธีการในการแก้ปัญหาที่
ทาให้ได้คาตอบที่ถูกต้องในเวลารวดเร็ว
ขั้นตอนการแก้ปัญหา ประกอบด้วย 4 ขั้นตอน
การวิเคราะห์และกาหนด
รายละเอียดของปัญหา
การวางแผน
การแก้ปัญหา
01 02
การดาเนินการ
แก้ปัญหา
การตรวจสอบ
และประเมินผล
03 04
1. การวิเคราะห์และกาหนดรายละเอียดของปัญหา
เป็นการทาความเข้าใจเกี่ยวกับรายละเอียด เงื่อนไข
ข้อกาหนด รวมถึงข้อจากัดต่าง ๆ ของปัญหา ข้อมูลที่
จาเป็นในการแก้ปัญหา ตรวจสอบว่ามีข้อมูลเพียงพอ
หรือไม่ จะหาข้อมูลเพิ่มเติมให้ครบถ้วนต่อการใช้แก้ปัญหา
ได้อย่างไร ข้อมูลผลลัพธ์ที่ได้คืออะไร และจะตรวจสอบ
ความถูกต้องของผลลัพธ์ที่ได้อย่างไร
2. การวางแผนการแก้ปัญหา
เป็นการคิดค้นกระบวนการต่าง ๆ ที่เป็นขั้นตอน ตั้งแต่เริ่ม
จนกระทั่งได้ผลลัพธ์ที่ต้องการ ซึ่งต้องอาศัยประสบการณ์และ
ความรู้ของผู้แก้ปัญหา โดยอาจนาวิธีที่เคยแก้ปัญหา หรือค้นหา
วิธีการอื่นแล้วนามาประยุกต์เข้ากับปัญหาที่กาลังแก้ไข เครื่องมือที่
ใช้ในการวางแผนแก้ปัญหา สาหรับการพัฒนาโปรแกรม อาจ
เลือกใช้รหัสลาลอง หรือผังงาน โดยวิธีการแก้ปัญหาที่ได้เรียกว่า
ขั้นตอนวิธีหรืออัลกอริทึม (algorithm) ซึ่งเป็นลาดับขั้นตอนใน
การแก้ปัญหาหรือการทางานที่ชัดเจนตั้งแต่เริ่มต้นแก้ปัญหา
จนกระทั่งได้ผลลัพธ์ที่ต้องการ
3. การดาเนินการแก้ปัญหา
เป็นการนากระบวนการที่ได้วางแผนไว้มาปฏิบัติ หรือ
พัฒนาโปรแกรมเพื่อแก้ปัญหา โดยอาจใช้ภาษาโปรแกรมช่วย
ในการดาเนินการ
4. การตรวจสอบและประเมินผล
ขั้นตอนนี้จะทาควบคู่ไปกับขั้นตอนการดาเนินการ
แก้ปัญหา โดยการตรวจสอบผลลัพธ์ที่ได้ หากผลลัพธ์ที่ได้ไม่
ถูกต้อง หรือยังมีส่วนที่ต้องแก้ไขปรับปรุงอยู่ ต้องย้อนกลับ
ไปทาซ ้
าตั้งแต่ขั้นตอนแรกจนกว่าจะได้ผลลัพธ์ที่ถูกต้อง
นักเรียนจะนาขั้นตอนการแก้ปัญหาข้างต้น มาแก้ปัญหาที่ต้องการ
ได้อย่างไร ลองศึกษาตัวอย่างต่อไปนี้
ตัวอย่างที่ 2.1 การหาค่ามากที่สุดของจานวนสามจานวนที่กาหนดให้
การแก้ปัญหามีขั้นตอนดังนี้
ขั้นตอนที่ 1 การวิเคราะห์และกาหนดรายละเอียดของปัญหา
ข้อมูลเข้า จานวนสามจานวนได้แก่ a, b และ c
ข้อมูลออกหรือสิ่งที่ต้องการ ตัวเลขที่มีค่ามากที่สุดของเลขสามจานวน
วิธีตรวจสอบความถูกต้อง ดาเนินการหาตัวเลขที่มากที่สุดด้วยตนเอง
โดยกาหนดชุดตัวเลข 3 จานวน เช่น 8, 7 และ 12 ในกรณีนี้ตัวเลขที่มีค่า
มากที่สุด คือ 12
ขั้นตอนที่ 2 การวางแผนการแก้ปัญหา
2.1 เปรียบเทียบ a และ b เพื่อหาค่ามากกว่าระหว่างสอง
จานวน
2.2 นาค่าที่ได้มาเปรียบเทียบกับ c เพื่อหาค่าที่มากกว่า
2.3 ค่าที่มากที่สุดคือ ผลลัพธ์ที่ได้จากขั้นตอนที่ 2.2
ขั้นตอนที่ 3 การดาเนินการแก้ปัญหา
ดาเนินการทดสอบตามขั้นตอนที่วางแผนไว้กับชุดตัว
เลขที่กาหนด โดยสมมุติ a, b และ c เป็น 8, 7 และ 12
ตามลาดับ
3.1 เปรียบเทียบเพื่อหาค่าที่มากกว่าระหว่าง 8 และ 7
พบว่า 8 เป็นค่าที่มากกว่า
3.2 เปรียบเทียบเพื่อหาค่าที่มากกว่าระหว่าง 8 และ 12
พบว่า 12 เป็นค่าที่มากกว่า
3.3 ค่าที่มากที่สุดของ 8, 7 และ 12 คือ 12
ขั้นตอนที่ 4 การตรวจสอบและปรับปรุง
เมื่อพิจารณาคาตอบที่ได้คือ 12 กับค่าที่เหลือ ซึ่งได้แก่ 8
และ 7 พบว่า 12 มีค่ามากกว่าค่าที่เหลือทั้งคู่ คาตอบนี้จึงเป็น
คาตอบที่ถูกต้องตามข้อกาหนดของสิ่งที่ต้องการ
แนวคิดข้างต้นใช้งานได้เนื่องจากว่าหากพิจารณาจานวน
สามจานวนใด ๆ เมื่อ a > b และ b > c แล้ว a > c ด้วย
จากตัวอย่างแม้ว่าเราจะไม่ได้นาค่า 12 มาเปรียบเทียบกับ
7 โดยตรง แต่เราได้นามาเปรียบเทียบกับ 8 ซึ่ง 8 ถูก
ตรวจสอบมาก่อนหน้านี้แล้วว่ามากกว่า 7 เพราะฉะนั้น 12 จึง
มากกว่า 7 ด้วย
หากพิจารณาตัวอย่างที่ 2.1 นักเรียนอาจคิดว่า
มองด้วยสายตาก็สามารถหาจานวนที่มีค่ามากที่สุดได้แล้ว
โดยไม่จาเป็นต้องทาตามขั้นตอนการแก้ปัญหาเลย นั่น
เป็นเพราะจานวนที่เปรียบเทียบมีเพียงสามจานวนเท่านั้น
หากมีจานวนตัวเลขมากกว่านี้ นักเรียนอาจจะไม่สามารถ
เปรียบเทียบจานวนทั้งหมดได้โดยใช้สายตาเพียงอย่าง
เดียว แต่หากใช้ขั้นตอนการแก้ปัญหา จะทาให้สามารถ
ออกแบบการแก้ปัญหาที่มีประสิทธิภาพและสั่งงานให้
คอมพิวเตอร์หาคาตอบได้อย่างถูกต้องและใช้เวลารวดเร็ว
2.2 การเขียนรหัสลาลองและผังงาน
เมื่อเราทาความเข้าใจกับปัญหาและความต้องการแล้ว สิ่งต่อไป
คือการคิดอย่างมีเหตุผลเพื่อหาแนวทางในการแก้ปัญหา โดยกระบวนการ
ออกแบบแนวทางการแก้ปัญหานั้น จะต้องถ่ายทอดความคิดและความ
เข้าใจไปสู่การนาไปปฏิบัติได้ การถ่ายทอดจะต้องมีจุดเริ่มต้น จุดสิ้นสุด
และลาดับก่อนหลังที่ชัดเจน อาจอยู่ในรูปของข้อความที่เรียงกันเป็น
ลาดับซึ่งเรียกว่า รหัสลาลอง (pseudocode) หรืออยู่ในรูปผังงาน
(flowchart) ที่ประกอบไปด้วยสัญลักษณ์ ข้อความ และเส้นเชื่อมโยง ทา
ให้เห็นคาสั่งที่ต้องปฏิบัติ ลักษณะการทางาน และลาดับในการปฏิบัติงาน
การถ่ายทอดความคิดเป็นเครื่องมือที่จะช่วยให้สามารถวางแผนการ
แก้ปัญหา และพัฒนาโปรแกรมได้อย่างถูกต้อง ครบถ้วน และตรวจสอบ
ได้ โดยเฉพาะปัญหา หรือโปรแกรมที่ซับซ้อน
2.2.1 รหัสลาลอง
การเขียนรหัสลาลองเป็นการใช้คาบรรยายอธิบาย
ขั้นตอนอย่างชัดเจนในการแก้ปัญหา หรือการทางานของ
โปรแกรมซึ่งรูปแบบการเขียนจะขึ้นอยู่กับประสบการณ์ และ
ความถนัดของผู้เขียน โดยอาจเขียนเป็นภาษาพูด ทาให้เขียน
ง่ายไม่ต้องกังวลรูปแบบ
ถ้าผู้เขียนมีความชานาญแล้ว สามารถเขียนรหัสลาลองใน
รูปแบบที่คล้ายกับภาษาโปรแกรม ซึ่งจะสามารถนาไป
ดัดแปลงเป็นภาษาโปรแกรมได้ง่าย การใช้รหัสลาลองในการ
ถ่ายทอดความคิดแสดงดังตัวอย่างต่อไปนี้
ตัวอย่างที่ 2.2 รหัสลาลองการคานวณหาพื้นที่สามเหลี่ยม
เริ่มต้น
1. รับค่าความยาวฐาน
2. รับค่าความสูง
3. คานวณพื้นที่สามเหลี่ยม
จากสูตร พื้นที่ คือ ½ x ความยาวฐาน x ความสูง
4. แสดงผลลัพธ์พื้นที่
ชวนคิด
ค่าน ้
ามันที่ต้องใช้ = ระยะทาง (กม.) x ปริมาณน ้
ามันต่อระยะทาง (ลิตรต่อ กม.) x ราคาน ้
ามัน (บาทต่อลิตร)
รับระยะทางในการเดินทาง
(กิโลเมตร)
2.2.2 การเขียนผังงาน
ผังงานเป็นเครื่องมือที่ใช้ในการวางแผนหรือออกแบบการ
แก้ปัญหาเพื่อให้สามารถนาไปปฏิบัติตามหรือเขียนโปรแกรมเพื่อ
สั่งให้เครื่องคอมพิวเตอร์ทางานได้ง่าย สถาบันมาตรฐานแห่งชาติ
อเมริกา (The American National Standard Institute : ANSI)
ได้กาหนดสัญลักษณ์ที่เป็นมาตรฐานในการเขียนผังงานไว้ ซึ่งใน
ที่นี้จะแนะนาการใช้งาน 5 สัญลักษณ์พื้นฐาน
ชื่อเรียก ความหมาย
เริ่มต้นและจบ จุดเริ่มต้นและจุดสิ้นสุดของผังงาน
การนาข้อมูลเข้า - ออก จุดที่จะนาข้อมูลเข้าจากภายนอกหรือ
แบบทั่วไป ออกสู่ภายนอก โดยไม่ระบุชนิดของ
อุปกรณ์
การปฏิบัติงาน จุดที่มีการปฏิบัติงานอย่างใดอย่างหนึ่ง
การตัดสินใจ จุดที่จะเลือกปฏิบัติอย่างใดอย่างหนึ่ง
ทิศทาง ทิศทางขั้นตอนการดาเนินงาน
ซึ่งจะปฏิบัติต่อเนื่องกันตามหัวลูกศรชี้
ในการเขียนผังงานสาหรับโปรแกรมที่มีความ
ซับซ้อนและต้องการเชื่อมต่อผังงานในหน้า
เดียวกัน สามารถใช้สัญลักษณ์ แล้วมีหมายเลข
กากับภายใน หรือถ้ามีการเขียนหลายหน้า สามารถ
ใช้สัญลักษณ์ เพื่อเชื่อมต่อผังงานที่อยู่คนละ
หน้ากระดาษ โดยมีหมายเลขกากับภายใน
สัญลักษณ์
จากตัวอย่างที่ 2.2 สามารถเขียนเป็นผังงานได้ดังนี้
รับค่าความยาวฐาน
รับค่าความสูง
เริ่มต้น
พื้นที่สามเหลี่ยม = ½ x ความยาวฐาน x ความสูง
จบ
แสดงผลลัพธ์พื้นที่
สามเหลี่ยม
บางครั้งในการเขียนรหัสลาลอง หรือผังงาน
จะมีชื่อข้อมูลที่ยาวจนทาให้เกิดความสับสน หรือมีการ
อ้างถึงชื่อข้อมูลซ ้
ากันหลายครั้ง เพื่อให้เขียนได้ง่ายและ
กระชับ สามารถแทนชื่อข้อมูลด้วยตัวแปร (variable)
ซึ่งอาจเป็นตัวอักษรภาษาอังกฤษ และ ณ ขณะใด
ขณะหนึ่ง ตัวแปรจะมีค่าได้เพียงค่าเดียวเท่านั้น อย่างไร
ก็ตามค่าของตัวแปรสามารถเปลี่ยนแปลงได้ ขึ้นอยู่กับ
การดาเนินการกับตัวแปรนั้น ๆ
กิจกรรมที่ 2.1
ให้นักเรียนเขียนรหัสลาลองหรือผังงานของกิจกรรม
ต่อไปนี้
1. การแปรงฟัน
2. การใส่เสื้อเชิ้ต
3. การเดินทางมาโรงเรียน
4. การทาไข่เจียว
5. การล้างจาน
2.3 การกาหนดค่าให้กับตัวแปร
การกาหนดค่าอย่างใดอย่างหนึ่งให้กับตัวแปรสามารถ
ทาได้ 3 วิธีคือ
1. การรับค่าจากภายนอก
2. การกาหนดค่าจากค่าคงที่หรือตัวแปรอื่น
3. การกาหนดค่าจากการคานวณ
สัญลักษณ์ที่นิยมใช้สาหรับกาหนดค่าให้กับตัวแปร
คือ ใช้เพื่อนาค่าทางขวาของ ไปกาหนดให้กับตัวแปร
ทางด้านซ้ายของ เช่น
x 2 นาค่า 2 ไปใส่ในตัวแปร x
a b x c นาผลลัพธ์ของตัวแปร b คูณตัวกับตัวแปร c ไปใส่ในตัวแปร a
a a x b นาผลลัพธ์ของตัวแปร a คูณตัวกับตัวแปร b ไปใส่ในตัวแปร a
x x + 1 นาผลลัพธ์ของตัวแปร x บวกกับ 1 b ไปใส่ในตัวแปร x
y 3 นาค่า 3 ไปใส่ในตัวแปร y
z x x y นาผลลัพธ์ของตัวแปร x คูณกับตัวแปร y ไปใส่ในตัวแปร z
การตั้งชื่อตัวแปรควรตั้งชื่อให้เหมาะสมกับค่าที่เก็บในตัวแปร
เช่น ตัวแปร name เก็บข้อมูลชื่อ, ตัวแปร age เก็บข้อมูลอายุ
จากตัวอย่างที่ 2.2 และ 2.3 สามารถเขียนรหัส
ลาลองและผังงานที่ใช้ตัวแปรได้
ดังตัวอย่างที่ 2.4
ตัวอย่างที่ 2.4 รหัสลาลองและผังงานที่มีการใช้ตัวแปร
เริ่มต้น
triangleArea = ½ x width x height
จบ
แสดงผลลัพธ์
triangleArea
width รับค่าความยาวฐาน
height รับค่าความสูง
เริ่มต้น
1. width รับค่าความยาวฐาน
2. height รับค่าความสูง
3. triangleArea ½ x width x height
4. แสดงผลลัพธ์ triangleArea
ชวนคิด
1. จากตัวอย่างที่ 2.4 ให้นักเรียนลากเส้นคาสั่งจากรหัสลาลอง
ถึงผังงานที่มีความหมายเดียวกัน
2. ลองเติมช่องว่างในผังงานด้านล่างให้สมบูรณ์ เพื่อให้
สามารถคานวณค่าน ้
ามันตามปริมาณน ้
ามันที่ใช้ต่อระยะทาง
เริ่มต้น
oilNum รับปริมาณน ้
ามันต่อระยะทาง (ลิตรต่อกิโลเมตร)
distance รับระยะทาง (กิโลเมตร)
oilPrice รับราคาน ้
ามัน (บาทต่อลิตร)
จบ
การใช้งานรหัสลาลองหรือผังงานในตัวอย่าง
ที่ 2.4 นักเรียนจะสังเกตเห็นว่าการทางานจะเรียง
ตามลาดับทีละคาสั่ง เรียกว่ามีรูปแบบการทางาน
แบบลาดับ สาหรับตัวอย่างที่ 2.5 และ 2.6 ต่อไปนี้ จะ
มีการทางานรูปแบบอื่นคือ แบบมีเงื่อนไข และ แบบ
วนซ ้
า
ตัวอย่างที่ 2.5 รหัสลาลองและผังงานที่มีการทางานแบบมีเงื่อนไข
เริ่มต้น
จบ
เริ่มต้น
1. ซื้อข้าวและกินข้าว
2. ถ้า เงินเหลือ ทา
2.1 ซื้อขนม
จบ
ซื้อขนม
มีเงินเหลือหรือไม่
ซื้อข้าว
กินข้าว
จริง
เท็จ
ตัวอย่างที่ 2.6 รหัสลาลองและผังงานที่มีการทางานแบบวนซ ้
า
จบ
เริ่มต้น
ระยะทาง >= 5
กิโลเมตรหรือไม่
วิ่ง
จริง
เริ่มต้น
1. วิ่ง
2. ถ้า ระยะทางในการ
วิ่งครบ 5 กิโลเมตร ทา
2.1 หยุดวิ่ง
2.2 กลับไปทาข้อ 1
จบ
หยุดวิ่ง
เท็จ
กิจกรรมที่ 2.2
ให้นักเรียนเขียนรหัสลาลองหรือผังงานของกิจกรรมต่อไปนี้
1. นักเรียนยืนรอข้ามถนนตรงทางม้าลายที่มีสัญญาณไฟ
2. ใช้ขันตักน ้
า 20 ขันจนเต็มตู้ปลา
3. การต้มไข่ยางมะตูม ทาได้โดยนาไข่ใส่น ้
าและตั้งไฟแล้ว
รอให้น ้
าเดือด แล้วต้มต่ออีก 7 นาที จึงจะได้ไข่ต้มยางมะตูม
4. ช่วงนี้ฝนตกเป็นประจาเกือบทุกวัน ก่อนออกจากบ้าน
หากท้องฟ้ามืดครึ้มให้นักเรียนหยิบร่มใส่กระเป๋าไปด้วย
2.4 ภาษาโปรแกรม
ภาษาโปรแกรมคอมพิวเตอร์มีวิวัฒนาการมายาวนาน
นับตั้งแต่การสั่งงานคอมพิวเตอร์ด้วยภาษาเครื่องที่ประกอบด้วย
ตัวเลข 0 และ 1 ในยุคเริ่มแรกของคอมพิวเตอร์ ซึ่งเป็นอุปสรรค
ต่อการเขียนโปรแกรมขนาดใหญ่ เนื่องด้วยความยากของการ
เขียนโปรแกรม จนมาถึงปัจจุบันที่ภาษาโปรแกรมคอมพิวเตอร์มี
ความคล้ายคลึงกับภาษาอังกฤษ ทาให้การเขียนโปรแกรมขนาด
ใหญ่ทาได้รวดเร็ว และมีความผิดพลาดน้อยลง แต่เนื่องจาก
คอมพิวเตอร์ยังคงต้องทางานตามคาสั่งภาษาเครื่อง เมื่อเราเขียน
โปรแกรมแล้ว จึงต้องมีการแปลให้เป็นภาษาเครื่องก่อน
1. คอมไพเลอร์
(compiler)
ตัวแปลภาษาโปรแกรมมี 2 ประเภท คือ
2. อินเทอร์พรีเตอร์
(interpreter)
1. คอมไพเลอร์ (compiler)
จะแปลโปรแกรมทั้งโปรแกรมให้ถูกต้อง จึงจะได้ผลลัพธ์
เป็นโปรแกรมภาษาเครื่องที่นาไปสั่งงานคอมพิวเตอร์ได้ ภาษาที่
ต้องแปลด้วยคอมไพเลอร์ เช่น C, C++, Java
2. อินเทอร์พรีเตอร์ (interpreter)
จะแปลคาสั่งในโปรแกรมทีละคาสั่งให้เป็นภาษาเครื่อง ส่ง
ให้คอมพิวเตอร์ทางานทันทีโดยไม่ต้องรอให้แปลเสร็จทั้ง
โปรแกรม เช่น Phyton, Logo
ปัจจุบันยังมีภาษาอีกกลุ่มหนึ่ง ที่ไม่ได้ใช้ในการสั่งงาน
คอมพิวเตอร์โดยตรง แต่ใช้ในการกาหนดรูปแบบการ
แสดงผล หรือรูปแบบการเก็บข้อมูล เพื่อให้เป็นมาตรฐาน
สาหรับแอฟพลิเคชั่นต่าง ๆ ใช้งานข้อมูลร่วมกันได้ เช่น
ภาษาเอชทีเอ็มแอล (HyperText Markup Language :
HTML) ที่ใช้ในการกาหนดรูปแบบการแสดงผลของหน้า
เว็บ หรือเอ็กซ์เอ็มแอล (Extensible Markup Language :
XML) ที่ใช้เป็นมาตรฐานในการเก็บข้อมูล
นอกจากภาษาโปรแกรมมาตรฐานที่ใช้ในการทางานเหล่า
นี้แล้ว ยังมีการพัฒนาเครื่องมือการโปรแกรมที่อยู่ในรูปแบบ
กราฟิก เพื่อใช้ในการเริ่มต้นศึกษาแนวคิดการโปรแกรม เช่น
Scratch และ Alice โดยเครื่องมือเหล่านี้จะมีบล็อกคาสั่งต่าง ๆ
ให้นักเรียนลากวางประกอบกันเป็นโปรแกรม แล้วสั่งให้
ทางานได้ อาจมีการเชื่อมต่อกับอุปกรณ์รับสัญญาณอื่น หรือ
สั่งงานให้อุปกรณ์ไฟฟ้าอื่นปฏิบัติตามคาสั่งได้ ส่วนใหญ่แล้ว
เครื่องมือเหล่านี้จะนิยมใช้เพื่อการเรียนรู้แนวคิดการโปรแกรม
ปัจจุบันยังมีภาษาอีกกลุ่มหนึ่ง ที่ไม่ได้ใช้ในการสั่งงาน
คอมพิวเตอร์โดยตรง แต่ใช้ในการกาหนดรูปแบบการ
แสดงผล หรือรูปแบบการเก็บข้อมูล เพื่อให้เป็นมาตรฐาน
สาหรับแอฟพลิเคชั่นต่าง ๆ ใช้งานข้อมูลร่วมกันได้ เช่น
ภาษาเอชทีเอ็มแอล (HyperText Markup Language :
HTML) ที่ใช้ในการกาหนดรูปแบบการแสดงผลของหน้าเว็บ
หรือเอ็กซ์เอ็มแอล (Extensible Markup Language : XML)
ที่ใช้เป็นมาตรฐานในการเก็บข้อมูล
สรุปท้ายบท
ปัญหาที่นักเรียนพบในชีวิตประจาวันบางปัญหาสามารถหา
คาตอบได้ในทันที ขณะที่บางปัญหาอาจต้องใช้เวลานานในการ
ค้นหาคาตอบ การแก้ปัญหาของแต่ละบุคคลมีขั้นตอนและใช้เวลา
ที่แตกต่างกัน ความรู้และประสบการณ์จะส่งผลต่อความสามารถ
ในการแก้ปัญหา อย่างไรก็ตามทุกคนต่างต้องการหาวิธีการใน
การแก้ปัญหาที่ทาให้ได้คาตอบที่ถูกต้องในเวลารวดเร็ว
การปฏิบัติตามขั้นตอนการแก้ปัญหาจะทาให้ได้วิธีการ
แก้ปัญหาที่มีประสิทธิภาพ เริ่มจากทาความเข้าใจกับปัญหา โดย
วิเคราะห์และกาหนดรายละเอียดของปัญหา พิจารณาว่าสิ่งที่
ต้องการคืออะไร ข้อมูลเข้าจะเป็นสิ่งใดบ้าง เคยแก้ปัญหาลักษณะ
เดียวกันมาก่อนหรือไม่ ข้อมูลและเงื่อนไขที่กาหนดให้เพียงพอที่จะ
หาคาตอบหรือไม่ ถ้าไม่เพียงพอก็จาเป็นต้องหาข้อมูลเพิ่มเติม
หลังจากทาความเข้าใจกับปัญหาแล้วให้วางแผนหรือออกแบบอัล
กอรึทึมในการหาคาตอบ เครื่
่
องมือในการออกแบบอาจใช้รหัส
ลาลองหรือผังงาน หลังจากนั้นดาเนินการเขียนโปรแกรมหรือ
ปฏิบัติตามที่ได้ออกแบบไว้ สุดท้ายตรวจสอบผลลัพธ์ว่าถูกต้อง
หรือไม่ ถ้ายังไม่ถูกต้องก็ดาเนินการปรับปรุงให้ถูกต้อง

บทที่ 2 การแก้ปัญหา