web application programming 2 ยนท 2/2556 204202 it ii 10 ต วอย...

31
Web Application Programming 2 ภาควิชาวิทยาการคอมพิวเตอร์ มหาวิทยาลัยเชียงใหม่

Upload: dodang

Post on 11-Mar-2018

217 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Web Application Programming 2 ยนท 2/2556 204202 IT II 10 ต วอย างโครงสร าง Do While จงเข ยนผ งโปรแกรมเพ อหาผลบวกของเลขค

Web Application Programming 2ภาควชาวทยาการคอมพว เตอ ร มหาวทยาลย เ ชยงใหม

Page 2: Web Application Programming 2 ยนท 2/2556 204202 IT II 10 ต วอย างโครงสร าง Do While จงเข ยนผ งโปรแกรมเพ อหาผลบวกของเลขค

A.3 โครงสรางแบบวนซ า

เปนโครงสรางทวนท างานไดหลาย ๆ รอบตามตองการ เรยกวา ลป

(Loop) และตองก าหนดเงอนไขเพอใหหยดการวนซ า โดยม 3

รปแบบดงน

B.1. While Loop

B.2. Do While Loop

B.3. For Loop

ภาคการเรยนท 2/2556 204202 IT II 2

Page 3: Web Application Programming 2 ยนท 2/2556 204202 IT II 10 ต วอย างโครงสร าง Do While จงเข ยนผ งโปรแกรมเพ อหาผลบวกของเลขค

B.1 โครงสรางวนซ าแบบ While

เปนโครงสรางทก าหนดใหท าการ วนซ าถาเงอนไขเปนจรง และจะ หยดเมอเงอนไข

เปนเทจ

จะตรวจเงอนไขกอน ถาเงอนไขเปนเทจในคร งแรก จะไมวนเขาลป (Pretesting)

ภาคการเรยนท 2/2556 204202 IT II 3

WHILE condition

Process 1

Process 2

END WHILE

Page 4: Web Application Programming 2 ยนท 2/2556 204202 IT II 10 ต วอย างโครงสร าง Do While จงเข ยนผ งโปรแกรมเพ อหาผลบวกของเลขค

ภาคการเรยนท 2/2556 204202 IT II 4

ตวอยางโครงสราง While

จงเขยนผงโปรแกรมเพอหาคะแนนเฉลยของนกศกษา จ านวน 30 คน

วเคราะหโจทย

วตถประสงคหลก หาคะแนนเฉลยของนกศกษาจ านวน 30 คน

ผลลพธทตองการ คะแนนเฉลย

ขอมลเขา คะแนนของนกศกษา

Page 5: Web Application Programming 2 ยนท 2/2556 204202 IT II 10 ต วอย างโครงสร าง Do While จงเข ยนผ งโปรแกรมเพ อหาผลบวกของเลขค

ภาคการเรยนท 2/2556 204202 IT II 5

วเคราะหโจทย(ตอ)

ตวแปรทเกยวของ X แทน คะแนนของนกศกษา

MEAN แทน คะแนนเฉลยของนกศกษา

I แทน จ านวนนกศกษา (so far)

SUM แทน คะแนนรวมของนกศกษา

การประมวลผล SUM = 0 และ I = 0

while I < 30 ท า

read X

SUM = SUM + X

I = I + 1

end while

MEAN = SUM / I

Page 6: Web Application Programming 2 ยนท 2/2556 204202 IT II 10 ต วอย างโครงสร าง Do While จงเข ยนผ งโปรแกรมเพ อหาผลบวกของเลขค

ภาคการเรยนท 2/2556 204202 IT II 6

STARTSum = 0, I = 0WHILE I < 30

READ XSum = Sum+XI=I+1

END WHILE

Mean = Sum/30

PRINT “Mean is”, MeanSTOP

Flowchart & Pseudo code ของโปรแกรม

Page 7: Web Application Programming 2 ยนท 2/2556 204202 IT II 10 ต วอย างโครงสร าง Do While จงเข ยนผ งโปรแกรมเพ อหาผลบวกของเลขค

