lab 1 flowchartpseudocode 2012

Post on 27-Oct-2014

104 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

1

1309 200 Computer Programming Laboratory ปฏบตการท 1 : Flowchart/pseudo code เนอหาในการทดลองนจะกลาวถง การออกแบบการท างานของโปรแกรมหรอขนตอน ในการแกปญหา ซงผออกแบบสามารถเลอกใชเครองมอชวยในการออกแบบได โดยมอยหลายตวตามความถนดของผเขยนโปรแกรม ส าหรบเนอหาในสวนนจะแนะน าใหนกศกษาไดรจกกบเครองมอทยงเปนทนยมใชในการออกแบบโปรแกรมไดแก ขนตอน (Algorithm), รหสจ าลอง (pseudo code), และผงงาน (Flowchart) วตถประสงค

1.1.1 สามารถเขาใจความหมายและวธการสรางขนตอน (Algorithm) 1.1.2 สามารถเขยนผงงาน (Flowchart) โดยใชสญลกษณมาตรฐานการเขยนผงงานได 1.1.3 เขาใจลกษณะการเขยนผงงาน และโครงสรางผงงานชนดตางๆ 1.1.4 สามารถน าปญหามาเขยนผงงาน หรอรหสเทยม เพอใชพฒนาโปรแกรมคอมพวเตอร ในการแกปญหาได

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

1. ขนตอน (Algorithm) กระบวนการแกปญหาเชงขนตอน หมายถง ขนตอนวธการ ซงจะอธบายวางานๆ นนท า

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

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

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

ตวอยาง การแกปญหาเชงขนตอน การค านวนคะแนนสะสมรายวชาการเขยนโปรแกรมคอมพวเตอร

2

ขนตอน รปแบบการคดคะแนน บนทกคาคะแนนจากการสอบกลางภาค บนทกคาคะแนนจากการสอบปลายภาค บนทกคาคะแนนจากการสอบยอย บนทกคาคะแนนจากการเขาเรยน บนทกคาคะแนนจากปฏบตการ รวมคาคะแนนทบนทกทงหมด

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

2. รหสจ าลอง (pseudo code) รหสจ าลองเปนการใชค าอธบายสนๆใรปของวลภาษา บอกถงกจกรรมในการแกปญหา แต

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

3. ผงงาน (Flowchart)

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

3

รปท 1.1 ตวอยางผงงานและรหสจ าลอง

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

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

4

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

สญลกษณ ความหมาย สญลกษณ ความหมาย

เรมตนท างาน / จบการท างาน

กระบวนการส ารอง

การะบวนการ,การค านวณ

แถบบนทกขอมล

การรบขอมลเขา และการน าขอมลออก

การควบคมโปรแกรมทางแปนพมพ

เงอนไขการตดสนใจ

จดรวมการเชอมตอ

จดเชอมตอผงภาพภายใน

การก าหนดคาลวงหนาหรอก าหนดคาเปนชดตวเลข

จดตอระหวางหนา

เอกสาร / แสดงผล การแสดงผลทางเครองพมพ

ทศทางการท างาน

หนวงเวลา

หรอ

เอกสารแสดงหลายฉบบ

ปอนขอมลดวยตวเอง, ควบคมโปรแกรมทาง

แปนพมพ

ดสกแมเหลก

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

เปนจดเรมตนหรอจดสนสดของผงงาน โดยใชค าอธบาย “Start” หรอเรมตนส าหรบจดเรมตนของผงงานและค าอธบาย “Stop” หรอ “End” หรอจบ ส าหรบจดสนสดของผงงาน

รปท 1.2 แสดงสญลกษณจดเรมตนและจดสนสดของผงงาน

5

Start End

Z = Z + 1

Input a,b

รปท 1.3 แสดงการใชงานสญลกษณจดเรมตนและจดสนสดของผงงาน

4.2 การก าหนดคา การค านวณและการประมวลผล

