Issuu on Google+

เรือง การทํางานแบบลําดับและมีการตัดสินใจ

หน่วยที 8

หน่วยที 8 การทํางานแบบมีลาํ ดับ และ มีการตัดสินใจ หลักการออกแบบและพัฒนาโปรแกรม

รหัสวิชา 3204-2007


เรือง การทํางานแบบลําดับและมีการตัดสินใจ

หน่วยที 8

สาระสําคัญ หลังจากผ่านขั#นตอนการวิเคราะห์ปัญหาในบททีผ่านมานั#น ขั#นตอนต่อไปคือการเขียนผังงานและ ซูโดโค้ ด โดยจะต้ องเปลียนผัง งานให้ เป็ นการอธิบายขั#นตอนการทํางานในลักษณะข้ อความ หรือ เขียนเป็ นอัลกอริธมึ จากนั#นจึงเปลียนข้ อความนั#น ๆ เป็ นซูโดโค้ ด แล้ วจึงเขียนเป็ นโปรแกรมคอมพิวเตอร์ในลําดับต่อไป โดยในบทนี# จะศึกษารูปแบบพื#นฐานในการเขียนโปรแกรมทัวๆไป

หลักการออกแบบและพัฒนาโปรแกรม

รหัสวิชา 3204-2007


เรือง การทํางานแบบลําดับและมีการตัดสินใจ

หน่วยที 8

จุดประสงค์ทวั ไป 1. มีความรู้ความเข้ าใจเกียวกับการทํางานแบบเรียงลําดับ 2. มีความรู้ความเข้ าใจเกียวกับการทํางานแบบมีทางเลือก 3. มีความรู้ความเข้ าใจเกียวกับการเขียนซูโดโค้ ด และผังงาน สําหรับงานแบบมีทางเลือก และแบบมีเงือนไข 4.มีความรู้ความสามารถในการแก้ ปัญหาหารสลับค่า 5.มีความรู้ความสามารถในการพัฒนาออกแบบโปรแกรมใน ลักษณะโมดูลาร์

หลักการออกแบบและพัฒนาโปรแกรม

รหัสวิชา 3204-2007


เรือง การทํางานแบบลําดับและมีการตัดสินใจ

หน่วยที 8

จุดประสงค์เชิงพฤติกรรม 1. ผู้เรียนสามารถเขียนแผนผังการทํางานแบบเรียงลําดับได้ 2. ผู้เรียนสามารถเขียนแผนผังการทํางานแบบมีทางเลือกได้ 3. ผู้เรียนสามารถเขียนซูโดโค้ ดของการทํางานทุกแบบได้ 4. ผู้เรียนสามารถบอกความหมายของปัญหาการสลับค่าได้ 5. ผู้เรียนบอกความหมายการเขียนซูโดโค้ ดในการพัฒนา โปรแกรมในลักษณะโมดูลาร์ได้

หลักการออกแบบและพัฒนาโปรแกรม

รหัสวิชา 3204-2007


เรือง การทํางานแบบลําดับและมีการตัดสินใจ

หน่วยที 8

เนื#อหาสาระ 1. การทํางานแบบเรียงลําดับ 2. การทํางานแบบมีทางเลือก 3. การพัฒนาโปรแกรมในลักษณะโมดูลาร์ 4.แบบฝึ กหัดหลังเรียน

หลักการออกแบบและพัฒนาโปรแกรม

รหัสวิชา 3204-2007


เรือง การทํางานแบบลําดับและมีการตัดสินใจ

หน่วยที 8

1.การทํางานแบบเรียงลําดับ ลักษณะการทํางานของโปรแกรมแบบนี#จะกระทํา ตามลําดับกิจกรรมก่อนหลัง โดยไม่มีการเปลียนแปลงทิศทาง ไปในลักษณะอืน

หลักการออกแบบและพัฒนาโปรแกรม

รหัสวิชา 3204-2007


เรือง การทํางานแบบลําดับและมีการตัดสินใจ

หน่วยที 8

ตัวอย่างที 8.1 การหาพื#นทีของสามเหลียมสามารถเขียนผังงานได้ ดังต่อไปนี#

เริมต้ น รับค่า base,hight Ans =0.5*base,hight พิมพ์ Ans จบ หลักการออกแบบและพัฒนาโปรแกรม

