ม.3 รหัสจำลอง Pseudocode

Preview:

Citation preview

1

*การเขยนซโดโคด หรอ รหสจ าลอง (Pseudo Code)

นายบรรสทธ ดลอม ครช านาญการ โรงเรยนเทศบาลบานสามเหลยม

เทศบาลนครขอนแกน จงหวดขอนแกน

2

รปแบบการเขยนอลกอรทม

การเขยนซโดโคด (Pseudo Code)

หมายถง การน าค าในภาษาองกฤษ มาแสดงการท างานของคอมพวเตอร โดยเรยบเรยงเปนประโยคใหสามารถสอความหมายใหผอานเขาใจไดวาแตละขนตอนของการแกปญหานนท าไดอยางไร ซโดโคดทดตองมความชดเจน สน กระชบ ไดใจความกอนท าการเขยนอลกอรทม ตองก าหนดตวแปรกอนทจะใชกอนเสมอ

3

* รหสจ าลอง (Pseudo Code)

Pseudo code สามารถก าหนดการท างานไดเปน 6 ขอ ดงน 1. การรบขอมลของคอมพวเตอร 2. การแสดงผลขอมลของคอมพวเตอร 3. การค านวณหรอการท างานทางคณตศาสตรของคอมพวเตอร 4. การก าหนดคาขอมลของคอมพวเตอร 5. การเปรยบเทยบขอมล 2 อยาง และมการเลอกทางเดยวหรอสอง

ทางเลอกในการท างานหรอหลายทาง 6. การท างานซ าของคอมพวเตอร

4

*

การรบขอมล นยมใชค าวา read หรอ input ตามดวยชอตวแปรทตองการรบคา ถาตองการรบคาหลายตวแปรใหใชเครองหมาย comma (,) คน

input ตวแปร1, ตวแปร2, …

read ตวแปร1, ตวแปร2, …

5

* Read : การอานขอมลจากทมเกบอยในไฟลแลว

Get หรอ Input : การรบขอมลมาจากคยบอรด

Read student name Get system date Read number1, number2 Get tax_code

6

2. การแสดงผลขอมลของคอมพวเตอร Print : การสงผลลพธไปยงเครองพมพ (Printer)

Write หรอ Put : การเกบขอมลลงสไฟล (File)

Output หรอ Display : การแสดงผลขอมลบนจอภาพ (Screen)

Print ‘Program Completed’ Write customer record to master file Put name, address and postcode Output total_tax Display ‘End of data’

7

3. การค านวณหรอการท างานทางคณตศาสตรของคอมพวเตอร

Add : การบวก

Subtract : การลบ

Multiply : การคณ

Divide : การหาร

Add number to total total = total + number

Divide total_marks by student_count

sale_tax = cost_price * 0.10

Compute C = (F-32) * 5/9

8

4. การก าหนดคาขอมลของคอมพวเตอร Set หรอ Initialise : การก าหนดคาเรมตนใหกบขอมล ตาม to

= : การก าหนดคาผลลพธทไดจากการประมวลผล

Save หรอ Store : การเกบคาขอมลไวใชงานในครงตอไป

Initialise total accumulators to zero

Set student_count to 0

total_price = cost_price + sale_tax

Store customer_num in last_customer_num

9

5.1 การเปรยบเทยบระหวาง 2 คา เปนการเปรยบเทยบเงอนไข ถาเงอนไขเปนจรงจะใหท าค าสงกลมหนง แตถาเงอนไขเปนเทจใหท าค าสงอกกลมหนง ใชค าวา if..then..else..endif

if (เงอนไข) then กลมค าสงกรณเงอนไขเปนจรง

else กลมค าสงกรณเงอนไขเปนเทจ

endif

ตวอยาง if (x > 0) then read x else compute sum = x + y endif

5. การเปรยบเทยบขอมล 2 อยาง และมการเลอกทางเดยวหรอสองทางเลอกในการท างานหรอหลายทาง

10

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

case ตวแปรทใชเปรยบเทยบ of คาตวแปร1 : กลมค าสงกรณตวแปรมคาเทากบคาตวแปร1 คาตวแปร2 : กลมค าสงกรณตวแปรมคาเทากบคาตวแปร2 ... endcase

