1.12k likes | 3.12k Views
บทที่ 2 การเขียนผังงาน (Flow Chart). แผนการสอนรายสัปดาห์ที่ 2 สามารถเขียนลำดับขั้นตอนการทำงานได้ เขียนผังงาน Flow Chart และการเขียน Pseudo code ได้อย่างถูกต้องตามแบบแผน. Flow Chart คือ ขั้นตอนที่นำผลที่ได้จากการกำหนดและการ วิเคราะห์ปัญหามาเขียนเป็นแผนภาพหรือสัญลักษณ์
E N D
บทที่ 2 การเขียนผังงาน (Flow Chart)
แผนการสอนรายสัปดาห์ที่ 2 • สามารถเขียนลำดับขั้นตอนการทำงานได้ • เขียนผังงาน Flow Chart และการเขียน Pseudo code ได้อย่างถูกต้องตามแบบแผน
Flow Chart คือ ขั้นตอนที่นำผลที่ได้จากการกำหนดและการ วิเคราะห์ปัญหามาเขียนเป็นแผนภาพหรือสัญลักษณ์ Pseudo code คือ การอธิบายการทำงานของโปรแกรมโดยใช้การผสมผสานระหว่างประโยคภาษาอังกฤษ กับภาษาคอมพิวเตอร์ เพื่อใช้เป็นแนวทางในการเขียนคำสั่งคอมพิวเตอร์ หรือเรียกอีกอย่างหนึ่งว่าการเขียนคำสั่งลำลอง
สัญลักษณ์ในการเขียนผังงาน(1/13)สัญลักษณ์ในการเขียนผังงาน(1/13) • การเขียนผังงานเป็นการนำเอาภาพสัญลักษณ์ต่าง ๆ มาเรียงต่อกัน เพื่อแสดงลำดับขั้นตอนการทำงาน โดยมีเส้นลูกศรเชื่อมระหว่างภาพต่างๆ • สัญลักษณ์ในการเขียนผังงานที่นิยมใช้กันนั้น เป็นสัญลักษณ์ของหน่วยงานที่ชื่อว่า American National Standard Institute (ANSI)และ International Standard Organization (ISO)เป็นผู้กำหนดและรวบรวมให้เป็นสัญลักษณ์มาตรฐานในการเขียนผังงาน
สัญลักษณ์ในการเขียนผังงาน(2/13)สัญลักษณ์ในการเขียนผังงาน(2/13) START STOP read name display area
punch bi b=1 ,…n สัญลักษณ์ในการเขียนผังงาน(3/13) read A punch B , C
สัญลักษณ์ในการเขียนผังงาน(4/13)สัญลักษณ์ในการเขียนผังงาน(4/13) read ID , name
สัญลักษณ์ในการเขียนผังงาน(5/13)สัญลักษณ์ในการเขียนผังงาน(5/13)
สัญลักษณ์ในการเขียนผังงาน(6/13)สัญลักษณ์ในการเขียนผังงาน(6/13) write A display A , B
false i <= 10 true แสดง i สัญลักษณ์ในการเขียนผังงาน(7/13) C = A + B Sum = 0
สัญลักษณ์ในการเขียนผังงาน(8/13)สัญลักษณ์ในการเขียนผังงาน(8/13) for i =1 to 100 sum = sum + i i
สัญลักษณ์ในการเขียนผังงาน(9/13)สัญลักษณ์ในการเขียนผังงาน(9/13) write A A A = 3 1
A = Age สัญลักษณ์ในการเขียนผังงาน(10/13) read A read A
สัญลักษณ์ในการเขียนผังงาน(11/13)สัญลักษณ์ในการเขียนผังงาน(11/13) findGrade
สัญลักษณ์ในการเขียนผังงาน(12/13)สัญลักษณ์ในการเขียนผังงาน(12/13)
สัญลักษณ์ในการเขียนผังงาน(13/13)สัญลักษณ์ในการเขียนผังงาน(13/13)
หลักการจัดภาพผังงาน • ทิศทางของผังงานจะเริ่มจากส่วนบนของหน้ากระดาษ ลงมายังส่วนล่าง และจากซ้ายมือไปของหน้ากระดาษ และควรเขียนเครื่องหมายลูกศรกำกับทิศทางไว้ด้วย • สัญลักษณ์หรือภาพที่ใช้ในการเขียนผังงานมีขนาดต่าง ๆ กันได้ แต่จะต้องมีรูปมาตรฐานตามความหมายที่กำหนด
หลักการจัดภาพผังงาน 3. การเขียนทิศทางของผังงานควรเป็นไปอย่างมีระเบียบ และหลีกเลี่ยงการขีดโยงไปโยงมาในทิศทางตัดกัน ถ้าจำเป็น ต้องโยงถึงกัน ควรใช้เครื่องหมายจุดต่อเนื่องแทนและถ้าเป็นไปได้ควรเขียน ผังงานให้จบในหน้าเดียวกัน 4. คำอธิบายในภาพ เขียนเพียงสั้น ๆ และเข้าใจง่าย 5. ผังงานที่ดีควรจะมีความเป็นระเบียบเรียบร้อยและสะอาด นอกจากนี้แล้ว จะมีชื่อของผังงาน ผู้เขียน วันที่เขียน และเลขหน้าลำดับ
รูปแบบการเขียนผังงาน • แบบตามลำดับ (Sequence) • แบบการเลือก/ตัดสินใจ/เงื่อนไข (Selection/Decision/Condition) • แบบวนซ้ำ (Iteration / Loop)
คำนวณ อ่านข้อมูล งานที่ 1 คำนวณ งานที่ 2 คำนวณข้อมูล คำนวณ งานที่ 3 พิมพ์ผลลัพธ์ รูปแบบตามลำดับ(1/3) • แสดงลำดับการทำงานจากบนลงล่างตามลูกศร
START A , B C = A + B print C STOP รูปแบบตามลำดับ(3/3) เริ่มต้น รับข้อมูลมาเก็บไว้ในตัวแปร A, B ทางแป้นพิมพ์ เอาค่า A บวกกับ B แล้วเก็บไว้ใน C พิมพ์ค่า C จบการทำงาน
แบบทางเลือก • แบบทางเลือกเดียว (IF - THEN) • แบบสองทางเลือก (IF – THEN - ELSE) • แบบหลายทางเลือก (CASE)
จริง จริง เงื่อนไข เงื่อนไข เท็จ เท็จ ประโยคงาน ประโยคงาน 1 ประโยคงาน 2 งานลำดับถัดไป งานลำดับถัดไป แบบทางเลือกเดียว(1/5)
แบบทางเลือกเดียว(2/5) START เริ่มต้น read age รับค่าใส่ตัวแปร age เปรียบเทียบค่า age มากกว่า 60 age > 60 false true ถ้าเป็นจริง พิมพ์ข้อความ You are old ถ้าเป็นเท็จ ไม่ต้องทำอะไร “You are old” จบการทำงาน STOP
แบบทางเลือกเดียว(4/5) • บริษัทแห่งหนึ่งต้องการเพิ่มเงินเดือนให้พนักงานที่มีเงินเดือนต่ำกว่า 5000 อีกคนละ 10% และให้พนักงานทุกคนได้รับโบนัสคนละ 3 เท่าของเงินเดือน ขั้นตอนการประมวลผล • รับค่าชื่อพนักงาน . เงินเดือน • เปรียบเทียบค่า เงินเดือน - ถ้าน้อยกว่า 5000 ให้เงินเดือน = เงินเดือน + (เงินเดือน * 10/100) • คำนวณโบนัส = เงินเดือน * 3 • แสดงผลลัพธ์ • จบการทำงาน
แบบทางเลือกเดียว(5/5) A START read name ,salary bonus = salary * 3 salary < 5000 false Name , salary , bonus true salary = salary + (salary*10/100) STOP A แต่ไม่ต้องเขียนเส้นเชื่อมนี้
จริง เท็จ เงื่อนไข ประโยคงาน1 ประโยคงาน2 งานลำดับถัดไป แบบสองทางเลือก(1/6) • การทำงานขึ้นอยู่กับเงื่อนไข ถ้าเป็นจริงไปทำงานด้านหนึ่ง ถ้าเป็นเท็จ ก็จะไปทำงานอีกอย่างหนึ่ง
START read age false age > 60 true “You are young” “You are old” STOP แบบสองทางเลือก(3/6) เริ่มต้น รับค่าใส่ตัวแปร age เปรีบเทียบค่า age มากกว่า 60 ถ้าเป็นจริง พิมพ์ข้อความ You are old ถ้าเป็นเท็จ พิมพ์ข้อความ You are young จบการทำงาน
แบบสองทางเลือก(5/6) • บริษัทแห่งหนึ่งต้องการเพิ่มเงินเดือนให้พนักงานที่มีเงินเดือนต่ำกว่า 5000 อีกคนละ 10% และพนักงานที่มีเงินเดือนตั้งแต่ 5000 เพิ่ม 5% ให้พนักงานทุกคนได้รับโบนัสคนละ 3 เท่าของเงินเดือน • ขั้นตอนการประมวลผล • รับค่าชื่อพนักงาน . เงินเดือน • เปรียบเทียบค่า เงินเดือน < 5000 • ถ้าเป็นจริง ให้อัตราเพิ่มเงินเดือน = 10/100 • ถ้าเป็นเท็จให้อัตราเพิ่มเงินเดือน = 5/100 • คำนวณเงินเดือน = เงินเดือน + (เงินเดือน * อัตราเพิ่มเงินเดือน) • โบนัส = เงินเดือน * 3 • แสดงผลลัพธ์ • จบการทำงาน
แบบทางเลือกเดียว(6/6) A START salary = salary+(salary * rate) read name ,salary bonus = salary * 3 false salary < 5000 true rate = 5 / 100 rate = 10 / 100 Name , salary , bonus STOP A แต่ไม่ต้องเขียนเส้นเชื่อมนี้
True False เงื่อนไข 1 True False เงื่อนไข 2 คำสั่งที่ 1 True เงื่อนไข 3 False คำสั่งที่ 2 คำสั่งที่ 4 คำสั่งที่ 3 การเลือกหลายทาง(แบบ IF) • เป็นรูปแบบการเลือกการทำงานที่มีทางเลือกมากกว่า 2 ทางขึ้นไป
การเลือกหลายทาง(แบบ IF) Score = mid + final false Score >=80 true false Score >=70 true Grade = ‘A’ false Score >=60 true Grade = ‘B’ false Score >=50 true Grade = ‘C’ Grade = ‘F’ Grade = ‘D’
การเลือกหลายทาง(แบบ CASE) • เป็นรูปแบบการเลือกการทำงานที่มีทางเลือกมากกว่า 2 ทางขึ้นไป เงื่อนไข กรณี 1 กรณี 2 กรณี 3 กรณี 4 คำสั่งที่ 1 คำสั่งที่ 2 คำสั่งที่ 3 คำสั่งที่ 4
การเลือกหลายทาง(แบบ CASE) Score = mid + final score 80..100 70..79 60..69 50..59 0..49 Grade = ‘A’ Grade = ‘B’ Grade = ‘C’ Grade = ‘D’ Grade = ‘F’
แบบวนซ้ำ • แบบกำหนดรอบไว้ล่วงหน้า(Controlled Loop) • แบบตรวจสอบเงื่อนไขก่อน(Pre-Test Condition) • แบบตรวจสอบเงื่อนไขทีหลัง(Post-Test Condition)
แบบกำหนดรอบการทำงานเอาไว้ล่วงหน้าแบบกำหนดรอบการทำงานเอาไว้ล่วงหน้า • มีการกำหนดรอบการทำงานซ้ำไว้ล่วงหน้า เมื่อครบตามจำนวนรอบจึงหยุดทำงานซ้ำแล้วทำคำสั่งต่อไป กำหนดรอบการทำงาน คำสั่งทำซ้ำ 1 คำสั่งทำซ้ำ 2 Next
For N =1 , 5 Print N Next แบบกำหนดรอบการทำงานเอาไว้ล่วงหน้า • ค่า N จะเริ่มต้นที่ 1 และเพิ่มค่าทีละ 1 จนกระทั่ง มากกว่า 5 จึงหยุดการทำงานซ้ำ และทำคำสั่งถัดจาก Next ในแต่ละรอบของงานที่ให้ทำซ้ำคือ พิมพ์ค่าในตัวแปร N ทีละรอบ
แบบตรวจสอบเงื่อนไขก่อนถ้าเป็นจริงแล้วค่อยทำซ้ำแบบตรวจสอบเงื่อนไขก่อนถ้าเป็นจริงแล้วค่อยทำซ้ำ • แบบตรวจสอบเงื่อนไขก่อน ถ้าเงื่อนไขยังเป็นจริงให้ทำงานซ้ำ จนกระทั่งเงื่อนไขเป็นเท็จจึงหยุดทำงานซ้ำ แล้วไปทำงานคำสั่งอื่นถัดไป เงื่อนไข False True คำสั่งงานซ้ำ 1 คำสั่งงานซ้ำ 2
แบบตรวจสอบเงื่อนไขก่อนถ้าเป็นจริงแล้วค่อยทำซ้ำแบบตรวจสอบเงื่อนไขก่อนถ้าเป็นจริงแล้วค่อยทำซ้ำ N = 1 • ตรวจสอบเงื่อนไขถ้า N <= 5 • ให้พิมพ์ ค่า N • เพิ่มค่า N อีก 1 (N=N+1) • กลับไปตรวจสอบเงื่อนไขอีกจนกว่าเงื่อนจะเป็นเท็จ จึงหยุดทำงานซ้ำ แล้วไปทำงานคำสั่งอื่น N <=5 False True Print N N = N+1
แบบทำซ้ำก่อนแล้วค่อยตรวจเงื่อนไขแบบทำซ้ำก่อนแล้วค่อยตรวจเงื่อนไข • แบบให้ทำงานในคำสั่งทำซ้ำก่อน แล้วค่อยตรวจสอบเงื่อนไข ถ้าเงื่อนไขยังเป็นเท็จให้กลับไปทำงานในคำสั่งทำซ้ำอีก จนกระทั่งตรวจสอบแล้วเงื่อนเป็นจริง จึงหยุด แล้วไปทำงานคำสั่งอื่น คำสั่งงานซ้ำ 1 คำสั่งงานซ้ำ 2 False เงื่อนไข True
แบบทำซ้ำก่อนแล้วค่อยตรวจเงื่อนไขแบบทำซ้ำก่อนแล้วค่อยตรวจเงื่อนไข ตรวจสอบเงื่อนไข ถ้าเป็นเท็จให้กลับไปทำงานคำสั่งซ้ำอีกรอบ • กำหนดค่าตัวแปร N มีค่าเท่ากับ 1 N = 1 • ให้พิมพ์ค่าในตัวแปร N Print N • เพิ่มค่าให้ตัวแปร N อีก 1 N = N+1 False N > 5 True ถ้า N > 5 เป็นจริงให้หยุดทำงานซ้ำ
The End Week 3 ทำแบบฝึกหัด