คำนวณค่าโดยสารรถโดยสารสาธารณะ
โจทย์
รถโดยสารสาธารณะในอำเภอหนึ่ง ประกาศอัตราค่าโดยสารไว้ดังนี้คือ
ผู้โดยสารทั่วไป คิดอัตราค่าโดยสารคนละ 10 บาท ตลอดเส้นทาง
ผู้โดยสารที่เป็นเด็กอายุต่ำกว่า 3 ขวบ ไม่เสียค่าโดยสาร
ผู้โดยสารที่เป็นผู้สูงอายุที่มีอายุตั้งแต่ 60 ปีขึ้นไป ลดค่าโดยสารครึ่งราคา
ถ้าค่าโดยสารรวมเป็นจำนวนตั้งแต่ 200 บาทขึ้นไป แต่มีผู้โดยสารไม่เกิน 30 คน ลดค่าโดยสารให้ 10%
ถ้านักเรียนต้องการนำคนในหมู่บ้านไปทัศนศึกษา และต้องการคำนวณค่าใช้จ่ายค่ารถโดยสาร จะเขียนโปรแกรมอย่างไร
โปรแกรม
passengers = {'a': 2, 'b': 20, 'c': 61}
count = len(passengers)
total = 0
for k, v in passengers.items():
print(k, v)
if v < 3:
pass
elif v >= 60:
total += 10 / 2
else:
total += 10
if total >= 200 and count <= 30:
total = total * 0.9
print('total:', total)
คำอธิบายโปรแกรม
โปรแกรมนี้ทำงานตามขั้นตอนดังนี้
สร้างดิกชันนารี
passengers
เพื่อเก็บข้อมูลผู้โดยสาร โดยมีคีย์เป็นชื่อ และค่าเป็นอายุของผู้โดยสารนับจำนวนผู้โดยสารทั้งหมดด้วย
len(passengers)
และเก็บไว้ในตัวแปรcount
สร้างตัวแปร
total
เพื่อเก็บค่าโดยสารรวม เริ่มต้นที่ 0วนลูปผ่านทุกคู่ key-value ในดิกชันนารี
passengers
:แสดงชื่อและอายุของผู้โดยสารแต่ละคน
ตรวจสอบอายุของผู้โดยสาร:
ถ้าอายุน้อยกว่า 3 ปี ไม่คิดค่าโดยสาร (ใช้
pass
)ถ้าอายุตั้งแต่ 60 ปีขึ้นไป คิดค่าโดยสารครึ่งราคา (5 บาท)
กรณีอื่นๆ คิดค่าโดยสารเต็มราคา (10 บาท)
หลังจากคำนวณค่าโดยสารของทุกคนแล้ว ตรวจสอบเงื่อนไขการลดราคา:
ถ้าค่าโดยสารรวมตั้งแต่ 200 บาทขึ้นไป และมีผู้โดยสารไม่เกิน 30 คน
ลดค่าโดยสาร 10% โดยคูณด้วย 0.9
แสดงค่าโดยสารรวมทั้งหมด
โปรแกรมนี้แสดงการใช้งานดิกชันนารี, การวนลูปด้วย for, การใช้เงื่อนไข if-elif-else, และการคำนวณค่าโดยสารตามเงื่อนไขที่กำหนดในโจทย์