การเขียนข้นัตอนวิธีและผงังาน(Flowchart) ·...
Transcript of การเขียนข้นัตอนวิธีและผงังาน(Flowchart) ·...
-
การเขียนขั้นตอนวธีิและผงังาน(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
• จงเขียนขั้นตอนการท างานและผงังาน เพื่อล าดบัขั้นตอนการลงทะเบียนเรียนของมหาวิทยาลยัราชภฏัร้อยเอด็