204111:lab4

จาก Theory Wiki
ไปยังการนำทาง ไปยังการค้นหา

ปฏิบัติการที่สองของวิชา 20411 ตามแผนร่างหัวข้อวิชา 204111 มีเนื้อหาดังนี้

  • if-statement
  • while-statement

หมายเหตุ เลขข้อที่ใส่นั้นอาจไม่จำเป็นต้องใช้ตามที่ระบุนี้ แต่ใส่เพื่อให้เห็นชัดเจนว่าแต่ละข้อเริ่มที่ใด

สำหรับปฏิบัติการนี้ ใช้แล็บชื่อ คำสั่งเงื่อนไขและการทำซ้ำ

นิพจน์ตรรกศาสตร์

A1. หาค่านิพจน์

จะเพิ่มต่อไป

A2. เขียนนิพจน์ตรรกศาสตร์

จะเพิ่มต่อไป

เงื่อนไข

B1. ส่วนลด

ร้านขายขนมจะลดราคา 5% ให้กับคนที่ซื้อ มากกว่า 100 บาท ให้เขียนโปรแกรมรับราคาสินค้าจากนั้นคำนวณเงินที่ต้องจ่าย ให้แสดงผลเป็นทศนิยม 2 ตำแหน่ง

เติมโปรแกรมด้านล่างให้สมบูรณ์

p = int(input("Enter total price: "))
if ____________:
    ______________
    ______________
print("You have to pay %0.2f" % p)

B2. เข้าประตู

ประตูปราสาทมีขอบด้านล่างสูง 40 เมตร ขอบด้านบนสูง 90 เมตร เด็กน้อยเตะลูกบอลสูง h เมตร อยากทราบว่าเตะเข้าประตูหรือไม่ (ถ้าลูกบอลสูงพอดีกับขอบให้ ถือว่าไม่เข้า)

ตัวอย่าง 1

Enter height: 60
The ball went in.

ตัวอย่าง 2

Enter height: 100
The ball did not go in.

เติมโปรแกรมด้านล่างให้สมบูรณ์

h = int(input("Enter height: "))
if ______________________:
    ______________________________
else:
    ______________________________

B3. ขนาดผลไม้

ลูกทุเรียนถูกแบบขนาดออกเป็น 3 กลุ่มตามน้ำหนัก ดังนี้

  • น้อยกว่า 1 กิโลกรัม: small
  • มากกว่าหรือเท่ากับ 1 กิโลกรัม แต่น้อยกว่า 3 กิโลกรัม: medium
  • มากกว่าหรือเท่ากับ 3 กิโลกรัม: large

ตัวอย่าง 1

Enter weight: 1.5
It is medium.

ตัวอย่าง 2

Enter weight: 3
It is large.

ตัวอย่าง 3

Enter weight: 0.5
It is small.

ให้เขียนทั้งโปรแกรม (หมายเหตุถึง TA: อย่าลืมข้อมูลทดสอบที่มีน้ำหนัก 1, 3 และค่าอื่น ๆ ด้วย)

B4. จุดในระนาบ (ง่าย)

ระนาบถูกแบ่งออกเป็น 4 ควอดแดรนต์ จุดจะอยู่ในควอดแดรนต์ที่หนึ่ง (Q1) ถ้าจุดไม่ได้อยู่บนแกน x หรือแกน y และมีพิกัดในทั้งสองแกนเป็นบวกทั้งหมด

(หมายเหตุ TA: สามารถใช้รูปจากโจทย์ปีที่แล้วข้อ "แบบฝึกหัด - practice 4.1" ได้)

เขียนโปรแกรมรับพิกัดของจุด แล้วระบุว่าจุดดังกล่าวอยู่ใน Q1 หรือไม่

ตัวอย่าง 1

Enter X: 10
Enter Y: 5
The point is in Q1.

เขียนโปรแกรมให้สมบูรณ์

x = float(input("Enter X: "))
y = _________________________
if ___________________:
    ______________________
else:
    print("The point is not in Q1.")

B5. จุดในระนาบ (ยาก)

(หมายเหตุ TA: มาจากข้อปีที่แล้วชื่อ "แบบฝึกหัด - practice 4.1" task ใน elab)

B6. รายได้

(หมายเหตุ TA: มาจากข้อปีที่แล้วชื่อ "คำสั่งเงื่อนไข(2) --- ex 2.2" ดู task ใน elab)

การทำซ้ำ

C0-1 พิมพ์จาก 1 ถึง n

รับค่า n พิมพ์เลขบรรทัดละตัว ตั้งแต่ 1 ถึง n

ให้เติมโปรแกรมให้สมบูรณ์ เว้นช่องส่วนเงื่อนไขใน while loop, และช่องด้านในลูป

C0-2 พิมพ์จาก n ถึง 1

รับค่า n และพิมพ์เลขบรรทัดละตัว ตั้งแต่ n ถึง 1

เขียนทั้งโปรแกรม

C1. นับ

รับเลขไปเรื่อย ๆ จนกว่าผู้ใช้จะพิมพ์ 0 ให้รายงานจำนวนตัวเลขที่รับได้ (รวม 0 ด้วย)

เขียนทั้งโปรแกรม

C2-1. หาผลรวม

C3. นับเลขคี่

C4-1. นับตัวประกอบ

C4-2. ฟังก์ชันคืนจำนวนตัวประกอบ

C5-1. หาห.ร.ม

C5-2. ฟังก์ชันหาห.ร.ม.

C6 สถิติ: หาค่าเฉลี่ย, ค่ามากสุด, ค่าน้อยที่สุด

ส่วนที่แบ่งเป็นการบ้าน

ในส่วนนี้ให้สร้างอีก lab แยกออกมา เพื่อให้สามารถเปิด/ปิด แยกกับส่วนหลักที่ทำในห้องได้ และคิดว่าควรจะเปิดไว้ตั้งแต่ชั่วโมงแล็บเลย เพราะว่านิสิตที่ทำได้เร็วจะได้ทำในส่วนนี้ได้เลย

B7. ค่าจัดส่ง

(หมายเหตุ TA: มาจากข้อปีที่แล้วชื่อ "คำสั่งเงื่อนไข(2) --- ex 2.3" ดู task ใน elab)

C2-2. หาค่าเฉลี่ย

C4-3. ฟังก์ชันตรวจสอบจำนวนเฉพาะ