418512 ภาคต้น 2554/โปรเจค 1

จาก Theory Wiki
ไปยังการนำทาง ไปยังการค้นหา
  • หมู่ 1: ให้ไว้ ณ​ วันที่ 4 กรกฎาคม 2554 ส่งวันที่ 11 กรกฎาคม 2554
  • หมู่ 610: ให้ไว้ ณ​ วันที่ 10 กรกฎาคม 2554 ส่งวันที่ 17 กรกฎาคม 2554

Pull โค้ด

จากการบ้านที่ 3 คุณได้คำการ clone repository 418512first2011 (ถ้าใครยังใช้ชื่ออื่นอยู่ให้เปลี่ยนมาใช้ชื่อนี้ด้วย เพราะผมจะใช้ชื่อนี้ในการ pull) ไว้บนเครื่องของคุณแล้ว

ให้คุณ

  • เปลี่ยนไดเรคทอรีไปยังไดเรคทอรีของ repository นั้นบนเครื่องของคุณ
  • สั่ง
hg pull https://bitbucket.org/418512/first2011

คุณจะพบว่ามีไดเรคทอรีใหม่ชื่อ prj01 ซึ่งมีโครงสร้างดังต่อไปนี้

prj01/
  asserts.py
  rat_num.py
  rat_poly.py
  rat_term.py
  test_rat_num.py
  test_rat_poly.py
  test_rat_term.py

ลง py.test และรันมัน

ให้คุณลง py.test บนเครื่องที่คุณจะใช้ทำงาน (วิธีการลงดูได้ในการบรรยายครั้งที่ 4)

หลังจากนั้นให้เขาสู่ไดเรคทอรี prj01

cd prj01

แล้วรัน

py.test

คุณจะพบว่ามี test ที่รันไม่ผ่านเป็นจำนวนมาก

งานนี้ให้ทำอะไร?

งานของคุณในโปรเจคนี้คือแก้ไขไฟล์ rat_num.py, rat_poly.py, rat_term.py จนกระทั้ง test รันผ่านทั้งหมด

กล่าวคือ คุณจะต้องเติมเมธอดของคลาสต่อไปนี้ให้สมบูรณ์

  • RatNum อยู่ในโมดูล rat_num.py ใช้แทนจำนวนตรรกยะต่างๆ
  • RatTerm อยู่ในโมดูล rat_term.py ใช้แทนเอกนามที่มีสัมประสิทธิ์เป็นจำนวนตรรกยะ
  • RatPoly อยู่ในโมดูล rat_poly.py ใช้แทนพหุนามที่มีสัมประสิทธิ์เป็นจำนวนตรรกยะ

nan

nan เป็นตัวย่อของ "not a number" ในที่นี้เราหมายถึงเศษส่วนที่มีส่วนเป็น 0

RatNum ใดที่มีส่วนเป็น 0 เราจะเรียกว่า nan

RatTerm ใดที่มีสัมประสิทธิ์เป็น 0 เราก็จะเรียกว่า nan ด้วย

RatPoly ใดมีพจน์ที่มีสัมประสิทธิ์เป็น 0 เราก็จะเรียกว่า nan ด้วย

เมื่อแปลง RatNum ที่มีค่าเป็น nan เป็นค่า float ให้คืนค่า float('nan') (nan จริงๆ แล้วเป็นชื่อเรียกค่า float ที่ไม่จัดว่าเป็นจำนวน ซึ่งโดยมากแล้วจะเกิดจากการหารจำนวนใดๆ ด้วย 0)

ตัวช่วย