Pseudo Code & Flow Chartweerayuth.in.th/docFiles/02-PseudoAndFlowChart.pdf · Computer...

Post on 21-Jan-2020

3 views 0 download

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