บทที่ 6 การเขียนอัลกอริทึม algorithm)หน ง...

16
บทที6 การเขียนอัลกอริทึม จุฬาลักษณ์ ถาไชยลา หลักการเขียนโปรแกรม 105 บทที่ 6 การเขียนอัลกอริทึม (Algorithm) สาระการเรียนรู 1. ความหมายของอัลกอริทึม 2. จุดประสงค์การเขียนอัลกอริทึม 3. รูปแบบการเขียนอัลกอริทึม 4. เทคนิคการเขียนอัลกอริทึม 5. ลักษณะการเขียนอัลกอริทึม จุดประสงค์การเรียนรู 1. อธิบายความหมายของอัลกอริทึมได้ 2. อธิบายขั ้นตอนการพัฒนาอัลกอริทึมได3. รู้วิธีการกาหนดขั ้นตอนการจาลองความคิดเป็นคาพูดได4. วิเคราะห์โจทย์ปัญหาเพื่อพัฒนาเป็นอัลกอริทึมได้ 5. เขียนอัลกอริทึมได้ 6. มีความสนใจใฝ่เรียนรู้ ตั ้งใจเรียน 7. มีวินัย เข้าเรียนทันเวลา ปฏิบัติตามกฎระเบียบของวิทยาลัยฯ 8. มีความรับผิดชอบงานที่ได้รับมอบหมาย 9. มีความคิดริเริ่มสร้างสรรค์ มีความเชื่อมั่นกล้าลองผิดลองถูก 10. มีความซื่อสัตย์ต่อตนเองและผู้อื่น

Upload: others

Post on 02-Feb-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: บทที่ 6 การเขียนอัลกอริทึม Algorithm)หน ง เพราะเป นข น ตอนท นาว ธ การแกป ญหาท

บทท 6 การเขยนอลกอรทม

จฬาลกษณ ถาไชยลา หลกการเขยนโปรแกรม

105

บทท 6 การเขยนอลกอรทม (Algorithm) สาระการเรยนร

1. ความหมายของอลกอรทม 2. จดประสงคการเขยนอลกอรทม 3. รปแบบการเขยนอลกอรทม 4. เทคนคการเขยนอลกอรทม 5. ลกษณะการเขยนอลกอรทม

จดประสงคการเรยนร

1. อธบายความหมายของอลกอรทมได 2. อธบายขนตอนการพฒนาอลกอรทมได 3. รวธการก าหนดขนตอนการจ าลองความคดเปนค าพดได

4. วเคราะหโจทยปญหาเพอพฒนาเปนอลกอรทมได 5. เขยนอลกอรทมได

6. มความสนใจใฝเรยนร ตงใจเรยน

7. มวนย เขาเรยนทนเวลา ปฏบตตามกฎระเบยบของวทยาลยฯ 8. มความรบผดชอบงานทไดรบมอบหมาย

9. มความคดรเรมสรางสรรค มความเชอมนกลาลองผดลองถก 10. มความซอสตยตอตนเองและผอน

Page 2: บทที่ 6 การเขียนอัลกอริทึม Algorithm)หน ง เพราะเป นข น ตอนท นาว ธ การแกป ญหาท

บทท 6 การเขยนอลกอรทม

จฬาลกษณ ถาไชยลา หลกการเขยนโปรแกรม

106

ความหมายของ Algorithm

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

ขนตอนในการพฒนาล าดบขนตอนวธการแกปญหา นบวาเปนขนตอนทส าคญอกขนตอนหนง เพราะเปนขนตอนทน าวธการแกปญหาทไดท าการทดลองหาวธการแกปญหาในสวนของการทดลองแกปญหาดวยตนเอง (Hand Example) มาท าการเรยบเรยงล าดบขนตอนการท างานของวธการแกปญหา ตงแตขนตอนแรกจนถงขนตอนสดทาย วามล าดบขนตอนการท างานอยางไรบาง เพอทจะน าไปสงการใหเครองคอมพวเตอรท าการแกไขปญหาดวยวธการน

