Post on 30-Jan-2021
transcript
การเขียนขั้นตอนวธีิและผงังาน(Flowchart)
การเขียนขั้นตอนวธีิ
• การเขียนขั้นตอนวิธี เป็นการเขียนอธิบายขั้นตอนการท างาน หรือขั้นตอนของค าสัง่ มีวิธีเขียนไดส้องแบบ – PseudoCode (รหสัล าลอง หรือรหสัเทียม) – Flowchart (ผงังาน)
Pseudocode (รหสัเทียม)
• เป็นการเขียนขั้นตอน จ าลองการเขียนโปรแกรม โดยไม่ค านึงถึงไวยากรณ์ภาษาคอมพิวเตอร์
• ใชภ้าษาท่ีกระชบั แต่มีโครงสร้างเหมือนโปรแกรมคอมพิวเตอร์ • ไม่ค านึงถึงการประกาศตวัแปร หรือ subroutine • พฒันามาจากการเขียนขั้นตอนวิธีแบบบรรยายความ • ใชภ้าษาองักฤษทัว่ ๆ ไป
ขั้นตอนการส่งจดหมาย
ขั้นตอนวธีิการส่งจดหมาย
1. จ่าหนา้ซองจดหมาย 2. ใส่จดหมายลงในซอง 3. ปิดผนึกซองจดหมาย 4. ตรวจสอบแสตมป์ ถา้ไม่มีใหไ้ปซ้ือแสตมป์ 5. ติดแสตมป์
6. จบการท างาน
หุงขา้ว
ขั้นตอนวธีิการหุงขา้ว
1. ใส่ขา้วลงในหมอ้หุงขา้ว 2. เติมน ้าลงในหมอ้ 3. ตรวจสอบปริมาณน ้า
4. ถา้ระดบัน ้าไม่พอดีให ้ปรับ เพิ่ม-ลด 5. เสียบปลัก๊ไฟ 6. กดปุ่ มเปิดสวิทชไ์ฟหมอ้หุงขา้ว
7. จบการท างาน
pseudocode การตรวจสอบบตัรเครดิต ถา้หมายเลขบตัรเครดิตถูกตอ้ง
ใหท้ าการหกับญัชีตามจ านวนท่ีระบุ
ถา้ไม่ถูกตอ้ง
ใหแ้สดงขอ้ความผิดพลาด
if credit card number is valid execute transaction based on number and order else show a generic failure message end if
pseudocode การตรวจสอบบตัรเครดิต
pseudocode การค านวณพ้ืนท่ีส่ีเหล่ียมผนืผา้
READ height of rectangle
READ width of rectangle COMPUTE area as height times width
อ่านค่าความสูงของส่ีเหล่ียมผนืผา้
อ่านค่าความกวา้งของส่ีเหล่ียมผนืผา้
ค านวณพ้ืนท่ีส่ีเหล่ียมจากความกวา้งคูณความสูง
pseudocode การเคล่ือนท่ีของหุ่นยนต ์ถา้ขา้งหนา้ไม่มีส่ิงกีดขวาง
ใหเ้คล่ือนท่ีหุ่นยนต ์
เกบ็ค าสัง่ท่ีเคล่ือนท่ีไว ้
ส่งค่ากลบัเป็นจริงเพ่ือใหรู้้วา่เคล่ือนท่ีได ้
ถา้มีส่ิงกีดขวาง
ใหส่้งค่ากลบัเป็นเทจ็
ไม่เคล่ือนท่ี
ตวัอยา่ง pseudocode การเคล่ือนท่ีของหุ่นยนต ์
IF robot has no obstacle in front THEN
Call Move robot
Add the move command to the command
history
RETURN true ELSE
RETURN false without moving the robot END IF
การทดลอง
• จงเขียนขั้นตอนการท าไข่เจียว • จงเขียนขั้นตอนการเดินทางจากบา้นหรือหอพกั มายงั
หอ้งเรียน
ผงังาน (Flowchart)
• การเขียนขั้นตอนวิธีในแบบสญัลกัษณ์ ช่วยใหไ้ม่ตอ้งตีความ จุดเร่ิมตน้/ส้ินสุด (Terminator)
ขอ้มูล น าเขา้/ส่งออก (Input / Output) ประมวลผล (Process)
ตดัสินใจ (Decision)
ทิศทาง (Direction)
จุดต่อเช่ือม (Connector)
ชนิดของผงังาน
1. ผงังานระบบ(System Flowchart) • แสดงภาพการท างานกวา้ง ๆ ของระบบ • แสดงขั้นตอนการท างานอยา่งไรของระบบ แต่ไม่เจาะลึกลงไปวา่ใน
ระบบวา่ในแต่ละงานนั้นมีการท างานอยา่งไร • แสดงจุดเร่ิมตน้ของงานเร่ิมจากส่วนใด เป็นขอ้มูลแบบใด มีการ
ประมวลผลอยา่งไร และจะไดผ้ลลพัธ์เป็นอยา่งไรและเกบ็อยูท่ี่ใด
ชนิดของผงังาน
2. ผงังานโปรแกรม (Program Flowchart) • แสดงล าดบัขั้นตอนในการท างานของโปรแกรม ตั้งแต่การรับขอ้มูล
การประมวลผล ตลอดจนผลลพัธ์ท่ีได ้ • ช่วยท าใหเ้ขียนโปรแกรมสะดวกข้ึน • อาจสร้างมาจากผงังานระบบ โดยดึงเอาจุดท่ีเก่ียวขอ้งกบัคอมพิวเตอร์
มาวิเคราะห์วา่จะใชท้ างานส่วนใด เพื่อท่ีจะใหไ้ดม้าซ่ึงผลลพัธ์ท่ีตอ้งการ
ประโยชน์ของการเขียนผงังาน
• ท าใหเ้ขา้ใจและแยกแยะปัญหาต่าง ๆ ไดง่้ายข้ึน • ผูเ้ขียนโปรแกรมมองเห็นล าดบัการท างาน รู้วา่ส่ิงใดควรท าก่อน ส่ิงใด
ควรท าหลงั • สามารถหาขอ้ผดิพลาดของโปรแกรมไดง่้าย
• ท าใหผู้อ่ื้นเขา้ใจการท างานไดง่้ายกวา่การดูจาก source code • ไม่ข้ึนกบัภาษาคอมพิวเตอร์ภาษาใดภาษาหน่ึง ผูอ่้านสามารถเรียนรู้
และเขา้ใจไดง่้าย
ขอ้ก าหนดการเขียนผงังาน
1. ใชส้ัญลกัษณ์ท่ีมีรูปแบบเป็นมาตรฐาน 2. ขนาดของสญัลกัษณ์ข้ึนอยูก่บัความเหมาะสม 3. ควรเขียนทิศทางการไหลของขอ้มูล เร่ิมจากบนลงล่าง หรือจากซา้ย
ไปขวา และควรท าหวัลูกศรก ากบัทิศทางดว้ย 4. การเขียนค าอธิบายใหเ้ขียนภายในสญัลกัษณ์ ใชข้อ้ความท่ีเขา้ใจง่าย
สั้นและชดัเจน
5. พยายามใหเ้กิดจุดตดันอ้ยท่ีสุด หรืออาจใชส้ญัลกัษณ์ท่ีเรียกวา่ "ตวัเช่ือม" (Connector) แทนเพื่อหลีกเล่ียงขอ้ผดิพลาดท่ีอาจเกิดข้ึน
6. หากเป็นไปไดค้วรเขียนผงังานใหจ้บภายในหนา้เดียวกนั 7. ผงังานท่ีดีควรเป็นระเบียบเรียบร้อย สะอาด ชดัเจน เขา้ใจและติดตาม
ขั้นตอนไดง่้าย
8. จุดเร่ิมตน้และส้ินสุดของงาน ควรมีเพียงจุดเดียว
ขอ้ก าหนดการเขียนผงังาน
รูปแบบผงังาน
• Sequence
• Selection
• Iteration
ล าดบั (sequence)
ทางเลือก (selection)
Y N
วงวน(iteration)
เร่ิมตน้
จ่าหนา้ซองจดหมาย
ใส่จดหมายลงในซอง
ปิดผนึกซองจดหมาย
มีแสตมป์ ? ไปซ้ือแสตมป์
ติดแสตมป์
จบ
ไม่มี
มี
ตวัอยา่งผงังาน การส่งจดหมาย
เร่ิม
อายมุากกวา่ 7 ปี ?
อายมุากกวา่ 3 ปี ?
อายมุากกวา่ 1 ปี ?
รับประทาน 2 ชอ้นชา
รับประทาน 1 ชอ้นชา
รับประทาน ½ ชอ้นชา
หา้มรับประทาน
จบ
y
y
y
N
N
N
ตวัอยา่งผงังาน การรับประทานยา
ตวัอยา่งผงังาน การบวกเลขสามจ านวน
ขั้นตอนการท างาน
• อ่านค่าตวัเลข 3 จ านวน • น าเลข 3 จ านวนมาบวกกนั • แสดงผลบวก • จบการท างาน
ตวัอยา่งผงังาน การบวกเลขสามจ านวน
Start
Read Num1, Num2, Num3
SUM = Num1 + Num2 + Num3
Display SUM
End e
ตวัอยา่งผงังานการหาค่านอ้ยกวา่ของเลขสองจ านวน
Start
Read Num1, Num2
Display Num1
End
Num1 > Num 2
Display Num2
y
n
Num1 = 10, Num2 = 20
10 >20 ?
10
ตวัอยา่งผงังานการหาค่านอ้ยกวา่ของเลขสองจ านวน
Start
Read Num1, Num2
Display Num1
End
Num1 > Num 2
Display Num2
y
n
Num1 = 12, Num2 = 5
12 >5 ?
5
ตวัอยา่งผงังานการหาค่านอ้ยท่ีสุดของเลขสามจ านวน Start
Read Num1, Num2, Num3
End
min > Num2
Display min
y
n
min > Num3
min = Num1
min = Num2
min = Num3 n
y
Num1 = 5, Num2 = 8, Num3 = 2
min = 5
min = 5
min = 2
ตวัอยา่งผงังานการหาค่านอ้ยท่ีสุดของเลขสามจ านวน Start
Read Num1, Num2, Num3
End
min > Num2
Display min
y
n
min > Num3
min = Num1
min = Num2
min = Num3 n
y
Num1 = 6, Num2 = 3, Num3 = 5
min = 6
min = 3
min = 3
ตวัอยา่งผงังานการหาค่านอ้ยท่ีสุดของเลขสามจ านวน Start
Read Num1, Num2, Num3
End
min > Num2
Display min
y
n
min > Num3
min = Num1
min = Num2
min = Num3 n
y
Num1 = 2, Num2 = 9, Num3 = 7
min = 2
min = 2
min = 2
ตวัอยา่งผงังาน การค านวณภาษี
ขั้นตอนการท างาน • ป้อนเงินเดือน
• ค านวณภาษีจาก 10% ของเงินเดือน • พิมพ ์เงินเดือน และภาษี
Input salary
START
Tax = salary * 0.1
Print salary, tax
STOP
ตวัอยา่งผงังาน การค านวณภาษี
ตวัอยา่งผงังาน การค านวณภาษี เพ่ิมการวนซ ้ า
N
Y
Input salary
START
Tax = salary * 0.1
Print salary, tax
Salary = 0.0
STOP
Input salary
1
2
3
4
5
6
7
8
START
Input salary
Bonus = 10000
Salary = salary + Bonus
Salary = salary + salary
Salary = salary + salary
Salary = 100
Bonus = Bonus - 3000
STOP
Salary = 5000
Bonus = 10000
Salary = 5000 + 10000 = 15000
Salary = 15000 + 15000 = 30000
Bonus = 10000 – 3000 = 7000
Salary = 30000 + 30000 = 60000
Salary = 100
ค่าของตวัแปรจะเป็นค่าหลงัสุดเสมอ
N Y
Input salary
START
Tax = salary * 0.1
Print salary, tax
Salary = 0 0
STOP
T_sal = T_sal + salary T_tax = T_tax + tax
Print T_sal, T_tax
Input salary
salary Tax T_salary T_tax
10000 1000 10000 1000
15000 1500 25000 2500
12000 1200 37000 3700
20000 2000 57000 5700
18000 1800 75000 7500
การสะสมค่า
Y
START
X = 1
TOTAL = 0
TOTAL = TOTAL + X
X > 10 ?
X = X + 1
N
Print TOTAL
STOP
รูปท่ี 8
บวกเลข 1 - 10
x Total
1 0+1 = 1
2 1+2=3
3 3+3=6
4 6+4=10
5 10+5=15
6 15+6=21
7 21+7=28
8 28+8=36
9 36+9=45
10 45+10=55
แบบฝึกหดั
• จงเขียนขั้นตอนการท างานและผงังาน เพื่อตรวจสอบยอดเงินในธนาคารผา่นตู ้ATM
• จงเขียนขั้นตอนการท างานและผงังาน เพื่อล าดบัขั้นตอนการลงทะเบียนเรียนของมหาวิทยาลยัราชภฏัร้อยเอด็