360 likes | 601 Views
หลักการแก้ปัญหา. รายวิชา ง 23102 เทคโนโลยีสารสนเทศ 3. กระบวนการในการแก้ปัญหา. หากเรานำวิธีการแก้ปัญหาต่างวิธีนั้นมาวิเคราะห์ให้ดี จะพบว่าสามารถสรุปวิธีการเหล่านั้นเป็นทฤษฎีซึ่งมีรูปแบบที่แน่นอนได้ และบางครั้งต้องอาศัยการเรียนรู้ในระดับสูงเพื่อแก้ปัญหาบางอย่างให้สมบูรณ์แบบ
E N D
หลักการแก้ปัญหา รายวิชา ง23102 เทคโนโลยีสารสนเทศ 3 สาขาคอมพิวเตอร์และเทคโนโลยี
กระบวนการในการแก้ปัญหากระบวนการในการแก้ปัญหา • หากเรานำวิธีการแก้ปัญหาต่างวิธีนั้นมาวิเคราะห์ให้ดี จะพบว่าสามารถสรุปวิธีการเหล่านั้นเป็นทฤษฎีซึ่งมีรูปแบบที่แน่นอนได้ และบางครั้งต้องอาศัยการเรียนรู้ในระดับสูงเพื่อแก้ปัญหาบางอย่างให้สมบูรณ์แบบ • จากการศึกษาพฤติกรรมในการเรียนรู้และแก้ปัญหาของมนุษย์พบว่า โดยปกติมนุษย์มีกระบวนการในการแก้ปัญหา ซึ่งประกอบด้วย 4 ขั้นตอน สาขาคอมพิวเตอร์และเทคโนโลยี
กระบวนการในการแก้ปัญหากระบวนการในการแก้ปัญหา ? ขั้นตอนที่ 1การวิเคราะห์และกำหนดรายละเอียดของปัญหา (State the problem) ? ขั้นตอนที่ 2การเลือกเครื่องมือและออกแบบขั้นตอนวิธี (Tools and Algorithm development) ขั้นตอนที่ 3การดำเนินการแก้ปัญหา (Implementation) ขั้นตอนที่ 4การตรวจสอบและปรับปรุง (Refinement) สาขาคอมพิวเตอร์และเทคโนโลยี
การวิเคราะห์และกำหนดรายละเอียดของปัญหาการวิเคราะห์และกำหนดรายละเอียดของปัญหา • การระบุข้อมูลเข้า (input) ได้แก่ การพิจารณาข้อมูลและเงื่อนไขที่กำหนดมาในปัญหา • การระบุข้อมูลออก(output) ได้แก่ การพิจารณาสิ่งที่ต้องหาคำตอบ • การกำหนดวิธีประมวลผล (processing) ได้แก่ การพิจารณาขั้นตอนวิธีหาคำตอบหรือข้อมูลออก สาขาคอมพิวเตอร์และเทคโนโลยี
การวิเคราะห์และกำหนดรายละเอียดของปัญหาการวิเคราะห์และกำหนดรายละเอียดของปัญหา ตัวอย่าง 1 แสดงวิธีการวิเคราะห์และกำหนดรายละเอียดของการหาค่าเฉลี่ยของจำนวนเต็ม 5 จำนวน การระบุข้อมูลเข้า จำนวนเต็ม 5 จำนวน การระบุข้อมูลออก ค่าเฉลี่ยของจำนวนเต็ม 5 จำนวน การกำหนดวิธีการประมวลผล 1) รับค่าจำนวนเต็ม 5 จำนวน 2) นำจำนวนเต็ม 5 จำนวนมาบวกกัน 3) นำผลลัพธ์จากข้อ 2) มาหารด้วย 5 สาขาคอมพิวเตอร์และเทคโนโลยี
การวิเคราะห์และกำหนดรายละเอียดของปัญหาการวิเคราะห์และกำหนดรายละเอียดของปัญหา ตัวอย่าง 2 แสดงวิธีการวิเคราะห์และกำหนดรายละเอียดของการหาพื้นที่สี่เหลี่ยมผืนผ้า การระบุข้อมูลเข้า ความกว้างและความยาวด้าน การระบุข้อมูลออก พื้นที่สี่เหลี่ยมผืนผ้า การกำหนดวิธีการประมวลผล 1) รับค่าความกว้างและความยาวด้าน 2) พื้นที่สี่เหลี่ยมผืนผ้า = ความกว้าง x ความยาว สาขาคอมพิวเตอร์และเทคโนโลยี
การจำลองความคิด รายวิชา ง31102 เทคโนโลยีสารสนเทศ สาขาคอมพิวเตอร์และเทคโนโลยี
การจำลองความคิด • ขั้นตอนที่สำคัญในการแก้ปัญหาคือการวางแผน การวางแผนที่ดีจะช่วยให้การแก้ปัญหาเป็นไปได้โดยง่าย • การจำลองความคิดออกมาเป็นข้อความ หรือแผนภาพจะช่วยให้สามารถแก้ปัญหาได้ดี โดยเฉพาะปัญหาที่ยุ่งยากซับซ้อน • เป็นการแสดงแบบหรือขั้นตอนเพื่อให้ผู้ที่เกี่ยวข้องได้เข้าใจและสามารถปฏิบัติตามในแนวทางเดียวกัน สาขาคอมพิวเตอร์และเทคโนโลยี
เครื่องมือที่ใช้ • ข้อความหรือคำบรรยาย (Pseudo code) เขียนเค้าโครงด้วยการบรรยายเป็นภาษาที่มนุษย์ใช้สื่อสารกัน เพื่อให้ทราบถึงขั้นตอนการทำงานของการแก้ปัญหาแต่ละตอน ในบางครั้งอาจใช้คำสั่งของภาษาที่ใช้เขียนโปรแกรมก็ได้ • สัญลักษณ์ หรือ ผังงาน (Flowchart) สถาบันมาตรฐานแห่งชาติอเมริกา (The American National Standard Institute หรือ ANSI) ได้กำหนดสัญลักษณ์ไว้เป็นมาตรฐาน สาขาคอมพิวเตอร์และเทคโนโลยี
หลักทั่วไปในการเขียน Pseudo code • สัญลักษณ์ที่ใช้ในการดำเนินการทางคณิตศาสตร์ +, -, *, / • ใช้ชื่อข้อมูล/ตัวแปร แทนจำนวนที่จะถูกดำเนินการ เช่น รับค่าความสูง x, a + b • การกำหนดค่าให้กับชื่อข้อมูล/ตัวแปร จะใช้เครื่องหมายเท่ากับ = หรือลูกศร ← เช่น x = a + b, x ← a + b • อาจใช้คำว่า read ในการบอกให้รับค่าเก็บไว้ในตัวแปร เช่น read x • ควรมีการเพิ่มหรือลดระยะของย่อหน้า สาขาคอมพิวเตอร์และเทคโนโลยี
ตัวอย่าง การวางแผนการไปโรงเรียน เริ่มต้น ตื่นนอน อาบน้ำ ไปโรงเรียน จบ การหาผลบวกของเลขจำนวนเต็ม 2 ตัวแล้วแสดงผลลัพธ์ออกทางจอภาพ เริ่มต้น รับค่าจำนวนเต็มเก็บไว้ใน x รับค่าจำนวนเต็มเก็บไว้ใน y c ← x + y แสดงค่า C จบ Pseudo code สาขาคอมพิวเตอร์และเทคโนโลยี
Exsample 1. ถ้าภาษาคนเมืองเผ่าหนึ่งมีความหมายของประโยคบางประโยค ดังนี้"ดัชมิลล์โฟร์โมสต์ หนองโพธิ์" หมายถึง นมเย็นมาก"ดัชมิลล์ ทิปโก้" หมายถึง นมร้อน"โฟร์โมสต์ยูนีฟ" หมายถึง ดีมากภาษาคนเมืองเผ่านี้ คำใดหมายถึง "เย็น“ ก. ดัชมิลล์ข. โฟร์โมสต์ค. หนองโพธิ์ง. ทิปโก้ สาขาคอมพิวเตอร์และเทคโนโลยี
Exsample 2. จงเรียงลำดับโครงสร้างการพัฒนาโปรแกรมดังนี้ 1. การออกแบบ 2. การดำเนินการ3. การวิเคราะห์ 4. การตรวจสอบและปรับปรุง ก. 1,2,3,4ข. 3,1,2,4ค. 4,2,3,1ง. 2,3,1,4 สาขาคอมพิวเตอร์และเทคโนโลยี
Exsample 3. สมรักเกิดวันที่ 13 มิถุนายน 2532 ปัจจุบันสมรักมีอายุกี่ปี ข้อมูลนำเข้าที่จำเป็นของโจทย์ข้อนี้คืออะไร ก. ชื่อ สมรักข. พ่อของสมรักคือใครค. สมรักเกิดที่ไหนง. ปี พ.ศ. ที่สมรักเกิด สาขาคอมพิวเตอร์และเทคโนโลยี
แบ่งเป็น 2 ประเภท ผังงานระบบ (System Flowchart) ผังงานโปรแกรม (Program Flowchart) Flowchart สาขาคอมพิวเตอร์และเทคโนโลยี
Flowchart สาขาคอมพิวเตอร์และเทคโนโลยี
System Flowchart สาขาคอมพิวเตอร์และเทคโนโลยี
ตัวอย่าง การวางแผนการไปโรงเรียน เริ่มต้น ตื่นนอน อาบน้ำ ไปโรงเรียน จบ เริ่มต้น ตื่นนอน อาบน้ำแต่งตัว ไปโรงเรียน จบ Program Flowchart สาขาคอมพิวเตอร์และเทคโนโลยี
คำสั่งที่ 1 คำสั่งที่ 2 คำสั่งที่ n โครงสร้างแบบลำดับ Sequential structure โครงสร้างแสดงขั้นตอนการทำงานที่เป็นไปตามลำดับก่อนหลัง และแต่ละขั้นตอนจะถูกประมวลผลเพียงครั้งเดียวเท่านั้น สาขาคอมพิวเตอร์และเทคโนโลยี
โครงสร้างแบบลำดับ Sequential structure ผังงานการหาพื้นที่วงกลม start Input radius สังเกตว่าแต่ละขั้นตอนจะถูกประมวลผลเพียงครั้งเดียวเท่านั้น area = 22/7 * radius * radius Display area end สาขาคอมพิวเตอร์และเทคโนโลยี
โครงสร้างแบบลำดับ Sequential structure start Input A การหาผลบวกของเลขจำนวนเต็ม 2 ตัว แล้วแสดงผลลัพธ์ออกทางจอภาพ Input B C = A + B Display C end สาขาคอมพิวเตอร์และเทคโนโลยี
โครงสร้างแบบลำดับ Sequential structure • จงเขียนผังงานการหาพื้นที่สี่เหลี่ยมใดๆ แล้วแสดงผลลัพธ์ที่ได้ • จงเขียนผังงานการหาพื้นที่ผิวทรงกระบอก แล้วแสดงผลลัพธ์ที่ได้ • จงเขียนผังงานรับเลข 3 ค่า แล้วแสดงค่าเฉลี่ยออกมา • จงเขียนผังงานรับจำนวนเต็ม 2 ค่าแล้วแสดงผลค่าที่มากที่สุด สาขาคอมพิวเตอร์และเทคโนโลยี
เท็จ เงื่อนไข จริง คำสั่ง คำสั่ง โครงสร้างแบบมีทางเลือก Selection structure โครงสร้างที่มีเงื่อนไข ขั้นตอนการทำงานบางขั้นตอนต้องมีการตัดสินใจเพื่อเลือกวิธีการประมวลผลขั้นต่อไป การตัดสินใจอาจมีทางเลือก 2 ทางหรือมากกว่าก็ได้ การทำงานของโครงสร้างแบบมีทางเลือก if…then…else สาขาคอมพิวเตอร์และเทคโนโลยี
ถ้า input a = 5, b = 3 ผลลัพธ์ที่ได้คือ ถ้า input a = 4, b = 7 ผลลัพธ์ที่ได้คือ ถ้า input a = 8, b = 8 ผลลัพธ์ที่ได้คือ โครงสร้างแบบมีทางเลือก Selection structure start 5 Input a, b 7 a > b no yes Display a Display b 8 end ผังงานรับจำนวนเต็ม 2 ค่าแล้วแสดงผลค่าที่มากที่สุด สาขาคอมพิวเตอร์และเทคโนโลยี
โครงสร้างแบบมีทางเลือก Selection structure • จงเขียนผังงานรับจำนวนเต็ม 3 ค่าแล้วแสดงผลค่าที่มากที่สุด • จงเขียนผังงานแสดงเกรดของนักเรียนคนหนึ่งจากคะแนนสอบ(เต็ม 100) คะแนน 80- 100 ได้เกรด A คะแนน 70 - 79 ได้เกรด B คะแนน 60 - 69 ได้เกรด C คะแนน 50 - 59 ได้เกรด D คะแนน 0 - 49 ได้เกรด F สาขาคอมพิวเตอร์และเทคโนโลยี
โครงสร้างแบบมีทางเลือก Selection structure เงื่อนไข กรณีที่ 1 กรณีที่ 3 กรณีที่ 2 ... คำสั่ง คำสั่ง คำสั่ง คำสั่ง การทำงานของโครงสร้างแบบมีทางเลือก case สาขาคอมพิวเตอร์และเทคโนโลยี
โครงสร้างแบบทำซ้ำ Repetition structure โครงสร้างที่ขั้นตอนการทำงานบางขั้นตอนได้รับการประมวลผลมากกว่า 1 ครั้ง ทั้งนี้ขึ้นอยู่กับเงื่อนไขบางประการ มี 2 ลักษณะ ได้แก่ • การทำซ้ำแบบ for และ while • ตรวจสอบเงื่อนไขในการทำซ้ำทุกครั้งก่อนดำเนินการกิจกรรมใดๆ • ถ้าเงื่อนไขเป็นจริงจะทำงานซ้ำไปเรื่อยๆ • หยุดเมื่อเงื่อนไขเป็นเท็จ • การทำซ้ำแบบ do while • ตรวจสอบเงื่อนไขในการทำซ้ำทุกครั้งหลังจากดำเนินการกิจกรรมใดๆ • ถ้าเงื่อนไขเป็นจริงจะทำงานซ้ำไปเรื่อยๆ • หยุดเมื่อเงื่อนไขเป็นเท็จ สาขาคอมพิวเตอร์และเทคโนโลยี
คำสั่ง คำสั่ง จริง เงื่อนไข เท็จ โครงสร้างแบบทำซ้ำ Repetition structure คำสั่ง คำสั่ง จริง เงื่อนไข เท็จ การทำงานของการทำซ้ำแบบ for และ while การทำงานของการทำซ้ำแบบ do while สาขาคอมพิวเตอร์และเทคโนโลยี
ประโยชน์โฟลว์ชาร์ต • ช่วยลำดับขั้นตอนการทำงาน ให้เขียนโปรแกรมได้ไม่สับสน • ช่วยในการตรวจสอบและแก้ไขโปรแกรมเมื่อเกิดข้อผิดพลาด • ช่วยให้สามารถศึกษาการทำงานของโปรแกรมได้อย่างรวดเร็ว สาขาคอมพิวเตอร์และเทคโนโลยี
วิธีเขียนโฟลว์ชาร์ตที่ดีวิธีเขียนโฟลว์ชาร์ตที่ดี • วิธีเขียนโฟลว์ชาร์ตที่ดี • ใช้สัญลักษณ์ตามที่กำหนด • สามารถแสดงทิศทางการไหลของข้อมูลจากบนลงล่าง ซ้ายไปขวา • คำอธิบายสั้น กะทัดรัด เข้าใจง่าย • มีลูกศรแสดงทิศทางเข้าออกทุกแผนภาพ • ไม่ควรโยงเส้นไกลกันมากๆ ควรใช้สัญลักษณ์เชื่อมต่อแทน • ควรทดสอบความถูกต้องก่อนนำไปเขียนโปรแกรม สาขาคอมพิวเตอร์และเทคโนโลยี