ค าวา Algorithm ในทางคณตศาสตรจะหมายถงขนตอนหรอวธการค านวณ ส าหรบในการเขยนโปรแกรมคอมพวเตอร Algorithm จะหมายถงวธการทไดแบงออกเปนขนตอนยอยๆ ทมการท างานแนนอน หรอการอธบายล าดบขนตอนการท างานในลกษณะของขอความ ตงแตตนจนจบ วามล าดบขนตอนการท างานอยางไรบาง Algorithm มาจากชอของนกคณตศาสตรชาวเปอรเซย Abu Ja’ far Muhammad ibm al-Khwarizmi ผเขยนหนงสอเกยวกบเรองของจ านวนของชาวฮนดและอาหรบ “Aldorithmi de numero Indorum” (ภาษาลาตน) ซงแปลวา “Al-Khwarizmi on the Hindu Art of Reckoning” (ภาษาองกฤษ) เปนผเรมใชเลขศนยในระบบทศนยม

จดประสงคการเขยน Algorithm

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

Page 3: บทที่ 6 การเขียนอัลกอริทึม Algorithm)หน ง เพราะเป นข น ตอนท นาว ธ การแกป ญหาท

บทท 6 การเขยนอลกอรทม

จฬาลกษณ ถาไชยลา หลกการเขยนโปรแกรม

107

รปแบบการเขยนขนตอนวธแกปญหา (Algorithm)

ในสวนของการพฒนาล าดบขนตอนวธการแกปญหา (Algorithm Development) อาจเขยนล าดบขนตอนการท างานได 2 วธ คอ การอธบายขนตอนการท างานอยางคราว ๆ และการอธบายขนตอนการท างานอยางละเอยด

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

1. เรมตน 2. รบคาของราคาสนคา 3. รบคาของอตราดอกเบยรายป 4. รบคาของจ านวนเดอนทตองการผอนช าระ 5. ค านวณหาคาของจ านวนเงนทตองช าระรายเดอน 6. แสดงคาของจ านวนเงนทผอนช าระรายเดอน 7. จบการท างาน

ในการเขยนอธบายล าดบขนตอนการท างานในลกษณะของขอความนน จะเรมตนขอแรกดวยค าวา “เรมตน” หรอ “เรมตนการท างาน” ถดจากนนเปนล าดบขนตอนการท างานทใชในการแกปญหา และจบดวยขนตอนสดทาย จะใชขอความวา “จบการท างาน”

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

Page 4: บทที่ 6 การเขียนอัลกอริทึม Algorithm)หน ง เพราะเป นข น ตอนท นาว ธ การแกป ญหาท

บทท 6 การเขยนอลกอรทม

จฬาลกษณ ถาไชยลา หลกการเขยนโปรแกรม

108

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

1. เรมตน 2. รบคาของราคาสนคา 3. รบคาของอตราดอกเบยรายป 4. รบคาของจ านวนเดอนทตองการผอนช าระ 5. ค านวณหาดอกเบย จากสตร

ดอกเบย ราคาสนคา x อตราดอกเบย x (จ านวนเดอน/12) 6. ค านวณหาจ านวนเงนทตองช าระรายเดอน จากสตร

เงนผอนรายเดอน (ราคาสนคา + ดอกเบย)/จ านวนเดอน 7. แสดงคาของจ านวนเงนทผอนช าระรายเดอน 8. จบการท างาน

จากการอธบายขนตอนการท างานในขนตอนท 5 และ 6 จะเหนวาในการค านวณ จะไมใชเครองหมายเทากบ (=) จะใชเครองหมายลกศรชทศทาง ( ) แทน สวนเครองหมายเทากบนนจะใชในกรณทท าการเปรยบเทยบคาเทานน เชนเดยวกบการค านวณคากเชนกน อยางชาน ตองการก าหนดคาให X มคาเทากบ 100 จะเขยนค าอธบายไดวา X 100

หลงจากท าการพฒนาใหเปนการอธบายขนตอนการท างานอยางละเอยด (Refinement) เสรจเรยบรอย จะเหนวาล าดบขนตอนการท างานตงแตขนตอนแรกจนถงขนตอนสดทาย ตองท าขนตอนใดบาง ละเอยดมากยงขน จ านวนขอของล าดบขนตอนการท างานไมจ าเปนตองเทากบในสวนของการอธบายล าดบขนตอนการท างานอยางหยาบ

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

