รหัสเทียม หรือซูโดโค้ด (Pseudo Code) |
ปรับปรุง : 2566-01-20 (ปรับรุ่นเป็น 9.0) |
|
datastructure | รหัสเทียม | เซต | คิว | สแตก | ลิงค์ลิสต์ | ทรี | จัดเรียง | กราฟ | งานมอบหมาย |
อัลกอริทึม (Algorithm)
คือ กลุ่มของขั้นตอนหรือกฎเกณฑ์ที่จะนำพาไปสู่การแก้ปัญหา [3]p.37 คือ ขั้นตอนวิธีที่ประกอบด้วยชุดคำสั่งเป็นขั้นเป็นตอนที่ชัดเจน และรับประกันว่าเมื่อได้ปฏิบัติถูกต้องตามขั้นตอนจนครบก็จะได้ผลลัพธ์ที่ถูกต้องตามต้องการ [3]p.37 คือ รูปแบบของการกำหนดการทำงานอย่างเป็นขั้นตอน ซึ่งผ่านการวิเคราะห์และแยกแยะ เพื่อการแก้ปัญหาต่าง ๆ ตามลำดับขั้น อาจเลือกใช้ภาษาไทยหรือภาษาอังกฤษตามความถนัด เพื่อนำเสนอขั้นตอนของกิจกรรมก็ได้ [4]p.17 รหัสเทียม หรือซูโดโค้ด (Pseudo Code) คือ รหัสลำลองที่ใช้เป็นตัวแทนของอัลกอริทึม โดยมีถ้อยคำหรือประโยคคำสั่งที่เขียนอยู่ในรูปแบบของภาษาอังกฤษที่ไม่ขึ้นกับภาษาคอมพิวเตอร์ภาษาใดภาษาหนึ่ง [3]p.37 คือ การแสดงขั้นตอนวิธีการที่ใช้ภาษาเขียนที่เข้าใจได้ง่าย อาจใช้ภาษาไทยหรือภาษาอังกฤษก็ได้ขึ้นอยู่กับความสะดวกของผู้เขียนและกิจกรรมที่จะนำเสนอ มักใช้รูปแบบคล้ายประโยคภาษาอังกฤษเพื่ออธิบายรายละเอียดของอัลกอริทึม ผังงาน (Flowchart) คือ การแสดงขั้นตอนวิธีการที่ใช้สัญลักษณ์ที่เข้าใจได้ง่าย แต่ให้รายละเอียดได้น้อยกว่า ความแตกต่างของ Algorithm และ Pseudo Code คือ การแสดงความคิดที่ได้จากการจินตนาการถึงขั้นตอน ซึ่งขั้นตอนที่อยู่ในความคิดก็คือ Algorithm ที่ผ่านการแยก และจัดลำดับแล้ว เมื่อนำเสนอก็อาจใช้ภาษาง่าย ๆ แต่หากนำเสนอด้วยการเขียนเป็นภาษาที่สื่อให้ทุกคนเข้าใจตรงกันได้ง่ายก็คือ Pseudo Code นั้นเอง สำหรับหนังสือหลายเล่มแสดง Algorithm ด้วย Pseudo Code ก็ยังเรียกว่า Algorithm ได้เช่นกัน
|
ต.ย. อัลกอริทึมที่ 1 : ต้มมาม่า [3]p.25 1. หามาม่าไว้ 1 ซอง 2. ฉีกซองมาม่าและเทลงถ้วยเปล่า 3. ฉีกซองเครื่องปรุง แล้วเทลงถ้วยเดิม 4. ต้มน้ำให้ร้อนได้ที่ แล้วเทลงถ้วย 5. ปิดฝาไว้ 3 นาที 6. เปิดฝา แล้วรับประทาน |
คำถาม : ต้มมาม่า 1. มีขั้นตอนใดสลับกันได้ 2. ถ้าเปลี่ยนข้อความ จะเปลี่ยนอย่างไร 3. ถ้าทำหลายถ้วยจะทำอย่างไร ? คน 3 คนใครอายุมากที่สุด และเป็นเท่าใด |
ต.ย. อัลกอริทึมที่ 2 : หาค่าเฉลี่ย ใช้ Pseudo Code 1. set variable 2. loop
1. read number into variable
3. end loop2. add number to total 3. increase counter 4. set average = total / counter 5. print average |
ภาษาจาวา byte x; int i = 0; int total = 0; while (i < 5) { x = System.in.read();
}total = total + x; i++; double avg = total/i; System.out.println(avg); |
คำถาม : หาค่าเฉลี่ย 1. เขียนเป็นภาษาไทยอย่างไร 2. แต่ละบรรทัดในจาวาคืออะไร 3. สลับบรรทัดใดในจาวาได้บ้าง |
ต.ย. อัลกอริทึม 3 : ต้มมาม่า 30 ถ้วย 1. ซื้อมาม่า 30 ซอง 2. ต้มน้ำ 7.5 ลิตรจนเดือด 3. ทำซ้ำ 30 ครั้ง
1. เตรียมถ้วยและฝาปิดถ้วย
4. เรียกเพื่อนทั้ง 30 คน2. ฉีกซองมาม่า แล้วเทลงถ้วยเปล่า 3. ฉีกเครื่องปรุง แล้วเทลงถ้วยเดิม 4. เทน้ำร้อนลงถ้วยแล้วปิดฝา 5. เชิญทุกคนเปิด 30 ฝา แล้วรับประทาน |
ต.ย. อัลกอริทึม 4 : รับค่า 3 ครั้งแล้วหาผลรวม [6]p.4 1. set sum 2. input value1 3. input value2 4. input value3 5. calculate sum = value1 + value2 + value3 6. write sum |
ต.ย. อัลกอริทึม 5 : ใช้เครื่องคิดเลขหาผลรวม [3]p.26 [6]p.4 1. turn on calculator 2. clear calculator 3. repeat the following instructions 1. key in baht amount 2. key in decimal point(.) 3. key in satang amount 4. until all prices have been entered 5. write down total price 6. turn off calculator |
ต.ย. อัลกอริทึม 6 : เปรียบเทียบอายุนาย ก กับนาย ข แล้วพิมพ์อายุคนที่มากกว่า 1. รับอายุนาย ก 2. รับอายุนาย ข 3. เปรียบเทียบ อายุนาย ก มากกว่า อายุนาย ข หรือไม่ 1. ถ้ามากกว่า 1. ให้พิมพ์อายุนาย ก 2. ถ้าไม่มากกว่า 1. ให้พิมพ์อายุนาย ข |
ต.ย. อัลกอริทึม 7 : เปรียบเทียบอายุนาย ก กับนาย ข กับนาย ค แล้วพิมพ์อายุคนที่มากกว่า 1. รับอายุนาย ก 2. รับอายุนาย ข 3. รับอายุนาย ค 4. เปรียบเทียบ อายุนาย ก มากกว่า อายุนาย ข และมากกว่า อายุนาย ค หรือไม่ 1. ถ้ามากกว่า ให้พิมพ์อายุนาย ก 5. เปรียบเทียบ อายุนาย ข มากกว่า อายุนาย ก และมากกว่า อายุนาย ค หรือไม่ 1. ถ้ามากกว่า ให้พิมพ์อายุนาย ข 6. เปรียบเทียบ อายุนาย ค มากกว่า อายุนาย ก และมากกว่า อายุนาย ข หรือไม่ 1. ถ้ามากกว่า ให้พิมพ์อายุนาย ค |
ต.ย. อัลกอริทึม 8 : เปรียบเทียบอายุนาย ก กับนาย ข กับนาย ค แล้วพิมพ์อายุคนที่มากกว่า 1. รับอายุนาย ก 2. รับอายุนาย ข 3. รับอายุนาย ค 4. เก็บอายุนาย ก ไว้ในใจ 5. เปรียบเทียบ อายุนาย ข มากกว่าที่เก็บในใจ หรือไม่ 1. ถ้ามากกว่า ให้เก็บอายุนาย ข ไว้ในใจ 6. เปรียบเทียบ อายุนาย ค มากกว่าที่เก็บในใจ หรือไม่ 1. ถ้ามากกว่า ให้เก็บอายุนาย ค ไว้ในใจ 7. พิมพ์ค่าที่เก็บไว้ในใจ |
ต.ย. อัลกอริทึม 9 : จัดเรียงข้อมูลน้อยไปมาก แบบ bubble sort [2]p.21 1. ทำซ้ำจาก i = 1 ถึง count - 1 1. ทำซ้ำจาก j = i + 1 ถึง count 1. ถ้าเงินเดือนของคนที่ i มากกว่าคนที่ j 1. สลับตำแหน่งคนที่ i กับ j 2. ถ้า i ไม่เท่ากับ 1 ให้ลด i ลงอีก 1 |
ประมวลผล i=1 8, 5 ,4 , 6, 8 8, 5 ,4 , 6, 8 8, 5 ,4 , 6, 8 5, 8 ,4 , 6, 8 |
ประมวลผล i=2 5, 8 ,4 , 6, 8 5, 8 ,4 , 6, 8 5, 8 ,4 , 6, 8 5, 4 ,8 , 6, 8 จากนี้ให้ i=1 อีกครั้ง |
ต.ย. อัลกอริทึม 10 : หาภาษี [3]p.29 set total_tax to 0 get tax dowhile (tax not equal 0) add tax to total_tax get tax enddo print total_tax |
"ไม่เริ่มต้นในวันนี้ จะไม่มีทางสำเร็จในวันพรุ่ง" โดย โยฮัน ว็อล์ฟกัง ฟ็อน เกอเทอ |