รหัสวิชา 3204-2007


เรือง การทํางานแบบลําดับและมีการตัดสินใจ

หน่วยที 8

จากผังงานในรูป เป็ นการทํางานแบบลําดับ ถ้ าหากเขียนเป็ นคําอธิบาย โปรแกรมในลักษณะของข้ อความภาษาไทยจะเขียนได้ ดังนี# เริมต้ น 1. รับค่าฐาน base, รับค่าส่วนสูง high 2. คํานวณหาค่าพื#นที ans เท่ากับ 0.5 *Base*High 3. แสดงผลค่าพื#นที ans จบ

หลักการออกแบบและพัฒนาโปรแกรม

รหัสวิชา 3204-2007


เรือง การทํางานแบบลําดับและมีการตัดสินใจ

หน่วยที 8

ซึ งจะเห็นว่ าการทํางานจะทํางานเป็ นลําดับต่ อเนื องกันไป ถ้ าหาก ต้ องการให้ ค่าฐานของสามเหลียมและส่วนสูงเป็ นเลขจํานวนเต็ม และเขียน เป็ นซูโดโค้ ดทีใช้ คาํ ภาษาอังกฤษจะเขียนได้ ดังนี# start init base,high :integer intit ans : real read base,high ans = 0.5*base*high write ans end หลักการออกแบบและพัฒนาโปรแกรม

รหัสวิชา 3204-2007


หน่วยที 8

เรือง การทํางานแบบลําดับและมีการตัดสินใจ

และจากซูโดโค้ ดทีได้ น# ีจะทําให้ สามารถเขียนเป็ นโปรแกรม คอมพิวเตอร์ได้ ง่าย โดยเปลียนซูโดโค้ ดแต่ละบรรทัดให้ เป็ นไปตาม หลักการเขียนโปรแกรมนั#นๆ ตัวอย่างเช่นถ้ าหากต้ องการเขียนเป็ น โปรแกรมภาษาปาสคาลจะเขียนได้ ดังนี#

หลักการออกแบบและพัฒนาโปรแกรม

รหัสวิชา 3204-2007


หน่วยที 8

เรือง การทํางานแบบลําดับและมีการตัดสินใจ

