DESIGNING OF PROGRAMS WITH PSEUDO CODE …PSEUDO CODE • การน าค...

Preview:

Citation preview

www . i t s c i .m ju . ac . t h / sayan

DESIGNING OF PROGRAMS WITH PSEUDO CODE

SAYAN UNANKARD1/2562

4

การควบคุมการท างานของโปรแกรม (PROGRAM CONTROL FLOW)

การควบคุมการท างานของโปรแกรม เป็นเครื่องมือที่ผู้พัฒนาโปรแกรมใช้ในการแสดงล าดับการท างานของโปรแกรมหรือใช้อธิบายอัลกอริธึม ให้เป็นระบบและง่ายต่อความเข้าใจ โดยโครงสร้างอาจจะอยู่ในรูปแบบดังนี้คือ• ผังงาน (Flowchart) ซึ่งเป็น Flow Diagram ชนิดหนึ่งส าหรับใช้อธิบายขั้นตอนการท างาน

ของโปรแกรมในลักษณะรูปภาพ

• ชุดค าสั่งเทียม (Pseudo code) จะมีสัญลักษณ์คล้ายกับภาษาอังกฤษ กับภาษาคอมพิวเตอร์ใช้ในการอธิบายลักษณะโครงสร้างข้อมูล และการท างานของอัลกอริธึมที่เราเขียนขึ้น

2

PSEUDO CODE

• การน าค าในภาษาอังกฤษ มาแสดงการท างานของคอมพิวเตอร์ โดยเรียบเรียงเป็นประโยคให้สามารถสื่อความหมายให้ผู้อ่านเข้าใจได้ว่าแต่ละขั้นตอนของการแก้ปัญหานั้นท าได้อย่างไร

• Pseudo code ที่ดีต้องมีความชัดเจน สั้น กระชับ ได้ใจความก่อนท าการเขียนอัลกอริทึม ต้องก าหนดตัวแปรก่อนที่จะใช้ก่อนเสมอ

3

วิธีการเขียนรหัสจ าลอง (PSEUDO CODE)

Pseudo code สามารถก าหนดการท างานได้เป็น 6 ข้อ ดังนี้• การรับข้อมูลของคอมพิวเตอร์

• การแสดงผลข้อมูลของคอมพิวเตอร์

• การค านวณหรือการท างานทางคณิตศาสตร์ของคอมพิวเตอร์

• การก าหนดค่าข้อมูลของคอมพิวเตอร์

• การเปรียบเทียบข้อมูล 2 อย่าง และมีการเลือกทางเดียวหรือสองทางเลือกในการท างานหรือหลายทาง

• การท างานซ้ าของคอมพิวเตอร์

4

1. การรับข้อมูลของคอมพิวเตอร์

• การรับข้อมูลนิยมใช้ค าว่า read หรือ input ตามด้วยชื่อตัวแปรที่ต้องการรับค่า ถ้าต้องการรับค่าหลายตัวแปรให้ใช้เครื่องหมาย comma คั่น

• Read : การอ่านข้อมูลจากที่มีเก็บอยู่ในไฟล์แล้ว

• Get หรือ Input : การรับข้อมูลมาจากคีย์บอร์ด

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

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

5

Read student nameGet system dateRead number1, number2Get tax_code

2. การแสดงผลข้อมูลของคอมพิวเตอร์

• Print : การส่งผลลัพธ์ไปยังเครื่องพิมพ์ (Printer)

• Write หรือ Put : การเก็บข้อมูลลงสู่ไฟล์ (File)

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

6

Print ‘Program Completed’Write customer record to master filePut name, address and postcodeOutput total_taxDisplay ‘End of data’

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

• Add : การบวก

• Subtract : การลบ

• Multiply : การคูณ

• Divide : การหาร

7

Add number to totaltotal = total + numberDivide total_marks by student_countsale_tax = cost_price * 0.10Compute C = (F-32) * 5/9

4. การก าหนดค่าข้อมูลของคอมพิวเตอร์

• Set หรือ Initialize : การก าหนดค่าเริ่มต้นให้กับข้อมูล ตาม to

• = : การก าหนดค่าผลลัพธ์ที่ได้จากการประมวลผล

• Save หรือ Store : การเก็บค่าข้อมูลไว้ใช้งานในครั้งต่อไป

8

Initialize total accumulators to zero

Set student_count to 0

total_price = cost_price + sale_tax

Store customer_num in last_customer_num

5. การเปรียบเทียบข้อมูล

5.1 การเปรียบเทียบระหว่าง 2 ค่า เป็นการเปรียบเทียบเงื่อนไข ถ้าเงื่อนไขเป็นจริงจะให้ท าค าสั่งกลุ่มหนึ่ง แต่ถ้าเงื่อนไขเป็นเท็จให้ท าค าสั่งอีกกลุ่มหนึ่ง ใช้ค าว่า if..then..else..end if

if (เงื่อนไข) then กลุ่มค าสั่งกรณีเงื่อนไขเป็นจริง

else กลุ่มค าสั่งกรณีเงื่อนไขเป็นเท็จ

end if

9

if (x > 0) thenread x

elsecompute sum = x + y

end if

5. การเปรียบเทียบข้อมูล