ตวอยางขอมลเขา และผลลพธ

ขอมลเขา ผลลพธ

23 30 44 7 48 80 6 32 96 79 67 7 17 10 66 73 21 39 36 51 98 44 16 96 100 99 72 46 41 30

Mean is 58.57

ภาคการเรยนท 2/2556 204202 IT II 7

Page 8: Web Application Programming 2 ยนท 2/2556 204202 IT II 10 ต วอย างโครงสร าง Do While จงเข ยนผ งโปรแกรมเพ อหาผลบวกของเลขค

ลองท าด (แบบฝกหด WHILE)•จงหาผลคณของตวเลขทเรยงกน ตงแต 45 ถง 115

•จงหาผลบวกของตวเลขทเรยงกน และมคาหางกนเทากบ 5 ตงแต 50 ถง 9575

• หาคามากทสดจากตวเลข N ตว ทผใชปอนเขามา

ภาคการเรยนท 2/2556 204202 IT II 8

Page 9: Web Application Programming 2 ยนท 2/2556 204202 IT II 10 ต วอย างโครงสร าง Do While จงเข ยนผ งโปรแกรมเพ อหาผลบวกของเลขค

B.2 โครงสรางวนซ าแบบ Do While

เปนโครงสรางทก าหนดใหท าการวนซ าเมอเงอนไขเปนจรง และจะหยดเมอเงอนไข

เปนเทจ

ไมวาเงอนไขจะเปนอยางไร จะท าค าส ง 1 คร งเสมอ (Post-testing)

ภาคการเรยนท 2/2556 204202 IT II 9

DO

Process 1

Process 2

WHILE condition

Page 10: Web Application Programming 2 ยนท 2/2556 204202 IT II 10 ต วอย างโครงสร าง Do While จงเข ยนผ งโปรแกรมเพ อหาผลบวกของเลขค

ภาคการเรยนท 2/2556 204202 IT II 10

ตวอยางโครงสราง Do While

จงเขยนผงโปรแกรมเพอหาผลบวกของเลขคต งแต 2 ถง 100

การวเคราะหโจทย

วตถประสงคหลก หาผลบวกของเลขคต งแต 2 ถง 100

ผลลพธทตองการ Summation is

ขอมลเขา -

ตวแปรทใช S แทน ผลบวก

I แทน เลขจ านวนค

การประมวลผล S = 0 และ I = 2

Do S = S + I และ I = I + 2 While I <= 100

Page 11: Web Application Programming 2 ยนท 2/2556 204202 IT II 10 ต วอย างโครงสร าง Do While จงเข ยนผ งโปรแกรมเพ อหาผลบวกของเลขค

ภาคการเรยนท 2/2556 204202 IT II 11

Flowchart & Pseudo code ของโปรแกรม

STARTS= 0, I = 2

DO S = S+ II = I + 2

WHILE I <= 100

PRINT “Summation is”, S

STOP

Page 12: Web Application Programming 2 ยนท 2/2556 204202 IT II 10 ต วอย างโครงสร าง Do While จงเข ยนผ งโปรแกรมเพ อหาผลบวกของเลขค

ตวอยางขอมลเขา และผลลพธ

ขอมลเขา ผลลพธ

ไมม Summation is 2550

ภาคการเรยนท 2/2556 204202 IT II 12

Page 13: Web Application Programming 2 ยนท 2/2556 204202 IT II 10 ต วอย างโครงสร าง Do While จงเข ยนผ งโปรแกรมเพ อหาผลบวกของเลขค

แบบฝกหด DO WHILE

จากแบบฝกหดตดเกรดใน Slide IF ELSE (หนา 32)

ใหเพมการท างานโดยใหรบคาคะแนนเพอหาเกรดเรอย ๆ จนกวาผใชจะกรอกคะแนนทมคาตดลบ ใหใชโครงสราง DO WHILE

ภาคการเรยนท 2/2556 204202 IT II 13

Page 14: Web Application Programming 2 ยนท 2/2556 204202 IT II 10 ต วอย างโครงสร าง Do While จงเข ยนผ งโปรแกรมเพ อหาผลบวกของเลขค

