Pseudo Code & Flow Chartweerayuth.in.th/docFiles/02-PseudoAndFlowChart.pdf · Computer...
Transcript of Pseudo Code & Flow Chartweerayuth.in.th/docFiles/02-PseudoAndFlowChart.pdf · Computer...
การโปรแกรมคอมพวเตอรComputer Programming
การอธบายขนตอนวธการโดยใชซโดโคดและผงงาน
วตถประสงคการเรยนอธบายขนตอนและวธโดยใชซโดโคดไดบอกความหมายของสญลกษณตางๆ ทใชในผงงาน และสามารถน าไปใชไดอยางถกตอง
เขยนผงงานไดอยางถกตองแปลงจากซโดโคดใหอยในรปของผงงานไดเขยนขนตอนและวธโดยใชซโดโคดได
2
ขนตอนการพฒนาโปรแกรม
3
1.รบโจทยหรอปญหา
2.ท าความเขาใจปญหา
3.ออกแบบการเขยนโปรแกรมวเคราะหอลกอรทม
- เขยนซโดโคด- เขยนผงงาน
4. เขยนโปรแกรม
อลกอรทม (Algorithm)อลกอรทม (Algorithm) หมายถง ขนตอนการท างานทเปนล าดบคอมพวเตอรท างานทละค าสงตามล าดบโปรแกรมคอมพวเตอรจะประกอบดวยค าสงจ านวนมากทควบคมใหคอมพวเตอรท างานไปตามขนตอนทก าหนดไว
อลกอรทมจะชวยอธบายล าดบขนตอนทสอดคลองกบการท างานของโปรแกรม อาจใชเครองมอตางๆ ชวยในการแสดงขนตอน เชน ผงงาน (Flow Chart)ซโดโคด (Pseudo Code)
4
การวเคราะหอลกอรทม
อยในขนตอนการออกแบบโปรแกรม โดยคดวา
5
อะไรเปนขอมลเขา (Input)
วธการประมวลผลทจะน ามาซงค าตอบ (Process)
อะไรเปนขอมลออก (Output)
การวเคราะหอลกอรทมตวอยาง 1 : ตองการหาคาเฉลยของคะแนนวชา Fundamental of
Computer ของนกศกษาจ านวน 50 คน
6
วเคราะหอลกอรทม
คะแนนของนกศกษาแตละคน (Score)ผลรวมของคะแนนนกศกษาทกคน / 50 (Average)พมพผลลพธ
ขอมลเขา : ประมวลผล :ขอมลออก :
การวเคราะหอลกอรทมตวอยาง 2 : โปรแกรมรายงานระดบผลการเรยนตามคะแนนของนกศกษา โดยรบขอมลคะแนนจาก Keyboard
เงอนไข : ถาคะแนน < 50 ใหพมพขอความ “ตก”ถาคะแนนระหวาง 50-69 ใหพมพขอความ “พอใช”ถาคะแนน 70 ขนไป ใหพมพขอความ “ดมาก”
7
วเคราะหอลกอรทมคะแนนของนกศกษา (Score) ท ำกำรเปรยบเทยบคะแนนตำมเงอนไข
พมพขอควำมตำมเงอนไข
ขอมลเขา : ประมวลผล :ขอมลออก :
Pseudo Codeการอธบายขนตอนการประมวลผลโดยใช “วลภาษาองกฤษ” ในการแสดง อธบาย หรอก าหนดล าดบการท างาน
8
Begin
Character cAccountTypeNumeric nAmout
Accept cAccountType
Accept nAmount
If (cAccountType = ‘A’) Then
nInterest = nAmount * 25%
Else If (cAccount Type = ‘B’) Then
nInterest = nAmount * 40%
End If
Display nInterest
End
โปรแกรมค านวณดอกเบยตามประเภทบญช
ขอมลเขา : ประเภทบญช (Account Type)และจ านวนเงนฝาก (Amount)
ประมวลผล : ค านวณดอกเบยตามประเภทบญชประเภทบญช A = 25%ประเภทบญช B = 40%
ขอมลออก : พมพจ านวนเงนดอกเบยทไดรบ (Interest)
ค าสงตางๆ ของซโดโคดค าสง ค าอธบาย
// ใชเขยนหมายเหต (Comment) เพอแทรกในซโดโคด เชนx= a + b // sum of two number ถาตองการใสคอมเมนตมากกวา 1 บรรทด จะตองใสคอมเมนตทกบรรทด
Begin …. end เปนการท าเครองหมาย Block โดยค าสง Begin เปนค าสงเรมตน และค าสง end เปนค าสงจบ
Accept ใชรบคาอนพต เชน รบชอของผใช โดยใชค าสงวา accept cUserName
Display ใชแสดงคาเอาตพต เชน แสดงขอความ “Welcome to Thailand” บนจอภาพ จะใชค าสงวา display ‘Welcome toThailand’
9
วธทใชในการตงชอตวแปร
1. ตวอกษรตวแรกใชบอกชนดของขอมล เชน ใช ‘c’ หรอ ‘n’เพอแสดงวาเปนตวอกษร (Character) หรอตวเลข(Numberic) เชน cName, nAge
2. ชอของตวแปรควรบอกวตถประสงค เชน nScore เปนตวแปรส าหรบเกบคาคะแนน
3. ในกรณทชอตวแปรมหลายค า ตวอกษรตวแรกของค าจะตองขนดวยตวอกษรใหญ เชน nTotalScore, nSumOfSqares
10
การเขยนซโดโคด (Pseudo Code)
1. รบขอมล ค าทใช Accept หรอ Read หรอ Input หรอ Getเชน accept nRadius
2. แสดงขอมลออก ค าทใช Display หรอ Print หรอ Write หรอ Output เชน display “Hello Owen” หรอ display Area
11
การเขยนซโดโคด (Pseudo Code)3. ก าหนดคาใหกบตวแปร
3.1 ก าหนดคาเรมตนใหกบตวแปร จะใชค าวา Setเชน Set nSum = 0
3.2 ก าหนดคาทไดจากการประมวลผลไวทตวแปร จะใชเครองหมาย =
เชน nSum = 500
nVat = nSum * 0.07
12
0 nSum
500 nSum
35 nVat
การเขยน Pseudo Code4. ตวด าเนนการทางคณตศาสตร + , - , * , / , ( )
เชน nArea = (22/7) * nRadius * nRadiusnTotal = (nNumber1 + nNumber2)/2
13
if nBuffalo = “My friend” then
Begin
Display “Yes My friend is buffalo”
end
ELSE
Begin
Display “I’m buffalo”
end
end if
5. เปรยบเทยบแบบ IF .. Then .. Else
การเขยน Pseudo Code
6. เปรยบเทยบแบบ CASE … OF
14
case nChoice
A : Write “Excellent”
B : Write “Good”
C : Write “Fair”
D: Write “Weak”
F : Write “Fail”
else : Write “Error input”
end case
การเขยน Pseudo Code
7. การวนซ าแบบ FOR … DO..
15
for i = 1 to 10 do
accept nNumber
nSum = nSum + nNumber
end for
การวเคราะหงานและเขยนซโดโคด
16
ตวอยำงท 1 - ตองกำรหำพนทวงกลมโดยรบคำรศมจำกผใช
วเคราะหอลกอรทม
คารศม (R)พนทวงกลม(Area) = 22/7*R*Rพมพผลลพธพนทวงกลมทหนาจอ
“The area of circle is ….”
ขอมลเขา : ประมวลผล :ขอมลออก :
การวเคราะหงานและเขยนซโดโคด
การออกแบบโปรแกรม (Program design)
17
ขนตอนท 1 รบขอมล R
ขนตอนท 2 ประมวลผล Area = 22/7*R*R
ขนตอนท 3 มพผลลพธ “The area of circle is ”, Area
<<จบการท างาน>>
ตวอยางท 1 - ตองการหาพนทวงกลมโดยรบคารศมจากผใช (ตอ)
การวเคราะหงานและเขยนซโดโคด
เขยนซโดโคด (Psuedocode)
18
ตวอยางท 1 - เขยนโปรแกรมหาพนทวงกลมโดยรบคารศมจากผใช(ตอ)
Beginnumeric R, nArea
accept R
nArea = 22/7*R*R
display “The area of circle is ”, nArea
End
ตวอยางท 2 - สรางโปรแกรมเพอท าการหาผลรวมของเลข10 จ านวนทผใชใสเขามา
การวเคราะหงานและเขยนซโดโคด
19
วเคราะหอลกอรทม
คาของตวเลข 10 จ านวน (Number)หาผลรวม (Sum)พมพคาผลรวมทหนาจอ
“The summary is ….”
ขอมลเขา : ประมวลผล :ขอมลออก :
ตวอยางท 2 - สรางโปแกรมเพอท าการหาผลรวมของเลข10 จ านวนทผใชใสเขามา (ตอ)
Begin
numeric nNumber, nSumset nSum = 0
for I = 1 to 10 do
Accept nNumber
nSum = nSum + nNumber
end for
display nSum
End
การวเคราะหงานและเขยนซโดโคด
เขยนซโดโคด (Psuedocode)
20
ตวอยางท 3 - สรางโปรแกรมเพอท าการรบจ านวนสนคาทซอตามทผใชก าหนด แลวหายอดรวมราคาสนคาแตละชนแลว แสดงผลลพธทหนาจอโดย ถายอดรวมมากกวา 100 บาท ใหแสดงขอความวา “Get Bonus => 1 bar of Chocolate” แตถายอดรวมไมถง 100 บาท ใหแสดงขอความวา “Get Bonus => 1 pack of MAMA”
วเคราะหอลกอรทม1. ขอมลเขา : จ านวนสนคาทซอ(Item), ราคาสนคาแตละชน (Price)2. การประมวลผล : 1. หายอดรวมราคาสนคา (Sum)
2. ตรวจสอบยอดรวมราคาสนคา (Sum) ตามเงอนไข3. ขอมลออก : พมพขอความตามเงอนไข
การวเคราะหงานและเขยนซโดโคด
21
Begin
numeric nSum, nItem, nPrice,count
Set nSum = 0
accept nItem
for count = 1 to nItem
begin
accept nPrice
nSum = nSum + nPrice
end for
if nSum >= 100
begin
display “Get Bonus = 1 bar of Chocolate”
end
else if nSum<=100
begin
display “Get Bonus = 1 pack of MAMA”
end
end ifEnd
การวเคราะหงานและเขยนซโดโคดตวอยางท 3 : เขยนซโดโคด (Psuedocode)
22
ผงงาน (Flowchart)
23
การเขยนผงงาน (Flowchart)ผงงาน (Flowchart) คอ แผนภาพทแสดงล าดบขนตอนของการท างาน โดยใชลกศรและสญลกษณแบบตางๆ เพอท าใหงายตอการท าความเขาใจการท างานของโปรแกรม
24
ค านวณหาพนทวงกลม
การเขยนผงงาน (Flowchart)
25
แสดงถงจดเรมตนหรอจดสนสดการท างาน
Start - แสดงถงจดเรมตนการท างาน
Stop - แสดงถงจดสนสดการท างาน
Start
End
สญลกษณส าหรบการเขยนผงงาน
การเขยนผงงาน (Flowchart)
26
แสดงถงการประมวลผล (Process)
nPAY=nHOURS*5
ตวอยำง
น า 5 คณ HOURS ผลลพธเกบไวท PAY
M = 0ใหตวแปร M มคาเปน 0
การเขยนผงงาน (Flowchart)
27
แสดงถงการรบ-แสดงผลขอมล
accept X แสดงถงการรบขอมลมาไวทตวแปร X
display Sum แสดงถงการแสดงผลขอมลในตวแปร Sum
การเขยนผงงาน (Flowchart)
28
A, B
การรบขอมลเขาทางแปนพมพ การแสดงผลออกทางจอภาพ
ANS
การแสดงผลออกทางเครองพมพ
ANS
รบคา A,B มาจากแปนพมพ แสดงคาในตวแปร ANS ทจอภาพ
แสดงคาในตวแปร ANS ทเครองพมพ
การเขยนผงงาน (Flowchart)
การตดตอกบอปกรณทเปนการเขาถงขอมลแบบล าดบ เชน เทปเพลง
การตดตอกบอปกรณทเปนการเขาถงขอมลแบบตรง เชน ฮารดดสก,CD
29
การเขยนผงงาน (Flowchart)
30
แสดงถงการเลอก/ตดสนใจ /เงอนไขการตดสนใจ(Decision )
การเขยนผงงาน (Flowchart)
31
แสดงถงทศทางการท างาน (Direction)
A แสดงถงจดเชอมตอทอยภายในหนาดยวกน (Onpage Connector )
B
2 แสดงถงจดเชอมตอกบเอกสารหนาอน (Offpage Connector )
การอธบายขนตอนการประมวลผลโดย ใช “สญลกษณ” ในการแสดงความหมาย หรอก าหนดล าดบการท างาน
ผงงาน (Flow Chart)
32
โปรแกรมค านวณดอกเบยตามประเภทบญชขอมลเขา : ประเภทบญช (Account Type)
และจ านวนเงนฝาก (Amount)ประมวลผล : ค านวณดอกเบยตามประเภท
บญชประเภทบญช A = 25%ประเภทบญช B = 40%
ขอมลออก : พมพจ านวนเงนดอกเบยทไดรบ (Interest)
ตวอยางผงงานทวไป(1/4)
33
แสดงการโยนเหรยญ 3 ครง ถาออกหว ผโยนจะไดเงน 10 บาท ถาออกกอย ผโยนจะเสยเงน 10 บาท
ตวอยางผงงานทวไป(2/4)
34
ผงงานแสดงการเดนขามถนนทมสญญาณไฟจราจร
ตวอยางผงงานทวไป(3/4)
35
ผงงานพจารณาการใชยาตามฉลากยาทปดขางขวด แยกตามขนาดการใชดงน อายต ากวา 5 ป หามรบประทาน อาย 5 - 7 ป ครงละ 1 เมด อาย 8 - 14 ป ครงละ 2 เมด อาย 15 ปขนไป ครงละ 3 เมด
ตวอยางผงงานทวไป(4/4)
36
ผงงานแสดงการค านวณพนทสามเหลยมจ านวน 100 รป
ลกษณะการเขยนผงงาน
ทกผงงานตองมจดเรมตนและจดสนสดเพยงอยางละหนงแหงเทานนทกสญลกษณของผงงานตองมลกศรชทศทางเขา และลกศรชทศทางออกอยางละหนงลกศร ยกเวนสญลกษณจดเ รมตน จดสนสด การตดสนใจ และจดตอสญลกษณจดเรมตนมเฉพาะลกศรชทศทางออก สญลกษณจดสนสดมเฉพาะลกศรชทศทางเขาสญลกษณการตดสนใจมลกศรชทศทางเขา 1 ทศทาง มลกศรชทศทางออก 2 ทศทางหรอมากกวา
37
ลกษณะการเขยนผงงาน
ทศทางของล าดบขนตอนการท างาน นยมเขยนจากบนลงลางหรอจากซายไปขวาไมควรเขยนเสนของลกศรเพอท าการเชอมโยงล าดบขนตอนทอยหางกนมาก หากจ าเปนควรใชสญลกษณจดตอแทนการเขยนผงงานสวนของการก าหนดคา หรอการค านวณคา นยมใชเครอง หมายลกศร () แทนการใชเครองหมายเทากบ แตใชเทากบกไมผด
38
การวเคราะหงานและเขยนผงงาน (Flowchart)
39
ตวอยางท 1 จงเขยนโปรแกรมเพอค านวณหาพนทสามเหลยม โดยใหผใชสามารถ Input ขอมลความสงและความยาวฐานได
วเคราะหอลกอรทมขอมลเขา : ความสง (H) , ความยาวฐาน (B)ประมวลผล : ค านวณ Area = ½ * B*Hขอมลออก : แสดงคาพนทสามเหลยมทหนาจอ
Flowchart
Pseudo codeBegin
1. numeric nBase, nHeight, nArea
2. Accept nBase, nHeight
3. nArea = ½ * nBase * nHeight
4. display nArea
End
การวเคราะหงานและเขยนผงงาน (Flowchart)
40
ตวอยางท 2 จงเขยนโปรแกรมเพอค านวณหาผลรวมของเลข 5 ถง 20วเคราะหอลกอรทม
ขอมลเขำ : ไมม
ประมวลผล : หำผลรวมเลข 5 –20
ขอมลออก : แสดงผลรวมทหนำจอ
Flowchart
Pseudo codeBegin
1. numeric nSum, i
2. i = 5
3. nSum = 0
4. for i = 5 to 20
5. Begin
6. nSum = nSum + i
7. end for
8. Display nSum
end
การวเคราะหงานและเขยนผงงาน (Flowchart)ตวอยางท 3 จงเขยนโปรแกรมเพอค านวณราคารวมของสนคาทลกคาซอดงตอไปน
#Item #Code #PriceDNA Soymilk 101 12Cleenex Tissue 102 55LAY 103 20
โดยโปรแกรมสามารถรบชนดสนคาและจ านวนสนคาทซอ แลวค านวณราคารวม พรอมคดการสมนาคณ ตามเงอนไขตอไปน ถา ราคารวมของสนคา นอยกวา 100 บาท มอบแสตมปใหลกคา 1 ดวง ถา ราคารวมของสนคา 100 – 199 บาท มอบแสตมปใหลกคา 2 ดวง ถา ราคารวมของสนคา 200 บาทขนไป มอบแสตมปใหลกคา 5 ดวง
41