บทที่ 8...

Post on 03-Jan-2020

9 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

1

อลกลทม,ซโดโคด,แผนผงงาน

Algorithm , Pseudo Codes , Flowchart

2

การเขยนโปรแกรมคอมพวเตอร

ขนตอนการท างานหรอ อลกอรทม (Algorithm) เปนเครองมอในการแสดงขนตอนการท างาน ของระบบงานใดๆ เพอใหการเขยนโปรแกรมเปนไปไดรวดเรว และงายขน อกทงยงเปนการฝกฝนการเขยนโปรแกรม ซงจะตองมการวางแผนกอน จะลงมอเขยนโปรแกรมจรงดวย โดยการเขยนอลกอรทม ม 2 แบบ คอ ลกษณะผงงาน (Flowchart) รหสจ าลอง หรอ ซโดโคด (Pseudo Codes)

3

ผงงาน (Flowchart) ขนตอนการแกปญหาทละขนตอนในลกษณะรปภาพ

รหสจ าลอง (Pseudo) รปแบบเปนภาษาพดงาย ๆ ภาษาองกฤษ หรอภาษาไทยกได

ซโดโคด (Pseudo Codes)

ซโดโคดทดตองมความชดเจน สน และไดใจความ โดยทวไปมรปแบบดงน

Algorithm <name>1. ------------------------------------------------2. ------------------------------------------------:5. ------------------------------------------------End.

4

ตวอยาง การเขยนซโดโคด

ในการหาคาผลบวกของเลข 3 จ านวน ทรบเขามาทางแปนพมพAlgorithm Summation1. SUM = 02. INPUT (value1)3. INPUT (value2)4. INPUT (value3)5. SUM = value1 + value2 + value36. OUTPUT (SUM)End.

5

ตวอยางการเขยนซโดโคดค านวณหาพนทสามเหลยม

Algorithm Triangle area1. area = 02. Read Base3. Read Height4. Compute area = 1/2 * Base * Height5. Point areaEnd.

6

สตร : พนทสามเหลยม = ฐาน * สง * 1/2

หลกการเขยนซโดโคด

1. การรบขอมลเขา และการแสดงผลขอมล

2. การค านวณ

3. การตดสนใจ และทดสอบทางเลอก

4. การกระท าแบบวนซ า (Loop)

7

1. การรบขอมลเขา และการแสดงผลขอมล

การรบขอมลเขา มกจะนยมใชค าวา READ หรอ INPUT ตามดวยชอตวแปรทตองการเกบขอมล ถาหากมหลายตวใช (" ; ") กนการแสดงผล ใชค าวา OUTPUT

2. การค านวณ

ใชค าวา Compute ตามดวยชอตวแปรทตองการเกบคาจากการค านวณ ตามดวยเครองหมายเทากบ และนพจนของการค านวณ เชน

Compute area = a * b8

3. การตดสนใจ และทดสอบทางเลอก มกจะใชค าวา IF หรอ IF-THEN-ELSE และ ENDIF

IF a>0 THENPRINT POSITION

ELSE PRINT NEGATIVEENDIF

ส าหรบในกรณทมมากกวา 2 ทาง จะใชค าวา CASE และ ENDCASE เชนCASE num OF

1 : PRINT ONE2 : PRINT TWO3 : PRINT THREE

ENDCASE9

4. การกระท าแบบวนซ า (Loop)

การท าซ าจนกวาเงอนไขทก าหนดจะเปนจรงจงหยดท า (REPEAT UNTIL)

REPEATStatement 1Statement 2------------------

UNTIL (CONDITION)

10

4. การกระท าแบบวนซ า (Loop) (ตอ)

มการตรวจสอบเงอนไขกอนเขาท า ถาเงอนไขเปนจรง จงจะเขาท าค าสงภายใน (DO...WHILE)

DO (CONDITION) WHILEStatement 1Statement 2------------------

ENDDO

11

การเขยนผงงาน (Flowchart)

