กิจกรรมที่ 2 · web view- ผ งงานโปรแกรมอย...

Post on 12-Jun-2020

2 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

กจกรรมท 21. อลกอรทม (Algorithm)

อลกอรทม คอ ขนตอนการทำางานทเปนลำาดบคอมพวเตอรทำางานทละคำาสงตามลำาดบ โปรแกรมคอมพวเตอรจะประกอบดวยคำาสงจำานวนมากทควบคมใหคอมพวเตอรทำางานไปตามขนตอนทกำาหนดไว อลกอรทมจะชวยอธบายลำาดบขนตอนทสอดคลองกบการทำางานของโปรแกรม อาจใชเครองมอตางๆ ชวยในการแสดงขนตอน เชน ผงงาน (FLOW CHART) และ ซโดโคด (PSEUDOCODE) ประกอบดวย

- อลกอรทมแบบแตกยอย(Divide-and-conquer) เปนอลกอรทมทจะมการนำาปญหาหลกทไดมาทำาการแยกออกเปนปญหายอยๆ แลวนำาคำาตอบทไดจากปญหายอยตาง ๆ มารวมกนเขาดวยกนโดยอลกอรทมนเราสามารถหาคำาตอบของปญหาไดงายขนจากการรวมคำาตอบของปญหาหลกนนเอง - อลกอรทมแบบเคลอนท (Dynamic Programming)ปญหาทเราไดรบมานนบางครงไมสามารถแบงปญหาออกเปนปญหายอยๆ ได ซงถาเราพยายามจะแบงปญหานน ๆ ออกเปนปญหายอยทเลกทสด อลกอรทมของเราอาจจะใชเวลาทำางานเปนแบบทวคณ(Exponential) ได แตเวลาทเราแกปญหาตาง ๆ เรามกจะพบวาบางครงเราตองแกปญหา

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

อลกอรทมทดตองประกอบดวย– แตละขนในอลกอรทมตองชดเจนและถกตอง– ลำาดบการเขยนคำาสงตองเปนไปตามลำาดบทถกตอง

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

2. การเขยนผงงาน (Flowchart)การเขยนผงงาน (Flowchart) คอ เปนเครองมอ

หนงทใชรปภาพ แสดงถงขนตอนการเขยนโปรแกรม หรอขนตอนการแกปญหาทละขน และมเสนทแสดงทศทางการไหลของขอมลตงแตจดเรมตนจนกระทงไดผลลพธตามท

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

ประเภทของผงงาน แบงเปน 2 ประเภทคอ1. ผงงานระบบ (system flowchart) เปนผง

งานทเขยนขนมาเพอทำาใหมองเหนภาพอยางกวาง ๆ จะเหนการทำางานของขอมลแตละสวนของระบบผงงาน ซงแสดงขอบเขต และลำาดบขนตอนการทำางานของระบบหนง ๆ รวมทงแสดงรปแบบของขอมลเขา (Input) และขอมลออก (Output) วาถกรบเขาหรอแสดงผลโดยผานสอประเภทใด เนองจากผงงานระบบเปนแผนภาพทแสดงถงระบบโดยรวม ดงนนกระบวนการหรอโปรแกรมหนง ๆ อาจถกแสดงเปนเพยงขนตอนหนงในผงงานระบบเทานน

2. ผงงานโปรแกรม(program flowchart) ผงงานโปรแกรมเปนการเขยนขนมาเพอทำาใหมองเหนภาพการทำางานของโปรแกรมซงเปนสวนหนงของระบบผงโปรแกรมยงแบงออกเปนสองแบบคอ

- ผงงานโปรแกรมมอดล (modular program flowchart) บางครงเรยกวา บลอกไดอะแกรม (block diagram) ในแตละบลอกจะแสดงถงการ ทำางานอยางกวาง ๆ ของแตละขนของโปรแกรม โดยจะแสดงเพยงการทำางานของระบบทงระบบแตไมสามารถแสดงรายละเอยด

- ผงงานโปรแกรมอยางละเอยด (detail program flowchart) หรอ ผงงานไมโคร (micro flowchart) จะแสดงทละขนตอนของการทำางาน การคำานวณ การทดสอบ และการเปรยบเทยบในการทำางานของปญหา ผงงานนจะแสดงใหเหนถงการทำางานอยางละเอยดของแตละขนของระบบ ผงงานชนดนสามารถนำาไปเขยนโปรแกรมซงจะชวยใหผเขยนโปรแกรมสามารถเขยนโปรแกรมไดงายขน

สญลกษณทใชในการเขยนผงงาน (FLOWCHATING SYMBOLS)

การเขยนผงโปรแกรมจะประกอบไปดวยการใชสญลกษณมาตรฐานตาง ๆ ทเรยกวา สญลกษณ ANSI ( American National Standards Institute ) แบงเปน 3 กลมดวยกน คอ

1. สญลกษณพนฐาน (Basic Symbols)สญลกษณ ชอ คำาอธบาย

สญลกษณการประมวลผล

(PROCESS)

แทนการประมวลผล ประกอบไปดวยกลมคำาสงโปรแกรมเพอแสดงกระบวนการทำางานหรอฟงกชนการทำางานตางๆ

สญลกษณอนพต/เอาทพต

(INPUT / OUTPUT)

แทนการนำาขอมลหรอการแสดงผลลพธของขอมล โดยไมมการระบอปกรณทชดเจนลงไป

สญลกษณจดเชอมตอ

(Connect)

แทนจดเชอมโยงของแผนภาพในหนาเดยวกน

สญลกษณแทนการเชอมโยงตอเนองอกหนาหนง

