770 likes | 2.75k Views
บทที่ 6 การเขียนผังงาน (Flow Chart) และซูโดโค้ด (Pseudo Code). อ.เอกบดินทร์ เกตุขาว ( Eakbodin4_7@hotmail.com) สาขาวิชาคอมพิวเตอร์ธุรกิจ คณะวิทยาการจัดการ มหาวิทยาลัยราช ภัฏจันทร เกษม. วัตถุประสงค์. นักศึกษา สามารถ เขียนซูโดโค้ดได้
E N D
บทที่6การเขียนผังงาน (Flow Chart)และซูโดโค้ด (Pseudo Code) อ.เอกบดินทร์ เกตุขาว (Eakbodin4_7@hotmail.com) สาขาวิชาคอมพิวเตอร์ธุรกิจ คณะวิทยาการจัดการ มหาวิทยาลัยราชภัฏจันทรเกษม
วัตถุประสงค์ • นักศึกษาสามารถเขียนซูโดโค้ดได้ • นักศึกษาเข้าใจถึงความหมายของสัญลักษณ์ต่างๆที่ใช้ในผังงานและสามารถนำไปใช้ได้อย่างถูกต้อง • นักศึกษาสามารถเขียนผังงานแบบ if-else ได้อย่างถูกต้อง • นักศึกษาสามารถเขียนผังงานแบบวนซ้ำได้ • นักศึกษาสามารถอ่านและเข้าใจผังงานที่มีให้ได้อย่างถูกต้อง
พัฒนาอัลกอริทึม • อัลกอริทึม (Algorithm) หมายถึง ขั้นตอนการทำงานที่เป็นลำดับ • คอมพิวเตอร์ทำงานทีละคำสั่งตามลำดับ • โปรแกรมคอมพิวเตอร์จะประกอบด้วยคำสั่งจำนวนมากที่ควบคุมให้คอมพิวเตอร์ทำงานไปตามขั้นตอนที่กำหนดไว้
พัฒนาอัลกอริทึม • อัลกอริทึมจะช่วยอธิบายลำดับขั้นตอนที่สอดคล้องกับการทำงานของโปรแกรม • อาจใช้เครื่องมือต่างๆ ช่วยในการแสดงอัลกอริทึม เช่น • ผังงาน (FLOW CHART) • ซูโดโค้ด (PSEUDOCODE)
การเขียนผังงานและซูโดโค้ดการเขียนผังงานและซูโดโค้ด • อยู่ในขั้นตอนการออกแบบโปรแกรมโดยคิดว่า • อะไรเป็นข้อมูลเข้า (Input) • อะไรเป็นข้อมูลออก (Output) • วิธีการประมวลผลที่จะนำมาซึ่งคำตอบ (Process) • ตัวอย่างเช่นต้องการหาค่าเฉลี่ยของคะแนนวิชา Introduction to Computer ของนักศึกษาจำนวน50 คน • INPUT:คะแนนของนักศึกษาแต่ละคน(จำนวน 50 คน) • PROCESS :ผลรวมของคะแนนนักศึกษาทุกคน/50 • OUTPUT: AVERAGE = ……
การเขียนผังงานและซูโดโค้ดการเขียนผังงานและซูโดโค้ด • Pseudo Code • การอธิบายขั้นตอนการประมวลผลโดยใช้ “วลีภาษาอังกฤษ” ในการแสดง อธิบาย หรือกำหนดลำดับการทำงาน • Flow Chart • การอธิบายขั้นตอนการประมวลผลโดย ใช้สัญลักษณ์ ในการแสดงความหมาย หรือกำหนดลำดับการทำงาน
ตัวอย่างคำสั่งซูโดโค้ดตัวอย่างคำสั่งซูโดโค้ด
การเขียนซูโดโค้ด (Pseudocode) (1/2) • การปฏิบัติการของคอมพิวเตอร์แบ่งออกเป็น 6 แบบดังนี้ 1. คอมพิวเตอร์สามารถกำหนดค่าให้กับตัวเก็บข้อมูล 1.1 กำหนดค่าเริ่มต้น คำที่ใช้ Initializeหรือ Set เช่น Set x = 500 1.2 กำหนดค่าที่เกิดจากการประมวลผลไว้ที่ตัวเก็บ จะใช้เครื่องหมาย = เช่น x = 500 + 1 หรือ y = 100 หรือ z = y 2. รับข้อมูล คำที่ใช้ Read หรือ Get เช่น Read x หรือ Get y 3. ผลิตข้อมูลออก คำที่ใช้ Print ,Write ,Display , Outputเช่น Print “Hello Tony Jar” หรือ Write z
การเขียนซูโดโค้ด(Pseudocode) (2/2) สมมุติให้ Set x = -1 Set y = 1 จะพิมพ์อะไรออกมา บ้าง?? 4. ปฏิบัติการทางคณิตศาสตร์+ , - , * , ( ) เช่น C = (F-32) * 5/9 5. เปรียบเทียบและทำการเลือก คำที่ใช้ IF, THEN, ELSE เช่น IF(x > y)THEN print “x is grater than y” ELSE print “x is less than y” END IF IF(x >0)THEN print “This is positive number” ELSE print “This is negative number” END IF
ตัวอย่างซูโดโค้ด สมมุติให้ x = 1,2,3 MEAN จะมีค่าเท่าไร จะพิมพ์อะไรออกมา บ้าง?? FIND AVERAGE OF X • Set TOTAL=0, COUNT=1 • READ X • IF (COUNT <= 3) DO 3.1 3.1TOTAL = TOTAL + X 3.2 COUNT = COUNT +1 • IF (COUNT > 3) DO 5 • MEAN = TOTAL / COUNT • WRITE MEAN การหาค่าเฉลี่ยของตัวเลขที่รับเข้ามาทั้งหมด 3 ตัว
ตัวอย่างการวิเคราะห์งานและออกแบบโปรแกรมตัวอย่างการวิเคราะห์งานและออกแบบโปรแกรม ตัวอย่างที่ 1 - ต้องการหาพื้นที่ของวงกลม 1. สิ่งที่ต้องการจากระบบ => พื้นที่วงกลม 2. รูปแบบผลลัพธ์ => The area of circle is ….... 3. ข้อมูลเข้า => รัศมีวงกลม 4. ตัวแปร => รัศมี (r)เป็นตัวเลขจำนวนเต็มหรือทศนิยมก็ได้ (ตัวแปร r อาจเป็นชื่ออื่นได้ เช่น radius หรือ R ) 5. วิธีการประมวลผล=> พื้นที่วงกลม(area) = (22/7)*r*r
ตัวอย่างที่ 1 - ต้องการหาพื้นที่ของวงกลม(ต่อ) ตัวอย่างการวิเคราะห์งานและออกแบบโปรแกรม Programdesign -- วิธีการประมวลผล 5.1) รับข้อมูล r 5.2) ประมวลผล area = (22/7)*r*r 5.3) พิมพ์ “The area of circle is ”, area 5.4) จบการทำงาน
แบบฝึกหัดเขียนซูโดโค้ดแบบฝึกหัดเขียนซูโดโค้ด • จากตัวอย่างที่ 1 จงเขียนซูโดโค้ดหาพื้นที่วงกลม • เฉลยตัวอย่างที่ 1 1. Read r 2. Set area = (22/7) * r * r 3. Write “The area of circle is ”, area
แบบฝึกหัดซูโดโค้ด • ให้เขียนซูโดโค้ดเพื่อทำการหาค่าเฉลี่ยของเลข 1 ถึง 10 • ให้เขียนซูโดโค้ดเพื่อทำการหาค่าเฉลี่ยของเลขกี่จำนวนก็ได้ที่ผู้ใช้ input เข้ามา และหยุดรับข้อมูลเมื่อผู้ใช้ใส่เลข 0
ผังงานโปรแกรม (Program Flowchart) (1) • ผังงาน (Flowchart) คือ แผนภาพที่แสดงลำดับขึ้นตอนของการทำงาน โดยใช้ลูกศรและสัญลักษณ์แบบต่างๆ เพื่อทำให้ง่ายต่อการทำความเข้าใจในการทำงานของโปรแกรม • หลักเกณฑ์ในการเขียนผังงาน 1. ทิศทางของลูกศรในผังงาน ควรจะมีทิศทางจากบนลงล่าง หรือจากซ้ายไปขวาเสมอ 2. พยายามหลีกเลี่ยงการเขียนลูกศรที่ทำให้เกิดจุดตัด เพราะจะทำให้ผังงานอ่านและทำความเข้าใจได้ยาก 3. เขียนข้อความให้สั้นกระทัดรัดและได้ใจความ
แสดงถึงจุดเริ่มต้นหรือจุดสิ้นสุดการทำงานแสดงถึงจุดเริ่มต้นหรือจุดสิ้นสุดการทำงาน Start - แสดงถึงจุดเริ่มต้นการทำงาน Stop - แสดงถึงจุดสิ้นสุดการทำงาน ผังงาน (Flow chart)
Process - แสดงถึงการประมวลผล ผังงาน (Flow chart) ตัวอย่าง นำ 5 คูณ hours ผลลัพธ์เก็บไว้ที่ pay pay=hours*5 ให้ตัวแปร m มีค่าเป็น 0 m = 0 x= 5 y=10 x = x+y
แสดงถึงการรับหรือแสดงผลข้อมูล–ไม่ระบุสื่อแสดงถึงการรับหรือแสดงผลข้อมูล–ไม่ระบุสื่อ ผังงาน (Flow chart) Read X แสดงถึงการรับข้อมูล (Input)-ไม่ระบุสื่อ Write Sum แสดงถึงการแสดงผลข้อมูล (Output)-ไม่ระบุสื่อ
ผังงาน (Flow chart) • การรับข้อมูลเข้าทางแป้นพิมพ์ แสดงถึงการรับข้อมูลสำหรับ x ทางคีย์บอร์ด x แสดงถึงการรับข้อมูลสำหรับ A, B ทางคีย์บอร์ด
ผังงาน (Flow chart) • การแสดงผลข้อมูลออกทางจอภาพ • การแสดงผลข้อมูลออกทางเครื่องพิมพ์ x,y x,y
ผังงาน (Flow chart) สัญลักษณ์สำหรับการเขียนผังงาน • การติดต่อกับอุปกรณ์ที่เป็นการเข้าถึงข้อมูลแบบลำดับ(sequential access )เช่น เทปแม่เหล็ก • การติดต่อกับอุปกรณ์ที่เป็นการเข้าถึงข้อมูลแบบตรง(direct or random access) เช่น ฮาร์ดดิสก์,CD
Yes No Hours <= 40 Pay=Hours*200 Pay=Hours*100 ผังงาน (Flow chart) Decision – แสดงถึงการเลือก/ตัดสินใจ /เงื่อนไขการตัดสินใจ
ผังงาน (Flow chart) Direction–แสดงถึงทิศทางการทำงานโดยทั่วไป ลูกศรจะมีทิศทางจาก บนลงล่าง และ จากซ้ายไปขวา Onpage Connector–แสดงถึงจุดเชื่อมต่อที่อยู่ภายในหน้าเดียวกัน A B Offpage Connector–แสดงถึงจุดเชื่อมต่อกับเอกสารหน้าอื่น 2
A B ผังงาน (Flow chart) Onpage Connector
Start 2 Stop 2 ผังงาน (Flow chart) Offpage Connector
ลักษณะการเขียนผังงาน • ทุกผังงานต้องมีจุดเริ่มต้นและจุดสิ้นสุดเพียงอย่างละหนึ่งแห่งเท่านั้น • ทุกสัญลักษณ์ของผังงานต้องมีลูกศรชี้ทิศทางเข้า และลูกศรชี้ทิศทางออกอย่างละหนึ่งลูกศร ยกเว้นสัญลักษณ์จุดเริ่มต้น จุดสิ้นสุด การตัดสินใจ และ จุดต่อ • สัญลักษณ์จุดเริ่มต้นมีเฉพาะลูกศรชี้ทิศทางออก • สัญลักษณ์จุดสิ้นสุดมีเฉพาะลูกศรชี้ทิศทางเข้า • สัญลักษณ์การตัดสินใจมีลูกศรชี้ทิศทางเข้า 1 ทิศทาง มีลูกศรชี้ทิศทางออก 2 ทิศทางหรือมากกว่า
m 0 ลักษณะการเขียนผังงาน • ทิศทางของลำดับขั้นตอนการทำงาน นิยมเขียนจากบนลงล่างหรือจากซ้ายไปขวา • เส้นของลูกศรที่ใช้บอกทิศทางของลำดับขั้นตอนวิธีการทำงาน ไม่ควรเขียนตัดกันหรือทับกัน • ไม่ควรเขียนเส้นของลูกศรเพื่อทำการเชื่อมโยงลำดับขั้นตอนที่อยู่ห่างกันมาก หากจำเป็นควรใช้สัญลักษณ์จุดต่อแทน • การเขียนผังงานส่วนของการกำหนดค่า หรือการคำนวณค่า นิยมใช้เครื่อง หมายลูกศร () แทนการใช้เครื่องหมายเท่ากับ แต่ใช้เท่ากับก็ไม่ผิด m = 0
START TOTAL= 0 COUNT=0 READ X YES MEAN = TOTAL/COUNT END OF DATA NO TOTAL= TOTAL + X WRITE MEAN COUNT =COUNT+1 STOP WRITE X READ X ตัวอย่างผังงาน
เอกสารอ้างอิง • โลกของคอมพิวเตอร์ สารสนเทศ และอินเทอร์เน็ต โดย ผศ. วาสนา สุขกระสานติ • เทคโนโลยีคอมพิวเตอร์และสารสนเทศ โดย ผศ. ลานนา ดวงสิงห์ • ความรู้ทั่วไปเกี่ยวกับคอมพิวเตอร์ รศ. ประศาสตร์ บุญสนอง
START Read r • area = 22/7*r*r Write r, area STOP แบบฝึกหัดเขียนผังงาน • จากตัวอย่างที่ 1 จงเขียนผังงานของการหาพื้นที่วงกลม
แบบฝึกหัดผังงานและซูโดโค้ดแบบฝึกหัดผังงานและซูโดโค้ด • ตัวอย่างที่ 1 จงเขียนซูโดโค้ดและผังงานเพื่อคำนวณหาผลรวมของเลข 5 ถึง 20 1. สิ่งที่ต้องการจากระบบ = 2. รูปแบบผลลัพธ์ = 3. ข้อมูลเข้า = 4. ตัวแปร= 5. วิธีการประมวลผล =
แบบฝึกหัดผังงานและซูโดโค้ดแบบฝึกหัดผังงานและซูโดโค้ด • ตัวอย่างที่ 2 จงเขียนซูโดโค้ดและผังงานเพื่อ คำนวณหาความยาวของที่ดินแปลงหนึ่งซึ่งมีพื้นที่ 120 ตารางวา และกว้าง 10 วา 1. สิ่งที่ต้องการจากระบบ = 2. รูปแบบผลลัพธ์ = 3. ข้อมูลเข้า = 4. ตัวแปร= 5. วิธีการประมวลผล =
แบบฝึกหัดผังงานและซูโดโค้ดแบบฝึกหัดผังงานและซูโดโค้ด • ตัวอย่างที่ 3 จงเขียนซูโดโค้ดและผังงานเพื่อรับข้อมูลราคาสินค้าต่อหนึ่งชิ้น และจำนวนชิ้นที่ซื้อสินค้านั้น โดยมีเงื่อนไข คือ • ถ้าซื้อน้อยกว่า 6 ชิ้น ลดราคา 10% • ถ้าซื้อตั้งแต่ 6 ชิ้น ขึ้นไป ลดราคา 15% แล้วพิมพ์ราคาสินค้ารวมออกมาแสดงบนหน้าจอ 1. สิ่งที่ต้องการจากระบบ = 2. รูปแบบผลลัพธ์ = 3. ข้อมูลเข้า = 4. ตัวแปร= 5. วิธีการประมวลผล =
แบบฝึกหัดผังงานและซูโดโค้ดแบบฝึกหัดผังงานและซูโดโค้ด • ตัวอย่างที่ 4 จงเขียนซูโดโค้ดและผังงานเพื่อรับข้อมูลตัวเลข 3 จำนวน และพิมพ์เฉพาะเลขที่มีค่าน้อยกว่า 0 ออกมาแสดงบนจอภาพ 1. สิ่งที่ต้องการจากระบบ = 2. รูปแบบผลลัพธ์ = 3. ข้อมูลเข้า = 4. ตัวแปร= 5. วิธีการประมวลผล =
แบบฝึกหัดผังงานและซูโดโค้ดแบบฝึกหัดผังงานและซูโดโค้ด • ตัวอย่างที่ 5 จงเขียนซูโดโค้ดและผังงานเพื่อรับข้อมูลรหัสสินค้าชุดหนึ่ง ไม่ระบุจำนวน แล้วคำนวณหาว่ารับสินค้ามากี่รายการ หากต้องการหยุด ให้ใส่รหัสสินค้าเป็น “xxxx” 1. สิ่งที่ต้องการจากระบบ = 2. รูปแบบผลลัพธ์ = 3. ข้อมูลเข้า = 4. ตัวแปร= 5. วิธีการประมวลผล =
แบบฝึกหัดผังงานและซูโดโค้ดแบบฝึกหัดผังงานและซูโดโค้ด • ตัวอย่างที่ 6 จงเขียนซูโดโค้ดและผังงานเพื่อรับข้อมูลปริมาณน้ำที่มีอยู่ (ลิตร) ถ้าต้องการแบ่งน้ำนั้นใส่ขวด ขวดละ 800 มิลลิลิตร จงเขียนโปรแกรมคำนวณว่าจะเติมน้ำได้เต็มขวดจำนวนกี่ขวด และเหลือน้ำปริมาณเท่าใด 1. สิ่งที่ต้องการจากระบบ = 2. รูปแบบผลลัพธ์ = 3. ข้อมูลเข้า = 4. ตัวแปร= 5. วิธีการประมวลผล =
แบบฝึกหัดผังงานและซูโดโค้ดแบบฝึกหัดผังงานและซูโดโค้ด • ตัวอย่างที่ 7 จงเขียนซูโดโค้ด และผังงานสำหรับอ่านค่าคะแนนสอบวิชาคณิตศาสตร์ของนักเรียน 10 คน ซึ่งมีคะแนนเต็ม 50 คะแนน แล้วคำนวณหาค่าเฉลี่ยของคะแนนสอบนั้น ๆ พร้อมทั้งนับด้วยว่ามีนักเรียนสอบตก (ได้คะแนนน้อยกว่า 25 คะแนน) กี่คน 1. สิ่งที่ต้องการจากระบบ = 2. รูปแบบผลลัพธ์ = 3. ข้อมูลเข้า = 4. ตัวแปร= 5. วิธีการประมวลผล =
แบบฝึกหัดผังงานและซูโดโค้ดแบบฝึกหัดผังงานและซูโดโค้ด ตัวอย่างที่ 9 ถ้ากำหนดให้ a = 3 และ b = -2 ผลลัพธ์เป็นเท่าใด
แบบฝึกหัดผังงานและซูโดโค้ดแบบฝึกหัดผังงานและซูโดโค้ด ตัวอย่างที่ 10 เมื่อพิมพ์ค่า C ทางจอภาพค่า C มีค่าเท่าใด
แบบฝึกหัดผังงานและซูโดโค้ดแบบฝึกหัดผังงานและซูโดโค้ด ตัวอย่างที่ 11
Start J = 0 >= J : 20 Start sum < J = J+2 sum = sum + J แบบฝึกหัดผังงานและซูโดโค้ด ตัวอย่างที่ 12 จงหาว่า Flowchart ต่อไปนี้มีข้อผิดพลาดอยู่กี่ที่
start N I = 1, K = 1 yes I<=N K=1, I=I+2 no >N stop <=N K:N พิมพ์ N K = K+1 แบบฝึกหัดผังงานและซูโดโค้ด ตัวอย่างที่ 13เมื่อให้ค่า N = 5 จงวิเคราะห์ว่าจะมีการพิมพ์ค่าของ N กี่ครั้งจากผังงานต่อไปนี้
Start M Ans = 0, Odd = 1 Odd<=M yes Ans = Ans + Odd Odd = Odd+2 no Ans Stop แบบฝึกหัดผังงานและซูโดโค้ด ตัวอย่างที่ 17Ans มีค่าเท่าไร