บทที่ 6 การจ...

Post on 05-Mar-2020

3 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

บทท 6 การจ าลองความคด

เนอหา

6.1 กระบวนการในการแกปญหา 6.2 การจ าลองความคด

ผลการเรยนรทคาดหวง 1 อธบายกระบวนการในการแกปญหาได 2 จ าลองความคดในการแกปญหาเปนรหสเทยมได 3 อธบายหนาทของแตละสญลกษณทใชในการเขยนผงงานได 4 จ าลองความคดในการแกปญหาเปนผงงานได

6.1 กระบวนการแกปญหา

ในชวตประจ าวนทกคนตองเคยพบกบปญหาตางๆ ไมวาจะเปนปญหาดานการเรยน การงาน การเงน หรอแมแตการเลนเกม เมอพบกบปญหาแตละคนมวธทจะจดการหรอแกปญหาเหลานนแตกตางกนไป ซงแตละวธการอาจใหผลลพธทเหมอนหรอแตกตางกนเลกนอยขนอยกบความร ความสามารถ และประสบ การณของบคคลนน อยางไรกตามหากเราน าวธการแกปญหาตางวธมาวเคราะหใหดจะพบวาสามารถสรปวธการเหลานนเปนทฤษฎซงมรปแบบทแนนอนได และบางครงตองอาศยการเรยนรในระดบสงเพอแก ปญหาบางอยางใหสมบรณแบบ แตกอนทเราจะศกษาตอไป ลองพจารณาปญหาตอไปน ตวอยางท 1 เกมทายใจ คอ เกมใหผเลนทายตวเลข 3 ตว ในการเลนเกมตองใชผเลน2 คน คนทหนง คอ ผก าหนด เปนคนก าหนดเลข3 ตว ทไมซ ากนโดยเลอกจากกลมตวเลข1-9 และอกคนหนงคอ ผทาย เปนผทายเลข3 ตว ทไมซ ากน ทผก าหนดไดก าหนดเอาไวแลว หลงจากทผทายทายเลขแตละครง ผก าหนดตอง ใหรายละเอยดวาตวเลขททายมานนถกตองกตว และในกรณทตวเลขททายมาถกต าแหนงดวยกตองบอกวาถกต าแหนงกตว เชน ถาตวเลขทก าหนดไวเปน815 และ ผทายทายวา 123 ผก าหนดตองแจงวา ตวเลขททายนนถก1 ตว และไมมตวใดถกต าแหนง แสดงในตารางดงน

- 2 -

จะเหนวาการแกปญหาดงกลาวขางตน นอกจากจะใชวธลองผดลองถกในการทายครงแรกๆแลวยงมการใชเหตผลประกอบการแกปญหาซงเราเรยกวธการดงกลาววา"วธขจด" (method of elimination) กลาวคอ จะแยกขอมลออกเปนกรณทเปนไปไมไดทง จนเหลอกรณทเปนไปได วธการดงกลาวสามารถอธบายไดวาท าไมจงคดหรอท าเชนนน รปแบบของการใชเหตผลประกอบการแกปญหาอาจแตกตางกน ขนอยกบเงอนไขในปญหาบางปญหา อาจจะขจดใหเหลอกรณเดยวไมได กอาจจะท าใหเหลอกรณนอยทสด นอกจากเกมทายใจเรายงมเกมลบสมองทนาสนใจและทาทายความสามารถในการแกปญหาอยอกมากมายทหาเลนไดตามเวบไซต นอกจากวธการแกปญหาทยกตวอยางมาซงไดแก วธการลองผดลองถก การใชเหตผล การใชวธขจด ยงมวธการแกปญหาอกมากมายทผแกปญหาสามารถเลอกใชใหเขากบตวปญหาและประสบการณของผแกปญหาเอง แตอยางไรกตาม วธการเหลานลวนมขนตอนทคลายคลงกน และจากการศกษาพฤตกรรมในการเรยนรและแกปญหาของมนษยพบวาโดยปกตมนษยมกระบวนการแกปญหาประกอบดวย 4 ขนตอนดงรปท1

1) การวเคราะหและกาหนดรายละเอยดของปญหา(State the problem) เปนขนตอนแรกสดกอนทจะลงมอแกปญหา จดประสงคของขนตอนน คอ การท าความเขาใจกบปญหาเพอแยกใหออกวาขอมลทก าหนดมาในปญหาหรอเงอนไขของปญหาคออะไร และสงทตองการคออะไร อกทงวธการทใชระมวลผล ในการวเคราะหปญหาใด โดยสรปแลวองคประกอบในการวเคราะหและก าหนดรายละเอยดของปญหาม 3 องคประกอบดงน