5.2 การเปรียบเทียบทางเลือกหลายทาง เป็นการเปรียบเทียบค่าของข้อมูล โดยจะไปท ากลุ่มค าสั่งตามค่าของตัวแปรที่ใช้เปรียบเทียบ ใช้ค าว่า case

case ตัวแปรที่ใช้เปรียบเทียบ of

ค่าตัวแปร1 : กลุ่มค าสั่งกรณีตัวแปรมีค่าเท่ากับค่าตัวแปร1

ค่าตัวแปร2 : กลุ่มค าสั่งกรณีตัวแปรมีค่าเท่ากับค่าตัวแปร2

...

end case

10

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

case grade of

4 : write ‘A’

3 : write ‘B’

2 : write ‘C’

1 : write ‘D’

0 : write ‘F’

end case

11

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

การท างานแบบวนซ้ า มี 3 รูปแบบ คือ

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

do (เงื่อนไขที่ใช้เปรียบเทียบ) while

กลุ่มค าสั่งกรณีเงื่อนไขเป็นจริง

end do

12

end-of = ‘N’

do (end-of = ‘N’) while

write ‘A’

compute x = y + 1

read end-of

end do

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

6.2 repeat-until ท าค าสั่งภายในก่อน แล้วจึงท าการเปรียบเทียบเงื่อนไข ถ้าเงื่อนไขเป็นเท็จจะท าค าสั่งภายใน แต่ ถ้าเงื่อนไขเป็นจริงจะข้ามไปท าค าสั่งถัดไปจาก repeat-until

repeat

กลุ่มค าสั่งกรณีเงื่อนไขเป็นเท็จ

until (เงื่อนไขที่ใช้เปรียบเทียบ)

13

end-of = ‘N’

repeat

write ‘A’

compute x = y + 1

read end-of

until (end-of = ‘Y’)

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

6.3 for-end for ท าค าสั่งภายในตามจ านวนครั้งที่ก าหนด ซึ่งต้องมีตัวแปรนับมาช่วย เพื่อก าหนดจ านวนครั้งในการท าซ้ า

for ตัวแปรนับ = ค่าเริ่มต้น to ค่าสุดท้าย

กลุ่มค าสั่ง

end for

14

for counter = 1 to 3

write ‘A’

counter = counter + 1

end for

EXAMPLE

ตัวอย่างโปรแกรมอ่านค่าตัวเลข แล้วแสดงผลค่าตัวเลขนั้น คูณกับ 2

15

STRUCTURED ENGLISH AND PSEUDOCODE

Structured English

PROGRAM PrintNumber:

Read in a number and print it multiply 2 out.

END.

16

Pseudocode

PROGRAM PrintNumber:

Read A;

Print A * 2;

END.

EXAMPLE

ตัวอย่างโปรแกรมส าหรับตรวจสอบว่า

เลขที่รับเข้ามาเป็นเลขคู่หรือเลขคี่

17

STRUCTURED ENGLISH AND PSEUDOCODE

Structured English

PROGRAM OddOrEven:

Read in a number.

Divide it by two.

If there is a remainder, the number isodd, otherwise it’s even.

END.

18

Pseudocode

PROGRAM OddOrEven:

Read A;

IF A mod 2 != 0

THEN Print “It’s Odd”;

ELSE Print “It’s Even”;

ENDIF;

END.

EXAMPLE

ตัวอย่างโปรแกรมส าหรับตรวจสอบ

หาค่าสูงสุดจากตัวเลข 3 ตัว

19

STRUCTURED ENGLISH AND PSEUDOCODE

Structured English

PROGRAM FindMax:

Read in three numbers.

Compare first and second numbers,

If the first is greater than the second, the maximum number is the first, otherwise it’s the second.

Compare the maximum number with the third number, if the third number is greater than the maximum, themaximum is the third.

END.20

Pseudocode

PROGRAM FindMax:

Read A, B, C;

IF A > B THENMax = A;

ELSE Max = B;

ENDIF;

IF C > Max THENMax = C;

ENDIF;

Display Max;

END.

EXAMPLE

ตัวอย่างโปรแกรมหาผลรวมตัวเลขตั้งแต่ 1 - 200

21

STRUCTURED ENGLISH AND PSEUDOCODE

Structured English

PROGRAM SumNumber:

Keep adding the numbers from 1 to 200.

END.

22

Pseudocode

PROGRAM SumNumber:

Set i to 1 and sum to 0.do (i <= 200) while

sum = sum + ii = i + 1

end while

Display sum;

END.

EXERCISES

จงเขียน flow chart และ Psedo code ของโปรแกรมต่อไปนี้1. โปรแกรมเกมทายตัวเลข โดยที่โปรแกรมจะสุ่มตัวเลขจ านวน 1 ตัว ระหว่าง 1 – 100

จากนั้นให้ผู้เล่นทายตัวเลข โดยกรอกข้อมูลทายตัวเลขได้สูงสุด 5 ครั้ง หากเกิน 5 ครั้งถือว่า Game Over ในแต่ละครั้งที่ทายตัวเลข โปรแกรมจะแสดงข้อความช่วยเหลือหลังจากที่ทายว่า ตัวเลขที่ทายนั้น มากกว่า หรือ น้อยกว่าตัวเลขที่สุ่มไว้ ในกรณีที่ทายถูกต้องจะแสดงข้อความว่า You Win!!

23

Recommended