สญลกษณทใชส าหรบการก าหนดคา (Assignment) การค านวณ (Computation) และการประมวลผล (Process) ของผงงานใชสญลกษณรปสเหลยมผนผา โดยมค าอธบายลกษณะการท างานอยภายในรปสเหสยมผนผา สญลกษณนมทงทศทางเขาและทศทาง โดยมเพยงทศทางเขา 1 ทศทางและทศทางออก 1 ทศทาง

รปท 1.4 แสดงสญลกษณและการใชงานสญลกษณการก าหนดคา

4.3 การรบขอมลเขาและการน าขอมลออก

การรบขอมลออก สญลกษณทใชคอสญลกษณรปสเหลยมดานขนาน ภายในสญลกษณเปนค าอธบายลกษณะท างาน โดยใชค าอธบาย “Read”, “Input” ส าหรบการรบขอมลเขา และใชค าอธบาย “Write”, “Output” ส าหรบการน าขอมลออกสญลกษณนมทงทศทางเขาและทศทางออกอยางละ 1 ทศทาง

รปท 1.5 แสดงสญลกษณและการใชงานสญลกษณการรบขอมลเขาและการน าขอมลออก 4.4 การตดสนใจ

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

6

X > 15

No

Yes

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

รปท 1.6 แสดงสญลกษณและการใชสญลกษณการตดสนใจ

4.5 การแสดงทศทางการท างานของผงงาน การแสดงทศทางของขนตอนการท างานของผงงาน ใชลกศรส าหรบการบอกทศทางของ

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

รปท 1.7 แสดงสญลกษณการแสดงทศทางการท างานของผงงาน

4.6 จดตอภายในหนาเดยวกน

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

รปท 1.8 แสดงสญลกษณและการใชสญลกษณจดตอภายในหนาเดยวกน

4.7 จดตอระหวางหนา สญลกษณจดระหวางหนาของผงงานใชสญลกษณรปหาเหลยม สญลกษณจดตอระหวางหนา

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

7

1 1

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

รปท 1.9 แสดงสญลกษณและการใชสญลกษณจดตอระหวางหนา

5. ลกษณะผงงานทด ลกษณะของผงงานทด ควรมลกษณะตอไปน

ทกผงงานตองมจดเรมตนและจดสนสดเพยงอยางละหนงเทานน ผงงานเปนสญลกษณในลกษณะของการท าตามล าดบ ดงนนทกสญลกษณของผง

งานตองมลกศรชทศทางเขา และลกศรชทศทางออกอยางละหนงลกศรยกเวนสญลกษณจดเรมตน สญลกษณสนสด สญลกษณการตดสนใจ และสญลกษณจดตอ

สญลกษณจดเรมตนมเฉพาะลกศรชทศทางออก สญลกษณจดสนสดมเฉพาะลกศรชทศทางเขา

สญลกษณการตดสนใจมลกศรชทศทางเขา 1 ทาง มลกศรชทศทางออก 2 ทาง คอกรณทผลทไดจากการตดสนใจเปนจรง และกรณทผลทไดจากการตดสนใจเปนเทจ

ทศทางของล าดบขนตอนการท างาน นยมเขยนจากบนลงลางหรอจากซายไปขวา เสนของลกศรทใชบอกทศทางของล าดบขนตอนวธการท างาน ไมควรเขยนตดกน

หรอทบกน ไมควรเขยนเสนของลกศรเพอท าการเชอมโยงส าหรบขนตอนทอยหางกนมากหาก

จ าเปนควรใชสญลกษณจดตอแทน

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

- โครงสรางการท างานแบบตามล าดบ (Sequence) - โครงสรางการท างานแบบมการเลอก (Selection) - โครงสรางการท างานแบบมการท างานซ า (Iteration) ผงงานหนงผงงานสามารถประกอบไปดวยหลายโครงสรางผงงาน โดยมโครงสรางผงงานการ

ท างานแบบล าดบเปนโครงสรางพนฐาน โครงสรางผงงานลกษณะอน เชน การเลอกท าหรอการท าซ า

8

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

