หน่วยการเรียนรู้ที่ 4

เรื่อง การเขียนรหัสเทียม (Pseudo Code)

การฝึกเขียนซูโดโค้ด (Pseudocode) เทคนิคฝึกเขียนโปรแกรม

รหัสเทียม (Pseudo Code)

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


ประโยชน์ของรหัสเทียม

เป็นเครื่องมือในการกำหนดโครงร่างกระบวนการทำงานของการเขียนโปรแกรมและใช้เป็นต้อนแบบในการทบทวน ปรับปรุงแก้ไขและพัฒนาโปรแกรมของโปรแกรมเมอร์และนักวิเคราะห์ระบบ


หลักการเขียนรหัสเทียม

  • ใช้ภาษาอังกฤษที่เข้าในง่ายในการเขียน

  • ในหนึ่งบรรทัด มีเพียงหนึ่งประโยคคำสั่งเท่านั้น

  • ใช้ย่อหน้าแบ่งการแสดงการทำงานเพื่อให้อ่านง่าย

  • แต่ละประโยคคำสั่งให้เขียนจากบนลงล่าง และมีทางออกทางเดียว

  • กลุ่มของประโยคคำสั่งอาจรวมเป็นหมวดหมู่แล้วเรียกใช้เป็นโมดูล

รูปแบบการเขียนรหัสเทียม

ประโยคคำสั่งต่างๆ ที่ใช้ในการเขียนรหัสเทียมสามารถแบ่งออกมาเป็นกลุ่มย่อยๆ โดยลักษณะการใช้งานได้ดังนี้

การอ่าน/รับข้อมูล (Input/Output)

การอ่านข้อมูล สามารถใช้คำสั่ง READ, INPUT หรือ GET ได้ โดยเขียนดังนี้

READ variable_1, variable_2. variable_n

INPUT variable_1, variable_2. variable_n

GET variable_1, variable_2. variable_n

READ ใช้สำหรับการอ่านค่าที่มีอยู่แล้ว มาเก็บไว้ในตัวแปร เช่น การอ่านข้อมูลจากไฟล์โดยจะทำงานร่วมกับ OPEN (การเปิดไฟล์)

INPUT และ GET ใช้สำหรับการรับค่าข้อมูลผ่านทางแป้นพิมพ์

Variable คือ ตัวแปรที่ใช้เก็บข้อมูลที่อ่านหรือรับเข้ามา ซึ่งสามารถกำหนดกี่ตัวก็ได้โดยใช้เครื่องหมาย "," คั่นนระหว่างชื่อตัวแปร


การแสดงผลข้อมูล สามารถใช้คำสั่ง DISPLAY, PRINT, PROMPT หรือ WRITE ได้ โดยเขียนดังนี้


DISPLAY variable_1 , variable_2 , variable_n

WRITE variable_1 , variable_2 , variable_n

PRINT variable_1 , variable_2 , variable_n

PROMPT variable_1 , variable_2 , variable_n


DISPLAY ใช้สำหรับการแสดงผลทางจอภาพ

PRINT และ PROMPT ใช้สำหรับการพิมพ์ค่าข้อมูล หรือข้อความ

WRITE ใช้สำหรับการบันทึกข้อมูลลงในแฟ้มข้อมูล


การกำหนดเงื่อนไขหรือการตัดสินใจ (Dicision) ใช้คำสั่ง if...then โดยเขียนดังนี้


IF <condition> THEN

activity1

ELSE

activity2

ENDIF


<condition> คือ เงื่อนไขในการตัดสินใจ หากเงื่อนไขเป็นจริง จะทำกระบวนการหลัง THEN (activity1) แต่ถ้าเงี่อนไขเป็นเท็จ จะข้ามไปทำกระบวนการหลัง ELSE (activity2)


การทำงานแบบวนซ้ำ

การทำงานแบบวนซ้ำด้วย REPEAT ... UNTIL


REPEAT

activity1

UNTIL <condition>

การทำงานแบบวนซ้ำด้วย REPEAT ... UNTIL จะทำ activity ภายในลูปก่อนแล้วค่อยทำการตรวจสอบเงื่อนไข ถ้าเงื่อนไขเป็นจริงจะทำซ้ำไปเรื่อยๆ จนกระทั่งเงื่อนไขเป็นเท็จจึงจะออกจากลูป ดังนั้นจึงมีการทำงานอย่างน้อย 1 รอบเสมอ


ตัวอย่าง 5.3 รหัสเทียม REPEAT ... UNTIL

N=0

REPEAT

N=N+1

UNTIL N=10


จากตัวอย่าง ในตอนแรกค่าของ N เป็น 0 พอเริ่มทำงานในลูป N จะถูกบวกเพิ่มทีละ 1 จนกระทั่ง N = 10 จึงจบการทำงาน ค่าของ N จึงเท่ากับ 10


การทำงานแบบวนซ้ำด้วย WHILE ... ENDWHILE