1.1) การระบขอมลเขา ไดแก การพจารณาขอมลและเงอนไขทก าหนดมาในปญหา 1.2) การระบขอมลออก ไดแก การพจารณาเปาหมายหรอสงทตองหาค าตอบ 1.3) การก าหนดวธประมวลผล ไดแก การพจารณาขนตอนวธการไดมาซงค าตอบหรอขอมลออก

- 3 -

ตวอยางท 2 แสดงการวเคราะหและก าหนดรายละเอยดของการหาคาเฉลยของจ านวนเตม 5 จ านวน ไดแก 0 3 4 8 และ 12

1. การระบขอมลเขา โจทยก าหนดใหหาคาเฉลยของจ านวนเตม 5 จ านวน ดงนน ขอมลเขา ไดแก จ านวน 0 3 4 8 และ 12

2. การระบขอมลออก จากโจทยสงทเปนค าตอบของปญหา คอ คาเฉลย(x) ของจ านวนทงหา 3. การก าหนดวธการประมวลผล จากสงทโจทยตองการ "คาเฉลย" หมายถง ผลรวมของจ านวนทง 5

หารดวย 5 ดงนน ขนตอนของการประมวลผลประกอบดวย 3.1 รบคาจ านวนทง 5 จ านวน 3.2 น าจ านวนเตมทง 5 มาบวกเขาดวยกน 3.3 น าผลลพธจากขอ 3.2 มาหารดวย 5

ตวอยางท 3 แสดงการวเคราะหและก าหนดรายละเอยดของการหาคา x เมอ x คอ จ านวนเตมจ านวนหนงในกลมจ านวนเตม 5 จ านวนทมคาเฉลยเปน 10 และจ านวนอก 4 จ านวน ไดแก 3 4 8 และ 12

1. การระบขอมลเขา จากโจทยขอมลเขา ไดแก จ านวนอก 4 จ านวน คอ 3 4 8 12 คาเฉลยของ จ านวนทง 5 จ านวน คอ 10

2. การระบขอมลออก จากโจทยสงทเปนผลลพธ คอ คา x 3. การก าหนดวธการประมวลผล จากโจทยและความหมายของ"คาเฉลย" เราสามารถสรปขนตอน

ของการประมวลผลไดดงน 3.1 หาคาผลรวมของจ านวนเตมทง 5 โดยน าคาเฉลยคณดวยจ านวนของเลขจ านวนเตม

คอ 10 * 5 = 50 3.2 จากความหมายของ"ผลรวม" จะได 3+4+8+12+x = 50 3.3 แกสมการ 27 + x = 50 (จะได x = 23)

2) การเลอกเครองมอและออกแบบขนตอนวธ (Tools and Algorithm development) เปนขนตอนของการวางแผนในการแกปญหาอยางละเอยดถถวน หลงจากท าความเขาใจกบปญหา พจารณาขอมลและเงอนไขทมอย และสงทตองการหาแลวในขนตอนท 1 เราสามารถคาดคะเนวธการทเราจะใชในการแกปญหากระบวนการนจ าเปนอาศยประสบการณของผแกปญหาเปนหลก หากผแกปญหาเคยพบกบปญหาท านองนมาแลวกสามารถด าเนนการตามแนวทางทเคยปฏบตมา ขนตอนนจะเรมจากการเลอกเครองมอทใชในการแกปญหา โดยพจารณาความเหมาะสมระหวางเครองมอกบเงอนไขตาง ๆ ของ ปญหา ซงหมายรวมถงความสามารถของเครองมอในการแกปญหาดงกลาว และสงทส าคญคอ ความคนเคยในการใชงานเครองมอนนๆ ของผแกปญหา อกสงหนงทส าคญในการแกปญหา คอ ยทธวธทใชในการแก ปญหาหรอเรยกวา ขนตอนวธ (algorithm) ในการแกปญหา หลงจากทเราไดเครองมอชวยแกปญหาแลว ผแกปญหาตองวางแผนวาจะใชเครองมอดงกลาวอยางเพอใหไดผลลพธทถกตองและดทสด ในการออกแบบขนตอนวธในการแกปญหา ผแกปญหาควรใชแผนภาพหรอเครองมอในการแสดงขนตอนการท างานเพอใหงายตอความเขาใจเชน ผงงาน (flowchart) รหสล าลอง (pseudo code) การใชเครองมอชวยออกแบบดงกลาวนอกจากแสดงกระบวนการทชดเจนแลว ยงชวยใหผแกปญหาสามารถหาขอผดพลาดของวธการทใชไดงายและแกไขไดอยางรวดเรว