6.1 โครงสรางการท างานแบบตามล าดบ (Sequence) เปนโครงสรางของโปแกรมทมการท างานทเปนล าดบขนตอนไมมการขามขน หรอยอนกลบไปท าค าสงเกาทไดท าไปแลว ดงรปแบบตอไปน

A

B

รปท 1.10 แสดงโครงสรางผงงานแบบตามล าดบ

6.2 โครงสรางการท างานแบบมการเลอก (Selection) เปนโครงสรางทใชการตรวจสอบเงอนไขเพอตดสนใจการท างานอยางใดอยางหนง โดยโครงสรางแบบนจะมอยดวยกน 2 รปแบบ คอ if และ if – else

B

A

Yes Yes

No No

รปท 1.11 แสดงโครงสรางการท างานแบบมการเลอก

9

โครงสรางแบบ if เปนโครงสรางทไมมการใช else ดงนนถามการเปรยบเทยบเงอนไขทอยหลง if มคาเปนจรง กจะไปท าสวนทอยหลง แตถาเงอนไขเปนเทจ กจะไปท าค าสงทอยถดจาก if แทน โครงสรางแบบ if – else เปนโครงสรางทจะท าการเปรยบเทยบเงอนไขทใสไวในสวนหลงค าวา if และเมอไดผลลพธจากการเปรยบเทยบกจะเลอกวาจะท างานตอในสวนใดกลาวคอ ถาเงอนไขเปนจรง (true) กจะเลอกไปท างานตอทสวนประโยคเงอนไข แตถาเงอนไขเปนเทจ (false) กจะกระโดดขามประโยคเงอนไขและออกไปจากประโยค 6.3 โครงสรางการท างานแบบมการท างานซ า (Iteration) เปนโครงสรางทมประมวลผลกลมค าสงซ าหลายครง ตามลกษณะเงอนไขทก าหนด อาจเรยนการท างานซ าแบบนไดอกแบบวา การวนลป (loop) โครงสรางแบบการท างานซ านจะมอย 2 ประเภทคอ

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

Yes

No

รปท 1.12 แสดงโครงสรางจากท างานซ าแบบ do – while

การท างานซ าแบบ for

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

1

0

Yes

No

รปท 1.13 แสดงโครงสรางจากท างานซ าแบบ for

1

1

แบบฝกหด 1) เขยน Flow chart/Pseudo code แสดงขนตอนการลงทะเบยนเรยนในรายวชา 1309 200

Computer Programming ผานทางอนเตอรเนต หนา http://reg.ubu.ac.th อนพท คอ …………………………………………………………………………………………. เอาทพท คอ……………………………………………………………………………………….. Flowchart / Pseudo-code

1

2

2) การตดเกรดของรายวชา 1309 200 Computer Programming ใชเกณฑดงน ต ากวา 50 คะแนน ไดเกรด F ระหวาง 50 ถง 55 ไดเกรด D ระหวาง 55 ถง 60 ไดเกรด D+ ระหวาง 60 ถง 65 ไดเกรด C ระหวาง 65 ถง 70 ไดเกรด C+ ระหวาง 70 ถง 75 ไดเกรด B ระหวาง 75 ถง 80 ไดเกรด B+ มากกวา 80 ไดเกรด A

จงเขยน Flow chart/Pseudo-code แสดงเกรดทได โดยใหใสคาคะแนน เพอพจารณาวาคะแนนดงกลาวอยในเกณฑทไดรบเกรดใด อนพท คอ ………………………………………………………………………………………….. เอาทพท คอ……………………………………………………………………………………….. Flowchart / Pseudo-code

1

3

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

อนพท คอ ………………………………………………………………………………………….. เอาทพท คอ……………………………………………………………………………………….. Flowchart / Pseudo-code

1

4

4) จงหาคาผลบวก (summation) ตงแต 1-100 อนพท คอ ………………………………………………………………………………………….. เอาทพท คอ……………………………………………………………………………………….. Flowchart / Pseudo-code

top related