ผงงานเปนแผนภาพทใชออกแบบ และอธบายการท างานของโปรแกรม โดยอาศยรปทรงตางๆ ควบคไปกบลกศรแตละรป ในแผนภาพจะหมายถง การท างาน 1 ขนตอน สวนลกศรจะแทน ล าดบการท างานขนตอนตางๆ รวมทงทศทางการไหลของขอมล ตงแตเรมตน จนไดผลลพธตามทตองการ

12

13

สญลกษณในผงงาน

จดเรมตน หรอสนสด

รบขอมลเขาหรอแสดงผล

ประมวลผล

ตดสนใจ

จดเชอมตอในหนาเดยวกน

แสดงผลทางหนาจอแสดงทศทางการประมวลผล

พมพผลทางเครองพมพ

จดเชอมตอในหนาอน

14

ตวอยางการเขยนผงงาน

จงเขยนผงงานแสดงการเขยนและสงจดหมายเรมตน

เขยนจดหมาย

พบจดหมาย

ใสซองจดหมาย

จาหนาซอง

1 จบงาน

1

มแสตมปหรอไม

ท าการซอแสตมป

ตดแสตมป

สงจดหมาย

ม ไมม

15

อลกอรทม คอ ล าดบการท างานหรอขนตอนการแกไขปญหางานใหส าเรจ

16

การพฒนาอลกอรทม

การเขยนขนตอนในรายละเอยดของแตละอลกอรทม อาศยโครงสรางควบคมดงน

โครงสรางล าดบ (Sequence structure) โครงสรางตดสนใจ (Selection structure) โครงสรางท าซ า (Repetition structure)

17

โครงสรางการท างานแบบล าดบ (Sequence)

โครงสรางล าดบ หลกการใหมองงานเปนชนใหญกอน ยงไมตองลงรายละเอยด แลว

จดล าดบความคดวาจะท าอะไร กอนหรอหลง ตามล าดบ

งาน 1

งาน 2

Beginงาน 1งาน 2

endผงงาน รหสเทยม

18

การพฒนาอลกอรทม

example: จงเขยนโปรแกรมค านวณหาคา y ของสมการ y = x^2 + 2x +10

start

Read x

Y = x*x + 2*x +10

Write y

stop

ผงงาน

19

จงเขยนผงงานค านวณการหาพนทสเหลยมคางหม โดยก าหนดคาความยาวดานคขนานและความสงให

เรมตน

อานความยาวดานคขนานและความสง

ค านวณหาพนทคางหม =½ * ดานคขนาน * สง

1

1

พมพคาพนท

จบงาน

20

การพฒนาอลกอรทม

โครงสรางตดสนใจ (selection) โครงสราง IF โครงสราง IF else

21

การพฒนาอลกอรทม

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

ไปท างานอนตอไป

เงอนไข งานทตองท าใช

งานตอไป

ไมใช

22

การพฒนาอลกอรทม

ตวอยาง โครงสราง IF แมถามวาหวขาวหรอไม ถาหวกใหกน ถาไมหวไมตองกน แลวจง เดน

งานไปโรงเรยน (งานตอไป)

หวใชไหม? งานกนขาวใช

งานเดนทางมาเรยน

ไมใช

23

การพฒนาอลกอรทม

ตวอยาง โครงสราง IF จงเขยนผงงาน แสดงยอดขาย ถาซอสนคามากกวา 1000 บาทมสวนลดให

10% วเคราะห :

Output คอยอดขายสทธ Input คอ ยอดขายกอนหกสวนลด Process มรายละเอยดเขยนดวยผงงานไดในหนาถดไป

24

การพฒนาอลกอรทม

ตวอยาง(ตอ) โครงสราง IF

เรมตน

อาน ยอดซอ

สวนลด = 0

ยอดซอ >1000

สวนลด = ยอดซอ * 10/100

เงนทตองช าระ = ยอดซอ - สวนลด

พมพ เงนทตองช าระ

ผงงาน

ใชไมใช

จบ

25

การพฒนาอลกอรทม

โครงสราง IF-else

เงอนไข

