2.3.1 รหัสเทียม (Pseudo code) เป็นเครื่องมือที่ช่วยในการแก้ปัญหา การเขียนจะเป็นคำอธิบายที่มีโครงสร้างที่ชัดเจน ไม่ขึ้นกับ ภาษาใดภาษาหนึ่ง แต่สามารถเปลี่ยนเป็นภาษาทางคอมพิวเตอร์ได้ง่าย ความแตกต่างของการเขียนรหัสเทียมต่าง และการเขียนขั้นตอนวิธี การเขียนรหัสเทียม มีลักษณะที่เป็นโครงสร้างมากขึ้น คือมีลักษณะของ Sequence Selection Repetition
ข้อตกลงในการเขียนรหัสเทียม ในการอธิบายการทำงานใช้คำสั่งซึ่งเป็นคำกริยาในภาษาอังกฤษ เช่น MOVE INITIALIZE READ WRITE SUBTRACT ADD DISPLAY COMPUTE เป็นต้น คำสั่งหลาย คำสั่งรวมเรียกว่า มอดูล หรือกระบวนการ กำหนดชื่อให้มอดูลนั้น แล้วใช้ do นำหน้า การทำงานใด ๆ จะเขียนคำสั่งเป็นบรรทัด ๆ ไป เรียงเป็นลำดับ การทำงานตามเงื่อนไข เป็นการทดสอบเงื่อนไขแล้ว จะเลือกทำทางใดทางหนึ่งเท่านั้น เช่น
IF Condition THEN Statement-1 ELSE Statement-2 ENDIF อธิบายคำสั่งได้ดังนี้ คำสั่ง IF เป็นการตรวจสอบเงื่อนไข หากเงื่อนไขเป็นจริง จะทำคำสั่งที่ 1 แต่หากเงื่อนไขเป็นเท็จ จะทำคำสั่งที่ 2
การวนรอบ เป็นการวนรอบซ้ำตามจำนวนที่ต้องการ ซึ่งการวนรอบมีหลายลักษณะ ดังนี้ REPEAT FOR วนรอบซ้ำ เท่าจำนวนรอบที่ระบุ REPEAT UNTIL วนรอบซ้ำ จนกระทั่ง เงื่อนไขที่กำหนดเป็นจริง REPEAT WHILE วนรอบซ้ำในขณะที่เงื่อนเป็นจริง
REPEAT FOR วนรอบซ้ำ เท่าจำนวนรอบที่ระบุ คือรู้จำนวนรอบที่แน่นอน REPEAT FOR n TIMES Statement-1 Statement-2 ENDFOR อธิบายคำสั่งได้ดังนี้ คำสั่ง FOR เป็นการวนรอบซ้ำเป็นจำนวน n ครั้ง เพื่อทำคำสั่งที่ 1 คำสั่งที่ 2
REPEAT UNTIL วนรอบซ้ำ จนกระทั่ง เงื่อนไขที่กำหนดเป็นจริงจึงเสร็จสิ้น Statement-1 Statement-2 UNTIL condition อธิบายคำสั่งได้ดังนี้ คำสั่ง REPEAT UNTIL เป็นการวนรอบซ้ำในขณะที่เงื่อนไขเป็นเท็จ เพื่อทำคำสั่งที่ 1 คำสั่งที่ 2 แต่หากเงื่อนไขเป็นจริง ก็จบการวนซ้ำ
REPEAT WHILE วนรอบซ้ำในขณะที่เงื่อนเป็นจริง REPEAT WHILE condition Statement-1 Statement-2 END REPEAT อธิบายคำสั่งได้ดังนี้ คำสั่ง REPART WHILE เป็นการวนรอบซ้ำในขณะที่เงื่อนไขเป็นจริงเพื่อทำคำสั่งที่ 1 คำสั่งที่ 2 แต่หากเงื่อนไขเป็นเท็จก็จบการวนซ้ำ
ตัวอย่างการเขียน รหัสเทียม 1) ให้นับจำนวนนักศึกษาที่อายุ มากกว่าหรือเท่ากับ 18 ปี และจำนวนนักศึกษาที่อายุน้อยกว่า 18 ปี Set Adult Counter and Junior Counter to Zero IF student’s age >= 18 THEN Adult Counter = Adult Counter + 1 ELSE Junior Counter = Junior Counter + 1 ENDIF
2) ให้นับจำนวนพนักงานหญิง และพนักงานชาย โดยนับจากข้อมูลรหัสเพศ และตรวจสอบด้วยว่าข้อมูลรหัสเพศที่ไม่ถูกต้องมีกี่คน Set FemaleCounter, MaleCounter, ErrorCounter to Zero IF employee’s sex is female THEN FemaleCounter = FemaleCounter + 1 ELSE IF employee’s sex is male THEN MaleCounter = MaleCounter + 1 ELSE ErrorCounter = ErrorCounter + 1 ENDIF ENDIF
3) ให้นับจำนวนชั่วโมงการทำงานที่เกิน 40 ชั่วโมง IF hour worked > 40 THEN OverTimeCounter = OverTimeCounter + 1 ENDIF 4) จงเขียนรหัสเทียม หาพื้นที่ของวงกลม กำหนดให้ สูตรพื้นที่วงกลม = 3.1415 x รัศมี x รัศมี Area of cycle Read radius Compute Area = 3.1415 * radius * radius Display Area End
5) ทำการวนรอบเพื่อพิมพ์รายชื่อลูกค้าจำนวน 5 คน Print Heading Initialize Counter to 1 Repeat Print CustName Increment Counter by 1 Until Counter equals 5 End
6)ทำการวนรอบเพื่อพิมพ์ชื่อและที่อยู่ของลูกค้าจนหมดแฟ้มข้อมูล Print Heading Read CustRecord Repeat While EndOfFile Print CustName , CustAddress Read CustRecord EndRepeat End