29
ผผผผผผผผผผผผผ Program Flowchart

Document1

Embed Size (px)

Citation preview

Page 1: Document1

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

Page 2: Document1

Outline

o ขั้� นตอนการพั�ฒนาโปรแกรมภาษา

o การวิ�เคราะห์�ป�ญห์าo การเขั้�ยนผั�งงานo ผั�งงานแบบลำ"าดั�บขั้� นo ผั�งงานแบบเง$%อนไขั้o ผั�งงานแบบวินซ้ำ" า

Page 3: Document1

การพั�ฒนาโปรแกรม 5 ขั้� นตอน

Problemก"าห์นดัป�ญห์า

Analysisวิ�เคราะห์�ป�ญห์า

Flowchartเขั้�ยนผั�งงาน

Testingทดัสอบโปรแกรม

Inputขั้*อม+ลำ

Programเขั้�ยนโปรแกรมป�ญห์าค$ออะไร?

ค"าตอบ ท�%ต*องการค$ออะไร

ขั้� นตอนการพั�ฒนาโปรแกรม

Outputผัลำลำ�พัธ์�

1. ก"าห์นดัป�ญห์า2. วิ�เคราะห์�ป�ญห์า3. เขั้�ยนผั�งงาน4. เขั้�ยนโปรแกรม4. ทดัสอบโปรแกรม

Page 4: Document1

วิ�เคราะห์�ป�ญห์า (Problem Analysis): 3 ขั้� นตอน• การร�บขั้*อม+ลำ (Input Data)• การค"านวิณ (Process)• การแสดังผัลำลำ�พัธ์� (Output Result)

ขั้*อม+ลำ input แลำะ Output ในโปรแกรมจะต*องเก0บใน Memory ผั1านต�วิแปร (Variables) เช่1น X, Y, …

วิ�เคราะห์�ป�ญห์า

Page 5: Document1

การวิ�เคราะห์�ป�ญห์าการค"านวิณผัลำบวิกท�%คลำ*าย การท"างานขั้องเคร$%องค�ดัเลำขั้อย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

Page 6: Document1

การวิ�เคราะห์�ป�ญห์า การค"านวิณค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

Page 7: Document1

การวิ�เคราะห์�ป�ญห์า การค"านวิณค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

Page 8: Document1

สั�ญลั�กษณ์พื้��นฐาน ที�ใช้�ในผั�งงาน แสดังจ5ดัเร�%มต*น ห์ร$อจ5ดัจบขั้องผั�งงานแสดังท�ศทางขั้องการดั"าเน�นงาน

แสดังการร�บขั้*อม+ลำ ห์ร$อแสดังผัลำ (ไม1ระบ5ช่น�ดัอ5ปกรณ�)

การแสดังผัลำทางเคร$%องพั�มพั� แสดังการทดัสอบเง$%อนไขั้ (เม$%อม�ทางเลำ$อก) แสดังจ5ดัเช่$%อมต1อในผั�งงาน

การแสดังผัลำทางจอภาพั

ผั�งงาน (Flowchart) เป็�นแผันภาพื้ ที��ใช้�อธิ�บายขั้��นตอนแลัะลั%าดั�บการที%างานขั้องโป็รแกรมต��งแต*เร��มจนจบ

การเขั้�ยนผั�งงาน

แสดังการค"านวิณ

Page 9: Document1

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

Page 10: Document1

1. ผั�งงานแบบลำ"าดั�บ

Flowchart แบบลำ"าดั�บ (Sequence)

แสดังขั้� นตอนการท"างานท�%ท"างานตามลำ"าดั�บ(จากบนลำงลำ1าง) ไม1ม�การขั้*ามขั้� น ห์ร$อย*อนกลำ�บ

Output

start

Process

Input

end

Page 11: Document1

Print Sum

start

Sum = X+Y

Input X, Y

end

Memory

XY

Sum

แสดัง Flowchart ขั้องการห์าผัลำบวิก (Sum) ขั้องขั้*อม+ลำ 2 ค1า (X, Y) พัร*อมแสดังผัลำบวิก

ต�วิอย1างท�% 4

50

100150

Page 12: Document1

