35
1 อัลกิลิทึม, ซูโดโค้ด,แผนผังงาน Algorithm , Pseudo Codes , Flowchart

บทที่ 8 การเขียนโปรแกรมเบื้องต้นacademic.udru.ac.th/~samawan/content/2-flowchart.pdf1. การร บข อม ลเข

  • Upload
    others

  • View
    9

  • Download
    0

Embed Size (px)

Citation preview

Page 1: บทที่ 8 การเขียนโปรแกรมเบื้องต้นacademic.udru.ac.th/~samawan/content/2-flowchart.pdf1. การร บข อม ลเข

1

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

Algorithm , Pseudo Codes , Flowchart

Page 2: บทที่ 8 การเขียนโปรแกรมเบื้องต้นacademic.udru.ac.th/~samawan/content/2-flowchart.pdf1. การร บข อม ลเข

2

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

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

Page 3: บทที่ 8 การเขียนโปรแกรมเบื้องต้นacademic.udru.ac.th/~samawan/content/2-flowchart.pdf1. การร บข อม ลเข

3

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

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

Page 4: บทที่ 8 การเขียนโปรแกรมเบื้องต้นacademic.udru.ac.th/~samawan/content/2-flowchart.pdf1. การร บข อม ลเข

ซโดโคด (Pseudo Codes)

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

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

4

Page 5: บทที่ 8 การเขียนโปรแกรมเบื้องต้นacademic.udru.ac.th/~samawan/content/2-flowchart.pdf1. การร บข อม ลเข

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

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

5

Page 6: บทที่ 8 การเขียนโปรแกรมเบื้องต้นacademic.udru.ac.th/~samawan/content/2-flowchart.pdf1. การร บข อม ลเข

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

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

6

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

Page 7: บทที่ 8 การเขียนโปรแกรมเบื้องต้นacademic.udru.ac.th/~samawan/content/2-flowchart.pdf1. การร บข อม ลเข

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

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

2. การค านวณ

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

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

7

Page 8: บทที่ 8 การเขียนโปรแกรมเบื้องต้นacademic.udru.ac.th/~samawan/content/2-flowchart.pdf1. การร บข อม ลเข

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

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

2. การค านวณ

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

Compute area = a * b8

Page 9: บทที่ 8 การเขียนโปรแกรมเบื้องต้นacademic.udru.ac.th/~samawan/content/2-flowchart.pdf1. การร บข อม ลเข

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

Page 10: บทที่ 8 การเขียนโปรแกรมเบื้องต้นacademic.udru.ac.th/~samawan/content/2-flowchart.pdf1. การร บข อม ลเข

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

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

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

UNTIL (CONDITION)

10

Page 11: บทที่ 8 การเขียนโปรแกรมเบื้องต้นacademic.udru.ac.th/~samawan/content/2-flowchart.pdf1. การร บข อม ลเข

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

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

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

ENDDO

11

Page 12: บทที่ 8 การเขียนโปรแกรมเบื้องต้นacademic.udru.ac.th/~samawan/content/2-flowchart.pdf1. การร บข อม ลเข

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

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

12

Page 13: บทที่ 8 การเขียนโปรแกรมเบื้องต้นacademic.udru.ac.th/~samawan/content/2-flowchart.pdf1. การร บข อม ลเข

13

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

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

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

ประมวลผล

ตดสนใจ

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

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

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

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

Page 14: บทที่ 8 การเขียนโปรแกรมเบื้องต้นacademic.udru.ac.th/~samawan/content/2-flowchart.pdf1. การร บข อม ลเข

14

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

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

เขยนจดหมาย

พบจดหมาย

ใสซองจดหมาย

จาหนาซอง

1 จบงาน

1

มแสตมปหรอไม

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

ตดแสตมป

สงจดหมาย

ม ไมม

Page 15: บทที่ 8 การเขียนโปรแกรมเบื้องต้นacademic.udru.ac.th/~samawan/content/2-flowchart.pdf1. การร บข อม ลเข

15

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

Page 16: บทที่ 8 การเขียนโปรแกรมเบื้องต้นacademic.udru.ac.th/~samawan/content/2-flowchart.pdf1. การร บข อม ลเข

16

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

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

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

Page 17: บทที่ 8 การเขียนโปรแกรมเบื้องต้นacademic.udru.ac.th/~samawan/content/2-flowchart.pdf1. การร บข อม ลเข

17

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

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

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

งาน 1

งาน 2

Beginงาน 1งาน 2

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

Page 18: บทที่ 8 การเขียนโปรแกรมเบื้องต้นacademic.udru.ac.th/~samawan/content/2-flowchart.pdf1. การร บข อม ลเข

18

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

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

start

Read x

Y = x*x + 2*x +10

Write y

stop

ผงงาน