(Off-page Connector)

แทนจดเชอมโยงของแผนภาพจากหนาหนง

ไปอกหนาหนง

สญลกษณคำาอธบายเพมเตม(Comment)

ใชสำาหรบบรรยายคำาอธบายหรอหมายเหต

เพมเตม เพอสอใหเขาใจยงขน

สญลกษณ ชอ คำาอธบาย

สญลกษณเสนทศทาง

ใชสำาหรบกำาหนดทศทางในการดำาเนนงานของแผนภาพ

สญลกษณแสดงผลทางเครองพมพ(Document)

เปนสญลกษณเพอสงเอาทพตหรอรายงานออกทาง

เครองพมพ

2. สญลกษณระบบ (System Symbols)

สญลกษณ ชอ คำาอธบาย

สญลกษณเทปแมเหลก

(MagneticTape)

แทนสอจดเกบขอมลแบบเทปแมเหลก ซงเปนไดทงอนพตและเอาทพต

สญลกษณสอจดเกบขอมลแบบ

ออนไลน

แทนสอจดเกบขอมลทมความจสง

(Online Storage)

สญลกษณสอจดเกบขอมลแบบดสก

(Magnetic Disk)

แทนดสก ซงเปนอปกรณทคอมพวเตอรสามารถเขาถงขอมลไดโดยตรง ในลกษณะอนพตและเอาทพต

สญลกษณการรวม(Merge)

แทนการรวม เชน การรวมไฟลสองไฟลเพอเกบไวอกไฟลหนง

สญลกษณ ชอ คำาอธบายสญลกษณการจด

เรยงขอมล(Sort)

แทนการจดเรยงขอมล หรอ ชดตวเลข

สญลกษณการจดเกบขอมลแบบออฟ

ไลน(Off-lineStorage)

แทนสอหรออปกรณจดเกบขอมลทไม

สามารถเขาถงขอมลไดโดยตรงจาก

คอมพวเตอร โดยไมมการระบชอ

อปกรณทชดเจนลงไป

สญลกษณแสดงผลทาง

จอภาพ(Display)

ใชสำาหรบการแสดงผลขอมลทางจอภาพ

หรอเทอรมนล

สญลกษณอนพตดวยมอผานทาง

แปนพมพ(Manual

input)

แทนการรบขอมลทางแปนพมพหรอ

คยบอรด

สญลกษณประมวลผลดวยมอ(Manual

Operation)

แทนการประมวลผลดวยแรงงานมนษย

สญลกษณลงคเพอการสอสาร

แทนการตดตอสอสาร ซงทงสองฝงอยตางพนท เชน การสอสารทางไกลผานระบบโทรศพท หรอ ดาวเทยม เปนตน

3. สญลกษณการโปรแกรม (Programming Symbols)

สญลกษณ ชอ คำาอธบาย

สญลกษณการตดสนใจ

(Decision)

ใชสำาหรบการสรางเงอนไขเพอตดสนใจทางเลอกทตองการ

สญลกษณการทำางานเปนรอบ

(Preparation)

แทนการทำางานเปนรอบ (loop)

สญลกษณแทนกลมขนตอนหรอ

โปรแกรมยอย(Predefined

Process)

แทนชอกระบวนการทประกอบไปดวยกลมขนตอนโปรแกรมใน

โปรแกรมยอย

สญลกษณแสดงจดเรมตนหรอสน

สด(Terminator)

แทนจดเรมตนของโปรแกรมและจดสนสดของโปรแกรม

รปแบบการเขยนผงงานผงงานทวไปจะประกอบดวยโครงสรางพนฐาน 3 รป

แบบตอไปนคอ1.โครงสรางแบบเปนลำาดบ (sequence structure)2.โครงสรางแบบมการเลอก (selection structure)3.โครงสรางแบบทำาซำา (iteration structure)

1.โครงสรางแบบเปนลำาดบ (sequence structure)เปนการแสดงขนตอนการทำางานทเรยงลำาดบกนไป ไมม

การขามขนตอน หรอยอนกลบ ดงตวอยาง

2.โครงสรางแบบมการเลอก (selection structure) เปนโครงสรางทมการตรวจสอบเงอนไข ใหโปรแกรม

เลอกทจะทำางาน มดงรปแบบตอไปน- ผงงานโครงสรางแบบทางเลอก แบบ If

- ผงงานโครงสรางแบบทางเลอก แบบ Nested If เงอนไขทเปนจรงและเทจ โดยถาเปนจรงจะทำางานอยาง

หนง และถาเปนเทจจะทำางานอกอยางหนง

- ผงงานโครงสรางแบบทางเลอก แบบ Case พจารณาเงอนไขตางๆ ทเกดขน ถาเงอนไขในทางเลอก

ใดเปนจรง กจะทำางานตามทางเลอกนน

3.โครงสรางแบบทำาซำา (iteration structure)โครงสรางการทำางานแบบทำาซำา จะทำางานแบบเดยวกน

ซำาไปเรอย ๆ ในขณะทยงเปนไปตามเงอนไขหรอเงอนไขเปนจรง จนกระทงเงอนไขเปนเทจจงทำางานอนตอไปมดงรปแบบตอไปน

- ผงงานโครงสรางแบบทำาซำา แบบ Do… While- ผงงานโครงสรางแบบทำาซำา แบบ While- ผงงานโครงสรางแบบทำาซำา แบบ For Next

- ผงงานโครงสรางแบบทำาซำา แบบ Do … While

- ผงงานโครงสรางแบบทำาซำา แบบ While

- ผงงานโครงสรางแบบทำาซำา แบบ For Next

top related