WHILE <condition>

actibity1

ENDWHILE


การทำงานแบบวนซ้ำด้วย WHILE จะมีการตรวจสอบเงื่อนไขก่อน โดยหากเงื่อนไขเป็นจริง จะทำ activity ภายในลูปซ้ำไปเรื่อยๆ จนกระทั่งเงื่อนไขเป็นเท็จ จึงจะออกจากลูปแต่หากเงื่อนไขที่ตรวจสอบครั้งแรกเป็นเท็จ ก็จะไม่มีการทำงานเกิดขึ้นเลย


ตัวอย่าง 5.4 รหัสเทียม WHILE ... ENDWHILE

N=0

WHILE N<10

N=N+1

UNTIL


จากตัวอย่าง ในตอนแรกค่าของ N เป็น 0 พอเริ่มทำงานในลูป จะทำการตรวจสอบก่อนว่า N น้อวกว่า 10 หรือไม่ ถ้าใช่ N จะถูกบวกเพิ่มทีละ 1 และกลับมาตรวจสอบเงื่อนไขใหม่จนกระทั่งเงื่อนไขผิด จึงจบการทำงาน ค่าของ N จึงเท่ากับ 10


การทำงานแบบวนซ้ำด้วย FOR ... ENDFOR


FOR <var> = <start> to <stop>

actibity1

ENDFOR


การทำงานแบบวนซ้ำด้วย FOR จะมีจำนวนรอบการทำงานที่แน่นอน โดยกำหนดจาก < var > ว่ามีค่าเริ่มต้นเป็นอะไรและค่าสุดท้ายเป็นอะไร เช่น I = 1 to 10 ก็จะทำงาน 10 รอบ ดังนั้นการใช้ FOR จึงจำเป็นต้องรู้จำนวนรอบในการทำงานที่แน่นอนจึงจะใช้ได้


ตัวอย่าง 5.5 รหัสเทียม FOR .. ENDFOR

FOR I = 1 to 10

WRITE "Hello World"

ENDFOR


จากตัวอย่างกำหนด I ตั้งแต่ 0 ถึง 10 จึงทำงาน 10 รอบ โปรแกรมก็จะพิมพ์คำว่า "Hello World" ออกมา 10 ครั้ง

การประมวลผล (Process)

การประมวลผล คือ การกระทำใดๆ ที่เป็นการคำนวณ เช่น บวก ลบ คูณ หาร ซึ่งจะใช้คำศัพท์ง่ายๆ เช่น ADD ใช้บวกเพิ่มค่าให้ตัวแปร SUBTRACT. ใช้ลบค่าออกจากตัวแปร SET ใช้กำหนดค่าให้ตัวแปร แต่การใช้คำศัพท์ไม่ค่อยสะดวกนัก จึงนิยมใช้ตัวดำเนินการมากกว่า เช่น + , - , * , / , %


ตัวอย่าง 5.6 การใช้ตัวดำเนินการ

SET 8 to n

ADD2 to n

n = 8

n = n+2


จากตัวอย่าง 5.6 เป็นการกำหนดค่าให้กับตัวแปร n มีค่าเท่ากับ 8 และบวกค่าเพิ่มอีก 2

นอกจากดำเนินการแล้วแล้วยังมีสัญลักษณ์ที่ใช้ในการเปรียบดังนี้

  • สัญลักษณ์เทียบค่า ซึ่งเป็นความสัมพันธ์ ซึ่งประกอบด้วยสัญลักษณ์ == , < , <= , > , >= , <>

ตัวอย่าง 5.7 การใช้สัญลักษณ์การเปรียบเทียบความสัมพันธ์

IF A == B THEN

PRINT A

ENDIF

WHILE N<=10

N=N+1

UNTIL


จากตัวอย่าง 5.7 เปรียบเทียบว่าค่าตัวแปร A เท่ากับค่าตัวแปร B หรือไม่ ถ้าใช่ให้แสดงค่า A และอีกตัวอย่างเป็นการเปรียบเทียบว่าค่าตัวแปร N มีค่าน้อยกว่าหรือเท่ากับ 10 หรือไม่ ถ้าใช่ให้เพิ่มค่า N ทีละ 1


  • สัญลักษณ์เทียบค่า ที่เป็นตรรกะ ซึ่งประกอบด้วยสัญลักษณ์ AND , OT , NOT

ตัวอย่าง 5.8 การใช้สัญลักษณ์การเปรียบเทียบตรรกะ

IF (A ==2) OR (B==2) THEN

PRINT A

ENDIF

IF NOT (A==2) THEN

PRINT B

ENDIF


จากตัวอย่าง 5.8 เปรียบเทียบว่าถ้าค่าตัวแปร A เท่ากับ 2 หรือค่าตัวแปร B เท่ากับ 2 ให้แสดงค่า A และถ้าค่าตัวแปร A ไม่เท่ากับ 2 ให้แสดงค่า A