การพฒนาล าดบขนตอนการท างานจากผงงาน ใหแบงขนตอนการท างานทงหมดออกเปนขอๆตามล าดบและตามจ านวนของขนตอนการท างานทงหมด และการเขยนตองไมซบซอน เขาใจงาย และตองเขยนใหถกตองเสมอ เพราะถาเขยนไมถกตองแลวกการพฒนาไปเปนค าสงเทยม (Pseudo Code) กจะผดพลาด และการเขยนโปรแกรมกจะผดตามดวย

Page 5: บทที่ 6 การเขียนอัลกอริทึม Algorithm)หน ง เพราะเป นข น ตอนท นาว ธ การแกป ญหาท

บทท 6 การเขยนอลกอรทม

จฬาลกษณ ถาไชยลา หลกการเขยนโปรแกรม

109

เทคนคการเขยน Algorithm

อลกอรทม เปนขนตอนการบรรยายล าดบขนตอนการแกปญหาระบบงานเปนรายขอ เพอแสดงใหเหนถงขนตอน เพอแสดงใหเหนถงขนตอนการท างานทชดเจน และเพอใชในการทดสอบการท างานของอลกอรทมดวย กอนศกษาวธการเขยนอลกอรทม ควรมความเขาใจและค านงถงคณสมบตพนฐานของระบบคอมพวเตอรกอน เพอน าไปประยกตใชในขนตอนการเขยนอลกอรทมไดอยางถกตองตอไป คณสมบตการท างานระดบพนฐานของคอมพวเตอร มดงน

1. คณสมบตดานหนวยความจ า

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

N = 1 หมายถง ก าหนดคา 1 เกบไวในตวแปร N

Ans = X2 + Y2 หมายถง เอาคา X ยกก าลง 2 บวกกบคา Y ยกก าลงสอง แลวเกบคาผลลพธทไดไวทตวแปร Ans

Total = Total + Salary หมายถง การเอาคาในตวแปร Salary ไปบวกเขากบคาในตวแปร Total แลวเอาคาผลลพธใหมทไดไปเกบทตวแปร Total ซงคาใหมทไดจะไปเกบทบคาเดมทมอย ค าสงลกษณะนใชในการสะสมคา หรอเปลยนแปลงคาในตวแปรเดม

2. คณสมบตดานการค านวณ

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

Page 6: บทที่ 6 การเขียนอัลกอริทึม Algorithm)หน ง เพราะเป นข น ตอนท นาว ธ การแกป ญหาท

บทท 6 การเขยนอลกอรทม

จฬาลกษณ ถาไชยลา หลกการเขยนโปรแกรม

110

สญลกษณ ความหมายในการท างาน ล าดบการท างาน + - * /

** หรอ ^ ( )

บวก ลบ คณ หาร

ยกก าลง วงเลบ

4 4 3 3 2 1

หากมวงเลบจะด าเนนการในวงเลบกอน และกรณทมล าดบความส าคญเทากน จะค านวณจากดานซายไปขวา

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

การใชสญลกษณเขยนประโยคค าสงเงอนไขแบบ 1 ประโยค มสญลกษณ ดงน

สญลกษณ ความหมายในการท างาน = < >

<= >= <>

เทากบ นอยกวา มากกวา

นอยกวาหรอเทากบ มากกวาหรอเทากบ

ไมเทากบ

Page 7: บทที่ 6 การเขียนอัลกอริทึม Algorithm)หน ง เพราะเป นข น ตอนท นาว ธ การแกป ญหาท

บทท 6 การเขยนอลกอรทม

จฬาลกษณ ถาไชยลา หลกการเขยนโปรแกรม

111

ตวอยางการเขยนนพจนใชเงอนไขแบบ 1 ประโยค

การใชสญลกษณเชอมประโยคค าสงเงอนไข

การเขยนค าสงงานก าหนดเงอนไขการท างาน ในลกษณะเชอมประโยคเงอนไข 2 ประโยค ตองใชสญลกษณค าสงเพมเตม เพอใหไดขอสรปของการท างานวาเปนคาจรง (True) คอเปนคาเทจ (False) ดงน

ใหผลลพธการเปรยบเทยบในประโยคเงอนไขท 1 เปนสญลกษณ X

ใหผลลพธการเปรยบเทยบในประโยคเงอนไขท 2 เปนสญลกษณ Y เมอมการท างานหาขอสรปตงแต 2 เงอนไขประกอบกน โดยใชหลกการของพชคณต

แบบบลลน จะไดดงน