- 4 -

3) การดาเนนการแกปญหา (Implementation) เปนขนตอนทตองลงมอแกปญหาโดยใชเครองมอทไดเลอกไว หากการแกปญหาดงกลาวใชคอมพวเตอรเขามาชวยงาน ขนตอนนเปนการใชโปรแกรมส าเรจหรอใชภาษาคอมพวเตอรเขยนโปรแกรมแกปญหา ขนตอนนตองอาศยความรเกยวกบเครองมอทเลอกใช ซงผแกปญหาตองศกษาใหเขาใจและเชยวชาญในการด าเนนการอาจพบแนวทางทดกวาทออกแบบไวกสามารถปรบเปลยนได 4) การตรวจสอบและปรบปรง (Refinement) หลงจากทลงมอแกปญหาแลว ตองตรวจสอบใหแนใจวาวธการนใหผลลพธทถกตอง โดยผแกปญหาตองตรวจสอบวาขนตอนวธทสรางขนสอดคลองกบรายละเอยดของปญหา ซงไดแก ขอมลเขา และขอมลออกเพอใหมนใจวาสามารถรองรบขอมลเขาไดในทกกรณอยางถกตองและสมบรณ ในขณะเดยวกนกตองปรบปรงวธการเพอใหการแกปญหานไดผลลพธทดทสด

6.2 การจาลองความคด การวางแผนทดจะชวยใหการแกปญหาเปนไปไดโดยงาย ผทสามารถวางแผนในการแกปญหาไดดนอกจากจะตองใชประสบการณ ความร และความมเหตผลแลว ยงควรรจกวางแผนใหเปนขนตอนอยางเปนระเบยบดวย การจ าลองความคดเปนสวนหนงในขนตอนทสองของการแกปญหา การจ าลองความคดออกมาในลกษณะเปนขอความหรอเปนแผนภาพจะชวยใหสามารถแกปญหาไดดโดยเฉพาะปญหาทยงยากซบซอน การวางแผนจะเปนแนวทางในการด าเนนการแกปญหาตอไป อกทงเปนการแสดงแบบเพอใหผทเกยวของไดเขาใจและสามารถปฏบตตามในแนวทางเดยวกน

เครองมอทใชในการจ าลองความคดมกจะประกอบขนดวยเครองหมายทแตกตางกนหลายอยาง สรปได 2 ลกษณะ ไดแก ขอความหรอค าบรรยาย (Pseudo code) และสญลกษณ (Flowchart) 1) ขอความหรอคาบรรยาย

เปนการเขยนเคาโครงดวยการบรรยายเปนภาษาทมนษยใชสอสารกน เพอใหทราบถงขนตอนการ ท างานของโปรแกรมแตละตอน ในบางครงอาจใชค าสงของภาษาทใชเขยนโปรแกรมกได การเขยนขอความเพอการบรรยายขนตอนวธในการแกปญหาทางคอมพวเตอร เรยกอกอยางหนงไดวา รหสเทยม(pseudo code) ตวอยางท 4 ค าบรรยายแสดงขนตอนการเปลยนยางรถเมอยางแตกขณะขบรถ

1. คลายสกรยดลอ 2. จอดรถหลบขางทาง 3. น าแมแรงออกยกรถ 4. ถอดลอออก น ายางอะไหลมาเปลยน 5. ขนสกรเขา เกบยางทช ารดเพอไปซอม 6. คลายแมแรง เกบแมแรง

- 5 -

หลกการทวไปในการเขยนรหสเทยม 1. สญลกษณทใชในการด าเนนการทางคณตศาสตรตางๆ จะถกใชงานตามปกต คอ“+”ส าหรบการ

บวก “-” ส าหรบการลบ “*” ส าหรบการคณ และ “/” ส าหรบการหาร 2. การก าหนดคาใหกบชอขอมล เชน การก าหนดใหขอมล pi มคาเทากบ 3.14 สามารถเขยนไดดวย

ขอความ pi 3.14 หรอ pi := 3.14 หรอ pi = 3.14 การก าหนดคาทางคอมพวเตอรดานซายของเครองหมายมกใชแทนทเกบขอมลและดานขวาแทนขอมลทตองการน าไปเกบ

3. ค าสงวนบางค าทใชในภาษาระดบสงทวไปอาจถกน ามาใช เชน Read หรอ Enter ส าหรบการรบ ขอมลเขา และ Write หรอ Print ส าหรบการแสดงขอมลออก

