Gambas3 Programming ตอน 2 : การแปลง infix ไปเป็น postfix
ครั้งนี้เรามาทดลอง เขียนโปรแกรมในการแปลง นิพจน์ แบบ Infix -> Postfix โดยอ้างอิงจากหนังสือ "เรียนลัด Data Structure ด้วย Visual Basic" หนังสือเก่าแล้ว 55 หลักการคือ 1. ถ้าเป็นตัวเลข เอามาใส่ผลลัพธ์ เลย 2. ถ้าเป็นตัวดำเนินการ + - * / ให้ทำตามนี้ 2.1 Stack ว่าง ให้ใส่ใน stack 2.2 Stack ไม่ว่าง ให้เปรียบเทียบตัวดำเนินการ โดย ถ้าลำดับความสำคัญ ของตัวดำเนินการ ที่อ่าน มากกว่า ที่อยู่ใน stack ให้เก็บลง stack ได้เลย ถ้าลำดับความสำคัญ ของตัวดำเนินการ ที่อ่าน น้อยกว่า หรือเท่ากับ ที่อยู่ใน stack ให้ เอาออกจาก stack มาเป็นผลลัพธ์ ทำจนกระทั่งพบ ตัวที่ความสำคัญน้อยกว่า หรือ stack ว่าง 3. เครื่องหมายวงเล็บเปิด ให้เก็บใน stack 4. เครื่องหมายวงเล็บปิด ให้ pop ข้อมูลใน stack มาเก็บในผลลัพธ์ จนกระทั่งเจอเครื่องหมายวงเล็บเปิด ให้ pop วงเล็บเปิดออกมาแต่ไม่ต้องเก็บใน ผลลัพธ์ 5. เมื่ออ่านข้อมูลจนครบ สุดท้าย ก็ pop ข้อมูลใน stack ที่เหลือ ออกมาเป็นผลลัพธ์ เป็นอันจบ =========== การเขียนโปรแกรม ก็คล้าย VB มีสิ่งที่น่าสังเกตดังนี้ 1. endif เขียนติดกัน 2. Sub _new() ทำงานก่อน Form_Open() 3. ใน version 3 การประกาศตัวแปร array ต้องเป็นแบบ public งง ส่ะ 4. array ใช้ [ ] คล้าย ภาษา C 5. ใช้ ColumnView อย่างงงๆ 55 หมายเหตุ source code อาจมองไม่เห็น เพราะ มันซ่อนไฟล์ไว้ ต้องเปิด ด้วย gambas ?
Create Date : 08 ธันวาคม 2556 |
Last Update : 8 ธันวาคม 2556 10:02:35 น. |
|
0 comments
|
Counter : 1982 Pageviews. |
|
|