บทที่ 4: การเขียนโปรแกรมคำนวณอย่างง่าย

สรุปแนวคิด IPO + ตัวอย่างพร้อม “โจทย์ชัดเจน” และแบบฝึกหัดปลายบท (มีเฉลยให้กดดู)

ทบทวน & ขั้นตอนสร้างโปรแกรมคำนวณ (IPO Model)

การสร้างโปรแกรมคำนวณที่ดีเริ่มจากการคิดอย่างเป็นระบบตาม IPO Model:

1) Input — รับข้อมูลเข้า

รับค่าที่จำเป็นจากผู้ใช้ด้วย input() และแปลงชนิดเป็น int() หรือ float() ก่อนคำนวณ

2) Process — ประมวลผล

ใช้ตัวแปรเก็บค่า แล้วคำนวณตามสูตรด้วยตัวดำเนินการ + - * / **

3) Output — แสดงผลลัพธ์

แสดงผลด้วย print() และจัดรูปแบบด้วย f-string เพื่อให้อ่านง่าย

โครงร่างมาตรฐาน

# 1) Input
a = float(input("ป้อนค่า a: "))
b = float(input("ป้อนค่า b: "))
# 2) Process
result = (a + b) / 2
# 3) Output
print(f"ค่าเฉลี่ยของ {a} และ {b} คือ {result:.2f}")

ตัวอย่าง 1: พื้นที่สี่เหลี่ยมผืนผ้า

โจทย์: เขียนโปรแกรมรับ ความกว้าง และ ความยาว (เมตร) แล้วคำนวณ พื้นที่ และแสดงผลเป็นทศนิยม 2 ตำแหน่ง เช่น พื้นที่สี่เหลี่ยมผืนผ้า: 40.00 ตารางเมตร

วิธีทดสอบ: พิมพ์อินพุตในช่อง Standard input ตามลำดับที่โค้ดเรียก input()

Rectangle Area
Pyodide: กำลังโหลด…
Code
Standard input
Output

                    

ตัวอย่าง 2: ราคาสุทธิ (ส่วนลด + VAT)

โจทย์: เขียนโปรแกรมรับข้อมูล 4 ค่า: ราคาต่อชิ้น, จำนวน, เปอร์เซ็นต์ส่วนลด, เปอร์เซ็นต์ VAT จากนั้นคำนวณและพิมพ์ ราคารวม, จำนวนส่วนลด, ภาษี, และ ราคาสุทธิ เป็นทศนิยม 2 ตำแหน่ง โดยแสดงรายละเอียดทีละบรรทัด

Bill with Discount & VAT
Pyodide: กำลังโหลด…
Code
Standard input
Output

                    

ตัวอย่าง 3: วงกลม & แปลงอุณหภูมิ

โจทย์: เขียนโปรแกรม 2 ส่วน: (ก) รับ รัศมี (เมตร) คำนวณ พื้นที่วงกลม เป็นทศนิยม 2 ตำแหน่ง (ข) รับ อุณหภูมิ °C แปลงเป็น °F และพิมพ์ผล

Circle Area + Celsius ➜ Fahrenheit
Pyodide: กำลังโหลด…
Code
Standard input
Output

                    

แบบฝึก: คำนวณค่าเฉลี่ย (GPA) เบื้องต้น

โจทย์: รับคะแนน 3 วิชา แล้วคำนวณค่าเฉลี่ย (ทศนิยม 2 ตำแหน่ง) ถ้าค่าเฉลี่ย ≥ 50 ให้แสดง “ผ่าน” มิฉะนั้น “ไม่ผ่าน”

GPA Exercise
Pyodide: กำลังโหลด…
Code
Standard input
Output

                    

แบบฝึกหัดปลายบท: เขียนโปรแกรมเอง (ไม่มีโค้ดตัวอย่าง)

เลือกทำโจทย์ต่อไปนี้อย่างน้อย 1 ข้อ (หรือจะทำทั้งหมดก็ได้):

แนวทาง: ยึดตาม IPO — รับค่า ➜ ประมวลผล ➜ แสดงผล ด้วย print() และ f-string

# เฉลยตัวอย่าง 1: BMI
w = float(input("น้ำหนัก (กก.): "))
h = float(input("ส่วนสูง (เมตร): "))
bmi = w / (h ** 2)

if bmi < 18.5:
    status = "น้ำหนักน้อย"
elif bmi < 25:
    status = "น้ำหนักปกติ"
elif bmi < 30:
    status = "น้ำหนักเกิน"
else:
    status = "อ้วน"

print(f"BMI = {bmi:.2f} ({status})")
# เฉลยตัวอย่าง 2: ค่าไฟฟ้า + VAT 7%
units = float(input("หน่วยไฟฟ้าที่ใช้ (kWh): "))
rate  = float(input("อัตราต่อหน่วย (บาท/kWh): "))
subtotal = units * rate
vat = subtotal * 0.07
total = subtotal + vat
print(f"ค่าไฟก่อน VAT: {subtotal:.2f} บาท")
print(f"VAT 7%: {vat:.2f} บาท")
print(f"รวมทั้งสิ้น: {total:.2f} บาท")
# เฉลยตัวอย่าง 3: ค่าเฉลี่ยถ่วงน้ำหนัก (3 ส่วน)
s1 = float(input("คะแนนส่วนที่ 1: "))
w1 = float(input("น้ำหนักส่วนที่ 1 (%): "))
s2 = float(input("คะแนนส่วนที่ 2: "))
w2 = float(input("น้ำหนักส่วนที่ 2 (%): "))
s3 = float(input("คะแนนส่วนที่ 3: "))
w3 = float(input("น้ำหนักส่วนที่ 3 (%): "))

weighted = (s1*w1 + s2*w2 + s3*w3) / (w1 + w2 + w3)
print(f"ค่าเฉลี่ยถ่วงน้ำหนัก = {weighted:.2f}")
Your Program
Pyodide: กำลังโหลด…
Code (เอดิเตอร์ว่าง)
Standard input
Output