แสดังการท"างานตามเง$%อนไขั้ ท�%จะต*องเลำ$อก ท"าอย1างใดัอย1างห์น7%ง ซ้ำ7%งม� 3 กรณ� ค$อ

1 .เง$%อนไขั้ทางเลำ$อกจาก 1 เส*นทาง2 .เง$%อนไขั้ทางเลำ$อกจาก 2 เส*นทาง3 .เง$%อนไขั้ทางเลำ$อกจาก n เส*นทาง

2. ผั�งงานแบบเง$%อนไขั้

Page 13: Document1

1. เง$%อนไขั้ทางเลำ$อกจาก 1 เส*นทาง

จะท"างาน (Statement) เม$%อเง$%อนไขั้เป4นจร�งเท1าน� น

2. ผั�งงานแบบเง$%อนไขั้

checkcondition statement (s)

no

yes

Page 14: Document1

แสดัง Flowchart ตรวิจสอบเง$%อนไขั้ค�ดัเลำ$อกผั+*ท�%สอบผั1าน (คะแนน x >= 60) แลำะแสดังผัลำเฉพัาะผั+*ท�%สอบผั1าน

start

end

Input ID,X

X >= 60yes

Print ID,X

no

Memory

X

ต�วิอย1างท�% 5

Page 15: Document1

2. เง$%อนไขั้ทางเลำ$อกจาก 2 เส*นทาง

2. ผั�งงานแบบเง$%อนไขั้

check conditionyes

statement 1

no

statement 2

เม$%อเง$%อนไขั้เป4นจร�งจะท"า (Statement 1)เม$%อเง$%อนไขั้เป4นเท0จจะท"า (Statement 2)

Page 16: Document1

แสดัง Flowchart เพั$%อแบ1งน�กศ7กษาเป4น 2 กลำ51มตามเพัศ ค$อ ช่าย (Male) ห์ร$อห์ญ�ง (Female)

start

end

Input ID,Name,Gender

Gender= 'M'yes Print "Male"

Print "Female"

no

ต�วิอย1างท�% 6

Page 17: Document1

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. ผั�งงานแบบเง$%อนไขั้

Page 18: Document1

แสดัง 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

Page 19: Document1

การท"าซ้ำ" า (Looping) แบ1งเป4น 3 กรณ�

1 .การท"าซ้ำ" าท�%ม�เง$%อนไขั้แบบ while

2. การท"าซ้ำ" าท�%ม�เง$%อนไขั้แบบ do-while

3. การท"าซ้ำ" าท�%ม�เง$%อนไขั้แบบ for

3. ผั�งงานแบบวินซ้ำ" า

Page 20: Document1

1. การท"าซ้ำ" าท�%ม�เง$%อนไขั้แบบ while

ตรวิจสอบเง$%อนไขั้ก1อนno

exit loop

statement(s)

check condition

yes

จะท"างาน (Statement) ซ้ำ" าเม$%อเง$%อนไขั้เป4นจร�ง

(ออกจากท"าซ้ำ" าเม$%อเง$%อนไขั้เป4นเท0จ)

3. ผั�งงานแบบวินซ้ำ" า

Page 21: Document1

การท"าซ้ำ" า (ขั้� นพั$ นฐาน) ท�%น�ยม ค$อ ก"าห์นดัต�วิแปรเก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 ค"าส�%งในการท"าซ้ำ" า

ต�วิแปรในการท"าซ้ำ" า

Page 22: Document1

แสดัง 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

Page 23: Document1

2. การท"าซ้ำ" าท�%ม�เง$%อนไขั้แบบ do-while

แลำะท"าซ้ำ" าถ้*าเง$%อนไขั้เป4นจร�ง

ท"างาน (Statement) ก1อน จ7งท"าการตรวิจเง$%อนไขั้

statement(s)

check condition

yes

exit loopno

(จนกระท�%งเง$%อนไขั้เป4นเท0จจ7งออกจากท"างานซ้ำ" า)

3. ผั�งงานแบบวินซ้ำ" า

Page 24: Document1

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

Page 25: Document1

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. ผั�งงานแบบวินซ้ำ" า

Page 26: Document1

แสัดัง 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

Page 27: Document1

แสัดัง 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

Page 28: Document1

แสัดัง 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

Page 29: Document1

แสัดัง 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