10 พ.ค. 2021 เวลา 07:35 • การศึกษา
การพัฒนาความคิดด้วย flowchart EP.2
ที่มา: https://www.pexels.com/photo/man-sitting-in-front-of-three-computers-4974915/
สวัสดีครับทุกท่าน จากอีพีที่แล้วผมก็ไม่ได้อัพเดตมานานมากๆแล้ว แหะๆ ต้องขอโทษด้วยนะครับ
เรามาสรุปเนื้อหาสำคัญในวันนี้กันก่อนนะครับ สำหรับใครที่ไม่ได้อ่านพาร์ทที่แล้ว สามารถกลับไปอ่านก่อนได้นะครับ จะได้เข้าใจเนื้อหามากขึ้น
โอเคครับ โดยรวมแล้วการที่ผมยกเอา Program flowchart มาใช้ก็เพื่อให้คนที่สนใจเกี่ยวกับโปรแกรมได้ทำความเข้าใจในการทำงานหรือกระบวนการของโปรแกรมครับ และในบทความ "การพัฒนาความคิดด้วย flowchart EP.1" เราได้เรียนรู้ถึงสัญลักษณ์ (Symbols) ต่าง ๆ รวมถึงการใช้งานเบื้องต้นของ input และ output แต่ถ้าให้ผมอธิบายการทำงานทุกๆ สัญลักษณ์เหมือนที่เราเรียนในห้องเรียนหรืออ่านตามหนังสือ มันก็ออกจะน่าเบื่อไปหน่อย ซึ่งผมเองก็ไม่ชอบวิธีนี้เหมือนกัน ผมเลยคิดว่าเรามาลองเรียนรู้โดยการเรียนแบบ Learning by doing หรือลงมือทำจริง ๆ กันเลยดีกว่าครับ
แต่เราจะทำโปรแกรมอะไรง่าย ๆ กันดีล่ะ….
เอาจริง ๆ มันก็มีเยอะนะครับ ยกตัวอย่างเช่น การเช็คเกรด ถ้าเราใส่ข้อมูลเป็นตัวเลขอย่างเกรด 3.00 เกรดจะออกมาเป็น B แต่ผมมองว่ามันมีเยอะอยู่แล้ว ซึ่งผู้อ่านสามารถศึกษาเพิ่มเติมได้ โดยผมจะทิ้งลิ้งค์ไว้ใต้บทความนะครับ งั้นโปรแกรมอะไรที่ผมอยากจะเอามาลงวันนี้กันล่ะ…
ผมจะลองเขียนโปรแกรมการคำนวณเงินเก็บล่วงหน้าครับ โดยผมจะนำสูตรทางคณิตศาสตร์ของ ม.5 – 6 มาใช้กัน งั้นเรามาพูดถึงหลักโปรแกรมนี้กันก่อน
หลักการ : สมมุติว่า ณ ปัจจุบันคือ เดือนมกราคม เรามีเงินทั้งหมดอยู่ 3,000 บาทถ้วน และเราอยากจะรู้ว่าถ้าเราเก็บเงินเดือนละ 500 ทุกเดือนนับตั้งแต่เดือนกุมภาพันธ์ซึ่งเป็นเดือนถัดไป เงินทั้งหมดจนถึงเดือนเมษายนจะเป็นเท่าไหร่ และถ้าเงินทั้งหมดมีค่าเป็น 2 เท่าหรือมากกว่าของเงินต้น เราก็จะเก็บเพิ่มอีก 500 บาททบเข้าไปเลย
ถ้าตามปกติ เราก็ไม่ต้องใช้สูตรคำนวณ ก็คิดได้ง่าย ๆ ว่าเอา 500 x 3 เดือนบวกกับ 3,000 จะเป็น 4,500 ซึ่งไม่ถึง 2 เท่าของ 3,000 เราก็ไม่ต้องเก็บเพิ่มอีก 500 เพราะไม่ตรงเงื่อนไข รวมทั้งหมดผลลัพธ์ก็เป็น 4,500 เหมือนเดิม
นั่นแหละครับวิธีคิด แต่เราจะให้คอมพิวเตอร์คิดแบบนี้ได้ไง? มาดูกันครับ
ก่อนอื่นเราต้องตั้งสูตรก่อน โดยหลักการของการเพิ่มและจำนวนที่แตกต่างอย่างสม่ำเสมอเนี่ย มันคือสูตรของ ลำดับเลขคณิต สำหรับคนที่งงก็ไม่เป็นไรครับ คิดซะว่าผมยกสูตรมาให้ละกัน (แหะ ๆ) เพราะว่าเราแค่มาเรียนกระบวนการความคิดของโปรแกรมไม่ใช่คณิตศาสตร์อ่ะเนอะ
สูตรคือ a n = a 1 + ( n − 1 ) d
n คือ จำนวนเดือน
d คือ ความต่าง
a n คือ จำนวนเงินในเดือน n นั้น ๆ
ทีนี้เรามานึกถึงตัว input/output กันก่อนครับ โดย input ที่ผมจะรับค่ามานั้นมี 3 ค่า ดังนี้
ค่าแรกคือ ค่าของจำนวนเงินในทุก ๆ เดือน (d) ที่เราจะเก็บ
อีกค่าคือ จำนวนของเดือน (n)
อีกทั้งยังต้องรับค่าของเงินในเดือนแรก (a 1) และมี output เป็นเงินที่เราคิดล่วงหน้าครับ
ทีนี้ เราต้องมาคิดถึง Case กันก่อนที่จะเริ่มเขียน ซึ่ง Case หรือกรณีในที่นี้หมายถึง เราต้องนึกถึงข้อมูลที่ผู้ใช้ใส่ข้อมูลมาในระบบของเราในหลาย ๆ รูปแบบครับว่าเขาจะใส่แบบไหนมาบ้าง
ยกตัวอย่างง่าย ๆ โปรแกรมนี้ผลลัพธ์ออกมาคือเงินใช่ไหมครับ แล้วเงินสามารถใส่ค่าติดลบได้ไหม? ก็ไม่ได้ใช่ไหมครับ นั่นนับเป็นหนึ่งเคสที่เราต้องคิดดักไว้ว่า ถ้ามีคนใส่จำนวนติดลบมาแบบนี้ เราต้องทำยังไงกับโปรแกรมของเรา โดยตัวอย่างเคสคร่าว ๆ ก็จะมีประมาณนี้ครับ
1. ข้อมูล input ทั้ง 3 ค่าต้องไม่มีค่าติดลบ เพราะพวกเดือน ค่าของเงินที่เก็บในทุกเดือนและเงินในเดือนแรกไม่สามารถติดลบได้
2. ค่าของเดือนนั้นต้องอยู่ระหว่าง 1 – 12 (เพราะหนึ่งปีมีแค่ 12 เดือน) และต้องไม่เป็นทศนิยมด้วย (แต่ในเมื่อ Flowchart raptor ไม่สามารถตั้งเงื่อนไขเรื่องทศนิยมได้ ดังนั้นเราจะละไว้ในฐานที่เข้าใจนะครับ)
แล้วเราจะทำยังไงกับกรณีที่เหมือน 2 เคสนี้ดี...?
เราสามารถทำได้หลายกรณีครับ เช่น แก้ใหม่โดยใช้ loop หรือจะจบการทำงานของโปรแกรมไปเลย แต่โปรแกรมที่ดีควรมีความยืดหยุ่น ดังนั้น เราจะให้คนใส่ข้อมูลหรือผู้ใช้โปรแกรมใส่ข้อมูลใหม่เรื่อย ๆ จนกว่าจะตรงเงื่อนไขที่เราต้องการครับ พูดง่าย ๆ คือต้องใส่ให้ถูกเท่านั้น อิมเมจง่าย ๆ เหมือนตอนเรากรอกข้อมูลส่วนตัวในการทำธุรกรรมต่าง ๆ เป็นภาษาไทย แต่โปรแกรมให้ใส่เป็นอังกฤษ มันก็จะขึ้นสีแดง ๆ เตือนว่าคุณใส่ผิด ถ้าเราเปลี่ยนเป็นกรอกชื่อภาษาอังกฤษตามที่มันต้องการ ก็เป็นอันเสร็จสิ้นและถูกต้องครับ
จากนั้นเราจะนำสูตรคณิตศาสตร์มาใช้ซึ่งจะได้ผลลัพธ์เป็นเงินที่เราคำนวณไว้ล่วงหน้าตามโจทย์นั่นเองครับ
หลังจากที่ได้ผลลัพธ์จากสูตรแล้วเราก็ต้องเอามาเทียบกับเงินในเดือนแรกคูณสองด้วย ว่ามันมากกว่าไหม ถ้ามากกว่าให้เพิ่มอีก 500 ถ้าไม่ก็แสดงผลลัพธ์ตามเดิมก็คือ 4,500 บาทครับ
ในอีพีนี้ก็จะพูดคร่าว ๆ ถึงกระบวนการในการคิดก่อนที่เราจะเริ่มสร้าง Flowchart กันครับ ซึ่งอาจผมอาจจะอธิบายไม่เคลียร์ ไม่เข้าใจหรืออาจจะผิดพลาดไปก็ขอโทษไว้ ณ ที่นี้นะครับ ทุกท่านสามารถให้คำแนะนำได้ผ่านคอมเมนต์เลยครับ ในอีพีหน้าผมจะลงรายละเอียดใน Flowchart และก็จะจบเนื้อหาในส่วนของการพัฒนาความคิดด้วย Flowchart แล้วครับ ส่วนในเนื้อหาพาร์ทหน้าจะพูดถึงเรื่องไหน ก็รอติดตามได้นะครับ สำหรับวันนี้ สวัสดีครับ

ดูเพิ่มเติมในซีรีส์

โฆษณา