Program Test ; Var base,hight : integer ประกาศตัวแปร basec และ high เก็บเลข จํานวนเต็ม) ans : red ; (ประกาศตัวแปร ans ให้ เก็บเลขทศนิยม) Begin readin(base); (รับค่าฐาน) readin(high); (รับค่าความสูง) ans :=0.5*base*high (คํานวณหาพื#นทีสามเหลียม) written(ans:2:2); แสดงผลออกทางจอภาพเป็ นทศนิยมสอง ตําแหน่ง) end หลักการออกแบบและพัฒนาโปรแกรม

รหัสวิชา 3204-2007


หน่วยที 8

เรือง การทํางานแบบลําดับและมีการตัดสินใจ

2.การทํางานแบบมีทางเลือก การทํางานแบบลําดับนั#นการทําคําสังต่างๆ จะทําต่อเนืองกันไป แต่ สําหรับโปรแกรมทีมีความซับซ้ อนแล้ วจะต้ องมีการเปลียนทิศทางการ ทํางานของโปรแกรมบ้ าง เพือให้ คอมพิวเตอร์สามารถเลือกทําชุดคําสัง ได้ นอกจากนี#ถ้าหากมีผงั งานทีได้ ออกแบบการทํางานของโปรแกรมไว้ แล้ วและผังงานนั#นมีการเลือกทํา ผู้เขียนโปรแกรมก็ควรนําผังงานนั#นมา เขียนซูโดโค้ ดก่อน เพือให้ เขียนโปรแกรมได้ ง่ายขึ#น

หลักการออกแบบและพัฒนาโปรแกรม

รหัสวิชา 3204-2007


หน่วยที 8

เรือง การทํางานแบบลําดับและมีการตัดสินใจ

การทํางานแบบมีทางเลือกรูปแบบทีง่ายทีสดุ คืองานทีมกี ารเลือกทํา สองทางเลือก หรือเขียนเป็ นซูโดโค้ ดได้ ในรูปแบบ if-then-else-endif ซึงจะนําผลจากการเปรียบเทียบมาเลือกทํา การเปรียบเทียบนั#นอาจ เป็ นการเปรียบเทียบระหว่างตัวแปรกับตัวแปร หรือตัวแปรกับค่าคงทีก ็ ได้

หลักการออกแบบและพัฒนาโปรแกรม

รหัสวิชา 3204-2007


หน่วยที 8

เรือง การทํางานแบบลําดับและมีการตัดสินใจ

ตัวอย่างที 8.2 จงเขียนผังงานและคําอธิบายโปรแกรมทีตรวจสอบ อายุ ถ้ าหากอายุมากกว่า 25 ปี ให้ แสดงว่า “เป็ นผู้ใหญ่แล้ ว” แต่ถ้าอายุยังไม่เกิน 25 ปี ให้ ทาํ งานต่อไป วิธีทํา กําหนดให้ ตัวแปร x เป็ นอายุทรี ับเข้ าไป และแยกการ ทํางานของโปรแกรมออกเป็ นสองทิศทาง สองทิศทางทีเงือนไขเป็ น จริง และทิศทางทีเงือนไขเป็ นเท็จ จะเขียนผังงานและคําอธิบาย โปรแกรมได้ ดังนี#

หลักการออกแบบและพัฒนาโปรแกรม

รหัสวิชา 3204-2007


เรือง การทํางานแบบลําดับและมีการตัดสินใจ

หน่วยที 8

1. รับค่าอายุมาเก็บในตัวแปร x 2. ถ้ า x มากกว่า 25 แล้ ว 2.1 แสดงคําว่า “เป็ นผู้ใหญ่ แล้ ว” 3. ชุดคําสังต่อไป

รับค่า x

X>25 แสดงผลเป็ น ผู้ใหญ่แล้ ว

ผังงานและคําอธิบายโปรแกรมในตัวอย่างที 8.2 หลักการออกแบบและพัฒนาโปรแกรม

รหัสวิชา 3204-2007


เรือง การทํางานแบบลําดับและมีการตัดสินใจ

หน่วยที 8

ตัวอย่างที 8.3 จงเปลียนผังงานต่อไปนี#ให้ เป็ นคําอธิบายการทํางาน

รับค่า a,b

X=a+b

X=a*b

แสดงผล x

หลักการออกแบบและพัฒนาโปรแกรม

รหัสวิชา 3204-2007


หน่วยที 8

เรือง การทํางานแบบลําดับและมีการตัดสินใจ

วิธีทํา จากรูปเป็ นการเลือกทําแบบสองทางเลือก ให้ แยกการทํางาน ออกเป็ นสองทิศทาง จะได้ ว่าทิศทางการทํางานเมือเงือนไขเป็ นจริงจะมี สองขั#นตอนการทํางาน และขั#นตอนการทํางานเมือมีเงือนไขเป็ นเท็จจะมี สองขั#นตอนการทํางานเช่นกัน และใช้ คาํ อธิบาย “ถ้ า……แล้ ว……มิฉะนั#น” แทนการเลือกทํา จะเขียนได้ ดังนี#

หลักการออกแบบและพัฒนาโปรแกรม

รหัสวิชา 3204-2007


เรือง การทํางานแบบลําดับและมีการตัดสินใจ

หน่วยที 8

1. ถ้ า x >10 แล้ ว 1.1 รับค่า a และรับค่า b 1.2 คํานวณค่า x เท่ากับ a คูณกับ b มิฉะนั#น 1.3 คํานวณค่า x เท่ากับ x บวก 5 1.4 แสดงผลค่า x 2. ทําชุดคําสังต่อไป

หลักการออกแบบและพัฒนาโปรแกรม

รหัสวิชา 3204-2007


หน่วยที 8

เรือง การทํางานแบบลําดับและมีการตัดสินใจ

การเขียนซู โดโค้ดและผังงานสําหรับงานแบบมีทางเลือก จากทีได้ ศึกษาการเขียนซูโดโค้ ดมาแล้ วในบททึ7 จะพบว่าซูโดโค้ ดที นํามาใช้ ในการเขียนโปรแกรมแบบเลือกทําจะใช้ คาํ ว่า if หรือ if-then-else และ endif หากต้ องการนํามาเขียนแทนคําอธิบายการทํางานของโปรแกรม จะใช้ คาํ ว่า “if” แทนคําอธิบายว่า “ถ้ า” ใช้ คาํ ว่า “then” แทนคําอธิบาย “แล้ ว” และใช้ คาํ ว่า “else” แทนคําอธิบาย “มิฉะนั#น” และจบประโยคการ เลือกทําด้ วย “ endif”

หลักการออกแบบและพัฒนาโปรแกรม

รหัสวิชา 3204-2007


หน่วยที 8

เรือง การทํางานแบบลําดับและมีการตัดสินใจ

จากปัญหาในตัวอย่างที 8.5 ถ้ านําคําอธิบายโปรแกรมในลักษณะของข้ อความมา เขียนซูโดโค้ ดได้ ดังนี#

1. ถ้ า x >10 แล้ ว 1.1 รับค่า a และรับค่า b 1.2 คํานวณค่า x เท่ากับ a คูณกับ b มิฉะนั#น 1.3 คํานวณค่า x เท่ากับ x บวก 5 1.4 แสดงผลค่า x 2. ทําชุดคําสังต่อไป

หลักการออกแบบและพัฒนาโปรแกรม

If x > 10 then read a,b x=a*b else x = x+5; write x endif

รหัสวิชา 3204-2007


หน่วยที 8

เรือง การทํางานแบบลําดับและมีการตัดสินใจ

การเขียนเงือนไขทั#งสองแบบจะให้ ผลเหมือนกัน หมายความว่า ถ้ า a > =b จะทําทางเลือกที 1 และถ้ า a < b จะทําทางเลือกที 2 ถ้ าหาก มองจากซูโดโค้ ด จะเห็นว่าถ้ าหากเปลียนเงือนไขหลัง if ให้ มีเงือนไขที ตรงกันข้ าม เราสามารถสลับทางเลือกสองทางเลือกทั#งสองทางได้ สําหรับ ในการเขียนแผนผังงานก็เช่นกัน งานประเภทเดียวกันการเขียนผัานอาจทํา ได้ หลายรูปแบบขึ#นกับการกําหนดเงือนไข 1. รับค่าอายุมาเก็บในตัวแปร x Read x 2. ถ้ า x มากกว่า 25 แล้ ว If x > 25 then 2.1 แสดงคําว่า “เป็ นผู้ใหญ่ write “เป็ นผู้ใหญ่แล้ ว” แล้ ว” endif 3. ชุดคําสังต่อไป หลักการออกแบบและพัฒนาโปรแกรม

รหัสวิชา 3204-2007


หน่วยที 8

เรือง การทํางานแบบลําดับและมีการตัดสินใจ

สําหรับปัญหาเดียวกัน การเขียนซูโดโค้ ดหรือการเขียนผังงานของ งานทีต้องมีทางเลือก อาจเขียนได้ หลายแบบแต่ให้ ผลลัพธ์การทํางาน เหมือนกัน ขึ#นกับการกําหนดเงือนไขของการตัดสินใจ ตัวอย่าง เช่นถ้ าให้ a แทนตัวแปรตัวหนึง และให้ b แทนค่าคงที ถ้ าหาก a มีค่ามากกว่าหรือ เท่ากับ b ให้ โปรแกรมทําทางเลือกที 1 แต่ถ้า a มีค่าน้ อยกว่า b ให้ โปรแกรมทําทางเลือกที 2 การเขียนรหัสเทียมสองแบบต่อไปนี#จะให้ ผลลัพธ์การทํางานเท่ากัน

หลักการออกแบบและพัฒนาโปรแกรม

รหัสวิชา 3204-2007


เรือง การทํางานแบบลําดับและมีการตัดสินใจ

หน่วยที 8

If a > = b then ทางเลือกที 1 else ทางเลือกที 2 endif

If a < b then ทางเลือกที 2 else ทางเลือกที 1 endif

การเขียนเงือนไขทั#งสองแบบจะให้ ผลเหมือนกัน หมายความว่า ถ้ า a > =b จะทําทางเลือกที 1 และถ้ า a < b จะทําทางเลือกที 2 ถ้ าหากมอง จากซูโดโค้ ด จะเห็นว่าถ้ าหากเปลียนเงือนไขหลัง if ให้ มีเงือนไขทีตรงกัน ข้ าม เราสามารถสลับทางเลือกสองทางเลือกทั#งสองทางได้ สําหรับในการ เขียนแผนผังงานก็เช่นกัน งานประเภทเดียวกันการเขียนผังงานอาจทําได้ หลายรูปแบบขึ#นกับการกําหนดเงือนไข หลักการออกแบบและพัฒนาโปรแกรม

รหัสวิชา 3204-2007


เรือง การทํางานแบบลําดับและมีการตัดสินใจ

หน่วยที 8

1. รับค่าอายุมาเก็บในตัวแปร x 2. ถ้ า x มากกว่า 25 แล้ ว 2.1 แสดงคําว่า “เป็ น ผู้ใหญ่แล้ ว” 3. ชุดคําสังต่อไป

Read x If x > 25 then write “เป็ นผู้ใหญ่แล้ ว” endif

สําหรับปัญหาเดียวกัน การเขียนซูโดโค้ ดหรือการเขียนผังงานของ งานทีต้องมีทางเลือก อาจเขียนได้ หลายแบบแต่ให้ ผลลัพธ์การทํางาน เหมือนกัน ขึ#นกับการกําหนดเงือนไขของการตัดสินใจ

หลักการออกแบบและพัฒนาโปรแกรม

รหัสวิชา 3204-2007


เรือง การทํางานแบบลําดับและมีการตัดสินใจ

หน่วยที 8

ตัวอย่าง เช่นถ้ าให้ a แทนตัวแปรตัวหนึง และให้ b แทนค่าคงที ถ้ า หาก a มีค่ามากกว่าหรือเท่ากับ b ให้ โปรแกรมทําทางเลือกที 1 แต่ถ้า a มีค่าน้ อยกว่า b ให้ โปรแกรมทําทางเลือกที 2 การเขียนรหัสเทียมสอง แบบต่อไปนี#จะให้

If a > = b then ทางเลือกที 1 else ทางเลือกที 2 endif

หลักการออกแบบและพัฒนาโปรแกรม

If a < b then ทางเลือกที 2 else ทางเลือกที 1 endif

รหัสวิชา 3204-2007


หน่วยที 8

เรือง การทํางานแบบลําดับและมีการตัดสินใจ

การเขียนเงือนไขทั#งสองแบบจะให้ ผลเหมือนกัน หมายความว่า ถ้ า a > =b จะทําทางเลือกที 1 และถ้ า a < b จะทําทางเลือกที 2 ถ้ า หากมองจากซูโดโค้ ด จะเห็นว่าถ้ าหากเปลียนเงือนไขหลัง if ให้ มี เงือนไขทีตรงกันข้ าม เราสามารถสลับทางเลือกสองทางเลือกทั#งสอง ทางได้ สําหรับในการเขียนแผนผังงานก็เช่นกัน งานประเภทเดียวกัน การเขียนผังงานอาจทําได้ ลายรูปแบบขึ#นกับการกําหนดเงือนไข

หลักการออกแบบและพัฒนาโปรแกรม

รหัสวิชา 3204-2007


เรือง การทํางานแบบลําดับและมีการตัดสินใจ

หน่วยที 8

ตัวอย่างเช่นถ้ าหากต้ องการเขียนผังงานเพือคํานวณเงินโบนัส ที พิจารณาตามเงินเดือนทีได้ ดังเงือนไขต่อไปนี# bonus = 10 bonus = 50 bonus = 100

หลักการออกแบบและพัฒนาโปรแกรม

เมือ เมือ เมือ

pay <= 1000 pay 1000< pay <= 2000 pay > 200

รหัสวิชา 3204-2007


จากปัญหานี#สามารถเขียนผังงานได้ ดังนี#

A เท็จ

Bonus =10

IF Pay>10 00

IF Pay>200 0

จริ ง

Bonus =100 Bonus =50 B


เรือง การทํางานแบบลําดับและมีการตัดสินใจ

หน่วยที 8

A เท็จ

IF Pay>200 0

จริ ง

IF Pay>1000

Bonus =100

Bonus =50

หลักการออกแบบและพัฒนาโปรแกรม

Bonus =10 B

รหัสวิชา 3204-2007


หน่วยที 8

เรือง การทํางานแบบลําดับและมีการตัดสินใจ

ถ้ าหากพิจารณาผังงานทั#งสองแล้ ว ผลลัพธ์ทไี ด้ จะมีค่าเท่ากัน ถ้ าหากมีปัญหาทีต้องใช้ วิธกี ารเลือกทํา ให้ พยายามแยกการทํางาน ออกเป็ นกลุ่ม ๆ แล้ วพิจารณาว่า กลุ่มนั#นๆ จะต้ องทําเมือเงือนไขของ ปัญหาเป็ นอย่างไร ถ้ าเงือนไขเป็ นจริงจะทํากลุ่มคําสังใด ถ้ าเงือนไขเป็ น เท็จจะต้ องทํากลุ่มคําสังใด

หลักการออกแบบและพัฒนาโปรแกรม

รหัสวิชา 3204-2007


หน่วยที 8

เรือง การทํางานแบบลําดับและมีการตัดสินใจ

ปั ญหาการสลับค่า ตัวอย่างปัญหาหนึงทีนาํ การเขียนโปรแกรมแบบตัดสินใจมาใช้ เช่น ปัญหาการเรียงลําดับข้ อมูล ซึงจะต้ องนําข้ อมูลมาเปรียบเทียบและสลับ ค่าข้ อมูลเงือนไขตามทีกาํ หนด ตัวอย่างเช่นถ้ ามีตัวแปร x และ y เก็บค่า ตัวเลขสองค่า โดยต้ องการเขียนโปรแกรมให้ x เก็บค่ามาก และตัวแปร y เก็บค่าน้ อย ตัวอย่างเช่น

หลักการออกแบบและพัฒนาโปรแกรม

รหัสวิชา 3204-2007


เรือง การทํางานแบบลําดับและมีการตัดสินใจ

หน่วยที 8

เริมต้ น เริมต้ น เริมต้ น

x 4 x

y 6 Y

8

0

x 6

y 6

หลักการออกแบบและพัฒนาโปรแกรม

x y เปลียนเป็ น 6 4 ไม่ต้องเปลียนเนืองจาก x เก็บค่า มากอยู่แล้ ว ไม่ต้องเปลียนเนืองจาก ตัวแปรทั#ง สองมีค่าเท่ากัน

รหัสวิชา 3204-2007


เรือง การทํางานแบบลําดับและมีการตัดสินใจ

หน่วยที 8

จากปัญหานี#สามารถนําการเลือกทําแบบ if-then-else-endif มาใช้ ได้ แต่จะต้ องวางแผนการเขียนโปรแกรมให้ ดีในการสลับค่า ตัวอย่างเช่น ถ้ า x เก็บค่า 14และ y เก็บค่า 20 แล้ วใช้ วิธกี าร ประมวลผลดังต่อไปนี#

ค่าเริมต้ น สลับค่า x ไปเก็บไว้ ใน x สลับค่า x ไปเก็บไว้ ใน y หลักการออกแบบและพัฒนาโปรแกรม

x y 14 20 20 20 20 20 รหัสวิชา 3204-2007


เรือง การทํางานแบบลําดับและมีการตัดสินใจ

หน่วยที 8

จะพบว่าหลังการสลับค่าผลลัพธ์ทไี ด้ จะไม่ถูกต้ อง เนืองจากสืบ ข้ อมูลทั#งสองตัวทับกันมีค่าเป็ น 20 ทั#งคู่ แต่ถ้าหากสลับวิธกี ารสลับ ค่าดังต่อไปนี# ค่าเริมต้ น สลับค่า x ไปเก็บไว้ ใน y สลับค่า x ไปเก็บไว้ ใน x

หลักการออกแบบและพัฒนาโปรแกรม

x y 14 20 14 14 14 14

รหัสวิชา 3204-2007


เรือง การทํางานแบบลําดับและมีการตัดสินใจ

หน่วยที 8

ค่าผลลัพธ์กจ็ ะไม่ถูกต้ องเช่นกัน แม้ ว่าเปลียนวิธกี ารสลับค่าแล้ ว ผลลัพธ์จะไม่เหมือนกัน แต่ค่าทีได้ กไ็ ม่ถูกต้ อง ปัญหานี#จะต้ องสร้ างตัวแปร พิเศษขึ#นมาตัวหนึง เพือเป็ นทีพักข้ อมูลในการสลับค่า สมบัติว่าให้ ตัวแปร นั#นชือว่า temp ปัญหานี#จะออกแบบวิธกี ารประมวลได้ ดังนี# ค่าเริมต้ น ย้ าย x ไปเก็บไว้ ใน temp ย้ าย x ไปเก็บไว้ ใน x ย้ าย temp ไปเก็บไว้ ใน y หลักการออกแบบและพัฒนาโปรแกรม

x 14 14 20 20

y 20 20 20 14

Temp 14 14 14 รหัสวิชา 3204-2007


หน่วยที 8

เรือง การทํางานแบบลําดับและมีการตัดสินใจ

จะทําให้ ตัวแปร x เก็บค่าทีมากกว่าได้ ถูกต้ อง สําหรับวิธกี ารสลับข้ อมูล ระหว่างตัวแปรสองตัวนี# เรียกว่า swap วิธกี ารแก้ ปัญหานี#สามารถเขียน เป็ นซูโดโค้ ดโดยใช้ การเลือกทําแบบทางเดียวได้ ดังนี# If x< x move x to temp move x to x move temp to y endif

หลักการออกแบบและพัฒนาโปรแกรม

รหัสวิชา 3204-2007


หน่วยที 8

เรือง การทํางานแบบลําดับและมีการตัดสินใจ

3.การพัฒนาโปรแกรมในลักษณะโมดู ลาร์ การออกแบบโปรแกรมออกเป็ นส่วน ๆ หรือเป็ นโมดูลนั#นจะทําให้ สามารถเห็บโมดูลต่างๆ ทีออกแบบไว้ มาใช้ ในภายหลังได้ และเรียกใช้ ได้ หลายครั#ง การพัฒนาโปรแกรมให้ เป็ นแบบโมดูลทีดีจะต้ องให้ การทํางานแต่ ละโมดูลเป็ นอิสระเมือมีการแก้ ไขโมดูลหนึงจะต้ องไม่ไปกระทบกับโมดูลอืน ๆ เมือโปรแกรมมีการทํางานแบบโมดูล ตัวโมดูลหลักจะต้ องควบคุมการ ทํางานโมดูลย่อย ๆ ทั#งหมดได้

หลักการออกแบบและพัฒนาโปรแกรม

รหัสวิชา 3204-2007


เรือง การทํางานแบบลําดับและมีการตัดสินใจ

หน่วยที 8

โมดูลโปรแกรมหลัง

โมดูลย่อย A

หลักการออกแบบและพัฒนาโปรแกรม

โมดูลย่อย B

โมดูลย่อย C

รหัสวิชา 3204-2007


เรือง การทํางานแบบลําดับและมีการตัดสินใจ

หน่วยที 8

ถ้ าหากต้ องการพัฒนาให้ โปรแกรมสามารถเรียงข้ อมูลได้ หลาย ๆ ครั#ง เรา สามารถพัฒนาโปรแกรมให้ เป็ นโมดูลย่อย แล้ วเรียกใช้ หลาย ๆครั#งได้ โดย การเรียกใช้ แต่ละครั#งให้ ป้อนข้ อมูลทีต้องการเรียงลําดับเข้ าไป ถ้ าหาก พิจารณาโครงสร้ างของปัญหาแล้ วจะสรุปได้ ดังนี# Input

Processing

Output

Char_1 Char_2

Prompt for charcters Char_1 Accept three characters Char_2

Char_3

Char_3 Sort three characters Output three characters

หลักการออกแบบและพัฒนาโปรแกรม

รหัสวิชา 3204-2007


หน่วยที 8

เรือง การทํางานแบบลําดับและมีการตัดสินใจ

ดั ง นั# น ถ้ า หากแบ่ ง โปรแกรมออกเป็ นโมดู ล สามารถทํา ได้ สามโมดูล โดยโมดูลแรกใช้ สาํ หรับรับตัวอักขระจํานวนสามตัว โมดูลที สองใช้ สาํ หรับเรียงลําดับตัวอักขระ ส่วนโมดูลทีสามจะใช้ สาํ หรับแสดง ตัวอักขระทีเรียงแล้ วออกทางจอภาพ ถ้ าหากโปรแกรมหลักรับตัวอักษร ทั#งหมดเป็ น X โปรแกรมจะไม่ ทาํ การเรียง โดยสามารถเขียนเป็ น ซูโดโค้ ดของโปรแกรมหลักและโมดูลย่อย

หลักการออกแบบและพัฒนาโปรแกรม

รหัสวิชา 3204-2007


หน่วยที 8

เรือง การทํางานแบบลําดับและมีการตัดสินใจ

Process_three_characters //*ชือโปรแกรมหลัก Read_three_characters while NOT(char_1 =‘x’ AND char_3 =‘x’) sort_three_characters Read_three_characters endwhile end

หลักการออกแบบและพัฒนาโปรแกรม

รหัสวิชา 3204-2007


หน่วยที 8

เรือง การทํางานแบบลําดับและมีการตัดสินใจ

Process_three_characters //*ชือโปรแกรมหลัก Read_three_characters while NOT(char_1 =‘x’ AND char_3 =‘x’) sort_three_characters Read_three_characters endwhile end

หลักการออกแบบและพัฒนาโปรแกรม

รหัสวิชา 3204-2007


หน่วยที 8

เรือง การทํางานแบบลําดับและมีการตัดสินใจ

โมดูลแรก Process_three_characters //*ชือโปรแกรมย่อย prompt the operator for char_1,char_2,char_3 Get char_1,char_2,char_3 end

หลักการออกแบบและพัฒนาโปรแกรม

รหัสวิชา 3204-2007


หน่วยที 8

เรือง การทํางานแบบลําดับและมีการตัดสินใจ

โมดูลทีส อง Sort_three_characters /**ชือโมดูลย่อย If char_1 > char_2 then temp = char_1 char_1 = char_2 char_2 = temp endif

หลักการออกแบบและพัฒนาโปรแกรม

รหัสวิชา 3204-2007


เรือง การทํางานแบบลําดับและมีการตัดสินใจ

หน่วยที 8

if char_2 > char_3 then temp = char_2 char_2 =char_3 char_3= temp endif if char_1 > char_ 2 then temp = char_1 char_1 =char_2 char_2= temp endif end หลักการออกแบบและพัฒนาโปรแกรม

รหัสวิชา 3204-2007


หน่วยที 8

เรือง การทํางานแบบลําดับและมีการตัดสินใจ

โมดูลทีส าม Print_three_characters(char_1, char_2 , char_3 /**ชือโมดูลย่อย Output to the screen char_1, char_2, char_3 end หลักการออกแบบและพัฒนาโปรแกรม

รหัสวิชา 3204-2007


หน่วยที 8

เรือง การทํางานแบบลําดับและมีการตัดสินใจ

โมดูลทีส าม Print_three_characters(char_1, char_2 , char_3 /**ชือโมดูลย่อย Output to the screen char_1, char_2, char_3 end หลักการออกแบบและพัฒนาโปรแกรม

รหัสวิชา 3204-2007


หน่วยที 8

เรือง การทํางานแบบลําดับและมีการตัดสินใจ

จากซูโ ดโค้ ด ทีเขียนขึ#น จะเห็น ว่ าจะใช้ ตั วแปร char_1,char_2 และchar-3เป็ นตั ว แปรสํ า หรั บ ผ่ า นค่ า เข้ าออกไปยั ง โมดู ล ต่ า งๆ นอกจากนี#ถ้าหากแยกโมดูลทีสองออกเป็ นโมดูลย่อย จะเขียนแผนภาพ ลําดับและซูโดโค้ ดใหม่ได้ ดังนี#

หลักการออกแบบและพัฒนาโปรแกรม

รหัสวิชา 3204-2007


เรือง การทํางานแบบลําดับและมีการตัดสินใจ

หน่วยที 8

สรุปท้ายบท ในบทนี#เป็ นเนื#อหา เกียวกับการทํางานลําดับและมีการตัดสินใจ ซึงเป็ น ศึกษาการทํางานแบบเรียงลําดับ การทํางานแบบมีทางเลือก และการพัฒนา โปรแกรมแบบโมดูลาร์

หลักการออกแบบและพัฒนาโปรแกรม

รหัสวิชา 3204-2007


Lesson8 devenlopment program