ภาคการเรยนท 2/2556 204202 IT II 14

B.3 โครงสรางวนซ าแบบ FOR

เปนโครงสรางทก าหนดจ านวนใหท าการวนซ าทแนนอน

แตกตางจาก 2 รปแบบทกลาวมาแลวทไมจ าเปนตองทราบ จ านวนคร งกอน

แตใชการตรวจสอบเงอนไข

FOR I=1 TO N

Process 1

Process 2

END FOR

Page 15: Web Application Programming 2 ยนท 2/2556 204202 IT II 10 ต วอย างโครงสร าง Do While จงเข ยนผ งโปรแกรมเพ อหาผลบวกของเลขค

ภาคการเรยนท 2/2556 204202 IT II 15

ตวอยางโครงสราง Forจงเขยนผงโปรแกรมเพอหาคา N แฟกทอเรยล (factorial)

การวเคราะหโจทย

วตถประสงคหลก คา N แฟกทอเรยล

ผลลพธทตองการ N! is

ขอมลเขา N

ตวแปรทใช N แทน ตวเลขทตองการหาแฟกทอเรยล

Fact แทน แฟกทอเรยล

I แทน จ านวนนบ

การประมวลผล Fact = 1

ท าซ า For I=1 to N ท า Fact = Fact * I

Page 16: Web Application Programming 2 ยนท 2/2556 204202 IT II 10 ต วอย างโครงสร าง Do While จงเข ยนผ งโปรแกรมเพ อหาผลบวกของเลขค

ภาคการเรยนท 2/2556 204202 IT II 16

Flowchart & Pseudo code ของโปรแกรมSTART

Fact = 1READ N

IF N >= 0 THENIF N != 0 THEN

For I=1 TO N Fact = Fact * I

END For

PRINT “Factorial is”, FactELSE

PRINT “0 Factorial is 1”END IF

ELSE PRINT “Invalid data”

END IF

STOP

Page 17: Web Application Programming 2 ยนท 2/2556 204202 IT II 10 ต วอย างโครงสร าง Do While จงเข ยนผ งโปรแกรมเพ อหาผลบวกของเลขค

ตวอยางขอมลเขา และผลลพธ

ขอมลเขา ผลลพธ

N = 5 Factorial is 120

N = 0 0! = 1

N = -1 Invalid data

N = a Invalid data

ภาคการเรยนท 2/2556 204202 IT II 17

Page 18: Web Application Programming 2 ยนท 2/2556 204202 IT II 10 ต วอย างโครงสร าง Do While จงเข ยนผ งโปรแกรมเพ อหาผลบวกของเลขค

แบบฝกหด FOR

จงใช For ในการ บวกเลขคสะสม เรมจาก เลข 11 ถง 99

จงเขยนอลกอรทมของการการสรางภาพดงน

ภาคการเรยนท 2/2556 204202 IT II 18

Page 19: Web Application Programming 2 ยนท 2/2556 204202 IT II 10 ต วอย างโครงสร าง Do While จงเข ยนผ งโปรแกรมเพ อหาผลบวกของเลขค

ขอควรค านงเวลาออกแบบ Flowchart

การจดภาพ ทศทางของผงงาน◦ทศทางเรมจากบนลงลาง และจากซายไปขวา

◦สญลกษณทใชตองเปนตามมาตรฐาน อาจมขนาดตางๆ กนแตรปรางเปนสดสวนตามความเหมาะสม

◦ ในการโยงความสมพนธใหยดตามความเกยวของของกระบวนการ

◦หลกเลยงการโยงเสนไปมา ในทศทางทตดกน ใหใชสญลกษณ เชอมตอแทน

◦กระบวนการควรเชอมอยางตอเนองจากจดเรมตน ไปยงจดสนสด

ภาคการเรยนท 2/2556 204202 IT II 19

Page 20: Web Application Programming 2 ยนท 2/2556 204202 IT II 10 ต วอย างโครงสร าง Do While จงเข ยนผ งโปรแกรมเพ อหาผลบวกของเลขค