4. การเพมหรอลดระยะยอหนาอยางเหมาะสม เพอแสดงระดบของขนตอนการท างานในโครงสรางควบคมการท างานในกลมเดยวกน 2) สญลกษณหรอแผนภาพ

เครองหมายรปแบบตาง ๆ ซงใชส าหรบสอสารความหมายใหเขาใจตรงกน สถาบนมาตรฐานแหง ชาตอเมรกน(The American National Standard Institute, ANSI) ไดก าหนดสญลกษณไวเปนมาตรฐานแลวสมควรน าไปใชไดตามความเหมาะสมตอไป ซงมรายละเอยดรปแบบและความหมายทควรทราบตามตารางตอไปน

การน าสญลกษณไปใชเพอแสดงขนตอนการท างานตางๆ ของงานหรอโปรแกรม รวมถงแสดงการ ไหลของขอมลในระบบตงแตแรกจนไดผลลพธตามตองการเรยกวา การเขยนผงงาน (Flowchart) ซงสามารถแบงออกไดเปน 2 แบบคอ

1. ผงงานระบบ(System Flowchart) หมายถง ผงงานทแสดงขนตอนการท างานในระบบอยาง กวางๆ แตจะไมเจาะจงในระบบงานยอย อาจแสดงใหเหนล าดบการท างานของสวนตางๆ ในระบบ เชน การน าขอมลเขา(Input) ถกเกบอยทใดบาง ใชสอบนทกขอมลแบบใด ลกษณะของการประมวลผล ตลอดจนลกษณะของผลลพธ (Output) ผงงานระบบจะชวยอ านวยความสะดวกใหแกผเขยนโปรแกรมและผทเกยวของทตองการท าความเขาใจการท างานของระบบ

2. ผงงานโปรแกรม(Program Flowchart) หมายถง ผงงานทใชในการแสดงการท างานของ โปรแกรมโดยละเอยดในแตละขนตอน เชน รบขอมล ค านวณ และแสดงผลลพธ ผงงานโปรแกรมเปนสง จ าเปนส าหรบผเขยนโปรแกรมเพราะตองใชเปนแนวทางในการเขยนโปรแกรมและเมอโปรแกรมเกดขอผดพลาดการเขาไปวเคราะหผงงานโปรแกรมจะท าไดงายกวาการเขาไปวเคราะหตวโปรแกรมโดยตรง ประโยชนของผงงาน

1. ใชแทนการจ าลองความคด ชวยใหเขาใจล าดบและความสมพนธระหวางขนตอนในการท างาน ตางๆ

2. ใชเปนสอกลางในการตดตอประสานความคดระหวางผทเกยวของ เชน นกวเคราะหระบบ (systems analyst) นกเขยนโปรแกรม (programmer)

3. ชวยในการทดสอบหรอทบทวนขนตอนการท างานเพอหาขอผดพลาด

- 6 -

ตารางท1 แสดงสญลกษณและความหมายของสญลกษณ สญลกษณ ความหมาย

- 7 -

- 8 -

- 9 -

โครงสรางแบบตางๆ สาหรบการเขยนโปรแกรม

จากการศกษาหลกการขนตอนการแกปญหาในหวขอ 6.1 และ6.2 หลงจากทเราสามารถวเคราะหปญหาและสรางแบบจ าลองความคดเพอแสดงขนตอนในการแกปญหาแลว ขนตอนตอไป คอ การลงมอแกปญหาตามขนตอนทไดออกแบบไว โดยใชเครองมอชวยในการแกปญหา ในทนหากเครองมอทนกเรยนเลอก คอ ภาษาคอมพวเตอรซงถอไดวาเปนขนตอนหนงทส าคญในการแกปญหาดวยคอมพวเตอร

การเขยนโปรแกรม(Programming) หมายถง กระบวนการใชภาษาคอมพวเตอรเพอก าหนดโครงสรางของขอมล และก าหนดขนตอนวธเพอใชแกปญหาตามทไดออกแบบไวโดยอาศยหลกเกณฑการเขยนโปรแกรมคอมพวเตอรของแตละภาษา กอนการเขยนโปรแกรม ผพฒนาโปรแกรมจะตองเลอกภาษาทจะน ามาชวยใชงานโดยพจารณาจากปจจยตางๆ ในการท างาน เชน ลกษณะของปญหา ความถนดของ

- 10 -

