การจำลองความคิด รายวิชา ง40102 หลักการแก้ปัญหาและการโปรแกรม สาขาวิชาคอมพิวเตอร์และเทคโนโลยี โรงเรียนมหิดลวิทยานุสรณ์
การจำลองความคิด ขั้นตอนที่สำคัญในการแก้ปัญหาคือการวางแผน การวางแผนที่ดีจะช่วยให้การแก้ปัญหาเป็นไปได้โดยง่าย การจำลองความคิดออกมาเป็นข้อความ หรือแผนภาพจะช่วยให้สามารถแก้ปัญหาได้ดี โดยเฉพาะปัญหาที่ยุ่งยากซับซ้อน เป็นการแสดงแบบหรือขั้นตอนเพื่อให้ผู้ที่เกี่ยวข้องได้เข้าใจและสามารถปฏิบัติตามในแนวทางเดียวกัน
เครื่องมือที่ใช้ ข้อความหรือคำบรรยาย (Pseudo code) เขียนเค้าโครงด้วยการบรรยายเป็นภาษาที่มนุษย์ใช้สื่อสารกัน เพื่อให้ทราบถึงขั้นตอนการทำงานของการแก้ปัญหาแต่ละตอน ในบางครั้งอาจใช้คำสั่งของภาษาที่ใช้เขียนโปรแกรมก็ได้ สัญลักษณ์ หรือ ผังงาน (Flowchart) สถาบันมาตรฐานแห่งชาติอเมริกา (The American National Standard Institute หรือ ANSI) ได้กำหนดสัญลักษณ์ไว้เป็นมาตรฐาน
Pseudo code ตัวอย่าง คำบรรยายแสดงขั้นตอนการเปลี่ยนยางรถเมื่อยางแตกขณะขับรถ จอดรถหลบข้างทาง คลายสกรูยึดล้อ นำแม่แรงออกยกรถ ถอดล้อออก นำยางอะไหล่มาเปลี่ยน ขันสกรูเข้า เก็บยางที่ชำรุดเพื่อไปซ่อม คลายแม่แรง เก็บแม่แรง
Pseudo code ตัวอย่าง การวางแผนการไปโรงเรียน เริ่มต้น ตื่นนอน อาบน้ำ ไปโรงเรียน จบ การหาผลบวกของเลขจำนวนเต็ม 2 ตัวแล้วแสดงผลลัพธ์ออกทางจอภาพ เริ่มต้น รับค่าจำนวนเต็มเก็บไว้ใน x รับค่าจำนวนเต็มเก็บไว้ใน y c ← x + y แสดงค่า C จบ
Flowchart แบ่งเป็น 2 ประเภท ผังงานระบบ (System Flowchart) ผังงานโปรแกรม (Program Flowchart)
Flowchart สัญลักษณ์ ชื่อเรียก ความหมาย เริ่มต้นและลงท้าย (terminal) แทนจุดเริ่มต้นและลงท้ายของผังงานของโปรแกรมหลักและโปรแกรมย่อย การนำข้อมูลเข้า – ออกโดยทั่วไป (general input/output) แทนจุดที่จำนำข้อมูลเข้าหรือออกจากระบบคอมพิวเตอร์โดยไม่ระบุชนิดของอุปกรณ์ การตัดสินใจ (decision) แทนจุดที่จะต้องเลือกปฏิบัติอย่างใดอย่างหนึ่ง การปฏิบัติงาน (process) แทนจุดที่มีการปฏิบัติงานอย่างใดอย่างหนึ่ง จุดเชื่อมต่อ (connector) แทนจุดเชื่อมต่อของผังงานเมื่อใช้สัญลักษณ์เพื่อให้ดูง่าย จุดเชื่อมต่อหน้ากระดาษ (off page connector) แทนจุดเชื่อมต่อของผังงานที่อยู่คนละหน้ากระดาษ ทิศทาง (flow line) แทนทิศทางขั้นตอนการดำเนินงานซึ่งจะปฏิบัติต่อเนื่องกันตามหัวลูกศรชี้
System Flowchart
Program Flowchart ตัวอย่าง การวางแผนการไปโรงเรียน เริ่มต้น ตื่นนอน อาบน้ำ ไปโรงเรียน จบ เริ่มต้น ตื่นนอน อาบน้ำแต่งตัว ไปโรงเรียน จบ
โครงสร้างแบบลำดับ Sequential structure คำสั่งที่ 1 คำสั่งที่ 2 คำสั่งที่ n โครงสร้างแสดงขั้นตอนการทำงานที่เป็นไปตามลำดับก่อนหลัง และแต่ละขั้นตอนจะถูกประมวลผลเพียงครั้งเดียวเท่านั้น
โครงสร้างแบบมีทางเลือก Selection structure เงื่อนไข คำสั่ง จริง เท็จ โครงสร้างที่มีเงื่อนไข ขั้นตอนการทำงานบางขั้นตอนต้องมีการตัดสินใจเพื่อเลือกวิธีการประมวลผลขั้นต่อไป การตัดสินใจอาจมีทางเลือก 2 ทางหรือมากกว่าก็ได้ การทำงานของโครงสร้างแบบมีทางเลือก if…then…else
โครงสร้างแบบมีทางเลือก Selection structure เงื่อนไข คำสั่ง ... กรณีที่ 1 กรณีที่ 2 กรณีที่ 3 การทำงานของโครงสร้างแบบมีทางเลือก case
โครงสร้างแบบทำซ้ำ Repetition structure โครงสร้างที่ขั้นตอนการทำงานบางขั้นตอนได้รับการประมวลผลมากกว่า 1 ครั้ง ทั้งนี้ขึ้นอยู่กับเงื่อนไขบางประการ มี 2 ลักษณะ ได้แก่ การทำซ้ำแบบ do while ตรวจสอบเงื่อนไขในการทำซ้ำทุกครั้งก่อนดำเนินการกิจกรรมใดๆ ถ้าเงื่อนไขเป็นจริงจะทำงานซ้ำไปเรื่อยๆ หยุดเมื่อเงื่อนไขเป็นเท็จ การทำซ้ำแบบ do until ตรวจสอบเงื่อนไขในการทำซ้ำทุกครั้งหลังจากดำเนินการกิจกรรมใดๆ ถ้าเงื่อนไขเป็นเท็จจะทำงานซ้ำไปเรื่อยๆ หยุดเมื่อเงื่อนไขเป็นจริง
โครงสร้างแบบทำซ้ำ Repetition structure เงื่อนไข คำสั่ง จริง เท็จ เงื่อนไข คำสั่ง เท็จ จริง การทำงานของการทำซ้ำแบบ do while การทำงานของการทำซ้ำแบบ do until