07 ธันวาคม 2561

แนวทางการเขียน​โปรแกรม​

เรื่องการเขียนโปรแกรมการคำนวณ​ผ่าน​ Blogger 

จะขอ​อธิบายจากประสบการณ์​ตรง​ของ​ผู้​เขียน​เท่านั้น​ อาจ​จะไม่ตรง​ตามหลักวิชาการนัก​ แต่​ก็​อิงเอา​ไว้​ และ​มิได้​นำมา​เพื่อ​อวด​รู้​กับ​ใคร​ๆ​ เพราะ​คนเก่ง​กว่า​นั้น​มี​อยู่​อีก​มากมาย​ เพียง​แต่​ต้องการ​เขียนไว้เพื่อให้ผู้สนได้นำไปพัฒนาจากพื้นฐาน​ของผู้เขียน​ ต่อยอด​ออกไปให้สมบูรณ์​ และ​ที่สำคั​ญ​อย่าง​ยิ่ง​คือ​ มิได้​มุ่งหวังจะทำเป็นเชิงพาณิชย์​ สร้าง​กำไร​แต่​ประการ​ใด​ เพียง​ต้องการ​สร้าง​องค์​ความรู้​แก่ผู้​คิด​จะเสีย​สละได้คิดสร้างโปรแกรมอำนวยความสะดวก​แก่ผู้อื่น​ต่อๆไป​ ได้กล่าวเกริ่นนำถึงกรอบความคิดแล้ว​ จะกล่าวถึง​รายละเอียด​กันต่อไป
​ … ลำดับ​แรก​ ความคิด​จาก​ประสบการณ์​ จาก​การเรียน​ที่ผ่านมา​ทุก​ระดับ​ชั้น​ ได้สร้าง​องค์​ความรู้​ในตนเป็น​ระดับ​พื้นฐาน​ ไม่ว่า​จะ​เป็นการ​อ่าน​เขียน​ ก.ข. ก. กา​ ขอยกพระคุณ​นี้แด่​ มารดาบิดา​และ​ครูอาจารย์​ที่ได้​สร้าง​&ปกครอง​&ดูแล​ ให้​จนมีโอกาส​ได้​มาสร้างสรรค์​ผลงาน​ต่าง​ๆ​ ย้อนหลัง​ไป​ครั้ง​ยัง​เรียนอยู่ มี​ความรู้​แต่ไม่มีประสบการณ์​ ได้​เรียน​และ​เขียน​โปรแกรม​Pascal แต่​ก็​ได้​แค่​ทำให้​สอบผ่าน​จนจบการศึกษา​เท่านั้น​ ไม่​สามารถ​ใช้​แก้ปัญหา​จริงๆ​ที่เกิดขึ้น​ใน​ชีวิต​ประจำวัน​ได้​เพราะ​ประสบการณ์​น้อย​มาก​ เมื่อ​ผ่าน​ปัญหา​มาพอสมควร​ก็​จึง​เริ่ม​โยงความ​รู้​ที่​เรียนมาต่อติดเข้าหากัน​
 เริ่ม​จาก​โปรแกรม​แรก​ โจทย์​ในชีวิตจริง​คือ​ การ​คิดพื้นที่​ดิน​ มัน​ก็​แค่​ กว้าง​xยาว​ เท่านั้น​เอง​ก็​ได้​แล้ว​ ทำไม​แค่​เครื่อง​คิดเลข​ถึง​ทำ​ไม่ได้​ กว่า​จะ​ค้นหา​ว่า​ปัจจัย​ที่​ทำให้​ไม่ง่าย​มีมาก​มาย​เสีย​เหลือเกิน​เช่น
