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

จาก Theory Wiki
ไปยังการนำทาง ไปยังการค้นหา
แถว 71: แถว 71:
 
=== 5. หารากสมการกำลังสอง (รากทั้งสอง) ===
 
=== 5. หารากสมการกำลังสอง (รากทั้งสอง) ===
  
เขียนฟังก์ชัน <tt>root_plus(a,b,c)</tt> ที่คำนวณค่า
+
เขียนฟังก์ชัน <tt>root_plus(a,b,c)</tt> ที่รับสัมประสิทธิ์ a,b, และ c แล้วคำนวณค่า
  
=== 5. หารากสมการกำลังสอง (ส่วนโปรแกรมหลัก) ===
+
<center><math>\frac{-b + \sqrt{b^2 - 4ac}}{2a}</math></center>
 +
 
 +
และเขียนฟังก์ชัน <tt>root_minus(a,b,c)</tt> ที่รับสัมประสิทธิ์ a,b, และ c แล้วคำนวณค่า
 +
 
 +
<center><math>\frac{-b - \sqrt{b^2 - 4ac}}{2a}</math></center>
 +
 
 +
ฟังก์ชันทั้งสองให้เรียกใช้ฟังก์ชัน <tt>cal_term</tt> ด้วย (แต่ไม่ต้องเขียน ในระบบมีการเขียนไว้ให้แล้ว)
 +
 
 +
'''หมายเหตุถึง TA:''' อย่าลืมใส่ฟังก์ชัน cal_term ไว้ด้วย (แต่ซ่อนไว้นะครับ)
 +
 
 +
=== 6. หารากสมการกำลังสอง (ส่วนโปรแกรมหลัก) ===
  
 
(ในตอนทำให้ปิดโค้ดของ function ย่อยทั้งหมด แต่ให้แสดงแต่หัวที่เป็นบรรทัด def ไว้ แล้วเว้นส่วนโปรแกรมหลักด้านล่างให้เติม)
 
(ในตอนทำให้ปิดโค้ดของ function ย่อยทั้งหมด แต่ให้แสดงแต่หัวที่เป็นบรรทัด def ไว้ แล้วเว้นส่วนโปรแกรมหลักด้านล่างให้เติม)

รุ่นแก้ไขเมื่อ 06:37, 17 มิถุนายน 2553

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

  • ฟังก์ชัน

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

ฟังก์ชันพื้นฐาน

1. ยกกำลัง

ให้เติมฟังก์ชัน square ที่รับจำนวนเต็ม x แล้วคืนค่า

(มีการประกาศหัวฟังก์ชัน, เว้นส่วนของฟังก์ชัน, มีโปรแกรมหลัก)

2. พหุนาม

ให้เขียนฟังก์ชัน poly ที่รับอาร์กิวเมนต์ x ที่คำนวณ

(เว้นช่องทั้งฟังก์ชั่น (ไม่มีการประกาศหัว), มีโปรแกรมหลัก)

ฟังก์ชันและโปรแกรมหลัก: สมการกำลังสอง

ถึง TA: ชุดนี้ประกอบด้วยโจทย์หลายข้อ... สามารถขึ้น intro ทุกข้อด้วยข้อความแบบเดียวกันได้

เราต้องการหาคำตอบของรูปแบบหนึ่งของสมการกำลังสอง พิจารณาสมการ เราทราบว่ามีคำตอบสองคำตอบคือ

และ

ในกรณีที่ มีค่ามากกว่า 0

เราจะแบ่งงานพัฒนาโปรแกรมนี้ออกเป็นหลาย ๆ ส่วน

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

3. หารากสมการกำลังสอง (แสดงพหุนาม)

ให้เขียนฟังก์ชัน show_poly(a, b, c) ที่รับพารามิเตอร์ 3 ตัวคือ a, b, และ c จากนั้นให้แสดงผลในรูปแบบตามตัวอย่างดังนี้

ถ้าสั่ง show_poly(1,2,3) ฟังก์ชันจะพิมพ์

1 x^2 + 2 x + 3

หรือถ้าสั่ง show_poly(5,0,-10) ฟังก์ชันจะพิมพ์

5 x^2 + 0 x + -10

(สังเกตว่าให้แสดงผลไปเลย ไม่ต้องกังวลกับกรณีที่สัมประสิทธิ์เป็น 0 หรือเป็นค่าลบ)

หมายเหตุถึง TA: ตอนทดสอบให้ทดสอบเฉพาะกรณีสัมประสิทธิ์เป็นจำนวนเต็มก็พอ เพราะการสั่งให้นิสิตจัดรูปแบบทศนิยมกรณีนี้ค่อนข้างยาก

4. หารากสมการกำลังสอง (คำนวณเทอมย่อย)

สังเกตว่าในการหาราก เราจำเป็นต้องคำนวณค่า หลายครั้ง ในส่วนนี้เราจะเขียนฟังก์ชันเพื่อคำนวณส่วนดังกล่าว

ให้เขียนฟังก์ชัน cal_term(a, b, c) ที่รับพารามิเตอร์สามตัวคือ a, b และ c แทนสัมประสิทธิ์ต่าง ๆ ของ x ในพหุนาม

ให้ฟังก์ชันดังกล่าวคืนค่า

เมื่อนิสิตเขียนฟังก์ชันแล้ว อย่าลืมทดสอบก่อนส่งด้วย โดยอาจจะทดสอบใน python shell ดังตัวอย่างด้านล่าง

>>> print(cal_term(1,2,1))
0.0
>>> print(cal_term(1,4,1))
3.46410161514

หมายเหตุถึง TA: ในส่วนทดสอบให้เขียนโปรแกรมหลัก เช่นในตัวอย่างข้างต้น แต่ซ่อนส่วน code ส่วนนั้นไว้ แต่ในตอนพิมพ์อย่าลืมให้จัดรูปแบบเป็นทศนิยมสัก 3 ตำแหน่งด้วย เพื่อป้องกันความผิดพลาดจากการปัดจำนวนจริง

5. หารากสมการกำลังสอง (รากทั้งสอง)

เขียนฟังก์ชัน root_plus(a,b,c) ที่รับสัมประสิทธิ์ a,b, และ c แล้วคำนวณค่า

และเขียนฟังก์ชัน root_minus(a,b,c) ที่รับสัมประสิทธิ์ a,b, และ c แล้วคำนวณค่า

ฟังก์ชันทั้งสองให้เรียกใช้ฟังก์ชัน cal_term ด้วย (แต่ไม่ต้องเขียน ในระบบมีการเขียนไว้ให้แล้ว)

หมายเหตุถึง TA: อย่าลืมใส่ฟังก์ชัน cal_term ไว้ด้วย (แต่ซ่อนไว้นะครับ)

6. หารากสมการกำลังสอง (ส่วนโปรแกรมหลัก)

(ในตอนทำให้ปิดโค้ดของ function ย่อยทั้งหมด แต่ให้แสดงแต่หัวที่เป็นบรรทัด def ไว้ แล้วเว้นส่วนโปรแกรมหลักด้านล่างให้เติม)