งาน 1งาน 2

If เงอนไขงาน 1

Elseงาน 2

End if

ใชไมใช

26

การพฒนาอลกอรทม

โครงสราง IF-Else ตวอยาง รานคาแหงหนงมนโยบาย ลดราคาใหลกคา ถาเปนชายจะลดให

5% แตถาเปนหญง จะลดให 10% จงเขยนอลกอรทมเพอพมพยอดขาย วเคราะหปญหา

Output คอ ราคาสทธ Input คอ ราคาสนคา และ เพศ Process เขยนดวยผงงาน ดงในหนาตอไป

27

IF-ELSE

เรมตน

อานคา รวมเงน, เพศ

สวนลด = 0

เพศ = ‘M’

สวนลด = รวมเงน * 0.1 สวนลด = รวมเงน * 0.05

เงนทตองช าระ = รวมเงน - สวนลด

พมพ เงนทตองช าระ

yesno

จบงาน

28

ตวอยาง โครงสรางการท างานแบบมการเลอก (Selection)

ในบรเวณ A และ B ของหนวยความจ ามตวเลขเกบอย จงเขยนผงงานทแสดงการเปรยบเทยบระหวาง A และ Bตามเงอนไข ดงนถา A>B ค านวณ A-B น าผลทไดไปเกบไวท Cถา A<B ค านวณ A+B น าผลทไดไปเกบไวท Cถา A=B เอา ไปเกบไวท C

เรมตน

C = A - B

C = A + B

C = A

A > B

A < B

จบงาน

ใช

ใช

ไมใช

ไมใช

29

ตวอยางการเขยนผงงาน

เมอเราซอยาจากรานขายยาทมอยท ว ๆ ไปนน ในสวนของวธใชยามกจะแยกขนาดรบประทานไวตามอาย เชนอายมากกวา 10 ป รบประทานครงละ 3 ชอนชาอาย 6-10 ป รบประทานครงละ 2 ชอนชาอาย 2-5 ป รบประทานครงละ 1 ชอนชาเดกอายต ากวา 1 ป หามรบประทาน

จงเขยนผงงานทแสดงถงขนาดของการใชยาตามอายน

30

เรมตน

อาย > 10

6 <= อาย <=10

2 <= อาย <=5

หามรบประทาน

จบงาน

รบประทานครงละ3 ชอนชา

รบประทานครงละ2 ชอนชา

รบประทานครงละ1 ชอนชา

ใช

ใช

ใชไมใช

ไมใช

ไมใช

31

การพฒนาอลกอรทม

โครงสราง DO while

เงอนไข

งาน

เทจ

จรง

ผงงาน

DOค าสงตาง ๆ

While เงอนไข

รหสเทยม

32

การพฒนาอลกอรทม

โครงสราง while

While เงอนไขงาน

end while

เงอนไข

งาน

เทจ

จรง

รหสเทยมผงงาน

33

ผงงานกบการเขยนโปรแกรม

การเขยนแปลนบานเหมอนกบการเขยนผงงาน ดงนนการสรางบานกเหมอนกบการเขยนโปรแกรมนนเอง

ขอมล

1

2

ต าแหนง(Address)

X

A

รปแสดงการจ าลองหนวยความจ าหลกของคอมพวเตอร

หนวยความจ ามลกษณะเหมอนลอกเกอรเกบของ

8X = 1

X = 8

A = 2

จะหาต าแหนงวางในหนวยความจ าแลวน าคาไปเกบพรอมจ าต าแหนงทเกบวาชออะไร

34

ตวอยาง

ก าหนดใหหนวยความจ าต าแหนง A และ B มเลข 6 และ 2 เกบอยตามล าดบ จงเขยนผงงานแสดงการสลบคา 6 และ 2 โดยสลบใหไดคาเปน A=2 และ B=6

35

เรมตน

A = 6

B = 2

W = A

A = B

1

1

B = W

จบงาน

2

6

ตวอยาง

A

B

W

2

6

6

ขอมลต าแหนง(Address)

top related