2. การคิดแบบคอมพิวเตอร์ และการออกแบบขั้นตอนวิธี
1. เปรียบเทียบการทำงานของ มนุษย์ กับ คอมพิวเตอร์
มนุษย์มีการทำงานผ่านสมอง ประกอบด้วย 3 ขั้นตอน คือ...
คอมพิวเตอร์จะทำงานผ่านโปรแกรมคอมพิวเตอร์ ประกอบด้วย 3 ขั้นตอน คือ...
เปรียบเทียบการทำงานของ มนุษย์ กับ คอมพิวเตอร์
ตัวอย่างการเปรียบเทียบการทำงาน
2. การออกแบบขั้นตอนวิธีในการแก้ปัญหาด้วยผังงาน (Flowchart)
01
ความหมายของผังงาน
ผังงาน เป็นเครื่องมือแสดงขั้นตอน หรือกระบวนการทำงาน โดยใช้สัญลักษณ์ที่เป็นมาตรฐานเดียวกัน ซึ่งในสัญลักษณ์จะมีข้อความสั้น ๆ อธิบายข้อมูลที่ต้องใช้ ผลลัพธ์ หรือคำสั่งประมวลผลของขั้นตอนนั้น ๆ และเชื่อมโยงขั้นตอนเหล่านั้นด้วยเส้นที่มีลูกศรชี้ทิศทางการทำงานตั้งแต่เริ่มต้นจนจบกระบวนการ โดยมีการแทนการทำงานต่างๆด้วย สัญลักษณ์ที่แตกต่างกัน
02
ทำไมเราควรออกแบบผังงาน
• ถูกใช้ในการออกแบบเพื่อช่วยให้เห็นภาพสิ่งที่เกิดขึ้น
• ช่วยให้เข้าใจกระบวนการทำงาน
• ช่วยให้เข้าใจในงานตรงกันระหว่างที่ผู้เกี่ยวข้อง เนื่องจากคำพูด หรือ ข้อความ อาจเกิดความเข้าใจผิดได้
• อาจช่วยหาข้อบกพร่องภายในงานอีกด้วย เช่น ปัญหาคอขวด (ปัญหาที่มีงานไปกองที่ส่วนใดส่วนหนึ่งและส่วนอื่นเกิดการรอ) เป็นต้น
03
สัญลักษณ์ผังงาน
ในการเขียนผังงานจะต้องใช้รูปภาพ หรือสัญลักษณ์ มาใช้แทนขั้นตอนการทำงานของโปรแกรม ลักษณะของรูปภาพ หรือสัญลักษณ์ จะมีความหมายในตัวของมันเอง ซึ่งมีหน่วยงานที่ชื่อ American National Standard Institvte (ANSI) และ Internation Standard Organization (ISO) ได้รวบรวมและกำหนดให้เป็นสัญลักษณ์มาตรฐานที่จะใช้ในการเขียนผังงาน และผังงานระบบ เพื่อให้เข้าใจตรงกันดังต่อไปนี้
ผังงานในชีวิตประจำวัน วิธีการต้มมาม่า(แบบถ้วย)
ผังงานของระบบรดน้ำต้นไม้อัตโนมัติ
04
การสร้างเงื่อนไขด้วยตัวดำเนินการทางตรรกะ
เงื่อนไขบางเงื่อนไข เช่น “รถยนต์มีความเร็วที่เหมาะสม” เป็นเงื่อนไขที่ระบุด้วยประโยคที่ชัดเจน ในการออกแบบขั้นตอนวิธีเราสามารถใช้เงื่อนไขแบบนี้ได้... แต่ในบางครั้งระหว่างที่เราวิเคราะห์เงื่อนไขเหล่านี้มักพบว่า เงื่อนไขที่มักระบุด้วยประโยคประมาณนี้มักประกอบไปด้วยเงื่อนไขย่อยๆอีกที เช่น “รถยนต์มีความเร็วที่เหมาะสม” อาจหมายถึงการขับในความเร็ว มากกว่า 40 km/hr แต่ไม่เกิน 90 km/hr สังเกตได้ว่า เงื่อนไขนี้ประกอบด้วยสองเงื่อนไขย่อย และเชื่อมกันด้วยตัวดำเนินการตรรกะ “และ”(AND)
ตัวดำเนินการทางตรรกะ เป็นตัวดำเนินการเกี่ยวข้องกับนิพจน์ที่สามารถบอกค่าความจริงเป็นจริง(true) หรือเท็จ (false)ได้ หรือชนิดข้อมูลตรรกะ เช่น ตัวแปรประเภท boolean ผลลัพธ์ที่ได้จากการกระทำจะได้ค่าคงที่ตรรกะเป็น true หรือ false ตัวดำเนินการทางตรรกะ ได้แก่เครื่องหมาย !, &&, &, ||, |, ^ มีตัวอย่างการใช้งานดังนี้
ตัวอย่าง การสร้างผังงานเงื่อนไขด้วยตัวดำเนินการทางตรรกะ ของระบบตรวจสอบความเร็วที่เหมาะสมของรถยนต์
05
การทำซ้ำ
การทำงานแบบวนซ้ำ (Loop)เป็นการนำคำสั่งมาทำงานซ้ำหลายๆ รอบ จะทำงานกี่รอบขึ้นอยู่กับเงื่อนไขที่กำหนดไว้ ซึ่งอาจจะเป็นการกำหนดจำนวนรอบที่แน่นอน เช่น
ตั้งใจว่าจะวิ่งรอบสนาม 3 รอบ
คือรู้แน่นอนว่าจะทำงานกี่รอบ
ตั้งใจว่าจะวิ่งรอบสนามไปเรื่อยๆ เหนื่อยเมื่อไหร่จึงจะหยุดวิ่ง คือไม่แน่ชัดว่าจะทำงานกี่รอบ
สิ่งที่สำคัญสำหรับการทำงานแบบวนซ้ำในการเขียนโปรแกรมคือ เงื่อนไข ซึ่งเงื่อนไขในที่นี้จะมีลักษณะคล้ายกันกับเงื่อนไขแบบทางเลือกนั่นเอง โดยเงื่อนไขจะเป็นตัวกำหนดว่าจะมีการเข้าไปทำงานหรือไม่ ถ้าเงื่อนไขเป็นจริงก็จะเข้าไปทำงาน เมื่อทำงานเสร็จแล้วก็จะมาตรวจสอบเงื่อนไขอีกครั้ง และก็จะทำงานไปเรื่อยๆ ถ้าเงื่อนไขเป็นจริงอยู่เสมอ โปรแกรมจะหยุดทำงานก็ต่อเมื่อผลการตรวจสอบเงื่อนไขในรอบใดรอบหนึ่งเป็นเท็จ
จากแผนภาพ คำสั่งที่จะถูกทำซ้ำหลายๆ ครั้งคือคำสั่ง A ซึ่งเป็นคำสั่งที่อยู่ในลูป (Loop) คือในทุกๆ รอบที่ทำการตรวจสอบเงื่อนไข ถ้าเป็นจริงคำสั่ง A ก็จะถูกกระทำไปเรื่อยๆ แต่ถ้ารอบใดที่ตรวจสอบแล้วเงื่อนไขเป็นเท็จ ก็จะหลุดออกจากการทำซ้ำมาทำตามคำสั่ง B ที่อยู่นอกลูปของการวนซ้ำ
อย่างที่กล่าวไว้แล้วตั้งแต่ตอนต้นว่าการทำซ้ำมี 2 ลักษณะคือ การทำซ้ำที่มีจำนวนรอบแน่นอน และที่มีจำนวนรอบไม่แน่นอน เพื่อให้เห็นภาพที่ชัดเจนขึ้น นักเรียนลองดูแผนภาพ ดังต่อไปนี้
การทำซ้ำจำนวนรอบแน่นอน
ตั้งใจว่าจะวิ่งรอบสนาม 3 รอบ คือรู้แน่นอนว่าจะทำงานกี่รอบ
การทำซ้ำจำนวนรอบไม่แน่นอน
ตั้งใจว่าจะวิ่งรอบสนามไปเรื่อยๆ เหนื่อยเมื่อไหร่จึงจะหยุดวิ่ง คือไม่แน่ชัดว่าจะทำงานกี่รอบ
ตัวอย่าง ระบบรดน้ำต้นไม้ อัตโนมัติ ที่สามารถประมวลผลค่าได้ไม่จำกัดรอบ จากการตรวจค่าความชื้นใหม่ๆ ทุกๆ 3 วินาที
แผนการจัดการเรียนรู้
เอกสารประกอบการเรียนรู้
เอกสารอ้างอิง
• นายยุทธนันท์ กามอ้อย. 2557 “การทำงานพื้นฐานของคอมพิวเตอร์” Available: สืบค้นเมื่อ 17 มิถุนายน 2562. จาก https://sites.google.com/site/programmingm42/kar-kae-payha
• นางพรลภัส พิบูลโภคาสมบัติ. “ผังงาน (Flowchart)” Available: สืบค้นเมื่อ 17 มิถุนายน 2562. จาก https://sites.google.com/a/kjwit.ac.th/ponlapass/programc/c-lesson2
• สุธีรัชต์. 2012 “การทำงานแบบวนซ้ำ” Available: สืบค้นเมื่อ 17 มิถุนายน 2562. จาก http://computer.bps.in.th/suteerat/loop