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