​ 1.ที่ดิน​ไม่ใช่​แผ่น​กระดาษ​ที่ราบเรียบ​เสมอ​กัน​ ใช้ไม้บรรทัด​ตีเส้น​วัด​ความ​กว้าง, ความ​ยาว​ออก​มาคูณก็ตอบส่ง​ครู​ได้​ 
2.มุมของพื้นที่​ก็ไม่ใช่เป็นมุมฉากตามที่เรียนอีก 
3.ตลับ​เมตร​ก็​หน่วยเป็น​เมตร​อีก​ ไม่​มีเป็น​วา แถม​ได้​ตารางวาแล้ว​จะ​มาทำเป็น​ไร่, งาน​อีก
.. แค่ปัจจัยที่กล่าวนี้​ก็​หาโรงเรียน​สอน​ยาก​มาก​ ต้องลงมือ​ทำการบ้าน​นี้​พอสมควร​ ลอง​ถูก​ลองผิด มานับครั้ง​ไม่​ถ้วนกว่า​ที่​ทำไปแล้ว​คนจะเชื่อมั่นว่า​ใช้​ได้​จริง​ ส่วน​คนที่​มาลอก​ไป​ก็​ไม่​ต้อง​เปลือง​สมอง​มาก​เห็นว่าใช้​ได้ก็นำไปเขียน​ต่อ​ ถ้าเขียนให้​ดี​ขึ้น​แล้ว​ให้​คนอื่น​ใช้​ต่อก็ยินดี​ จะ​ขอ​ห้าม​เพียง​อย่าไป​จดเป็น​ลิขสิทธิ์​ของ​ตน​เอาไว้​ขายเท่านั้น​
ขอเข้า​เรื่อง​ต่อ เช่นนี้​การหาพื้นที่​ดินจึงได้สูตรจากสี่เหลี่ยม​ด้านไม่เท่ามาเป็นตัวตั้ง​ เพื่อ​ให้สามารถ​แก้ปัญหา​ได้​ครอบคลุม​ที่​สุด​ แต่แน่นอน​ว่า​ไม่​มี​สูตรใดจะเป็นสูตรสำเร็จ​ครอบจักรวาล​ได้​ เอาเพียง​ทำให้​ดี​ที่สุด​แค่​นั้นพอ แต่​แค่นี้​ก็​ยัง​ไม่​พอ​ เพราะ​ได้​ปริมาณ​พื้นที่​เป็น​ตาราง​เมตร​ ต้อง​เปลี่ยน​หน่วยให้เป็น​ตารางวา​ เป็น​งาน​ เป็น​ไร่​อีกชั้นหนึ่ง​ โปรแกรม​จึง​จะ​เป็น​ไป​ตาม​เป้าหมาย​ที่​เรา​วาง​ไว้
… สำหรับ​เรื่อง​ปริมาณ​วัสดุ​หลัง​คา​ จะต้อง​มี​ประสบการณ์​การทำงาน​จริง​ ต้อง​สังเกต​จาก​ช่าง​ ​คลุก​คลีแก้ไข​ปัญหา​การ​คำ​นว​ณปริมาณ​วัสดุ​ให้​เห็น​ความแตกต่าง​ของ​วัสดุ​ที่​ชัดเจน​ ประกอบ​ข้อมูล​ทางเทคนิค​ของ​ผู้​ผลิต​ด้วย
​ รู้จัก​คำพูด​ของ​ช่าง​หน้า​งานว่าอะไ​ร​เรียก​ว่า​อะไร​เช่น​แป, ขื่อ, จันทัน, อกไก่​ อะไร​วางทับซ้อน​อะไร​ กว่า​จะเรียบเรียง​และ​คิดว่า​สูตร​ใดจะนำมาใช้​ได้​ง่าย​ และ​สะดวก​เป็น​เรื่อง​ที่​ยากแต่ท้า​ทาย 
หลัง​คาเริ่ม​จาก​เพิงหมาแหงนก่อน
พิจารณา​แล้ว​เจ้าของ​บ้าน​มัก​เข้าใจ​ว่า​ พื้นที่​ตัวบ้าน​เท่าไหร่​ หลัง​คาคงจะ​เท่ากัน​ แต่​ความ​จริง​ไม่ได้​เป็น​เช่นนั้น​ เพราะ​หลัง​คาเอียง​ และ​ยังมี​ชานยื่น​ออกรอบเสาอีก​
ฉะนั้น​จึง​ต้อง​เก็บ​รายละเอียด​และ​วิเคราะห์​ว่าควรนำค่าอะไร​มาใส่ให้​น้อยตัว​ที่​สุด​ แต่​ครอบคลุม​ ดัง​นั้น​จึง​ต้อง​นำ​ระยะ​เสาเป็น​หลัก​ บวก​ระยะ​ชายคา​คูณระดับ​องศา​ที่เอียงของ​หลัง​คา​ จึง​ได้พื้นที่​ของ​หลัง​คา แต่​โจทย์​ต่อ​ไปคืออะไ​ร​เป็น​ตัวกำหนด​ที่​ทำให้​หลังคา​เอียง​ คำตอบ​คือ​ความ​สูงที่ต่างระดับ​กัน​ระหว่าง​เสาหน้า​กับเสาหลัง​ กับระยะ​ความห่างของ​เสา ซึ่ง​ทั้ง​ช่าง​และ​เจ้าของ​บ้าน​คงทราบ​ค่า​ได้​และ​สามารถ​นำ​ค่ามาใส่ได้อย่างถูกต้อง​ คนเขียน​โปรแกรม​ควรเป็น​สื่อ​กลาง​ที่​ทำให้​ทั้ง​เจ้าของ​บ้าน, ช่าง​และ​ร้าน​ขาย​สามารถ​เข้าใจ​กัน​ เท่านั้น​คงไม่พอ​
เรา​ต้อง​เขียน​ให้​แสดง​องศา​ว่าหลังคา​นั้น​เอียงเท่าไหร่​ด้วย​เพื่อ​เป็น​ข้อมูล​ในการตัด​สินใจ​ว่าเอียงพอทำให้น้ำฝนไหลโดยสะดวก​ไม่ย้อนเข้า​ในตัวบ้านด้วยตามวัสดุ​ที่​เลือก​ใช้​ นั่นแหละ​จึง​พอจะครอบคลุม แต่​คงต้อง​คิด​ต่อ​ไปถึงปริมาณ​วัสดุ​ว่าใช้​เท่าไหร่​จึง​เขียน​ออกมา​เท่าที่​พอเป็น ที่นิยม​ใช้​ในปัจจุบั​น​เท่านั้น​ ตรง​นี้เอง​ที่​ในอนาคต​วัสดุ​ที่​ใช้​มัน​อาจมีการเปลี่ยนแปลง​ คงต้อง​ฝากเอาไว้พัฒนา​กัน​ต่อไป​ หลัง​คาทรง​จั่ว​ ใกล้เคียง​กับ​เพิงหมาแหงน​แต่ใช้สองด้าน​ มุมที่ทำให้ยก​ ไม่ใช่เสา​ แต่เป็นเสาดั้ง​ หรือดั้งกลางระหว่างเสา​ ความสูง​ของ​ดั้ง​เป็น​ตัวแปรกำหนด​องศาของ​หลัง​คา​ นอกนั้น​ก็​ใช้​เช่น​กับ​สูตรเดิมในหลังคา​เพิงหมาแหงน
ส่วนหลัง​คาทรง​ปั้นหยา​ได้เขียนรายละเอียด​ไว้แล้วจะไม่กล่าวซ้ำ
เรื่อง​ของผนัง​เป็น​เรื่อง​คำนวณ​ง่าย​ คือ​หาพื้นที่​ทั้งหมด​ของ​ผนัง​ผืนนั้นก่อน​ แล้ว​นำพื้นที่​ประตู​หน้าต่าง​มาลบออก​ ได้ปริมาณ​พื้นที่​เท่าไหร่​ นำมาหารพื้นที่​อิฐต่อ​ก้อน​ ก็ได้​จำนวน​ก้อน​ออกมา
​ ปริมาณปูนฉาบ​ ใช้จากข้อมูลด้านเทคนิคผลิต​ภัณฑ์​ และ​ประสบการณ์​ช่าง​ทั้ง​ที่รู้จัก​และ​ทางเนต​ ปริมาตรของปูนซีเมนต์​ แก้ไข​ความหลงลืมของหน่วยที่นำมา​คำนวณ​เท่านั้น​ แค่​ความหนาเป็น​ ซ.ม. มาคูณปริมาณ​พื้นที่​ตารางเมตร​ หากใช้​เครื่อง​คิดเลข​คิดหน้างาน​ถ้าหลงไม่แปลงหน่วย​ ปริมาตร​ที่ได้​ก็​จะ​คลาดเคลื่อนไป
​ เมื่อได้ปริมาตร​ปูนซีเมนต์​แล้ว​ บางหน้างาน​อาจจะ​ต้อง​ผสม​เอง​ ก็​จึง​แตกสัดส่วน​ ตาม​ข้อมูล​เทคนิค​ได้​ แต่​ก็​มี​ปัญหา​ที่​ช่าง​หน้า​งาน​จะตวงหิน​ทรายเป็น​ คิวหรือ​ ลบ.ม.กัน​เช่น​ไร​ จึง​ค้นหา​ผู้​มี​ประสบการณ์​ตวงเป็น​บุ้งกี๋เอา​ไว้​มาเป็น​หลักคำนวณ​ นี่​คือ​แนวทาง​เพื่อ​ให้​ได้​สูตรที่จะ​ใช้
​ .. เมื่อได้​สูตรที่มั่น​ใจแล้วจึง​เริ่ม​มา​เขียน​โปรแกรม​ แต่​ผู้เขียน​ เขียน​โปรแกรม​ตาม​สูตร​แรก​มาแล้ว​ใช้​ตรวจ​สอบความ​ถูก​ต้อง​ แล้ว​แก้ไข​มาเรื่อย​ๆ
พื้น​ฐานของโปรแกรม​คือ​ รับเข้า->ประมวลผล​->ส่งออก ​ต้องรู้​จัก​ภาษาในการสื่อสาร​ควบคุม​ให้​ชัดเจน​ ขั้นนี้ใช้​เปิดเวป​ต่างประเทศ​ที่ทำไว้​ช่วยให้เร็ว​ขึ้น​ คือ​เขา​เขียน​โปรแกรม​ตัว​อย่าง​มาแล้ว​ เรา​ก็​เอา​มาแปลง​เพิ่ม​บ้าง​ ตัดออก​บ้าง​ เปลี่ยน​คำอธิบาย​เป็น​ภาษา​ไทย​ เรียบเรียง​ให้​สื่อสารกันอย่างชัดเจน​เท่านั้น
เช่น​ที่น่าสนใจ​ https://www.w3schools.com/js/ หรือเรียนรู้​เพิ่ม​เติม​พื้น​ฐานการเขียน​ที่​
https://www.youtube.com/playlist?list=PL9uXbYsezM7mkf4w5tmillxVq9fHyslwT
มีลักษณะ​คำสั่ง​พร้อม​ตัวอย่าง​ จะดัดแปลง​ก็​มีให้ทดสอบ​ในนั้น​พร้อม หากจะเริ่มต้น​จากพื้นฐาน​ก็​ต้อง​ฝึก​จนกว่า​จะเข้าใจ​ เช่น​ ตั้งค่า​ให้​บวกลบคูณหาร​ โดยสร้าง​ช่องใส่ค่า​ และช่องแสดงคำตอบ​ดูว่า​ เข้า​แล้ว​ออกตามที​ตั้งไว้​หรือไม่​อย่างไร​ ส่วน​ผู้​มีพื้นฐาน​แล้ว​ก็​เพียง​เอาสูตร​ที่​เตรียม​ไว้​ทั้งหมด​มาเขียน​เป็น​ขั้นตอน​ไป ขออนุญาต​อธิบาย​คร่าว​ๆเพียงแค่​นี้​ก่อน​เดี๋ยว​จะเยิ่นเย้อ​ไป