5. การเปรยบเทยบขอมล 2 อยาง และมการเลอกทางเดยวหรอสองทางเลอกในการท างานหรอหลายทาง

11

5.2 ตวอยางการท างานหลายทางเลอก

Case grade of 4 : write ‘A’ 3 : write ‘B’ 2 : write ‘C’ 1 : write ‘D’ 0 : write ‘F’ endcase

12

การท างานแบบวนซ า ม 3 รปแบบ คอ

6.1 do-while มการเปรยบเทยบเงอนไขกอนทจะท าค าสงภายใน แลวจงท าการเปรยบเทยบเงอนไขอกครง แตถาเงอนไขเปนเทจจะไมท าค าสงภายในแตจะขามไปท าค าสงถดไปจาก do-while

do (เงอนไขทใชเปรยบเทยบ) while กลมค าสงกรณเงอนไขเปนจรง enddo

6. การท างานซ าของคอมพวเตอร

end-of = ‘N’ do (end-of = ‘N’) while write ‘A’ compute x = y + 1 read end-of enddo

13

6.2 repeat-until ท าค าสงภายในกอน แลวจงท าการเปรยบเทยบเงอนไข ถาเงอนไขเปนเทจจะท าค าสงภายใน แต ถาเงอนไขเปนจรงจะขามไปท าค าสงถดไปจาก repeat-until

repeat กลมค าสงกรณเงอนไขเปนเทจ until (เงอนไขทใชเปรยบเทยบ)

6. การท างานซ าของคอมพวเตอร

end-of = ‘N’

repeat write ‘A’ compute x = y + 1 read end-of

until (end-of = ‘Y’)

14

6.3 for-endfor ท าค าสงภายในตามจ านวนครงทก าหนด ซงตองมตวแปรนบมาชวย เพอก าหนดจ านวนครงในการท าซ า

for ตวแปรนบ = คาเรมตน to คาสดทาย

กลมค าสง

endfor

6. การท างานซ าของคอมพวเตอร

For counter = 1 to 3 write ‘A’ endfor

15

1 ตวอยาง (Nature language)

ตวอยางท1. จงเขยนอลกอรทมเพอค านวณหาความยาวของทดนแปลงหนง โดยทราบคาพนทและความกวาง แลวแสดงผลทางหนาจอ วธท า (1). ก าหนดคาเรมตนของความยาวทดน เปน 0

(2). รบคาของขอมลพนทและความกวางของทดน

(3). ค านวณคา ความยาวทดน = พนท / ความกวาง

(4). แสดงผลคาความยาวทดนทไดจากการค านวณ

16

ตวอยางท2. จงเขยนอลกอรทมเพอรบขอมลราคาสนคาตอหนวย และจ านวนทซอสนคานน เพอค านวณหาราคาสนคารวม ภายใตเงอนไขตอไปน

วธท า (1). ก าหนดคาเรมตนของราคาสนคารวม เปน 0 (2). รบขอมล ราคาสนคาตอหนวย และจ านวนสนคาทซอ

(3). เปรยบเทยบจ านวนสนคา ถาสนคามนอยกวา 6 ชน ใหค านวณ ราคาสนคารวม = (ราคาสนคาตอหนวยxจ านวนชน) x 90/100

ถาสนคามมากกวาหรอเทากบ 6 ชน ใหค านวณ ราคาสนคารวม = (ราคาสนคาตอหนวย xจ านวนชน) x 85/100

(4). แสดงผลราคาสนคารวมทค านวณได

17

จากตวอยางท 2 ท าในรปแบบของซโดโคด คอ

วธท า ก าหนดตวแปร grandtotal = ราคาสนคารวม price = ราคาสนคาตอหนวย , numbers= จ านวนสนคา Start grandtotal = 0

read price, numbers if (numbers < 6) then compute grandtotal = (price * numbers) * 90/100 else compute grandtotal = (price * numbers) * 85/100 endif

write grandtotal Stop

18

ตวอยางท 3. จงเขยนอลกอรทมเพอรบขอมลราคาสนคาตอหนวย และจ านวนทซอสนคามากกวา 1 รายการสนคา เพอค านวณหาราคาสนคารวม ภายใตเงอนไขคอ ใหหยดเมอรายการสนคามากกวา 10 รายการ