ผเขยนโปรแกรม สภาพแวดลอมในการท างานของระบบคอมพวเตอร เปนตน เนองจากในปจจบนมภาษาคอมพวเตอรใหเลอกไดหลายภาษา เชน ภาษาปาสคาล ภาษาซ ภาษาจาวา เปนตน ถงแมแตละภาษาจะมรปแบบและหลกการในการสรางงานทแตกตางกน แตทกภาษาจะตองมโครงสรางควบคมหลกทง 3 แบบไดแก 1) โครงสรางแบบลาดบ

โครงสรางแบบล าดบ คอ โครงสรางแสดงขนตอนการท างานทเปนไปตามล าดบกอนหลงและแตละขนตอนจะถกประมวลผลเพยงครงเดยวเทานน

- 11 -

2) โครงสรางแบบมทางเลอก โครงสรางแบบมทางเลอก คอโครงสรางทมเงอนไข ขนตอนการท างานบางขนตอนตองมการ

ตดสนใจเพอเลอกวธการประมวลผลขนตอไป และจะมบางขนตอนทไมไดรบการประมวลผล การตดสนใจอาจม 2 ทางหรอมากกวากได โครงสรางทมทางเลอกเพยง 2 ทางเราเรยกชอวา โครงสรางแบบทางเลอก if และโครงสรางทมทางเลอกมากกวา 2 ทาง เราเรยกชอวาโครงสรางแบบทางเลอก switch

o โครงสรางแบบทางเลอก if ม3 รปแบบคอ 1. หนงทางเลอก (One Alternative) แสดงดงรปท 4 2. สองทางเลอก(Two Alternative) แสดงดงรปท 5 3. หลายทางเลอก(Multiple-Alternative) แสดงดงรปท 6

- 12 -

- 13 -

ตวอยางท 9 แสดงผงงานทจ าลองขนตอนวธของเกมหยบลกบอลใหอยในรปของสญลกษณ โดยม เงอนไขวามลกบอลซง ม 5 ส

กรณหยบไดสแดง จะได 10 คะแนน กรณหยบไดสฟา จะได 8 คะแนน กรณหยบไดสเขยว จะได 6 คะแนน กรณหยบไดสเหลอง จะได 4 คะแนน กรณหยบไดสสม จะได 2 คะแนน

3) โครงสรางแบบทาซา

โครงสรางแบบท าซ า คอโครงสรางทขนตอนการท างานบางขนตอนไดรบการประมวลผลมากกวา1 ครง ทงนขนอยกบเงอนไขบางประการ โครงสรางแบบท าซ านตองมการตดสนใจในการท างานซ า และลกษณะการท างานของโครงสรางแบบนม 2 ลกษณะ ไดแก

แบบทมการตรวจสอบเงอนไขในการท าซ าทกครงกอนด าเนนการกจกรรมใดๆ ถาเงอนไขเปนจรงจะท างานซ าไปเรอยๆ และหยดเมอเงอนไขเปนเทจ การท างานลกษณะนแบงไดเปน2 แบบยอย ไดแก การท าซ าแบบ for และแบบ while ลกษณะการท างานของทงสองแบบนจะเหมอนกน โดยส าหรบแบบ for นนมกใชกรณทตองการก าหนดจ านวนรอบการท างานทชดเจน

แบบทมการด าเนนการกจกรรมใดๆ กอนจ านวนหนงรอบ แลวจงคอยตรวจสอบเงอนไขในการท าซ าถาเงอนไขเปนจรงจะท างานซ าไปเรอยๆ และหยดเมอเงอนไขเปนเทจ เรยกการท างานแบบนวา การท าซ าแบบ do…while ผงงานแสดงขนตอนการท างานซ าทงสองแบบแสดงดงรปท 10 และ 11

- 14 -

โครงสรางควบคมทง2 แบบทกลาวมาขางตนกคอ ขนตอนทใชในการแกปญหานนเอง พจารณา ตวอยางท10 เปนขนตอนการเลอกเครองมอและการออกแบบขนตอนวธ คอ ขนตอนท 2 ในหวขอ 6.1 เราเลอกสรางผงงานมาจ าลองขนตอนวธในการหาคาเฉลยของจ านวน 5 จ านวน จากตวอยางท 2 และในตวอยางท 10 มการแสดงโครงสรางควบคมแบบล าดบและแบบท าซ าทใชในการแกปญหาดวย

- 15 -

ตวอยางท10 แสดงผงงานทจ าลองขนตอนวธการหาคาเฉลยของจ านวนเตม 5 จ านวน ใหอยในรปของ สญลกษณ

top related