โปรแกรมคำนวณอย่างง่าย (STEM Calculators)
นำสูตรทางวิทยาศาสตร์มาเขียนเป็นโปรแกรมคำนวณอัตโนมัติได้อย่างไร?
นำกฎข้อที่สองของนิวตัน (F = ma) มาเขียนเป็นโปรแกรมคำนวณแรง!
"หากต้องคำนวณค่าแรง F สำหรับมวล m และความเร่ง a หลายร้อยค่า การเขียนซอฟต์แวร์คำนวณอัตโนมัติจะช่วยประหยัดเวลาอย่างมหาศาล! SpaceX ใช้ Python คำนวณวิถีจรวดด้วยอัลกอริทึมที่ซับซ้อน"
ฟิสิกส์ (Physics)
หาแรงลัพธ์ F = ma, พลังงานจลน์ Ek = 0.5*m*v**2
เคมี (Chemistry)
หาจำนวนโมล n = m/M, ความเข้มข้นสารละลาย
ชีววิทยา (Biology)
การเติบโตประชากรแบคทีเรีย Nt = N0*2**t
1 ขั้นตอนออกแบบโปรแกรม (IPO Model)
การสร้างโปรแกรมคำนวณทุกประเภท จะมีขั้นตอนหลัก 3 ส่วนเสมอ เรียกว่า IPO Model:
2 โปรแกรมคำนวณทางฟิสิกส์ (Physics)
ในภาษา Python เราใช้เครื่องหมาย * สำหรับคูณ, / สำหรับหาร และ ** สำหรับยกกำลัง ลองดูตัวอย่างฟิสิกส์:
# 1. แรง F = ma m = 10.0 # มวล (kg) a = 9.8 # ความเร่ง (m/s^2) F = m * a print(f"แรง F = {F} N") # 2. พลังงานจลน์ Ek = 1/2 * m * v^2 v = 5.0 Ek = 0.5 * m * (v ** 2) print(f"พลังงานจลน์ Ek = {Ek} J") # 3. สมการการเคลื่อนที่ v = u + at u = 0.0 t = 2.0 v_final = u + (a * t) print(f"ความเร็วปลาย v = {v_final} m/s")
3 โปรแกรมคำนวณทางเคมี (Chemistry)
สูตรเคมีทั่วไปที่ต้องคำนวณจำนวนโมล (Mole) และความเข้มข้นสารละลาย (Concentration):
# หาจำนวนโมล n = m / M mass = 18.0 # มวลของน้ำ H2O (กรัม) molar_mass = 18.015 # มวลโมเลกุลน้ำ (g/mol) n = mass / molar_mass print(f"จำนวนโมล n = {n} mol") # หาความเข้มข้น C = n / V volume = 2.0 # ปริมาตรสารละลาย (L) c = n / volume print(f"ความเข้มข้น C = {c} mol/L")
4 โปรแกรมคำนวณทางชีววิทยา (Biology)
การคำนวณแบบทวีคูณ เช่น การแบ่งเซลล์ของแบคทีเรีย (สมมติเซลล์แบ่งตัวเป็น 2 ทุกรอบการแบ่ง):
# สูตรประชากร N_t = N_0 * 2^t N_0 = 100 # ประชากรเริ่มต้น t = 5 # จำนวนรอบการแบ่งเซลล์ N_t = N_0 * (2 ** t) print(f"ประชากรแบคทีเรียรอบที่ {t} = {N_t} เซลล์")
5 การจัดการทศนิยมและหน่วย (Formatting)
วิทยาศาสตร์จำเป็นต้องแสดงผลตัวเลขที่มีความละเอียดแม่นยำ หรือใช้สัญกรณ์วิทยาศาสตร์ (Scientific Notation):
📌 1. ฟังก์ชัน round() ปัดเศษ
value = 3.14159265 print(round(value, 2)) # 3.14 print(round(value, 4)) # 3.1416
📌 2. จัดรูปแบบใน f-string ด้วย :.2f
speed = 299792.458
print(f"ความเร็วแสง = {speed:.2f} km/s") # 299792.46 km/s
📌 3. สัญกรณ์วิทยาศาสตร์ :.4e
planck = 0.0000000000000000000000000000000006626
print(f"ค่าคงตัวของพลังค์ = {planck:.4e} J·s")
# 6.6260e-34 J·s
🟢 ระดับ 1 โจทย์พื้นฐาน: คำนวณความเร็ว
คำนวณ v = s/t กำหนดระยะทาง s = 100.0 m และเวลา t = 9.58 s เติมคำสั่งให้สมบูรณ์
/ แล้วแสดงผลด้วย print(v)
กดปุ่ม "รันโค้ด" หรือ "ตรวจคำตอบ" เพื่อดูผลลัพธ์...
🟡 ระดับ 2 โจทย์ท้าทาย: เครื่องคิดเลขทางฟิสิกส์
กำหนด m=10.0, a=3.0, v=5.0 จงเขียนโปรแกรมคำนวณและแสดงค่าของ:
1. แรง F = ma
2. พลังงานจลน์ Ek = 0.5*m*v**2
3. โมเมนตัม p = mv
กดปุ่ม "รันโค้ด" หรือ "ตรวจคำตอบ" เพื่อดูผลลัพธ์...
🔴 ระดับ 3 โจทย์สร้างสรรค์ (ALPS-AI): เครื่องคิดเลขในสาขาที่สนใจ
ALPS Frameworkเลือกสูตรทางวิทยาศาสตร์ที่ตนเองสนใจ (จากวิชาฟิสิกส์, เคมี, ชีววิทยา หรือสาขาอื่น) อย่างน้อย 1 สูตร และออกแบบโปรแกรมคำนวณด้วยตนเอง!
"คุณคือนักฟิสิกส์ ช่วยเขียนโปรแกรม Python คำนวณสูตรฟิสิกส์ตามกฎการเคลื่อนที่ v = u + at และ s = ut + 0.5at^2 พร้อมจัดรูปแบบทศนิยม 2 ตำแหน่ง"
กดปุ่ม "รันโค้ด" เพื่อดูผลลัพธ์...
แบบบันทึกผลงานโครงงานและการตรวจทานโค้ด (ALPS Portfolio)
บันทึกขั้นตอนการออกแบบแนวคิด คำสั่ง และการตรวจทานโค้ดจาก AI เพื่อประเมินผลการเรียนรู้
ตอบคำถาม 5 ข้อ เพื่อประเมินความเข้าใจและบันทึกผลการเรียนรู้ของบทที่ 4:
1. คำสั่ง round(3.14159, 2) จะได้ผลลัพธ์เป็นค่าอะไร?
2. f'{0.00025:.4e}' จะแสดงผลลัพธ์แบบสัญกรณ์วิทยาศาสตร์ได้อย่างไร?
3. ในหลักการออกแบบโปรแกรม IPO Model ตัวอักษร P หมายถึงขั้นตอนใด?
4. นิพจน์ 0.5 * 10 * (5 ** 2) มีค่าเท่ากับเท่าใด?
5. โปรแกรมมี Bug: print(f'F = {m*a.2f} N') วิธีแก้ไขที่ถูกต้องคือข้อใด?