You are on page 1of 27

บทที่ 1

ผังงานโปรแกรม
(Program Flowchart)

ผู้สอน : ครู พนัส กันแก้ ว


1
ผังงานโปรแกรม
(Program Flowchart)
ขัน
้ ตอนการพัฒนาโปรแกรม
การวิเคราะห์ ปัญหา
การเขียนผังงาน
ผังงานแบบลำดับ
ผังงานแบบเงื่อนไข
ผังงานแบบวนซ้ำ

2
1.1 ขั้นตอนพัฒนาโปรแกรม Problem
กำหนดปั ญหา
การพัฒนาโปรแกรม 5 ขัน้ ตอน
1. กำหนดปั ญหา Analysis
วิเคราะห์ ปัญหา
2. วิเคราะห์ ปัญหา
3. เขียนผังงาน Flowchart
4. เขียนโปรแกรม เขียนผังงาน
5. ทดสอบโปรแกรม
Input
Input Program Output
Output
ข้ อมูล เขียนโปรแกรม ผลลัพธ์

ปั ญหาคืออะไร? คำ Testing
ทดสอบโปรแกรม
ตอบ ที่ต้องการคือ
อะไร 3
1.2

วิ เ คราะห์ ป
ั ญหา
วิเคราะห์ ปัญหา (Problem Analysis): 3 ขันตอน

◦ การรับข้ อมูล (Input Data)
◦ การคำนวณ (Process)
◦ การแสดงผลลัพธ์ (Output Result)

 ข้ อมูล input และ Output ในโปรแกรมจะต้ อง


เก็บใน Memory
 ผ่ านตัวแปร (Variables)
 เช่ น X, Y, …

4
ตัวอย่าง 1.1
การวิเคราะห์ ปัญหาการคำนวณผลบวก ที่คล้ ายการ
ทำงานของเครื่องคิดเลขอย่ างง่ าย
ตัวแปร X, Y สำหรั บเก็บค่ าของเลข 2 ค่ า
ตัวแปร Sum สำหรั บเก็บผลลัพธ์
การวิเคราะห์ ปัญหา Memory
X
 1. Input: รับค่า X, Y Y
Sum
 2. Process: คำนวณ Sum = X + Y
 3. Output: พิมพ์คา่ Sum …

5
ตัวอย่าง 1.2
การวิเคราะห์ปัญหา การคำนวณค่าเฉลี่ยของเลข
3ค่า และแสดงค่าเฉลี่ย ทางจอภาพ
ตัวแปร X1, X2, X3 สำหรับเก็บค่ าของเลข 3 ค่ า
ตัวแปร Sum สำหรับเก็บผลบวก
ตัวแปร Mean สำหรับเก็บค่ าเฉลี่ย
การวิเคราะห์ ปัญหา Memory
 1. Input: รั บค่ า X1, X2, X3 X1
X2
 2. Process: Sum = X1 + X2 + X3 X3
Sum
Mean = Sum/3 Mean

 3. Output: พิมพ์ ค่า Mean
6
ตัวการวิ

อย่เคราะห์
าง 1.3ปัญหา การคำนวณค่ าเฉลี่ยของเลข N
ค่ า เมื่อ ค่ าเฉลี่ย = åiN Xi / N)
ตัวแปร N สำหรั บเก็บจำนวนค่ า
ตัวแปร X สำหรั บเก็บค่ าของเลข N ค่ า (เป็ นข้ อมูลเข้ าในแต่ ละรอบ)
ตัวแปร Sum สำหรั บเก็บผลบวก (แบบสะสมในแต่ ละรอบ)
ตัวแปร Mean สำหรั บเก็บค่ าเฉลี่ย
การวิเคราะห์ ปัญหา
Memory
1. Input: รับค่ า N (1 ค่ า) และค่ า X (N ค่ า) โดยรับรอบละค่ า N
2. Process: ในแต่ ละรอบ (i=1, 2, … , N) X
รับค่ า X Sum
คำนวณ Sum = Sum + X Mean
จบการทำงานซ้ำ (เมื่อทำซ้ำครบ N รอบ)
คำนวณ Mean = Sum/N …
3. Output: พิมพ์ ค่า Mean

7
1.3 การเขี ย นผั ง งาน
 ผังงาน (Flowchart) เป็ นแผนภาพ ที่ใช้ อธิบายขันตอนและลำดั
้ บการ
ทำงานของโปรแกรมตังแต่
้ เริ่ มจนจบ
สัญลักษณ์พื ้นฐาน ทีใช้ ในผังงาน
แสดงจุดเริ่มต้ น หรือจุดจบของผังงาน
แสดงทิศทางของการดำเนินงาน
แสดงการคำนวณ 
แสดงการรั บข้ อมูล หรือแสดงผล (ไม่ ระบุชนิดอุปกรณ์ )
การแสดงผลทางจอภาพ
การแสดงผลทางเครื่องพิมพ์
แสดงการทดสอบเงื่อนไข (เมื่อมีทางเลือก)
แสดงจุดเชื่อมต่ อในผังงาน 8
รูปแบบของผังงาน
ผังงานแบบลำดับ
ผังงานแบบเงื่อนไข
ผังงานแบบวนซ้ำ

