Design and Analysis of Algorithm Decrease and Conquer Algorithm
การเขียนอัลกอริทึม Algorithm) ·...
Transcript of การเขียนอัลกอริทึม Algorithm) ·...
การเขยนอลกอรทม (Algorithm)
สาระการเรยนร
1. ความหมายของอลกอรทม2. จดประสงคการเขยนอลกอรทม3. รปแบบการเขยนอลกอรทม4. เทคนคการเขยนอลกอรทม5. ลกษณะการเขยนอลกอรทม
จดประสงคการเรยนร
1. อธบายความหมายของอลกอรทมได2. อธบายขนตอนการพฒนาอลกอรทมได3. รวธการก าหนดขนตอนการจ าลองความคดเปนค าพดได4. วเคราะหโจทยปญหาเพอพฒนาเปนอลกอรทมได5. เขยนอลกอรทมได6. มความสนใจใฝเรยนร ตงใจเรยน7. มวนย เขาเรยนทนเวลา ปฏบตตามกฎระเบยบของวทยาลยฯ8. มความรบผดชอบงานทไดรบมอบหมาย9. มความคดรเรมสรางสรรค มความเชอมนกลาลองผดลองถก10. มความซอสตยตอตนเองและผอน
ความหมายของ 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
อลกอรทมหรอขนตอนวธการแกปญหา เปนการจดล าดบความคดเปนขนตอนตางๆ เพอแกไขปญหาในขนตอนการเขยนโปรแกรมทสอดคลองกรรมวธแกปญหาทก าหนดไว การเขยนอลกอรทมจงเปนการแสดงล าดบการท างานตามคณสมบตดานการประมวลผลของคอมพวเตอร ทพรอมจะน าไปแปลงเปนล าดบค าสงใหคอมพวเตอรท างาน การเขยนโปรแกรมคอมพวเตอรดวยภาษาทเหมาะสม เพอสงใหคอมพวเตอรท างานตามอลกอรทมทก าหนดไว และการเขยนอลกอรทมออกมาใหตรวจสอบความถกตองไดครบถวนขน
รปแบบการเขยนขนตอนวธแกปญหา (Algorithm)
ในสวนของการพฒนาล าดบขนตอนวธการแกปญหา (Algorithm Development) อาจเขยนล าดบขนตอนการท างานได 2 วธ คอ การอธบายขนตอนการท างานอยางคราว ๆ และการอธบายขนตอนการท างานอยางละเอยด
การอธบายขนตอนการท างานอยางคราว ๆหรออยางหยาบ (Decomposition) คอ การเขยนขนตอนการท างานทงหมดโดยไมตองละเอยดมากนก และเขยนขนตอนการท างานเปนขอ ๆ เรมตงแตขนตอนแรกจนถงขนตอนสดทายทจะสงใหเครองคอมพวเตอรท าการแกปญหา จะตองท าล าดบขนตอนใดบาง ตวอยางเชน การค านวณหาอตราผอนช าระรายเดอนของสนคารายการหนง สามารถเรยบเรยงเปนการท างานอยางหยาบได ดงน
1. เรมตน2. รบคาของราคาสนคา3. รบคาของอตราดอกเบยรายป4. รบคาของจ านวนเดอนทตองการผอนช าระ5. ค านวณหาคาของจ านวนเงนทตองช าระรายเดอน6. แสดงคาของจ านวนเงนทผอนช าระรายเดอน7. จบการท างาน
ในการเขยนอธบายล าดบขนตอนการท างานในลกษณะของขอความนน จะเรมตนขอแรกดวยค าวา “เรมตน” หรอ “เรมตนการท างาน” ถดจากนนเปนล าดบขนตอนการท างานทใชในการแกปญหา และจบดวยขนตอนสดทาย จะใชขอความวา “จบการท างาน”
การอธบายขนตอนการท างานอยางละเอยด (Refinement) คอ การน าขนตอนการท างานอยางคราว ๆ มาพจารณาเพมเตมขอมลบางอยางทยงไมเรยบรอย แตละขนตอนทอธบายในสวนของการอธบายขนตอนการท างานอยางหยาบนน มความละเอยดพอทจะน าไปสงงานใหเครองคอมพวเตอรท างานแลวหรอยง ถายงไมละเอยดตองเขยนขยายความใหละเอยดยงขนและสมบรณมากทสด หรอแยกการท างานออกเปนขอยอยเพมเตม อยางเชน ในการค านวณหาคาขอมลใดบางอยาง จะค านวณดวยวธการใด จากตวอยางในสวนของการอธบายขนตอนการท างานอยางหยาบ (Decomposition) เรองการหาอตราการผอนช าระรายเดอนของสนคารายการหนง เมอพจารณาการท างานในแตละขอ จะเหนไดวามขนตอนการท างานอยข นตอนหนงทไมละเอยด กคอ
ขนตอนท 5 การค านวณหาคาของจ านวนเงนทตองการช าระรายเดอน ยงไมไดบอกวาค านวณดวยวธการใด ดงนนจงตองท าการอธบายเพมเตมในสวนของขนตอนในการค านวณหาคาของจ านวนเงนทตองช าระรายเดอน โดยวธการค านวณนนไดท าในสวนของการทดลองแกปญหาดวยตนเอง (Hand Example) สามารถเขยนอธบายขนตอนการท างานอยางละเอยดของการแกปญหาไดดงน
1. เรมตน2. รบคาของราคาสนคา3. รบคาของอตราดอกเบยรายป4. รบคาของจ านวนเดอนทตองการผอนช าระ5. ค านวณหาดอกเบย จากสตร
ดอกเบย ราคาสนคา x อตราดอกเบย x (จ านวนเดอน/12) 6. ค านวณหาจ านวนเงนทตองช าระรายเดอน จากสตร
เงนผอนรายเดอน (ราคาสนคา + ดอกเบย)/จ านวนเดอน 7. แสดงคาของจ านวนเงนทผอนช าระรายเดอน8. จบการท างาน
จากการอธบายขนตอนการท างานในขนตอนท 5 และ 6 จะเหนวาในการค านวณ จะไมใชเครองหมายเทากบ (=) จะใชเครองหมายลกศรชทศทาง ( ) แทน สวนเครองหมายเทากบนนจะใชในกรณทท าการเปรยบเทยบคาเทานน เชนเดยวกบการค านวณคากเชนกน อยางชาน ตองการก าหนดคาให X มคาเทากบ 100 จะเขยนค าอธบายไดวา X 100
หลงจากท าการพฒนาใหเปนการอธบายขนตอนการท างานอยางละเอยด (Refinement) เสรจเรยบรอย จะเหนวาล าดบขนตอนการท างานตงแตขนตอนแรกจนถงขนตอนสดทาย ตองท าขนตอนใดบาง ละเอยดมากยงขน จ านวนขอของล าดบขนตอนการท างานไมจ าเปนตองเทากบในสวนของการอธบายล าดบขนตอนการท างานอยางหยาบ
ในการแกปญหาทไมมความซบซอนมากนก สวนของการอธบายขนตอนการท างานอยางหยาบ (Decomposition) อาจจะสามารถอธบายล าดบขนตอนการท างานไดละเอยดพออยแลว กสามารถน าในสวนของการอธบายขนตอนการท างานอยางหยาบ มาใชเปนสวนของการอธบายขนตอนการท างานอยางละเอยด
การพฒนาล าดบขนตอนการท างานจากผงงาน ใหแบงขนตอนการท างานทงหมดออกเปนขอๆตามล าดบและตามจ านวนของขนตอนการท างานทงหมด และการเขยนตองไมซบซอน เขาใจงาย และตองเขยนใหถกตองเสมอ เพราะถาเขยนไมถกตองแลวกการพฒนาไปเปนค าสงเทยม (Pseudo Code) กจะผดพลาด และการเขยนโปรแกรมกจะผดตามดวย
เทคนคการเขยน Algorithm
อลกอรทม เปนขนตอนการบรรยายล าดบขนตอนการแกปญหาระบบงานเปนรายขอ เพอแสดงใหเหนถงขนตอน เพอแสดงใหเหนถงขนตอนการท างานทชดเจน และเพอใชในการทดสอบการท างานของอลกอรทมดวย กอนศกษาวธการเขยนอลกอรทม ควรมความเขาใจและค านงถงคณสมบตพนฐานของระบบคอมพวเตอรกอน เพอน าไปประยกตใชในขนตอนการเขยนอลกอรทมไดอยางถกตองตอไป
คณสมบตการท างานระดบพนฐานของคอมพวเตอร มดงน
1. คณสมบตดานหนวยความจ า
การเขยนโปรแกรมคอมพวเตอรตองเกยวของกบการใชงานพนทในหนวยความจ าของระบบคอมพวเตอร ในภาษาคอมพวเตอรใหแทนสญลกษณก าหนดพนทหนวยความจ า ดวยการก าหนดชอเปนตวแปรใชงาน เพอใชอางองถงขอมลในหนวยความจ า เชน
N = 1 หมายถง ก าหนดคา 1 เกบไวในตวแปร N Ans = X2 + Y2 หมายถง เอาคา X ยกก าลง 2 บวกกบคา Y ยกก าลงสอง
แลวเกบคาผลลพธทไดไวทตวแปร Ans Total = Total + Salary หมายถง การเอาคาในตวแปร Salary ไปบวกเขากบคาในตว
แปร Total แลวเอาคาผลลพธใหมทไดไปเกบทตวแปร Total ซงคาใหมทไดจะไปเกบทบคาเดมทมอย ค าสงลกษณะนใชในการสะสมคา หรอเปลยนแปลงคาในตวแปรเดม
2. คณสมบตดานการค านวณ
คณสมบตดานการค านวณในระบบคอมพวเตอร ระดบพนฐาน คอ สามารถด าเนนการบวก ลบ คณ หาร แตลกษณะการพจารณาเลอกประมวลผลงานค านวณของคอมพวเตอรนน มความแตกตางจากระบบการค านวณทวๆ ไป คอ คอมพวเตอรค านวณโดยพจารณาล าดบความส าคญของสญลกษณเครองหมายการค านวณทปรากฏในนพจนการค านวณนน ๆ เปนส าคญ สญลกษณทใชในการค านวณและล าดบการท างานของการค านวณ มดงน
สญลกษณ ความหมายในการท างาน ล าดบการท างาน + - * /
** หรอ ^ ( )
บวก ลบ คณ หาร
ยกก าลง วงเลบ
4 4 3 3 2 1
หากมวงเลบจะด าเนนการในวงเลบกอน และกรณทมล าดบความส าคญเทากน จะค านวณจากดานซายไปขวา
3. คณสมบตดานการเปรยบเทยบเชงตรรกะความสามารถทส าคญของคอมพวเตอรคอ ความสามารถในการประมวลผลเชงเปรยบเทยบ
เปนคณสมบตพนฐานอยางหนงของคอมพวเตอร โดยใชหลกการท างานของพชคณตพจารณาเงอนไขทใชนพจนแบบบลลนประกอบการเขยนค าสง เพอก าหนดทางเลอกการท างาน ส าหรบหาขอสรปของเงอนไขทผเขยนโปรแกรมก าหนดขน เพอใหเครองคอมพวเตอรสามารถประมวลผล ตดสนใจวาหากเงอนไขเปนจรงใหด าเนนการค าสงใด และเงอนไขเปนเทจใหด าเนนการค าสงใด
การเขยนค าสงทมลกษณะของเงอนไข เพอใหเครองพจารราเลอกทศทางการท างานตามเงอนไขทก าหนดนน มสงทเกยวของกบผพฒนาโปรแกรม คอ ตองศกษาวธใชสญลกษณในการเขยนประโยคค าสงแบบเงอนไขของแตละภาษาทก าหนดใหเลอกใช โดยทวไปมสญลกษณของพชคณตบลลนใชงานดงน
การใชสญลกษณเขยนประโยคค าสงเงอนไขแบบ 1 ประโยค มสญลกษณ ดงน
สญลกษณ ความหมายในการท างาน = <>
<= >= <>
เทากบ นอยกวา มากกวา
นอยกวาหรอเทากบ มากกวาหรอเทากบ
ไมเทากบ
ตวอยางการเขยนนพจนใชเงอนไขแบบ 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
4. คณสมบตดานการแสดงผลคาขอมล
เปนการอานคาขอมลจากพนทหนวยความจ าทเขยนค าสงน าไปเกบไว หรอจากการค านวณทตองมการน าคาไปเกบไว เพอน ามาแสดงผลลพธในรปแบบและในต าแหนงงานทตองการ
5. คณสมบตการจดล าดบการท างานคอมพวเตอรจะท างานทละค าสง ตามล าดบจากบนลงลาง หากเปรยบเทยบใน 1 บรรทด
คอ 1 ค าสงแลว คอมพวเตอรจะท างานตามค าสงทอยบรรทดบนสดกอน แลวจงท างานตามค าสงทอยในล าดบตอมา จนถงค าสงในบรรทดสดทาย
ลกษณะการเขยน Algorithm
แนวทางการเขยนอลกอรทมเปนลกษณะการท างานขนพนฐาน มกปรากฏในระบบงานโปรแกรมคอมพวเตอรโดยทวไป มแนวทางทใชบอย ๆ ดงน
การท างานลกษณะการนบคาสะสมในหนวยความจ า การท างานลกษณะวนรอบการท างาน การท างานลกษณะหาคามากทสด และคานอยทสด
ตวอยางการใชขอความอธบายแทนสญลกษณของผงงานแบบล าดบ
สญลกษณของผงงาน (Flowchart) ใชขอความอธบายแทน (Algorithm)
เรมตน
จบการท างาน
รบคา N
แสดงคา N
Area = H x L
START
END
READ N
N
Area = H x L
ตวอยางท 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 , Height3. AREA 0.5 x Base x Height 4. แสดงคา AREA5. จบการท างาน
Start
Read Base , Height
AREAR = 0.5 x Base x Height
Write AREA
END
จฬาลกษณ ถาไชยลา หลกการเขยนโปรแกรม
ตวอยางการใชขอความอธบายแทนสญลกษณของผงงานแบบเลอกท า
การเขยนผงงานแบบเลอกท ามสญลกษณทใชในการตดสนใจ ใชค าอธบายวา “ถา” และตามดวยเงอนไข จากนนตามดวยค าอธบายวา “แลว” จากนนจะเปนล าดบขนตอนการท างานทตองท าเปนขอ ๆ ตามล าดบ เมอเขยนค าอธบายล าดบขนตอนการท างานในกรณทเงอนไชเปนจรงจนหมดแลว ขนตอนตอไปกตองเขยนอธบายขนตอนการท างานทงหมด ในกรณทเงอนไขเปนเทจ โดยจะใชค าวา “นอกจากนน” หรอ “มฉะนนแลว” แลวตามดวยล าดบขนตอนการท างานเปนขอ ๆ
รปแบบการเขยนอธบายล าดบขนตอนการท างานเปนขอความแบบเลอกท า (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
จากผงงานขางตนสามารถพฒนาใหเปนการอธบายล าดบขนตอนการท างานในลกษณะของขอความไดดงน
1. เรมตน2. รบคา Score3. ถา 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
จากผงงานขางตนสามารถพฒนาใหเปนการอธบายล าดบขนตอนการท างานในลกษณะของขอความแบบท าซ า แบบในขณะท ไดดงน
1. เรมตน2. รบคา NUM3. ในขณะท NUM มากกวาหรอเทากบ 0 แลวท า
3.1 แสดงคา NUM3.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
จากผงงานขางตนสามารถพฒนาใหเปนการอธบายล าดบขนตอนการท างานในลกษณะของขอความแบบท าซ า แบบท าจนกระทง ไดดงน
1. เรมตน2. ก าหนดให SUM 1 3. รบคา NUM4. ท าจนกระทง NUM มคานอยกวา 1
4.1 SUM SUM x NUM 4.2 NUM NUM – 1
5. แสดงคา SUM6. จบการท างาน
แบบฝกหดทายบท
ขอ 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
ขอ 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 คน
***************************
เอกสารอางอง
ณชตพงศ อทอง. หนงสอเรยน หลกการเขยนโปรแกรม. กรงเทพฯ:เอมพนธ,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/
จฬาลกษณ ถาไชยลา