วธท า (1). ก าหนดคาเรมตนของ ราคาสนคา และราคาสนคารวม เปน 0 และจ านวนรายการเปน 0

(2). รบขอมลราคาสนคาตอหนวย และจ านวนสนคาทซอ

(3). ค านวณ เพมจ านวนรายการสนคา นนคอ

จ านวนรายการ = จ านวนรายการ + 1

(4). ค านวณ ราคาสนคา = ราคาสนคาตอหนวย x จ านวนสนคา

ค านวณสะสม ราคาสนคารวม = ราคาสนคารวม +ราคาสนคา

(5). เปรยบเทยบจ านวนรายการวามากกวา 10 รายการหรอไม ถาไม ใหท าวน

ขอ (2)ใหม ถามากกวากใหท าขอ (6)

(6). แสดงผลคาราคาสนคารวม

19

จากตวอยางท 3 ท าในรปแบบของซโดโคด คอ

วธท า ก าหนดตวแปร grandtotal = ราคาสนคารวม

price = ราคาสนคาตอหนวย

numbers= จ านวนสนคา

grandprice = ราคาสนคา

counter = จ านวนรายการ

เนองจากมการวนซ าเกดขนเพราะโจทยบอกใหท ามากกวา 1 รายการ ซงการทจะใช

do-while , repeat-until และ for ใหผลไมเหมอนกน เราตองพจารณาใหดวาโจทย

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

20

จากตวอยางท 3 ท าในรปแบบของซโดโคด คอ

Start grandtotal = 0, grandprice = 0, counter = 0

repeat read price, numbers compute counter = counter + 1 compute grandprice = price * numbers compute grandtotal = grandtotal + grandprice until (counter > 10) write grandtotal

Stop

21

*การเขยนซโดโคด (Pseudo Code)

22

จากตวอยางท 1 ท าในรปแบบของflowchart คอ

Start

Lplace = 0

read surface, wplace

compute lplace = surface / wplace write lplace

Stop

23

จากตวอยางท 2 ท าในรปแบบของflowchart คอ Start

grandtotal = 0

read price, numbers

grandtotal = (price * numbers) * 85/100 write grandtotal

Stop

(numbers < 6) no

grandtotal = (price * numbers) * 90/100 yes

24

1. โครงสรางตามล าดบ (Sequence Structure)

statement a

statement b

statement c

Add 1 to page_count

Print heading line

Set linecount to zero

Read customer record

สรปโครงสรางพนฐานส าหรบการเขยนโปรแกรมแบบการเขยนซโดโคด รหสจ าลอง (Pseudo Code)

25

2. โครงสรางการเลอก (Selection Structure)

IF condition p is true THEN IF student is part_time THEN

statement(s) in true case add 1 to part_time_count

ELSE ELSE

statement(s) in false case add 1 to full_time_count

ENDIF ENDIF

26

3. โครงสรางการท างานซ า (Repetition Structure)

DOWHILE condition p is true WHILE condition p is true DO

statement block statement block

ENDDO ENDWHILE

27

ตวอยาง โปรแกรมมการรบคาตวเลข 3 จ านวน แลวน ามาบวกกน จากนนพมพคาผลบวกทได

Input Processing Output

number_1 Read three numbers total

number_2 Add numbers together

number_3 Print total number

ตวแปรทใชส าหรบเกบคาตวเลข 3 จ านวน คอ Number_1,Number_2,Number_3 ตามล าดบ

ตวแปรทเกบคาผลบวก คอ Total

28

รปแบบการเขยนอลกอรทม (ตอ)

4. การเขยนโครงสรางการท างาน (Structure Chart)

เปนการออกแบบอลกอรทมหรอออกแบบผงงานทไมซบซอนมากนก โดยแบงงานเปนงานยอย (subtask) หรอ function หรอ module ซงท างานเฉพาะอยาง โดยก าหนดชอของแตละโมดลไว ท าใหสามารถท าความเขาใจ งานใหญๆและซบซอนได ผออกแบบสามารถพฒนาอลกอรทมของแตละโมดลได

*ตวอยาง

Initial Data Read Data Compute Data Write Ouput

โปรแกรมความยาวทดน

29

*ตวอยาง

Initial Data Read Data

Compute 1 Compute 2

Compare number Write Ouput

โปรแกรมราคาสนคา

30

Recommended