ผลต่างระหว่างรุ่นของ "204111:lab5"

จาก Theory Wiki
ไปยังการนำทาง ไปยังการค้นหา
แถว 200: แถว 200:
 
  10
 
  10
  
== หน้าร้านขายของ ==
+
== ร้านขายของ ==
  
 
ในส่วนนี้เราจะพัฒนาโปรแกรมสำหรับเป็นหน้าร้านซื้อขายเครื่องเขียน  เราจะเก็บข้อมูลของเครื่องเขียนในรายการ โดยข้อมูลที่จะเก็บเป็นดังนี้ คือ ชื่อของ ราคา และจำนวนที่เหลือในร้าน
 
ในส่วนนี้เราจะพัฒนาโปรแกรมสำหรับเป็นหน้าร้านซื้อขายเครื่องเขียน  เราจะเก็บข้อมูลของเครื่องเขียนในรายการ โดยข้อมูลที่จะเก็บเป็นดังนี้ คือ ชื่อของ ราคา และจำนวนที่เหลือในร้าน
แถว 209: แถว 209:
 
  prices = [5, 1, 10, 15, 20]
 
  prices = [5, 1, 10, 15, 20]
 
  counts = [100, 200, 50, 30, 50]
 
  counts = [100, 200, 50, 30, 50]
 +
 +
('''หมายเหตุถึง TA:''' ในแต่ละข้อ ให้ตัดคำอธิบายโจทย์รวมด้านบนไปด้วย)
 +
 +
=== ร้านขายของ: ค้นหาสินค้า ===
 +
 +
=== ร้านขายของ: ซื้อสินค้า ===
 +
 +
=== ร้านขายของ: พิมพ์รายการสินค้าที่เหลือ ===
 +
 +
=== ร้านขายของ: รวมเป็นโปรแกรม ===
  
 
== โจทย์เกี่ยวกับพหุนาม ==
 
== โจทย์เกี่ยวกับพหุนาม ==

รุ่นแก้ไขเมื่อ 09:41, 3 กรกฎาคม 2553

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

  • list

การอ้างข้อมูลในลิสต์

ลิสต์และลูป

ฟังก์ชันอ่านรายการ

ให้เขียนฟังก์ชัน read_list() ที่อ่านรายการของจำนวนเต็มที่ผู้ใช้ป้อน โดยสิ้นสุดการป้อนเมื่อป้อน -1 ให้ฟังก์ชันดังกล่าวคืนรายการของจำนวนเต็มที่อ่านได้ (ไม่รวม -1)

นิสิตสามารถนำฟังก์ชันที่เขียนไว้แล้วนี้ไปใช้ในข้ออื่น ๆ ได้

(หมายเหตุถึง TA: ให้ประกาศหัวฟังก์ชันไว้ แล้วเว้นช่องให้เติมให้สมบูรณ์ ให้ตัวอย่างโปรแกรมหลักและตัวอย่างการทำงาน)

เติมฟังก์ชันด้านล่างให้สมบูรณ์

def read_list():
    output = []
    x = int(input())
    while ___________:
        ___________________
        x = int(input())
    return output

ตัวอย่างของโปรแกรมหลักที่เรียกใช้ฟังก์ชันดังกล่าว โปรแกรมนี้รับรายการแล้วพิมพ์ค่าในรายการออกมา

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

เลขกำลังสอง 1

ให้เขียนฟังก์ชัน is_square(x) เพื่อตรวจสอบว่าจำนวนเต็ม x เป็นจำนวนเต็มที่เป็นกำลังสองของจำนวนเต็มบางจำนวนหรือไม่

(หมายเหตุถึง TA: ในส่วนของโปรแกรมให้ประกาศ import math และให้ประกาศหัวฟังก์ชัน และให้ตัวอย่างการเรียกใช้ดังด้านล่าง)

ตัวอย่างการเรียกใช้ใน Python Shell

>>> is_square(4)
True
>>> is_square(5)
False
>>> is_square(121)
True
>>> is_square(200)
False
>>> is_square(80)
False

เลขกำลังสอง 2

เขียนฟังก์ชัน filter_squares(ls) ที่รับรายการ ls และคืนค่าเป็นรายการที่ประกอบด้วยจำนวนเต็มที่เป็นเลขกำลังสอง

ให้นำฟังก์ชัน is_square ที่เขียนในข้อก่อนมาใช้

(หมายเหตุถึง TA: พยายามจัดหน้าตาส่วนของโปรแกรมเป็นดังรูปด้านล่าง)

import math

def is_square(x):
_______________________________________
_______________________________________
_______________________________________
_______________________________________
_______________________________________
_______________________________________

def filter_squares(ls):
_______________________________________
_______________________________________
_______________________________________
_______________________________________
_______________________________________
_______________________________________

ตัวอย่างการเรียกใช้ใน Python shell

>>> filter_squares([1,2,3,4,5,6,7,8,9,10])
[1,4,9]
>>> filter_squares([10,20,30])
[]
>>> filter_squares([80,100,200,400,9,80])
[100,400,9]

พิมพ์กลับหลัง

เขียนโปรแกรมรับจำนวนเต็ม จนกระทั่งผู้ใช้ป้อน -1 จากนั้นพิมพ์จำนวนเต็มที่รับ จากหน้าไปหลัง บรรทัดละ 1 ตัว

ตัวอย่างการทำงาน

10
20
15
3
-1
3
15
20
10

ร้านขายของ

ในส่วนนี้เราจะพัฒนาโปรแกรมสำหรับเป็นหน้าร้านซื้อขายเครื่องเขียน เราจะเก็บข้อมูลของเครื่องเขียนในรายการ โดยข้อมูลที่จะเก็บเป็นดังนี้ คือ ชื่อของ ราคา และจำนวนที่เหลือในร้าน

ข้อมูลทั้งสามจะเก็บในรายการสามรายการ ตัวอย่างดังด้านล่างนี้

names = ['pen', 'pencil', 'ruler', 'cutter', 'ink']
prices = [5, 1, 10, 15, 20]
counts = [100, 200, 50, 30, 50]

(หมายเหตุถึง TA: ในแต่ละข้อ ให้ตัดคำอธิบายโจทย์รวมด้านบนไปด้วย)

ร้านขายของ: ค้นหาสินค้า

ร้านขายของ: ซื้อสินค้า

ร้านขายของ: พิมพ์รายการสินค้าที่เหลือ

ร้านขายของ: รวมเป็นโปรแกรม

โจทย์เกี่ยวกับพหุนาม

การอ่านพหุนาม

ในโจทย์หลายข้อ เราจะอ่านพหุนามจากผู้ใช้ โดยการอ่านจะมีรูปแบบดังนี้

  • ผู้ใช้จะป้อนข้อมูลตัวแรกเป็นจำนวนเต็ม แทนกำลังสูงจุดของตัวแปร ในพหุนามดังกล่าว
  • จากนั้นจะป้อนจำนวนจริงอีก จำนวน แทนสัมประสิทธิ์ของตัวแปร โดยเริ่มจาก , , ไปจนถึง พหุนามที่ผู้ใช้ป้อนคือ

ให้ฟังก์ชันดังกล่าวคืนค่าเป็นรายการของสัมประสิทธิ์ [,,,...,]

ยกตัวอย่างเช่น ถ้าพหุนามเป็น ผู้ใช้ป้อนข้อมูลดังนี้

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 ที่เขียนจากข้อที่แล้ว

บวกพหุนาม

หาอนุพันธ์ของพหุนาม

คูณพหุนาม