รหัสเทียม (Psuedocode)

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

                รหัสเทียมไม่มีกฎในการเขียนตายตัว โดยมากขึ้นอยู่กับความถนัดของผู้ใช้ แต่มีข้อตกลงบางอย่างร่วมกันเป็นสากล ส่วนประกอบที่สำคัญของรหัสเทียม ได้แก่ ชื่อ คำสั่งกำหนดงาน คำสั่งควบคุม กลุ่มของคำสั่ง และข้อบันทึกหรือคำอธิบาย

 

ชื่อ (Name)

                มักขึ้นต้นด้วยคำว่า procedure ตามด้วยชื่อของขั้นตอนวิธี และลำดับและชนิดของตัวแปรที่ใช้รับข้อมูลนำเข้า เช่น

                Procedure FindMax(a1, a2, …, an : integers)

 

คำสั่งกำหนดงาน (Assignment Statements)

                ใช้เครื่องหมาย := (หรือบางครั้งใช้ ¬) สำหรับกำหนดค่าจากนิพจน์ทางขวาให้แก่ตัวแปรทางด้านซ้าย

เช่น

                Variable := expression

b := 5

a := n + 10

d := sqrt(4)

z ¬ จำนวนที่มากที่สุดในลำดับ L

a ¬ สลับค่าของตัวแปร a กับ b

 

กลุ่มของคำสั่ง (Blocks of Statements)

                คำสั่งอาจมีการรวมกลุ่มเพื่อให้ง่ายต่อการเข้าใจโดยขึ้นต้นกลุ่ม(Block) ด้วยคำว่า begin และสิ้นสุดด้วยคำว่า end ทั้งนี้แต่ละบรรทัดของคำสั่งจะมีการย่อหน้าที่เท่ากันด้วย

เช่น

                begin

                                b:=i

                                n:=sqrt(b)

                                q:=b/n

                end

 

ข้อบันทึกหรือคำอธิบาย

                บันทึกในเครื่องหมาย {} เพื่อช่วยเตือนความจำหรืออธิบายขั้นตอนที่อาจเข้าใจยาก

เช่น

                n := floor(x)

{floor function floor(1.5) = 1 and floor(-1.5) = -2}

 

คำสั่งควบคุม (control Statements)

                แบ่งได้เป็น 2 ชนิด คือ

1. คำสั่งเงื่อนไข – การทำงานเริ่มจากเงื่อนไขจะถูกตรวจสอบก่อน ถ้าเป็นจริงแล้วคำสั่ง(หรือกลุ่มของคำสั่ง) ที่กำหนดไว้จะถูกปฏิบัติต่อไป โดยอาจมีทางเลือกด้วยว่าถ้าเงื่อนไขไม่เป็นจริง จะปฏิบัติคำสั่ง(หรือกลุ่มของคำสั่ง) อื่นแทน คำสั่งเงื่อนไขมีรูปแบบคือ

 

                IF(เงื่อนไข)then

                                คำสั่ง(หรือกลุ่มของคำสั่ง)ที่ต้องปฏิบัติเมื่อเงื่อนไขเป็นจริง

หรือ

                IF(เงื่อนไข)then

                   คำสั่ง(หรือกลุ่มของคำสั่ง)ที่ต้องปฏิบัติเมื่อเงื่อนไขเป็นจริง

else

                                คำสั่ง(หรือกลุ่มของคำสั่ง)ที่ต้องปฏิบัติเมื่อเงื่อนไขไม่เป็นจริง

 

เงื่อนไขคือนิพจน์ที่เมื่อถูกตรวจสอบหรือคำนวณแล้วจะมีค่าความจริงเป็นจริงหรือเท็จเท่านั้น

 

เช่น

                                If (n<0) then

                                                n := -n

                                ans := sqrt (n)

                หรือ

                                If (a < b) then

                                                smaller := a

                                else

                                                smaller := b

 

บางครั้งเงื่อนไขที่ต้องการตรวจสอบอาจมีมากกว่าหนึ่งเงื่อนไข คำสั่งเงื่อนไขสามารถเขียนได้เป็นระบบ

เช่น

                If (n > 80) then

                                Point := 4

Else If (n > 70) then

                Point := 3

Else If (n > 60) then

                Point := 2

Else If (n > 50) then

                Point := 1

Else

                Point := 0

 

2. คำสั่งทำซ้ำ – แบ่งได้เป็น 2 แบบ คือ

a.             คำสั่งทำซ้ำตามดัชนี(for loop) – เริ่มต้นด้วยการกำหนดค่าของดัชนีให้มีค่าเท่ากับ ค่าเริ่มต้น แล้วจึงปฏิบัติคำสั่ง(หรือกลุ่มของคำสั่ง)จนสิ้นสุด จากนั้นค่าของดัชนีจะถูกเพิ่มขึ้นอีกครั้งละ 1 สลับกับการปฏิบัติคำสั่ง(หรือกลุ่มของคำสั่ง) 1 ครั้ง

 

                                คำสั่งทำซ้ำตามดัชนีจะสิ้นสุดก็ต่อเมื่อตัวแปรที่เป็นดัชนีมีค่ามากกว่าค่าสุดท้าย

 

                                คำสั่งทำซ้ำตามดัชนีมีรูปแบบคือ

                                                For ตัวแปรที่เป็นดัชนี := ค่าเริ่มต้น to ค่าสุดท้าย do

                                                                คำสั่ง(หรือกลุ่มของคำสั่ง)ที่ต้องปฏิบัติ

                เช่น

                                Power := n

                                For i:= 1 to 5 do

                                                Power := power*n

                หรือ

                                Sum := 0

                                For j := 1 to 10 do

                                                Sum := sum + j

 

b.             คำสั่งทำซ้ำในขณะที่เงื่อนไขเป็นจริง (While loop) - เริ่มต้นด้วยการตรวจสอบเงื่อนไขก่อนถ้าเป็นจริง คำสั่ง(หรือกลุ่มของคำสั่ง)ที่กำหนดไว้จะถูกปฏิบัติต่อไปจนสุด จากนั้นเงื่อนไขจะถูกตรวจสอบอีก ถ้าเป็นจริงแล้ว คำสั่ง(หรือกลุ่มของคำสั่ง)ที่กำหนดไว้จะถูกปฏิบัติต่อไปจนสิ้นสุดอีกครั้งหนึ่ง

 

คำสั่งทำซ้ำในขณะที่เงื่อนไขเป็นจริงนี้ จะสิ้นสุดก็ต่อเมื่อตรวจสอบเงื่อนไขแล้วพบว่าไม่จริง

 

คำสั่งทำซ้ำในขณะที่เงื่อนไขเป็นจริงมีรูปแบบคือ

                                                While(เงื่อนไข)do

                                                                คำสั่ง(หรือกลุ่มของคำสั่ง)ที่ต้องปฏิบัติ

                                เช่น

                                                N := 10000

                                                While (n>1) do

                                                                Begin

                                                                                N := n/10

                                                                end