204111:lab5
ปฏิบัติการที่ 5 ของวิชา 20411 ตามแผนร่างหัวข้อวิชา 204111 มีเนื้อหาดังนี้
- list
การอ้างข้อมูลในลิสต์
ลิสต์และลูป
ฟังก์ชันอ่านรายการ
ให้เขียนฟังก์ชัน read_list() ที่อ่านรายการของจำนวนเต็มที่ผู้ใช้ป้อน โดยสิ้นสุดการป้อนเมื่อป้อน -1 ให้ฟังก์ชันดังกล่าวคืนรายการของจำนวนเต็มที่อ่านได้ (ไม่รวม -1)
นิสิตสามารถนำฟังก์ชันที่เขียนไว้แล้วนี้ไปใช้ในข้ออื่น ๆ ได้
(หมายเหตุถึง TA: ให้ประกาศหัวฟังก์ชันไว้ แล้วเว้นช่องให้เขียนโปรแกรม ให้ตัวอย่างโปรแกรมหลักและตัวอย่างการทำงาน)
ตัวอย่างของโปรแกรมหลักที่เรียกใช้ฟังก์ชันดังกล่าว โปรแกรมนี้รับรายการแล้วพิมพ์ค่าในรายการออกมา
ls = read_list() for x in ls: print(x)
ตัวอย่างการทำงานของโปรแกรมตัวอย่าง
10 20 15 3 -1 10 20 15 3
ผลรวมกำลังสอง
เขียนโปรแกรมอ่านรายการของจำนวนเต็ม จากนั้นคำนวณหาผลรวมของจำนวนเต็มในรายการยกกำลังสอง
ยกตัวอย่างเช่น ถ้าจำนวนเต็มในรายการเป็น 10 20 15 และ 3 ผลรวมคือ
ผู้ใช้จะป้อนข้อมูลทีละจำนวน และจะจบการป้อนโดยการป้อน -1
ตัวอย่างการทำงาน
10 20 15 3 -1 Answer = 734
หมายเหตุ: แนะนำให้ใช้ฟังก์ชัน read_list ที่เขียนในข้อที่แล้ว
ผลรวมของผลต่างจากค่าน้อยที่สุดกำลังสอง
เขียนโปรแกรมอ่านรายการของจำนวนเต็ม จากนั้นคำนวณหาผลรวมของกำลังสองของผลต่างของจำนวนเต็มกับค่าที่น้อยที่สุด
ยกตัวอย่างเช่น ถ้าจำนวนเต็มในรายการเป็น 10 20 15 และ 3 ดังนั้นค่าที่น้อยที่สุดคือ 3
คำตอบที่เราต้องการคือ
ผู้ใช้จะป้อนข้อมูลทีละจำนวน และจะจบการป้อนโดยการป้อน -1
ตัวอย่างการทำงาน
10 20 15 3 -1 Answer = 482
หมายเหตุ สามารถใช้ฟังก์ชัน min ในการหาค่าน้อยที่สุดได้
ฝากเงิน
สมหญิงฝากเงินทุก ๆ เดือน เงินที่ฝากเข้าไปจะสะสมไปเรื่อย ๆ ให้เขียนโปรแกรมรับรายการเงินที่สมหญิงฝากจากผู้ใช้ โดยผู้ใช้จะป้อน -1 เมื่อข้อมูลหมด
จากนั้นให้โปรแกรมพิมพ์เงินรวมทั้งหมด และเงินฝากรวมในทุก ๆ เดือนภายหลังจากที่สมหญิงฝากไป
หมายเหตุ: แนะนำให้ใช้ฟังก์ชัน read_list ที่เขียนในข้อที่แล้ว
ตัวอย่างการทำงาน
10 20 100 15 -1 Total = 145 10 30 130 145
หมายเหตุ: ผลลัพธ์คือ เงินในแต่ละเดือนคือ 10, 30, 130, และ 145
ฝากเงินแบบมีดอกเบี้ยรายเดือน
สมหญิงฝากเงินทุก ๆ เดือน เงินที่ฝากเข้าไปจะสะสมไปเรื่อย ๆ ในแต่ละเดือนก่อนที่จะรับเงินฝาก ธนาคารจะให้ดอกเบี้ย 1% จากเงินฝากที่มีอยู่
ยกตัวอย่างเช่น ถ้าฝากเงินสองเดือนแรกเท่ากับ 10 และ 20 บาท ในเดือนแรกเนื่องจากยังไม่มีเงินต้น เงินรวมคือ 10 บาท ในเดือ่นที่สอง ก่อนจะได้เงินฝากจะได้รับดอกเบี้ย 1% คือ 0.1 บาท รวมเงินต้นเป็น 10.1 รวมกับเงินฝาก ได้เป็น 30.1 บาท
ให้เขียนโปรแกรมรับรายการเงินที่สมหญิงฝากจากผู้ใช้ โดยผู้ใช้จะป้อน -1 เมื่อข้อมูลหมด
จากนั้นให้โปรแกรมพิมพ์เงินรวมทั้งหมด และเงินฝากรวมในทุก ๆ เดือนภายหลังจากที่สมหญิงฝากไป ให้แสดงด้วยทศนิยม 3 ตำแหน่ง
หมายเหตุ: แนะนำให้ใช้ฟังก์ชัน read_list ที่เขียนในข้อที่แล้ว
ตัวอย่างการทำงาน
10 20 100 15 -1 Total = 146.705 10.000 30.100 130.401 146.705
เลขกำลังสอง
ให้เขียนฟังก์ชัน is_square(x) เพื่อตรวจสอบว่าจำนวนเต็ม x เป็นจำนวนเต็มที่เป็นกำลังสองของจำนวนเต็มบางจำนวนหรือไม่
พิมพ์กลับหลัง
เขียนโปรแกรมรับจำนวนเต็ม จนกระทั่งผู้ใช้ป้อน -1 จากนั้นพิมพ์จำนวนเต็มที่รับ จากหน้าไปหลัง บรรทัดละ 1 ตัว
ตัวอย่างการทำงาน
10 20 15 3 -1 3 15 20 10
โจทย์เกี่ยวกับพหุนาม
การอ่านพหุนาม
ในโจทย์หลายข้อ เราจะอ่านพหุนามจากผู้ใช้ โดยการอ่านจะมีรูปแบบดังนี้
- ผู้ใช้จะป้อนข้อมูลตัวแรกเป็นจำนวนเต็ม แทนกำลังสูงจุดของตัวแปร ในพหุนามดังกล่าว
- จากนั้นจะป้อนจำนวนจริงอีก จำนวน แทนสัมประสิทธิ์ของตัวแปร โดยเริ่มจาก , , ไปจนถึง พหุนามที่ผู้ใช้ป้อนคือ
ให้ฟังก์ชันดังกล่าวคืนค่าเป็นรายการของสัมประสิทธิ์ [,,,...,]
ยกตัวอย่างเช่น ถ้าพหุนามเป็น ผู้ใช้ป้อนข้อมูลดังนี้
3 10 3 -1 2
ฟังก์ชันดังกล่าวจะคืนค่าเป็น [10,3,-1,2]
ตัวอย่างของโปรแกรมหลักที่เรียกใช้ฟังก์ชันดังกล่าว
print("Enter polynomial:") p = read_poly() print("Coefficients:") for c in p: print(c)
ตัวอย่างการทำงาน
Enter polynomial: 3 10 3 -1 2 Coeeficients: 10 3 -1 2
หาค่าพหุนาม
เขียนโปรแกรมรับพหุนาม จากผู้ใช้ จากนั้นรับค่า แล้วคำนวณค่า
ข้อมูลป้อนเข้า
- ผู้ใช้จะป้อนข้อมูลตัวแรกเป็นจำนวนเต็ม แทนกำลังสูงจุดของตัวแปร ในพหุนามดังกล่าว
- จากนั้นจะป้อนจำนวนจริงอีก จำนวน แทนสัมประสิทธิ์ของตัวแปร โดยเริ่มจาก , , ไปจนถึง พหุนามที่ผู้ใช้ป้อนคือ
- สุดท้ายผู้ใช้จะป้อนจำนวนจริง
ให้โปรแกรมตอบค่า เป็นทศนิยม 2 ตำแหน่ง
ตัวอย่างเช่น ถ้าพหุนามเป็น และผู้ใช้ต้องการคำนวณค่า ตัวอย่างการทำงานของโปรแกรมจะเป็นดังนี้
3 10 3 -1 2 3 f(a) = 64.00
หมายเหตุ แนะนำให้ใช้ฟังก์ชัน read_poly ที่เขียนจากข้อที่แล้ว