9
1.3.1 ผังงานแบบลำดับ
Flowchart แบบลำดับ (Sequence)
start
แสดงขันตอนการทำงานที
้ ่ทำงานตามลำดับ
Input (จากบนลงล่าง) ไม่มีการข้ ามขัน้ หรื อย้ อน
Process กลับ)
Output

end
10
ตัวอย่าง 1.4
แสดง Flowchart ของการหาผลบวก (Sum) ของ
ข้ อมูล 2 ค่ า (X, Y) พร้ อมแสดงผลบวก
start

Memory
Input X,Y
X 50
Y 100

Sum = X+Y Sum 150

Print Sum …

end
11
1.3.2 ผังงานแบบเงื่อนไข
แสดงการทำงานตามเงื่อนไข
ที่จะต้ องเลือกทำอย่ างใดอย่ างหนึ่ง
ซึ่งมี 3 กรณี คือ เลือกจาก 1, 2, หรื อ n
1. เงื่อนไขทางเลือกจาก 1 เส้ นทาง

check
condition
yes
Statement(s) จะทำงาน (Statement)
no
เมื่อเงื่อนไขเป็ นจริง
เท่ านัน้
12
ตัวอย่าง 1.5
แสดง Flowchart เพื่อตรวจสอบเงื่อนไข Memory

เพื่อคัดเลือกที่สอบผ่ าน (คะแนน X ³ X

60 ) และแสดงผลเฉพาะผู้ท่ ส ี อบผ่ าน …
start

Input ID,X

X >= 60 yes
Print ID,X
no

end
13
ผังงาน-เงื่อนไข
2. เงื่อนไขทางเลือกจาก 2 เส้ นทาง
check
yes condition no

statement 1 statement 2

เมื่อเงื่อนไขเป็ นจริงจะทำ (Statement 1)


เมื่อเงื่อนไขเป็ นเท็จจะทำ (Statement 2)
14
ตัวแสดง

อย่Flowchart
าง 1.6เพื่อแบ่งนักศึกษาเป็ น 2 กลุ่ม
ตามเพศ คือ ชาย (Male) หรือหญิง (Female)
start

Input ID,
Name,Gender

Gender=‘M’ Print “Male”


yes
no

Print “Female”

end
15
ผังงาน-เงื่อนไข
3. เงื่อนไขทางเลือกจาก n เส้ นทาง cond1
no
yes statement1

เมื่อเงื่อนไข 1 เป็ นจริงจะทำคำสั่ง 1 (statement1) cond2


no
yes statement2

ถ้ าไม่ แต่ เงื่อนไข 2 เป็ นจริงจะทำคำสั่ง 2 (statement2) cond3 yes statement3


no
...

condn-1yes statement n-1


ถ้ าไม่ แต่ เงื่อนไข n-1 เป็ นจริงจะทำคำสั่ง n-1 (statement n-1) no

statement n

ถ้ าไม่ จะทำคำสั่งสุดท้ าย คือ n (statement n)

16
ตัแสดง
วอย่Flowchart
าง 1.7
start

Input ID
Name,X
 เพื่อตัดเกรดตาม
คะแนน พร้ อมแสดงผลทางลัพธ์ X ³ 80
no
yes
Grade = ‘A’
Memory
X ³ 70 yes
Grade = ‘B’
ID
เงื่อนไข >>> Name
.…
..
no

คะแนน 80-100 เกรด A X ³ 60


no
yes
Grade = ‘C’

คะแนน 70-79 เกรด B X


Grade X ³ 50 yes
Grade = ‘D’

คะแนน 60-69 เกรด C no

Grade = ‘F’
คะแนน 50-59 เกรด D
คะแนน < 50 เกรด F Print Grade

end
17
1.3.3
การทำซ้ำ
ผังงานแบบวนซ้ำ
(Looping) แบ่ งเป็ น 3 กรณี
while, do-while, for
1. การทำซ้ำที่มีเงื่อนไขแบบ while

ตรวจสอบเงื่อนไขก่ อน
exit loopจะทำงาน (Statement) ซ้ำ
check
condition no

yes เมื่อเงื่อนไขเป็ นจริง


statement(s) (ออกจากทำซ้ำเมื่อเงื่อนไขเป็ นเท็จ)
18
ตัวแปร ในการทำซ้ำ
การทำซ้ำ (ขันพื
้ ้นฐาน) ที่นิยม คือ กำหนดตัวแปรเก็บค่า
เลขนับ (เช่น I = 1, 2, 3, … , 100) เพื่อควบคุมรอบการทำซ้ำ
1 1 1

◦กำหนดค่า I = 1,1 2, 3, ..., 99, 100 100


start
3 คำสั่งในการทำซ้ำ I=1
ค่ าเริ่มต้ น I=1 while I<=100
no
yes
ค่ าสุดท้ าย I=100 Print I
end

ค่ าเพิ่ม I=I+1
I = I+1