Page 19: บทที่ 8 การเขียนโปรแกรมเบื้องต้นacademic.udru.ac.th/~samawan/content/2-flowchart.pdf1. การร บข อม ลเข

19

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

เรมตน

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

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

1

1

พมพคาพนท

จบงาน

Page 20: บทที่ 8 การเขียนโปรแกรมเบื้องต้นacademic.udru.ac.th/~samawan/content/2-flowchart.pdf1. การร บข อม ลเข

20

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

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

Page 21: บทที่ 8 การเขียนโปรแกรมเบื้องต้นacademic.udru.ac.th/~samawan/content/2-flowchart.pdf1. การร บข อม ลเข

21

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

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

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

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

งานตอไป

ไมใช

Page 22: บทที่ 8 การเขียนโปรแกรมเบื้องต้นacademic.udru.ac.th/~samawan/content/2-flowchart.pdf1. การร บข อม ลเข

22

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

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

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

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

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

ไมใช

Page 23: บทที่ 8 การเขียนโปรแกรมเบื้องต้นacademic.udru.ac.th/~samawan/content/2-flowchart.pdf1. การร บข อม ลเข

23

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

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

10% วเคราะห :

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

Page 24: บทที่ 8 การเขียนโปรแกรมเบื้องต้นacademic.udru.ac.th/~samawan/content/2-flowchart.pdf1. การร บข อม ลเข

24

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

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

เรมตน

อาน ยอดซอ

สวนลด = 0

ยอดซอ >1000

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

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

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

ผงงาน

ใชไมใช

จบ

Page 25: บทที่ 8 การเขียนโปรแกรมเบื้องต้นacademic.udru.ac.th/~samawan/content/2-flowchart.pdf1. การร บข อม ลเข

25

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

โครงสราง IF-else

เงอนไข

งาน 1งาน 2

If เงอนไขงาน 1

Elseงาน 2

End if

ใชไมใช

Page 26: บทที่ 8 การเขียนโปรแกรมเบื้องต้นacademic.udru.ac.th/~samawan/content/2-flowchart.pdf1. การร บข อม ลเข

26

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

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

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

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

Page 27: บทที่ 8 การเขียนโปรแกรมเบื้องต้นacademic.udru.ac.th/~samawan/content/2-flowchart.pdf1. การร บข อม ลเข

27

IF-ELSE

เรมตน

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

สวนลด = 0

เพศ = ‘M’

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

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

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

yesno

จบงาน

Page 28: บทที่ 8 การเขียนโปรแกรมเบื้องต้นacademic.udru.ac.th/~samawan/content/2-flowchart.pdf1. การร บข อม ลเข

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

จบงาน

ใช

ใช

ไมใช

ไมใช

Page 29: บทที่ 8 การเขียนโปรแกรมเบื้องต้นacademic.udru.ac.th/~samawan/content/2-flowchart.pdf1. การร บข อม ลเข

29

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

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

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

Page 30: บทที่ 8 การเขียนโปรแกรมเบื้องต้นacademic.udru.ac.th/~samawan/content/2-flowchart.pdf1. การร บข อม ลเข

30

เรมตน

อาย > 10

6 <= อาย <=10

2 <= อาย <=5

หามรบประทาน

จบงาน

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

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

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

ใช

ใช

ใชไมใช

ไมใช

ไมใช

Page 31: บทที่ 8 การเขียนโปรแกรมเบื้องต้นacademic.udru.ac.th/~samawan/content/2-flowchart.pdf1. การร บข อม ลเข

31

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

โครงสราง DO while

เงอนไข

งาน

เทจ

จรง

ผงงาน

DOค าสงตาง ๆ

While เงอนไข

รหสเทยม

Page 32: บทที่ 8 การเขียนโปรแกรมเบื้องต้นacademic.udru.ac.th/~samawan/content/2-flowchart.pdf1. การร บข อม ลเข

32

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

โครงสราง while

While เงอนไขงาน

end while

เงอนไข

งาน

เทจ

จรง

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

Page 33: บทที่ 8 การเขียนโปรแกรมเบื้องต้นacademic.udru.ac.th/~samawan/content/2-flowchart.pdf1. การร บข อม ลเข

33

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

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

ขอมล

1

2

ต าแหนง(Address)

X

A

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

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

8X = 1

X = 8

A = 2

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

Page 34: บทที่ 8 การเขียนโปรแกรมเบื้องต้นacademic.udru.ac.th/~samawan/content/2-flowchart.pdf1. การร บข อม ลเข

34

ตวอยาง

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

Page 35: บทที่ 8 การเขียนโปรแกรมเบื้องต้นacademic.udru.ac.th/~samawan/content/2-flowchart.pdf1. การร บข อม ลเข

35

เรมตน

A = 6

B = 2

W = A

A = B

1

1

B = W

จบงาน

2

6

ตวอยาง

A

B

W

2

6

6

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