X Y X AND Y X OR Y NOT X T T F F

T F T F

T F F F

T T T F

F F T T

ตวอยางการเขยนนพจนใชเงอนไขแบบ 2 ประโยค

ถา Salary > 10000 Tax = Salary * 0.05 มฉะนนแลว

Tax = Salary * 0.02

ถา ( Salary > 10000) AND (Salary <= 50000) Tax = Salary * 0.05 มฉะนนแลว

Tax = Salary * 0.02

Page 8: บทที่ 6 การเขียนอัลกอริทึม Algorithm)หน ง เพราะเป นข น ตอนท นาว ธ การแกป ญหาท

บทท 6 การเขยนอลกอรทม

จฬาลกษณ ถาไชยลา หลกการเขยนโปรแกรม

112

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

ทตองมการน าคาไปเกบไว เพอน ามาแสดงผลลพธในรปแบบและในต าแหนงงานทตองการ

5. คณสมบตการจดล าดบการท างาน คอมพวเตอรจะท างานทละค าสง ตามล าดบจากบนลงลาง หากเปรยบเทยบใน 1 บรรทด คอ 1 ค าสงแลว คอมพวเตอรจะท างานตามค าสงทอยบรรทดบนสดกอน แลวจงท างานตามค าสงทอยในล าดบตอมา จนถงค าสงในบรรทดสดทาย

ลกษณะการเขยน Algorithm

แนวทางการเขยนอลกอรทมเปนลกษณะการท างานขนพนฐาน มกปรากฏในระบบงานโปรแกรมคอมพวเตอรโดยทวไป มแนวทางทใชบอย ๆ ดงน

การท างานลกษณะการนบคาสะสมในหนวยความจ า การท างานลกษณะวนรอบการท างาน การท างานลกษณะหาคามากทสด และคานอยทสด

ตวอยางการใชขอความอธบายแทนสญลกษณของผงงานแบบล าดบ

สญลกษณของผงงาน (Flowchart) ใชขอความอธบายแทน (Algorithm)

เรมตน

จบการท างาน

รบคา N

แสดงคา N

Area = H x L

START

END

READ N

N

Area = H x L

Page 9: บทที่ 6 การเขียนอัลกอริทึม Algorithm)หน ง เพราะเป นข น ตอนท นาว ธ การแกป ญหาท

บทท 6 การเขยนอลกอรทม

จฬาลกษณ ถาไชยลา หลกการเขยนโปรแกรม

113

ตวอยางท 1 Algorithm ของการหาผลก าไรของสนคา ความตองการของผใช/ความคดของโปรแกรมเมอรคอ ตองการเขยนโปรแกรมเพอ

ค านวณหาก าไรของสนคา ขนตอนท 1 รบขอมลเลขทสนคา ขนตอนท 2 คนหาขอมลคาตวแปรตาง ๆ ทตองใชจากระบบฐานขอมล เชน ตนทนคงทของสนคา (Fix Cost) ,ตนทนผนแปร (Variable Cost)

ยอดขาย (Revenue) ,ก าไร (Profit), จ านวนสนคาทขายได (Volume)

ขนตอนท 3 หาตนทนของสนคา จาก Cost = Fix Cost + Variable Cost

ขนตอนท 4 หายอดขายสนคาจาก Revenue = Price * Volume

ขนตอนท 5 ค านวณหาก าไรจาก Profit = Revenue – Cost

ขนตอนท 6 แสดงผลก าไรใหผใชโปรแกรมทราบ

ตวอยางท 2 จากผงงานตอไปน ใหเขยนการการอธบายขนตอนการท างานแบบขอความ จากผงงานขางตน สามารถพฒนาใหเปนการอธบายล าดบขนตอนการท างานในลกษณะของขอความไดดงน

1. เรมตน 2. รบคา BASE , Height 3. AREA 0.5 x Base x Height 4. แสดงคา AREA 5. จบการท างาน

Start

Read Base , Height

AREAR = 0.5 x Base x Height

Write AREA

END

Page 10: บทที่ 6 การเขียนอัลกอริทึม Algorithm)หน ง เพราะเป นข น ตอนท นาว ธ การแกป ญหาท

บทท 6 การเขยนอลกอรทม

จฬาลกษณ ถาไชยลา หลกการเขยนโปรแกรม

114

