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

จาก Theory Wiki
รุ่นแก้ไขเมื่อ 10:21, 16 กรกฎาคม 2555 โดย 158.108.225.127 (คุย) (หน้าที่ถูกสร้างด้วย '* หมู่ 1: ให้ไว้ ณ​ วันที่ 16 กรกฎาคม 2555 '''ส่งวันที่ 22 กร...')
(ต่าง) ←รุ่นแก้ไขก่อนหน้า | รุ่นแก้ไขล่าสุด (ต่าง) | รุ่นแก้ไขถัดไป→ (ต่าง)
ไปยังการนำทาง ไปยังการค้นหา
  • หมู่ 1: ให้ไว้ ณ​ วันที่ 16 กรกฎาคม 2555 ส่งวันที่ 22 กรกฎาคม 2555 (ก่อนเที่ยงคืน)
  • หมู่ 610: ให้ไว้ ณ​ วันที่ 22 กรกฎาคม 255 ส่งวันที่ 28 กรกฎาคม 2555 (ก่อนเที่ยงคืน)

Pull โค้ด

จากการบ้านที่ 3 คุณได้คำการ fork repository ของผม และ clone repository 418512first2012 ของคุณ ไว้บนเครื่องของคุณแล้ว

ให้คุณ

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

และสั่ง

hg update

คุณจะพบว่ามีไดเรคทอรีใหม่ชื่อ 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 ใช้แทนพหุนามที่มีสัมประสิทธิ์เป็นจำนวนตรรกยะ

คุณสามารถดู API documentation ของคลาสที่คุณจะต้องเขียนได้ที่ http://theory.cpe.ku.ac.th/~pramook/418512/prj01/doc

nan

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

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

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

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

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

ตัวช่วย

อย่าลืม commit และ push

หลังจากทำงานเสร็จแล้ว อย่าลืมสั่ง

hg commit

และ

hg push

มิเช่นนั้นงานของคุุณจะไม่ขึ้นไปอยู่บน BitBucket และผมจะไม่สามารถ download งานมาตรวจได้