หน่วยที่ 2 การแก้ปัญหาด้วยไพทอน
4. กำหนดเงื่อนไขโปรโมชั่น (if-else)
หน่วยที่ 2 การแก้ปัญหาด้วยไพทอน
4. กำหนดเงื่อนไขโปรโมชั่น (if-else)
โปรแกรมภาษาไพทอน : ภาระงาน
ใบงานที่ 4 โปรแกรมตรวจสอบเมนูเพื่อให้สิทธิ์โปรโมชันโดยอัตโนมัติตามเงื่อนไข
กรณีศึกษา : ระบบรับออเดอร์ร้านน้ำอิตาเลี่ยนโซดา
🌸ให้ระบบตรวจสอบ input ซ้ำ (While loop)
สถานการณ์ PISA จริงให้เชื่อมโยงกับชีวิตประจำวัน เช่น “ร้าน Café Soda Smile
จัดโปรโมชันช่วงหน้าร้อน
· สั่ง ‘บลูฮาวาย’ ได้ลด 10%
· สั่ง ‘กีวี่มินต์’ 2 แก้วขึ้นไป ได้ฟรีอีก 1 แก้ว
· เมนูอื่นไม่มีโปรโมชัน”
Q: “ถ้าลูกค้าสั่งเมนูอื่นที่ไม่มีในโปรโมชัน เช่น ‘สตรอเบอร์รีโซดา’ ระบบควรแจ้งลูกค้าอย่างไร?”
· ครูนำเสนอ Flow Chart เงื่อนไขเบื้องต้น ให้เห็นภาพการตัดสินใจแบบเป็นลำดับ เช่น:
· เริ่มต้นรับค่า → ตรวจสอบเมนู → ถ้า ‘บลูฮาวาย’ → แสดง “ลด 10%”
· ถ้า ‘กีวี่มินต์’ → แสดง “ซื้อ 2 แถม 1”
· ถ้าไม่ใช่ → แสดง “ไม่มีโปรโมชัน”
วิเคราะห์โจทย์ จากสถานการณ์ว่า
· ต้องมีเงื่อนไขหลักกี่กรณี? (อย่างน้อย 3 กรณี: บลูฮาวาย, กีวี่มินต์, อื่นๆ)
· ควรเรียงลำดับเงื่อนไข if-elif-else อย่างไรให้ครอบคลุมและไม่ซ้ำซ้อน?
**** ถ้าเขียนเงื่อนไขไม่เป็นลำดับ เช่น วาง else ก่อน elif โปรแกรมจะตัดสินใจผิด ทำให้แสดงผลโปรโมชันผิด
โครงสร้าง if-elif-else
ออกแบบและเขียนโปรแกรมจริง โดยใช้ if-elif-else รับค่า input ชื่อเมนู และตอบกลับโปรโมชันตามสถานการณ์
ทดสอบโปรแกรมในกรณีตัวอย่าง:
· ลูกค้าสั่ง ‘บลูฮาวาย’ → ต้องแสดง “ลด 10%”
· ลูกค้าสั่ง ‘กีวี่มินต์’ → ต้องแสดง “ซื้อ 2 แถม 1”
· ลูกค้าสั่ง ‘สตรอเบอร์รีโซดา’ → ต้องแสดง “ไม่มีโปรโมชัน”
📄ใบงานคาบ 4 : เงื่อนไขโปรโมชันร้าน Café Soda Smile
ชื่อ-สกุล ..................................................... ชั้น ................ เลขที่ ............
สถานการณ์ PISA :
ร้าน Café Soda Smile ออกโปรโมชันหน้าร้อน
· สั่ง บลูฮาวาย ลด 10%
· สั่ง กีวี่มินต์ 2 แก้วขึ้นไป ได้ฟรีอีก 1 แก้ว
· เมนูอื่น ไม่มีโปรโมชัน
ระบบรับออเดอร์ต้องแสดงโปรโมชันที่ตรงกับเมนูที่ลูกค้าสั่ง ถ้าเมนูไม่อยู่ในรายการ ให้แจ้ง “ไม่มีโปรโมชัน”
1. เขียนโปรแกรม Python รับชื่อเมนูที่ลูกค้ากรอกทาง input
2. ใช้โครงสร้าง if-elif-else เพื่อตรวจสอบเงื่อนไขและแสดงโปรโมชัน
3. ทดสอบกรณี:
o สั่ง “บลูฮาวาย”
o สั่ง “กีวี่มินต์”
o สั่งเมนูอื่น เช่น “เลมอนโซดา”
4. แนบภาพผลลัพธ์การรันโปรแกรมแต่ละกรณี
1. ถ้ามีการเพิ่มโปรโมชันสำหรับเมนูใหม่ในอนาคต เช่น “สตรอเบอร์รีโซดา ลด 20%”
o คุณจะเพิ่มเงื่อนไขในโค้ดตรงไหน?
o ควรจัดลำดับเงื่อนไขอย่างไรเพื่อไม่ให้กระทบเมนูเดิม?
2. ทำไมการจัดลำดับ if-elif-else ให้เหมาะสมถึงสำคัญต่อการทำงานของระบบ?
คาบหน้าเราจะเรียน การสร้างฟังก์ชันย่อย เพื่อจัดโค้ดให้เป็นระเบียบและดูแลง่ายขึ้น!