ตวแปรชด (Array) เปนการก าหนดตวแปรส าหรบการเกบขอมลหลาย ๆ คาภายใต ตวแปรชอเดยวกน แตจ าเปนตองระบตวบงช(Subscript) เชน A(0) A(1) A(2) ทงสามตวแปรเกบคา 3 คาภายใตชอตวแปรเดยวกน

การอางคาท าไดโดยระบตวบงช ซงตวบงชอาจอยในรปตวแปรเดยวเชน A(i) โดย i มคาเปน 0-2 เปนตน

ตวแปรชดมทง 1 มต (One Dimension Array) 2 มต (Two Dimension Array) และ หลายมต (Multi Dimension Array)

ทงนขนอยกบชนดของปญหาและการแกปญหาของผ เขยน ในทนจะกลาวเฉพาะตวแปรชดมตเดยวและตวแปรชด 2 มต

ภาคการเรยนท 2/2556 204202 IT II 20

Page 21: Web Application Programming 2 ยนท 2/2556 204202 IT II 10 ต วอย างโครงสร าง Do While จงเข ยนผ งโปรแกรมเพ อหาผลบวกของเลขค

เปนตวแปรทมตวบงชเพยงตวเดยว และสามารถแสดงการแทน

ขอมลของตวแปรเปนลกษณะตารางทมแถว หรอคอลมนเดยวดงรป

ตวแปรชดมตเดยว

ภาคการเรยนท 2/2556 204202 IT II 21

Page 22: Web Application Programming 2 ยนท 2/2556 204202 IT II 10 ต วอย างโครงสร าง Do While จงเข ยนผ งโปรแกรมเพ อหาผลบวกของเลขค

เปนตวแปรทมตวบงชสองตว และสามารถแสดงการแทน

ขอมลของตวแปรเปนลกษณะตารางทมแถวและคอลมน

ตามทระบ โดยตองระบคาแถวแลวค นดวยเครองหมาย ,

จากนนใหระบคาคอลมนดงรป

ตวแปรชดสองมต

ภาคการเรยนท 2/2556 204202 IT II 22

Page 23: Web Application Programming 2 ยนท 2/2556 204202 IT II 10 ต วอย างโครงสร าง Do While จงเข ยนผ งโปรแกรมเพ อหาผลบวกของเลขค

ภาคการเรยนท 2/2556 204202 IT II 23

ตวอยางการเขยนผงโปรแกรมโดยใชตวแปรชดมตเดยว

จงเขยนผงโปรแกรมรบเลขจ านวนเตมบวกชดหนงไมทราบจ านวน แลว

หาวามกจ านวนทมคามากกวาคาเฉลยของเลขชดน หยดอานคาจากตว

แปรชดเมอคาในตวแปรชด นอยกวาหรอเทากบ 0

การวเคราะหโจทย

วตถประสงคหลก จ านวนเลขทมคามากกวาคาเฉลย

ผลลพธทตองการ There are … numbers

ขอมลเขา เลขจ านวนเตมบวก

ตวแปรทใช A(I) แทน เลขจ านวนเตมใด ๆ

N แทน จ านวนเลขทมากกวาคาเฉลย

Page 24: Web Application Programming 2 ยนท 2/2556 204202 IT II 10 ต วอย างโครงสร าง Do While จงเข ยนผ งโปรแกรมเพ อหาผลบวกของเลขค

ภาคการเรยนท 2/2556 204202 IT II 24

การวเคราะหโจทย(ตอ)

ตวแปรทใช I,J แทน จ านวนนบ

SUM แทนผลบวกของเลขจ านวนเตม

M แทน คาเฉลยของเลขจ านวนเตม

การประมวลผล ก าหนด SUM, I, J, N = 0 รบคา A(I)

ท าซ าขณะท A(I) > 0 หา SUM = SUM + A(I)

นบจ านวนขอมล I = I + 1 และรบคา A(I)

หา M = SUM/I

ท าซ าขณะท J < I ถา A(I) > M ให N = N + 1

