คำนวณค่าโดยสารรถโดยสารสาธารณะ

 

โจทย์

รถโดยสารสาธารณะในอำเภอหนึ่ง ประกาศอัตราค่าโดยสารไว้ดังนี้คือ

  • ผู้โดยสารทั่วไป คิดอัตราค่าโดยสารคนละ 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)

คำอธิบายโปรแกรม

โปรแกรมนี้ทำงานตามขั้นตอนดังนี้

  1. สร้างดิกชันนารี passengers เพื่อเก็บข้อมูลผู้โดยสาร โดยมีคีย์เป็นชื่อ และค่าเป็นอายุของผู้โดยสาร

  2. นับจำนวนผู้โดยสารทั้งหมดด้วย len(passengers) และเก็บไว้ในตัวแปร count

  3. สร้างตัวแปร total เพื่อเก็บค่าโดยสารรวม เริ่มต้นที่ 0

  4. วนลูปผ่านทุกคู่ key-value ในดิกชันนารี passengers:

    • แสดงชื่อและอายุของผู้โดยสารแต่ละคน

    • ตรวจสอบอายุของผู้โดยสาร:

      • ถ้าอายุน้อยกว่า 3 ปี ไม่คิดค่าโดยสาร (ใช้ pass)

      • ถ้าอายุตั้งแต่ 60 ปีขึ้นไป คิดค่าโดยสารครึ่งราคา (5 บาท)

      • กรณีอื่นๆ คิดค่าโดยสารเต็มราคา (10 บาท)

  5. หลังจากคำนวณค่าโดยสารของทุกคนแล้ว ตรวจสอบเงื่อนไขการลดราคา:

    • ถ้าค่าโดยสารรวมตั้งแต่ 200 บาทขึ้นไป และมีผู้โดยสารไม่เกิน 30 คน

    • ลดค่าโดยสาร 10% โดยคูณด้วย 0.9

  6. แสดงค่าโดยสารรวมทั้งหมด

โปรแกรมนี้แสดงการใช้งานดิกชันนารี, การวนลูปด้วย for, การใช้เงื่อนไข if-elif-else, และการคำนวณค่าโดยสารตามเงื่อนไขที่กำหนดในโจทย์