Upload
hpong-js
View
93
Download
0
Embed Size (px)
Citation preview
ผั�งงานโปรแกรมProgram Flowchart
Outline
o ขั้� นตอนการพั�ฒนาโปรแกรมภาษา
o การวิ�เคราะห์�ป�ญห์าo การเขั้�ยนผั�งงานo ผั�งงานแบบลำ"าดั�บขั้� นo ผั�งงานแบบเง$%อนไขั้o ผั�งงานแบบวินซ้ำ" า
การพั�ฒนาโปรแกรม 5 ขั้� นตอน
Problemก"าห์นดัป�ญห์า
Analysisวิ�เคราะห์�ป�ญห์า
Flowchartเขั้�ยนผั�งงาน
Testingทดัสอบโปรแกรม
Inputขั้*อม+ลำ
Programเขั้�ยนโปรแกรมป�ญห์าค$ออะไร?
ค"าตอบ ท�%ต*องการค$ออะไร
ขั้� นตอนการพั�ฒนาโปรแกรม
Outputผัลำลำ�พัธ์�
1. ก"าห์นดัป�ญห์า2. วิ�เคราะห์�ป�ญห์า3. เขั้�ยนผั�งงาน4. เขั้�ยนโปรแกรม4. ทดัสอบโปรแกรม
วิ�เคราะห์�ป�ญห์า (Problem Analysis): 3 ขั้� นตอน• การร�บขั้*อม+ลำ (Input Data)• การค"านวิณ (Process)• การแสดังผัลำลำ�พัธ์� (Output Result)
ขั้*อม+ลำ input แลำะ Output ในโปรแกรมจะต*องเก0บใน Memory ผั1านต�วิแปร (Variables) เช่1น X, Y, …
วิ�เคราะห์�ป�ญห์า
การวิ�เคราะห์�ป�ญห์าการค"านวิณผัลำบวิกท�%คลำ*าย การท"างานขั้องเคร$%องค�ดัเลำขั้อย1างง1าย o ต�วิแปร X, Y ส"าห์ร�บเก0บค1าขั้องเลำขั้ 2 ค1า o ต�วิแปร Sum ส"าห์ร�บเก0บผัลำลำ�พัธ์�
การวิ�เคราะห์�ป�ญห์า1. Input: ร�บค1า X, Y 2. Process: ค"านวิณ Sum = X + Y3. Output: พั�มพั�ค1า Sum
ต�วิอย1าง 1
Memory
X
YSum
การวิ�เคราะห์�ป�ญห์า การค"านวิณค1าเฉลำ�%ยขั้องเลำขั้ 3 ค1า แลำะแสดังค1าเฉลำ�%ยทางจอภาพัo ต�วิแปร X1, X2, X3 ส"าห์ร�บเก0บค1าขั้อง
เลำขั้ 3 ค1า o ต�วิแปร Sum ส"าห์ร�บเก0บผัลำบวิกo ต�วิแปร Mean ส"าห์ร�บเก0บค1าเฉลำ�%ยการวิ�เคราะห์�ป�ญห์า1. Input: ร�บค1า X1, X2, X3 2. Process: Sum = X1 + X2 + X3 Mean = Sum/3 3. Output: พั�มพั�ค1า Mean
ต�วิอย1าง 2
Memory
X1X2
X3Sum
Mean
การวิ�เคราะห์�ป�ญห์า การค"านวิณค1าเฉลำ�%ยขั้องเลำขั้ N ค1า เม$%อ ค1าเฉลำ�%ย = åi
N Xi / N)o ต�วิแปร N ส"าห์ร�บเก0บจ"านวินค1า o ต�วิแปร X ส"าห์ร�บเก0บค1าขั้องเลำขั้ N ค1า (เป4นขั้*อม+ลำ
เขั้*าในแต1ลำะรอบ) o ต�วิแปร Sum ส"าห์ร�บเก0บผัลำบวิก (แบบสะสมใน
แต1ลำะรอบ)o ต�วิแปร Mean ส"าห์ร�บเก0บค1าเฉลำ�%ย
การวิ�เคราะห์�ป�ญห์า1. Input: ร�บค1า N (1 ค1า) แลำะค1า X (N ค1า) โดัยร�บรอบลำะค1า 2. Process: ในแต1ลำะรอบ (i=1, 2, … , N)
ร�บค1า Xค"านวิณ Sum = Sum
+ X จบการท"างานซ้ำ" า (เม$%อท"าซ้ำ" าครบ
N รอบ) ค"านวิณ Mean = Sum/N
3. Output: พั�มพั�ค1า Mean
ต�วิอย1าง 3
Memory
NX
SumMean
สั�ญลั�กษณ์พื้��นฐาน ที�ใช้�ในผั�งงาน แสดังจ5ดัเร�%มต*น ห์ร$อจ5ดัจบขั้องผั�งงานแสดังท�ศทางขั้องการดั"าเน�นงาน
แสดังการร�บขั้*อม+ลำ ห์ร$อแสดังผัลำ (ไม1ระบ5ช่น�ดัอ5ปกรณ�)
การแสดังผัลำทางเคร$%องพั�มพั� แสดังการทดัสอบเง$%อนไขั้ (เม$%อม�ทางเลำ$อก) แสดังจ5ดัเช่$%อมต1อในผั�งงาน
การแสดังผัลำทางจอภาพั
ผั�งงาน (Flowchart) เป็�นแผันภาพื้ ที��ใช้�อธิ�บายขั้��นตอนแลัะลั%าดั�บการที%างานขั้องโป็รแกรมต��งแต*เร��มจนจบ
การเขั้�ยนผั�งงาน
แสดังการค"านวิณ
o 1. ผั�งงานแบบลำ"าดั�บo 2. ผั�งงานแบบเง$%อนไขั้ o 3. ผั�งงานแบบวินซ้ำ" า
ร+ปแบบขั้องผั�งงาน
Print A
start
A = W*L
Read W, L
end
checkcondition
statement 1 statement 2
yes no
checkcondition
statement (s)
exit loop
yesno
1. ผั�งงานแบบลำ"าดั�บ
Flowchart แบบลำ"าดั�บ (Sequence)
แสดังขั้� นตอนการท"างานท�%ท"างานตามลำ"าดั�บ(จากบนลำงลำ1าง) ไม1ม�การขั้*ามขั้� น ห์ร$อย*อนกลำ�บ
Output
start
Process
Input
end
Print Sum
start
Sum = X+Y
Input X, Y
end
Memory
XY
Sum
แสดัง Flowchart ขั้องการห์าผัลำบวิก (Sum) ขั้องขั้*อม+ลำ 2 ค1า (X, Y) พัร*อมแสดังผัลำบวิก
ต�วิอย1างท�% 4
50
100150
แสดังการท"างานตามเง$%อนไขั้ ท�%จะต*องเลำ$อก ท"าอย1างใดัอย1างห์น7%ง ซ้ำ7%งม� 3 กรณ� ค$อ
1 .เง$%อนไขั้ทางเลำ$อกจาก 1 เส*นทาง2 .เง$%อนไขั้ทางเลำ$อกจาก 2 เส*นทาง3 .เง$%อนไขั้ทางเลำ$อกจาก n เส*นทาง
2. ผั�งงานแบบเง$%อนไขั้
1. เง$%อนไขั้ทางเลำ$อกจาก 1 เส*นทาง
จะท"างาน (Statement) เม$%อเง$%อนไขั้เป4นจร�งเท1าน� น
2. ผั�งงานแบบเง$%อนไขั้
checkcondition statement (s)
no
yes
แสดัง Flowchart ตรวิจสอบเง$%อนไขั้ค�ดัเลำ$อกผั+*ท�%สอบผั1าน (คะแนน x >= 60) แลำะแสดังผัลำเฉพัาะผั+*ท�%สอบผั1าน
start
end
Input ID,X
X >= 60yes
Print ID,X
no
…
Memory
X
ต�วิอย1างท�% 5
2. เง$%อนไขั้ทางเลำ$อกจาก 2 เส*นทาง
2. ผั�งงานแบบเง$%อนไขั้
check conditionyes
statement 1
no
statement 2
เม$%อเง$%อนไขั้เป4นจร�งจะท"า (Statement 1)เม$%อเง$%อนไขั้เป4นเท0จจะท"า (Statement 2)
แสดัง Flowchart เพั$%อแบ1งน�กศ7กษาเป4น 2 กลำ51มตามเพัศ ค$อ ช่าย (Male) ห์ร$อห์ญ�ง (Female)
start
end
Input ID,Name,Gender
Gender= 'M'yes Print "Male"
Print "Female"
no
ต�วิอย1างท�% 6
3. เง$%อนไขั้ทางเลำ$อกจาก n เส*นทาง
statement n
cond1yes statement1
no
cond2 statement2yesno
cond3 statement3yesno
condn-1 statement n-1yes
no
เม$%อเง$%อนไขั้ 1 เป4นจร�งจะท"าค"าส�%ง 1 (statement1)ถ้*าไม1แต1เง$%อนไขั้ 2 เป4นจร�งจะท"าค"าส�%ง 2 (statement2)
. . .
ถ้*าไม1แต1เง$%อนไขั้ n-1 เป4นจร�งจะท"าค"าส�%ง n-1 (statement n-1)ถ้*าไม1จะท"าค"าส�%งส5ดัท*าย ค$อ n (statement n)
2. ผั�งงานแบบเง$%อนไขั้
แสดัง Flowchart เพั$%อต�ดัเกรดัตามคะแนน พัร*อมแสดังผัลำทางลำ�พัธ์�
เง$%อนไขั้ >>>คะแนน 80-100 เกรดั A คะแนน 70-79 เกรดั B คะแนน 60-69 เกรดั C คะแนน 50-59 เกรดั D คะแนน < 50 เกรดั F
end
Input IDName,X
Print Grade
Grade = 'F'
X >= 80yes Grade = 'A'
no
X >= 70yes Grade = 'B'
no
X >= 60yes Grade = 'C'
no
yes Grade = 'D'X >= 50no
start
…
Memory
…
ต�วิอย1างท�% 7
…
IDName
XGrade
การท"าซ้ำ" า (Looping) แบ1งเป4น 3 กรณ�
1 .การท"าซ้ำ" าท�%ม�เง$%อนไขั้แบบ while
2. การท"าซ้ำ" าท�%ม�เง$%อนไขั้แบบ do-while
3. การท"าซ้ำ" าท�%ม�เง$%อนไขั้แบบ for
3. ผั�งงานแบบวินซ้ำ" า
1. การท"าซ้ำ" าท�%ม�เง$%อนไขั้แบบ while
ตรวิจสอบเง$%อนไขั้ก1อนno
exit loop
statement(s)
check condition
yes
จะท"างาน (Statement) ซ้ำ" าเม$%อเง$%อนไขั้เป4นจร�ง
(ออกจากท"าซ้ำ" าเม$%อเง$%อนไขั้เป4นเท0จ)
3. ผั�งงานแบบวินซ้ำ" า
การท"าซ้ำ" า (ขั้� นพั$ นฐาน) ท�%น�ยม ค$อ ก"าห์นดัต�วิแปรเก0บค1าเลำขั้น�บ (เช่1น I = 1, 2, 3, … , 100) เพั$%อควิบค5มรอบการท"าซ้ำ" า
ก"าห์นดัค1า I = 1, 2, 3, ..., 99, 100
yes
while I<=100
start
I = 1
no
Print Iend
I = I+1
1 100
1 1
ค1าเร�%มต*นค1าส5ดัท*ายค1าเพั�%ม
I=1I=100I=I
+1
1
3 ค"าส�%งในการท"าซ้ำ" า
ต�วิแปรในการท"าซ้ำ" า
แสดัง Flowchart เพั$%อค"านวิณ ผัลำบวิกขั้องเลำขั้น�บ 1+2+...+100 (ดั*วิยค"าส�%ง while)
ก"าห์นดัค1า I = 1, 2, 3, ..., 100
SUM = SUM+I
start
end
…
Memory
I
SUM
ค1าเร�%มต*นค1าส5ดัท*ายค1าเพั�%ม
I=1I=100I=I+1ค1า SUM
เร�%มต*นค1า SUM เพั�%ม
SUM=0SUM+I
ค"านวิณ SUM = 1+2+3+...+1003 ค"าส�%งในการท"าซ้ำ" า
yes
while I<100
I = I+1
no
Print SUM
I = 1SUM = 0
ต�วิอย1างท�% 8
2. การท"าซ้ำ" าท�%ม�เง$%อนไขั้แบบ do-while
แลำะท"าซ้ำ" าถ้*าเง$%อนไขั้เป4นจร�ง
ท"างาน (Statement) ก1อน จ7งท"าการตรวิจเง$%อนไขั้
statement(s)
check condition
yes
exit loopno
(จนกระท�%งเง$%อนไขั้เป4นเท0จจ7งออกจากท"างานซ้ำ" า)
3. ผั�งงานแบบวินซ้ำ" า
24
แสัดัง Flowchart เพื้��อคำ%านวณ์ ผัลับวกขั้องเลัขั้น�บ 1+2+...+100 (ดั�วยคำ%าสั��ง do-while) ก%าหนดัคำ*า I = 1, 2, 3, ..., 100
24
SUM = SUM+I
start
I = 1
end
I = I+1
…
Memory
I
SUM
ค1าเร�%มต*นค1าส5ดัท*ายค1าเพั�%ม
I=1I=100
I=I
+1ค1า SUM เร�%มต*นค1า SUM เพั�%ม
SUM=0 SUM+I
คำ%านวณ์ SUM = 1+2+3+...+100
SUM = 0
3 ค"าส�%งในการท"าซ้ำ" า
yes
no Print SUMwhile I<100
ต�วิอย1างท�% 9
3. การท"าซ้ำ" าตามจ"านวินท�%ระบ5
โดัยเร��มจากรอบเร�%มต*น (i=1) ไป็ย�งรอบส5ดัท*าย (i=N)
ที%างานตามรอบที��ก%าหนดัi >
N
exit loop
(แต*ลัะรอบป็กต�จะเพื้��มที�ลัะ 1 คำ*า (i = i+1))
statement(s)
i <= N
for i=1 to N
(ออกจากท"างานซ้ำ" าเม$%อ i > N)
3. ผั�งงานแบบวินซ้ำ" า
แสัดัง Flowchart เพื้��อคำ%านวณ์ ผัลับวก ขั้องเลัขั้น�บ1+2+...+100 (ดั�วยคำ%าสั��ง for)
ก%าหนดัให� I = 1, 2, 3, ..., 100
SUM = SUM+I
yesfor I=1 to 100
start
SUM = 0
no
Print SUM
end
…
Memory
I
SUM
ค1าเร�%มต*นค1าส5ดัท*ายค1าเพั�%ม
I=1I=100I=I+1
3 ค1าในการท"าซ้ำ" า
ก"าห์นดัใน for เดั�ยวิ
คำ%านวณ์ SUM = 1+2+3+...+100
ต�วิอย1างท�% 10
แสัดัง Flowchart เพื้��อคำ%านวณ์ ผัลัคำ0ณ์ 1x2x...x10 ก%าหนดัให� I = 1, 2, 3, ..., 10 คำ%านวณ์ MUL = 1x2x3x...x10
MUL = MUL x I
yesfor I=1 to 10
start
MUL = 1
no
Print MUL
end
…
Memory
I
MUL
ค1าเร�%มต*นค1าส5ดัท*ายค1าเพั�%ม
I=1I=10I=I+1
3 ค1าในการท"าซ้ำ" า
ก"าห์นดัใน for เดั�ยวิ
ต�วิอย1างท�% 11
แสัดัง Flowchart เพื้��อคำ%านวณ์ สั0ตรคำ0ณ์แม* T (เช้*น T=2)
ก%าหนดั i=1, 2, …, 12, แลัะ R = T x i T x I = R 2 x 1 = 22 x 2 = 42 x 3 = 62 x 4 = 82 x 5 = 102 x 6 = 122 x 7 = 142 x 8 = 162 x 9 = 182 x10 = 202 x11 = 222 x12 = 24
R = T x i
i <=12
for i=1 to 12
start
Print T, i, R
i > 12
end…
Memory
T i
R
Input T
ต�วิอย1างท�% 12
แสัดัง Flowchart เพื้��อคำ%านวณ์คำ*าเฉลั��ยขั้องขั้�อม0ลั N คำ*าขั้�อม0ลัแต*ลัะคำ*าเก2บใน X รอบลัะคำ*า (X1, X2, ..., XN) เม��อ คำ*าเฉลั��ย (åi
N Xi/N) start
Sum=Sum+XPrint Mean
end
Input Xi <= N
for i=1 to N
Input N
Mean = Sum/N
i > N
Sum = 0
…
Memory
X
Sum
Mean
N N = _5x1 = _60x2 = _50x3 = _25
x4 = _30
x5 = _80
Mean = 245/5
Sum= 0
60
110
135
165
245
=49
ต�วิอย1างท�% 13