แลวเพมคา J = J + 1

แสดงคา N

Page 25: Web Application Programming 2 ยนท 2/2556 204202 IT II 10 ต วอย างโครงสร าง Do While จงเข ยนผ งโปรแกรมเพ อหาผลบวกของเลขค

ภาคการเรยนท 2/2556 204202 IT II 25

FLOWCHART

Page 26: Web Application Programming 2 ยนท 2/2556 204202 IT II 10 ต วอย างโครงสร าง Do While จงเข ยนผ งโปรแกรมเพ อหาผลบวกของเลขค

PSEUDOCODE

WHILE J < I

IF A(J) > M THENN = N + 1

END IFJ = J + 1

END WHILEPRINT “There are”, N, “numbers”

STOP

STARTSUM, I, J, N = 0READ A(I)

WHILE A(I) > 0SUM = SUM + A(I)I = I + 1READ A(I)

END WHILE

M = SUM / I

1 2

Page 27: Web Application Programming 2 ยนท 2/2556 204202 IT II 10 ต วอย างโครงสร าง Do While จงเข ยนผ งโปรแกรมเพ อหาผลบวกของเลขค

ภาคการเรยนท 2/2556 204202 IT II 27

ตวอยางการเขยนผงโปรแกรมโดยใชตวแปรชดสองมต

จงเขยนผงโปรแกรมเพอหาผลบวกดานทะแยงของเมตรกซ

ขนาด N x N

การวเคราะหโจทย

วตถประสงคหลก ผลบวกดานทะแยงของเมตรกซขนาด N x N

ผลลพธทตองการ The Summation is

ขอมลเขา ขนาดของเมตรกซ N

เลขจ านวนเตม จ านวน N x N

ตวแปรทใช N แทน จ านวนคอลมนและแถว

S1แทน ผลบวกดานทะแยงดานทหนง

Page 28: Web Application Programming 2 ยนท 2/2556 204202 IT II 10 ต วอย างโครงสร าง Do While จงเข ยนผ งโปรแกรมเพ อหาผลบวกของเลขค

ภาคการเรยนท 2/2556 204202 IT II 28

การวเคราะหโจทย(ตอ)

ตวแปรทใช S2 แทน ผลบวกดานทะแยงดานทสอง

A(I,J) แทนเลขจ านวนเตม

การประมวลผล S1 = S1 + A(I,I)

S2 = S2 + A(I,J)

Page 29: Web Application Programming 2 ยนท 2/2556 204202 IT II 10 ต วอย างโครงสร าง Do While จงเข ยนผ งโปรแกรมเพ อหาผลบวกของเลขค

ภาคการเรยนท 2/2556 204202 IT II 29

FLOWCHART

Page 30: Web Application Programming 2 ยนท 2/2556 204202 IT II 10 ต วอย างโครงสร าง Do While จงเข ยนผ งโปรแกรมเพ อหาผลบวกของเลขค

PSEUDOCODESTART S1, S2 = 0READ NI = OWHILE I < N

J = 0WHILE J < N

READ A(I,J)J = J + 1

END WHILEI = I +1

END WHILEI = 0, J = N – 1

WHILE I < NS1 = S1 + A(I,I)S2 = S2 + A(I,J)I = I + 1 J = J + 1

END WHILEPRINT “Summation is ”, S1 PRINT “Summation is ”, S2

STOP

Page 31: Web Application Programming 2 ยนท 2/2556 204202 IT II 10 ต วอย างโครงสร าง Do While จงเข ยนผ งโปรแกรมเพ อหาผลบวกของเลขค

แบบฝกหด Array

จงเขยนรหสเทยม จากตวอยาง Array ทง 2 ตวอยาง

จงวเคราะหปญหา เขยนผงโปรแกรม และรหสเทยม ของปญหา◦ การหาผลคณของตวเลขทกตวใน Array A ขนาด 2 มต (A[i][j])◦ การบวกเมตรกซ A,B ขนาด M*N

ภาคการเรยนท 2/2556 204202 IT II 31