เทคโนโลยสี ารสนเทศและการสื่อสาร
เรือ่ งหลักการแกป้ ญั หา
ระดบั ชน้ั มัธยมศกึ ษาปที ่ี 1
ปญั หา
คอื อะไร
ปญั หาคอื สง่ิ ทเี่ รายังไมท่ ราบคาตอบ และ ยงั ไมท่ ราบ
ข้นั ตอนวธิ ีในการแกป้ ญั หา
ชวนคดิ ?
5
ชวนคิด ?
การหาผลรวมของจานวนเตม็ ที่ ต้งั บวกทลี ะคา่ ตั้งแต่ 1 จน ถงึ 10
มีค่าตั้งแต่ 1 ถึง 10 1
2+
... 3
3+
6
36
9+
45
10+
55
ชวนคดิ ?
การหาผลรวมของจานวนเตม็ ที่ จดั ลาดบั การบวกใหม่ ตัวเลขทม่ี ี
มีค่าต้งั แต่ 1 ถึง 10 ผลบวกเท่ากัน
1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10
1+10 = 11
2+9 = 11
3+8 = 11
4+7 = 11
5+6 = 11
ซงึ่ จะเห็นวา่ มอี ยูท่ ้ังสน้ิ 5 คู่
ดังนนั้ ผลรวมจงึ มคี า่ เท่ากบั 5 x 11 = 55
ชวนคิด ?
การหาผลรวมของจานวนเตม็ ที่ อาศยั ขอ้ สังเกตจากวธิ กี ารที่แลว้ เพอ่ื
มีค่าต้ังแต่ 1 ถึง 10 สรา้ งสูตรหาผลรวมได้ดงั น้ี
ผลรวม n = (a+b) / 2
เมอื่ n เปน็ จำนวนทั้งหมดในชุดตวั เลข
a เป็นจำนวนแรกในชุดตัวเลข
b เป็นจำนวนสุดทำ้ ยในชุดตัวเลข
จะได้วา่ ผลรวม = 10 (1+10)/2 = 55
ขนั้ ตอนการแกป้ ัญหา
การวเิ คราะหแ์ ละกาหนดรายละเอยี ดของปญั หา
การวางแผนในการแก้ปัญหา
การดาเนินการแกป้ ัญหา
การตรวจสอบและปรับปรงุ
1. การวิเคราะหแ์ ละกาหนดรายละเอยี ดของปญั หา
เป็นกำรทำควำมเขำ้ ใจกับปัญหำเพอื่ แยกให้ออกวำ่
1. ส่งิ ท่ตี อ้ งกำรคืออะไร (ข้อมูลออก Output)
2. ข้อมูลที่กำหนดใหค้ อื อะไร (ข้อมลู เข้า Input)
2. การวางแผนในการแก้ปญั หา
เป็นกำรเลือกใช้เคร่ืองมือหรือวิธีกำรเพ่ือให้ได้คำตอบ เมื่อได้แนวทำงใน
กำรแก้ปัญหำแล้ว จึงอธิบำยแผนกำรแก้ปัญหำเป็นขั้นตอนท่ีชัดเจน สำมำรถ
เขียนได้ 2 วธิ ี
1.รหสั ลาลอง (pseudocode)
2.ผงั งาน (Flowchart)
3. การดาเนินการแกป้ ญั หา
เป็นกำรนำเครือ่ งมือหรือวธิ ีกำรที่ได้วำงแผนไว้ในข้นั ตอนที่ 2 มำดำเนินกำร
แกป้ ญั หำ ซ่ึงอำจทำใหเ้ ห็นแนวทำงที่ดกี ว่ำวิธกี ำรที่คิดไว้กส็ ำมำรถปรบั เปลย่ี นได้
4. การตรวจสอบและปรับปรงุ
เปน็ กำรตรวจสอบผลลพั ธ์รำยละเอยี ดของปญั หำท่ีกำหนดไว้ในข้ันตอนแรก
หรอื ไม่ ถำ้ หำกผลลพั ธท์ ่ไี ดไ้ มเ่ ปน็ ไปตำมทีต่ อ้ งกำร จะต้องปรับปรงุ วิธกี ำรให้
ถูกตอ้ ง
การวเิ คราะหแ์ ละกาหนดรายละเอียดของปัญหา
การวางแผนในการแก้ปญั หา
การดาเนินการแก้ปญั หา
การตรวจสอบและปรับปรงุ
ตวั อย่างขนั้ ตอนการแกป้ ัญหา การหาคา่ มากทีส่ ดุ ของจานวนสามจานวน
กาหนดตวั เลขสามจานวนคือ 8,7 และ 12
ขั้นตอน การวเิ คราะหแ์ ละกาหนดรายละเอียดของปญั หา
ท่ี 1 ข้อมูลทกี่ าหนดให้ (ขอ้ มูลเขา้ ) : จำนวนสำมจำนวน คือ 8,7 และ 12
ส่ิงที่ตอ้ งการ (ขอ้ มลู ออก) : คำ่ มำกท่สี ุดของตวั เลขสำมจำนวน
ขัน้ ตอน วางแผนการแกป้ ัญหา
ที่ 2 2.1 เปรียบเทียบตัวเลขจำนวนแรกเพ่ือหำคำ่ มำกที่สุดระหว่ำงสองจำนวน
2.2 นำค่ำทไ่ี ดม้ ำเปรียบเทยี บกำจำนวนที่สำม เพอื่ หำค่ำมำกทสี่ ุด
2.3 ค่ำทีม่ ำกท่ีสุด คือผลลพั ธ์ทีไ่ ด้จำกขอ้ 2.2
ตวั อย่างข้ันตอนการแกป้ ัญหา การหาค่ามากทสี่ ดุ ของจานวนสามจานวน
กาหนดตัวเลขสามจานวนคอื 8,7 และ 12
ขั้นตอน การดาเนินการแกป้ ัญหา
ท่ี 3 3.1 เปรยี บเทยี บเพ่ือหำค่ำท่ีมำกกวำ่ ระหวำ่ ง 8 และ 7 พบวำ่ 8 มีค่ำท่ีมำกกวำ่
3.2 เปรยี บเทยี บเพือ่ หำคำ่ มำกกว่ำระหวำ่ ง 8 และ 12 พบว่ำ 12 มคี ำ่ มำกกว่ำ
3.3 คำ่ ที่มำกท่สี ุดของ 8,7 และ 12 คือ 12
ขน้ั ตอน การตรวจสอบและปรับปรุง
ท่ี 4 คำตอบทไ่ี ด้คือ 12 กบั คำ่ ทีเ่ หลอื ซึง่ ได้แก่ 8 และ 7
พบวำ่ 12 มคี ำ่ มำกกว่ำคำ่ ที่เหลอื ทง้ั คู่ คำตอบน้ีจึงเป็น
คำตอบที่ถูกต้องตำมขอ้ กำหนดท่ีต้องกำร
แบบฝึกหัด
จงเขียนขน้ั ตอนการแก้ปัญหา
1.คำนวณหำค่าเฉลย่ี ของสนิ ค้ำ 5 รำยกำร ดังน้ี 15,25,10,5 และ 30
2.หำคำ่ น้อยที่สุดของชดุ ตวั เลขที่กำหนดให้ คือ 25,90,15 และ 3
3.หำคำ่ มากและน้อยทีส่ ุดของชดุ ตัวเลข คือ 5,10 และ 15
การถ่ายทอดความคดิ ในการแกป้ ญั หา
กำรถำ่ ยทอดควำมคดิ (Algorithm) อำจอยู่ในรูปแบบของข้อควำมทเี่ ป็น
ลำดบั ซ่ึงเรยี กว่ำ รหัสลาลอง (Pseudo code) หรือ ผงั งาน (flow chart)
เป็นเครอื่ งมอื ที่จะช่วยสำมำรถวำงแผนในกำรแกป้ ัญหำได้อย่ำงถูกต้อง
ครบถ้วน และตรวจสอบได้
ผงั งาน (Flowchart)
ผงั งาน (Flowchart) คือ รปู ภำพหรอื สญั ลักษณ์ ที่ใชเ้ ขียนแทนคำอธบิ ำย
ขอ้ ควำม หรือคำพูดทีใ่ ช้ในอลั กอรทึ ึม ผงั งำนสำมำรถแบง่ ไดเ้ ป็น 2 ประเภทใหญ่ๆ คือ
1. ผังงำนระบบ
2.ผงั งำนโปรแกรม
ประเภทของผังงาน
1. ผงั งานระบบ (System Flowchart) เป็นกำรแสดงข้นั ตอนวำ่ มเี อกสำร
เบอ้ื งต้น เริม่ จำกสว่ นใดของระบบงำน ผ่ำนไปยงั หน่วยงำนใด มีกจิ กรรมอะไรใน
หนว่ ยงำนนน้ั สง่ งำนต่อไปทใี่ ดจงึ จะเสรจ็ ส้ิน
2. ผังงานโปรแกรม (Program Flowchart) เปน็ กำรแสดงลำดบั ข้ันตอน
กำรทำงำนในโปรแกรม มสี ่วนกำรทำงำนในขั้นกำรรบั ข้อมลู กำรคำนวณหรือกำร
ประมวลผล และกำรแสดงผลลัพธ์ เรียกอกี อยำ่ งได้วำ่ ผังงาน
ประโยชน์ของผงั งาน
1. ทำให้เข้ำใจและแยกแยะปัญหำต่ำงๆ ไดง้ ่ำยขน้ึ
2. ทำให้มองเห็นลำดบั กำรทำงำน
3. สำมำรถหำขอ้ ผิดพลำดได้งำ่ ย
4. ทำใหผ้ ูอ้ ื่นเขำ้ ใจไดง้ ำ่ ยกว่ำกำรดูจำก Source code
5. ไม่ขนึ กับภำษำคอมพิวเตอร์ภำษำใดภำษำหนงึ่
การเขียนผงั งานทีด่ ี
1. ใชส้ ัญลกั ษณต์ ำมท่ีกำหนดไว้
2. ใชล้ กู ศร แสดงทิศทำงกำรไหลของข้อมูล
3. คำอธบิ ำยในภำพ สนั้ กระทัดรัด และเขำ้ ใจง่ำย
4. ทกุ ภำพตอ้ งมีลกู ศรสัญลกั ษณส์ ดงทิศทำงกำรเขำ้ – ออก
5. ไมค่ วรโยงเส้นเชอ่ื มผงั งำนทีอ่ ยไู่ กลมำกๆ ควรใชส้ ัญลักษณจ์ ดุ เชื่อมตอ่ แทน
6. ควรมีกำรทดสอบควำมถูกตอ้ งกอ่ นนำไปเขียนโปรแกรม
การเขยี นผงั งาน (Flowchart)
มี 3 รปู แบบ คือ 1. แบบเรยี งลาดับ (Sequence Structure)
เป็นรูปแบบงำ่ ย ๆ ไม่มีกำรเปรียบเทียบใด ๆ
มีทิศทำงกำรไหลขอ้ มลู เพยี งทศิ ทำงเดียว
การเขียนผงั งาน (Flowchart)
มี 3 รปู แบบ คือ 2. แบบมีเงอ่ื นไข (Decision Structure)
จะมกี ำรสรำ้ งเง่อื นไขเพ่ือใหเ้ ลือกกำรทำงำน N
หำกเลือกทำงใดกจ็ ะไปทำงำนในเงอ่ื นไขท่ีเลอื ก ซงึ่
เง่อื นไขทก่ี ำหนดขึน้ จะใชส้ ญั ลักษณ์ “การตัดสินใจ” Y
การเขยี นผงั งาน (Flowchart)
มี 3 รปู แบบ คือ 3. แบบทางานซ้าหรอื Loop (Iteration Structure)
จะเปน็ กำรทำซ้ำ ๆ กนั หลำย ๆ ครั้ง
ตำมเงอื่ นไขทีก่ ำหนด จะมีกำรนำเอำสัญลกั ษณ์ของ
กำรตัดสนิ ใจมำชว่ ยว่ำจะมีกำรทำงำนซำ้ อกี หรือไม่
Y
N
ผังงาน
สัญลักษณท์ ี่ใช้เปน็ มาตราฐานในการเขียนผงั งาน American National Standard Institute (ANSI)
สญั ลักษณ์ ช่อื เรยี ก ความหมาย
เริ่มต้นและจบ จดุ เรม่ิ ต้นและ
Start/Stop จดุ สน้ิ สดุ ของผังงำน
รับข้อมูลเข้ำ-ออก รับข้อมลู เขำ้ จำกภำยนอก
Input / Output หรือออกสู่ภำยนอก
ผังงาน (ต่อ)
สญั ลกั ษณ์ ช่ือเรยี ก ความหมาย
กำรปฏบิ ตั ิงำน จดุ ทีม่ ีกำรปฏิบัตงิ ำน
Process อย่ำงใดอย่ำงหน่งึ
กำรตัดสินใจ จดุ ทีจ่ ะตอ้ งเลอื ก
Decision อย่ำงใดอยำ่ งหนึ่ง
สญั ลักษณ์ ผงั งาน (ต่อ) ความหมาย
ชอ่ื เรยี ก แสดงผลลัพธ์
ทำงจอภำพ
Display /
Monitor
Document แสดงผลลัพธ์
ในรูปแบบเอกสำร
สญั ลักษณ์ ผังงาน (ต่อ) ความหมาย
ชอื่ เรยี ก รับขอ้ มลู เขำ้
ทำงแป้นพิมพ์
รบั ข้อมลู เข้ำ
Manual input
ทศิ ทำง ทิศทำงข้นั ตอนใน
Direction/Arrow กำรดำเนินงำน
สัญลักษณ์ ผงั งาน (ตอ่ ) ความหมาย
ช่อื เรยี ก แทนจดุ เชอ่ื มตอ่
ของภำยนอกผงั งำน
จุดเช่ือมตอ่
Off page connector
จุดเช่อื มต่อ แทนจดุ เชอ่ื มต่อ
On page connector ของภำยในผงั งำน
การกาหนดค่าใหต้ ัวแปร
สญั ลกั ษณ์ทใ่ี ช้สำหรบั กำหนดคำ่ ใหก้ ับตวั แปร คือ
ใช้เพ่อื นำคำ่ ทำงขวำของ ไปกำหนดให้กบั ตัวแปรทำงดำ้ นซ้ำยของ
ตวั อย่าง x 2 นำค่ำ 2 ไปใสใ่ น X
a a x b นำผลลัพธ์ของ a x b ไปใส่ใน a
z c x b นำผลลพั ธข์ อง c x b ไปใส่ใน z
โจทย์ : การต้มบะหมีก่ งึ่ สาเรจ็ รูป
ตัวอย่าง การเขยี นรหสั ลาลอง ตวั อยา่ ง การเขยี นผังงาน
กำรต้มบะหมี่ก่งึ สำเรจ็ รูป start
เร่ิมต้น
ต้มนำ้ ใหเ้ ดอื ด
1.ตม้ น้ำให้เดือด ใส่บะหมลี่ งในนำ้ เดอื ด
2.ใสบ่ ะหม่ีลงในน้ำเดอื ด
3.รอ 2 นำที รอ 2 นำที
4.ใส่เครอ่ื งปรุง ใส่เคร่ืองปรงุ
จบ
stop
โจทย์ : การหาพืน้ ท่รี ูปสามเหล่ยี ม
ตัวอยา่ ง การเขยี นรหัสลาลอง ตวั อย่าง การเขยี นผงั งาน
กำรคำนวณหำพืน้ ที่สำมเหลี่ยม start
เร่ิมตน้
b,h
1.รับคำ่ ควำมยำว ฐ,ส Area 0.5*b*h
2.คำนวณหำพ้ืนทส่ี ำมเหล่ียม
(พท. = ½ x ฐำน x สงู ) Area
3.แสดงผลลพั ธพ์ ื้นทส่ี ำมเหลี่ยม
จบ stop
แบบฝึกหดั
1.แสดงข้อควำม Hello world ออกทำงจอภำพ
2.รับค่ำ 2 จำนวน หำผลรวมและแสดงผลลัพธ์
3.คำนวณหำอำยุโดยข้อมูลเข้ำเป็นปี ค.ศ. แสดงผลเปน็ อำยุ และปพี .ศ.
4.คำนวณหำค่ำเฉลีย่ น้ำหนักของนกั เรยี น 3 คน พร้อมแสดงผลลพั ธ์
5.รบั ค่ำตัวเลข 2 จำนวน แสดงผลคำ่ มำกทีส่ ุด
6.รบั ค่ำตวั เลข 3 จำนวน แสดงผลคำ่ น้อยที่สดุ
7.รับคำ่ ตัวเลข 1 จำนวน แสดงผลวำ่ เป็นเลขคูห่ รือเลขคี่