19
ตัแสดง

วอย่Flowchart
าง 1.8เพื่อคำนวณ ผลบวกของเลขนับ
1+2+...+100 (ด้ วยคำสั่ง while) Memory

◦ กำหนดค่ า I = 1, 2, 3, ..., 100 I


SUM

คำนวณ SUM = 1+2+3+...+100


start …
3 คำสั่งในการทำซ้ำ
I=1
ค่ าเริ่มต้ น I=1 SUM = 0
ค่ าสุดท้ าย I=100
while I<100
ค่ าเพิ่ม I=I+1 yes
no

ค่ า SUM เริ่มต้ น SUM=0 SUM = SUM+I


Print SUM
ค่ า SUM เพิ่ม SUM+I I = I+1
end
20
ผังงาน-ทำซ้ำ
2. การทำซ้ำที่มีเงื่อนไขแบบ do-while

ทำงาน (Statement) ก่ อน
statement(s)
จึงทำการตรวจเงื่อนไข
exit loopและทำซ้ำถ้ าเงื่อนไขเป็ นจริ ง
check
condition no

yes
(จนกระทั่งเงื่อนไขเป็ นเท็จจึง
ออกจากทำงานซ้ำ)
21
ตัแสดง

วอย่Flowchart
าง 1.9 เพื่อคำนวณ ผลบวกของเลขนับ
1+2+...+100 (ด้ วยคำสัง่ do-while) Memory

◦ กำหนดค่า I = 1, 2, 3, ..., 100 I


SUM

คำนวณ SUM = 1+2+3+...+100start …


3 คำสั่งในการทำซ้ำ I=1
ค่ าเริ่มต้ น I=1 SUM = 0

ค่ าสุดท้ าย I=100 SUM = SUM+I


ค่ าเพิ่ม I=I+1 I = I+1
ค่ า SUM เริ่มต้ น SUM=0 no Print SUM
ค่ า SUM เพิ่ม SUM+I while I<100 22
yes
end 22
ผังงาน-ทำซ้ำ
3. การทำซ้ำตามจำนวนที่ระบุ
ทำงานตามรอบที่กำหนด
for i=1 to N i>N
exit loop โดยเริ่ มจากรอบเริ่ มต้ น (i=1)
i£N

statement(s)
ไปยังรอบสุดท้ าย (i=N)
(แต่ละรอบปกติจะเพิ่มทีละ 1 ค่า
(i = i+1))
(ออกจากทำงานซ้ำเมื่อ i > N)
23
ตัวอย่าง 1.10
แสดง Flowchart เพื่อคำนวณ ผลบวก ของเลข
นับ1+2+...+100 (ด้ วยคำสัง่ for) Memory

◦ กำหนดให้ I = 1, 2, 3, ..., 100 I


SUM

คำนวณ SUM = 1+2+3+...+100


start …
3 ค่ าในการทำซ้ำ SUM = 0
ค่ าเริ่มต้ น I=1
ค่ าสุดท้ าย I=100 for I=1 to 100
no

ค่ าเพิ่ม I=I+1 yes


Print SUM
SUM = SUM+I
กำหนดใน for เดียว
end
24
ตัวอย่าง 1.11
แสดง Flowchart เพื่อคำนวณ ผลคูณ 1x2x...x10
◦ กำหนดให้ I = 1, 2, 3, ..., 10 Memory

คำนวณ MUL = 1x2x3x...x10 I


MUL

3 ค่ าในการทำซ้ำ start

ค่ าเริ่มต้ น I=1 MUL = 1
ค่ าสุดท้ าย I=10
for I=1 to 10
ค่ าเพิ่ม I=I+1 yes
no

กำหนดใน for เดียว MUL = MUL x I


Print MUL

end
25
ตัวอย่าง 1.12
แสดง Flowchart เพื่อคำนวณ สูตรคูณแม่ T (เช่น T=2)
กำหนด i=1, 2, …, 12, และ R = T x i
start Txi=R
2x1=2
Memory Input T 2x2=4
2x3=6
T 2x4=8
i i > 12
for i=1 to 12 2 x 5 = 10
R i <=12 2 x 6 = 12
end 2 x 7 = 14
… R=Txi 2 x 8 = 16
2 x 9 = 18
2 x10 = 20
Print T, i, R 2 x11 = 22
2 x12 = 24
26
ตัแสดง

วอย่Flowchart
าง 1.13 เพื่อคำนวณค่าเฉลี่ยของข้ อมูล N ค่า
ข้ อมูลแต่ละค่าเก็บใน X รอบละค่า (X1, X2, ..., XN)
เมื่อ ค่าเฉลี่ย (åi Xi/N)
N

start

Sum = 0
Memory Sum
N =0
Input N N = _5
X x1 = 60
_ 60
Sum
for i=1 to N i>N x2 = 50
_ 110
Mean
i£N x3 = 25
_ 135
Mean = Sum/N
… Input X x4 = 30
_ 165
x5 = 80
_ 245
Print Mean
Sum=Sum+X Mean = 245/5 =49
end 27

You might also like