ตวอยางการใชขอความอธบายแทนสญลกษณของผงงานแบบเลอกท า

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

1. ถา (เงอนไข) แลว 1.1 ท ากรณท 1

นอกจากนน 1.2 ท ากรณท 2

ตวอยางท 3 จงเขยนอธบายล าดบขนตอนการท างาน จากผงงานใหเปนการอธบายขนตอนการท างานแบบเลอกท า

Condition

Process 1 Process 2

Y N

Satrt

Read Score

Score > 50

Write “สอบไมผาน” Write “สอบผาน”

END

Y N

Page 11: บทที่ 6 การเขียนอัลกอริทึม Algorithm)หน ง เพราะเป นข น ตอนท นาว ธ การแกป ญหาท

บทท 6 การเขยนอลกอรทม

จฬาลกษณ ถาไชยลา หลกการเขยนโปรแกรม

115

จากผงงานขางตนสามารถพฒนาใหเปนการอธบายล าดบขนตอนการท างานในลกษณะของขอความไดดงน

1. เรมตน 2. รบคา Score 3. ถา Score > 50 แลว

3.1 พมพขอความวา “สอบผาน” มฉะนนแลว 3.2 พมพขอความวา “สอบไมผาน”

4. จบการท างาน ตวอยางการใชขอความอธบายแทนสญลกษณของผงงานแบบท าซ า

การเขยนผงงานแบบวนซ า จะมอย 2 ลกษณะคอ การท าซ าแบบท าในขณะท (Do-While)

และการท าซ าแบบท าจนกระทง (Do Until) รปแบบการเขยนอธบายล าดบขนตอนการท างานในลกษณะของขอความแบบวนซ า แบบ

ท าในขณะท จะใชค าวา “ในขณะท” และตามดวยเงอนไขทใชตดสนใจวาจะท าซ าหรอไม แลวตามดวยค าอธบายวา “แลวท า” และตามล าดบขนตอนการท างานทงหมด

Satrt

Read NUM

NUM >= 0

END

N

Y

Write NUM

NUM NUM - 1

Page 12: บทที่ 6 การเขียนอัลกอริทึม Algorithm)หน ง เพราะเป นข น ตอนท นาว ธ การแกป ญหาท

บทท 6 การเขยนอลกอรทม

จฬาลกษณ ถาไชยลา หลกการเขยนโปรแกรม

116

จากผงงานขางตนสามารถพฒนาใหเปนการอธบายล าดบขนตอนการท างานในลกษณะของขอความแบบท าซ า แบบในขณะท ไดดงน

1. เรมตน 2. รบคา NUM 3. ในขณะท NUM มากกวาหรอเทากบ 0 แลวท า

3.1 แสดงคา NUM 3.2 NUM NUM – 1 (ลดคา NUM ลง 1)

4. จบการท างาน รปแบบการเขยนอธบายล าดบขนตอนการท างานในลกษณะของขอความแบบท าซ า แบบท าจนกระทง จะใชค าวา “ท าจนกระทง” และตามดวยเงอนไขทใชตดสนใจวาจะท าซ าหรอไม และตามดวยล าดบขนตอนการท างานทงหมด

Start

SUM 1

Read NUM

SUM SUM x NUM

NUM NUM - 1

NUM < 1

Write SUM

END

Y N

Page 13: บทที่ 6 การเขียนอัลกอริทึม Algorithm)หน ง เพราะเป นข น ตอนท นาว ธ การแกป ญหาท

บทท 6 การเขยนอลกอรทม

จฬาลกษณ ถาไชยลา หลกการเขยนโปรแกรม

117

จากผงงานขางตนสามารถพฒนาใหเปนการอธบายล าดบขนตอนการท างานในลกษณะของขอความแบบท าซ า แบบท าจนกระทง ไดดงน

1. เรมตน 2. ก าหนดให SUM 1 3. รบคา NUM 4. ท าจนกระทง NUM มคานอยกวา 1

4.1 SUM SUM x NUM 4.2 NUM NUM – 1

5. แสดงคา SUM 6. จบการท างาน

Page 14: บทที่ 6 การเขียนอัลกอริทึม Algorithm)หน ง เพราะเป นข น ตอนท นาว ธ การแกป ญหาท

บทท 6 การเขยนอลกอรทม

จฬาลกษณ ถาไชยลา หลกการเขยนโปรแกรม

118

แบบประเมนผลการเรยนรบทท 6 อลกอรทม

ขอ 1. จากสญลกษณตอไปน จงเขยนอธบายเปนขนตอนการท างานในลกษณะของขอความ

สญลกษณ ขนตอนการท างานในลกษณะของขอความ (Algorithm) 1.

2.

3.

4.

5.

6.

7.

8.

9.

10.

Read B , C

A B + C

START

TEST

TOTAL

VAT Sale * 0.07

Write Year

SUM

END

COUNT < 10

Page 15: บทที่ 6 การเขียนอัลกอริทึม Algorithm)หน ง เพราะเป นข น ตอนท นาว ธ การแกป ญหาท

บทท 6 การเขยนอลกอรทม

จฬาลกษณ ถาไชยลา หลกการเขยนโปรแกรม

119

ขอ 2. จงเขยนอลกอรทม ค านวณหาปรมาตรทรงกระบอก จากสตร ¶ x รศม2 x สง

ขอ 3. จงเขยนอลกอรทม ค านวณหารายไดของพนกงานโดยรายไดของพนกงานไดจากเงนเดอนและรายไดพเศษ ซงรายไดพเศษหาไดจาก 25 % ของยอดขายสนคา

ขอ 4. จงเขยนอลกอรทม ค านวณหารายไดของโปรแกรมเมอร โดยบรษทจะใหเงนเดอนและคาเขยนโปรแกรม ๆ ละ 700 บาท ทกเดอนตองเสยภาษ 3%

ขอ 5. จงเขยนอลกอรทม ค านวณหารายไดของโปรแกรมเมอร โดยบรษทจะใหเงนเดอนและคาเขยนโปรแกรม ตามอตราดงน จ านวน 1 – 10 โปรแกรมๆ ละ 500 บาท

จ านวน 11 – 20 โปรแกรมๆ ละ 1000 บาท จ านวนมากกวา 20 โปรแกรมๆ ละ 1500 บาท ขอ 6. จงเขยนอลกอรทม เพอจ านวนนกเรยนทสอบผานและสอบไมผาน เกณฑการสอบผานจะตองไดคะแนนรวมตงแต 60 คะแนนขนไป จากคะแนนสอบ 3 ครงประกอบดวย คะแนนสอบยอย(20) , คะแนนสอบกลางภาค (30),คะแนนสอบปลายภาค(50) จ านวนนกเรยนทงหมด 30 คน

***************************

Page 16: บทที่ 6 การเขียนอัลกอริทึม Algorithm)หน ง เพราะเป นข น ตอนท นาว ธ การแกป ญหาท

บทท 6 การเขยนอลกอรทม

จฬาลกษณ ถาไชยลา หลกการเขยนโปรแกรม

120

เอกสารอางอง

ณชตพงศ อทอง. หนงสอเรยน หลกการเขยนโปรแกรม. กรงเทพฯ:เอมพนธ,2546. ดารณย พฒศรเรอง และคณะ. หนงสอเรยน การเขยนโปรแกรมคอมพวเตอร. กรงเทพฯ:บรษท

ศนยหนงสอเมองไทย จ ากด , 2548. รงทวา เสารสงห. การเขยนโปรแกรมคอมพวเตอรเบองตน. กรงเทพฯ : บรษท ซเอดยเคชน

จ ากด (มหาชน) ,2548. วฒชย เกษพานช. หนงสอเรยน หลกการเขยนโปรแกรม. พมพครงท 2. กรงเทพฯ:เอดดเทกซ

,2546. เอกชย เจรญนตย. หลกการออกแบบและพฒนาโปรแกรม. กรงเทพฯ:พฒนาวชาการ

(2535),2547. เอกพนธ ค าปญญโญ. หลกการออกแบบและพฒนาโปรแกรม. กรงเทพฯ : บรษท ซคเซส

มเดย จ ากด , 2549.

แหลงคนควาเพมเตม

เวบไซต http://cs.udru.ac.th/maliwan/algorithm/ เวบไซต http://elec.chandra.ac.th/learn/course/ เวบไซต http://www.nsru.ac.th/e-learning/algorithm/ เวบไซต http://PixiArt.com/links/computer/ เวบไซต http://rmutl.ac.th/jk/program

เวบไซต http://202.28.94.51/users/sumonta/