ผลต่างระหว่างรุ่นของ "418512 ภาคต้น 2554/โปรเจค 1"

จาก Theory Wiki
ไปยังการนำทาง ไปยังการค้นหา
 
(ไม่แสดง 3 รุ่นระหว่างกลางโดยผู้ใช้คนเดียวกัน)
แถว 9: แถว 9:
 
* สั่ง  
 
* สั่ง  
 
  hg pull https://bitbucket.org/418512/first2011
 
  hg pull https://bitbucket.org/418512/first2011
 +
 +
และสั่ง
 +
 +
hg update
  
 
คุณจะพบว่ามีไดเรคทอรีใหม่ชื่อ <tt>prj01</tt> ซึ่งมีโครงสร้างดังต่อไปนี้
 
คุณจะพบว่ามีไดเรคทอรีใหม่ชื่อ <tt>prj01</tt> ซึ่งมีโครงสร้างดังต่อไปนี้
แถว 41: แถว 45:
 
* <tt>RatTerm</tt> อยู่ในโมดูล <tt>rat_term.py</tt> ใช้แทนเอกนามที่มีสัมประสิทธิ์เป็นจำนวนตรรกยะ
 
* <tt>RatTerm</tt> อยู่ในโมดูล <tt>rat_term.py</tt> ใช้แทนเอกนามที่มีสัมประสิทธิ์เป็นจำนวนตรรกยะ
 
* <tt>RatPoly</tt> อยู่ในโมดูล <tt>rat_poly.py</tt> ใช้แทนพหุนามที่มีสัมประสิทธิ์เป็นจำนวนตรรกยะ
 
* <tt>RatPoly</tt> อยู่ในโมดูล <tt>rat_poly.py</tt> ใช้แทนพหุนามที่มีสัมประสิทธิ์เป็นจำนวนตรรกยะ
 +
 +
คุณสามารถดู API documentation ของคลาสที่คุณจะต้องเขียนได้ที่ [http://theory.cpe.ku.ac.th/~pramook/418512/prj01/doc http://theory.cpe.ku.ac.th/~pramook/418512/prj01/doc]
  
 
== nan ==
 
== nan ==
แถว 52: แถว 58:
  
 
เมื่อแปลง <tt>RatNum</tt> ที่มีค่าเป็น nan เป็นค่า float ให้คืนค่า <tt>float('nan')</tt> (nan จริงๆ แล้วเป็นชื่อเรียกค่า float ที่ไม่จัดว่าเป็นจำนวน ซึ่งโดยมากแล้วจะเกิดจากการหารจำนวนใดๆ ด้วย 0)
 
เมื่อแปลง <tt>RatNum</tt> ที่มีค่าเป็น nan เป็นค่า float ให้คืนค่า <tt>float('nan')</tt> (nan จริงๆ แล้วเป็นชื่อเรียกค่า float ที่ไม่จัดว่าเป็นจำนวน ซึ่งโดยมากแล้วจะเกิดจากการหารจำนวนใดๆ ด้วย 0)
 +
 +
== ตัวช่วย ==
 +
* เศษส่วน
 +
** http://www.khanacademy.org/video/numerator-and-denominator-of-a-fraction?playlist=Developmental%20Math
 +
** http://www.khanacademy.org/video/multiplying-fractions?playlist=Developmental%20Math
 +
** http://www.khanacademy.org/video/dividing-fractions?playlist=Developmental%20Math
 +
** http://www.khanacademy.org/video/adding-fractions-with-unlike-denominators?playlist=Developmental%20Math
 +
** http://www.khanacademy.org/video/subtracting--fractions?playlist=Developmental%20Math
 +
* พหุนาม
 +
** http://www.khanacademy.org/video/terms-coefficients-and-exponents-in-a-polynomial?playlist=Developmental%20Math
 +
** http://www.khanacademy.org/video/evaluating-a-polynomial-at-a-given-value?playlist=Developmental%20Math
 +
** http://www.khanacademy.org/video/adding-polynomials?playlist=Developmental%20Math
 +
** http://www.khanacademy.org/video/subtracting-polynomials?playlist=Developmental%20Math
 +
** http://www.khanacademy.org/video/multiplying-monomials?playlist=Developmental%20Math
 +
** http://www.khanacademy.org/video/multiplying-monomials-by-polynomials?playlist=Developmental%20Math
 +
** http://www.khanacademy.org/video/multiplying-polynomials?playlist=Developmental%20Math
 +
** http://www.khanacademy.org/video/dividing-monomials?playlist=Developmental%20Math
 +
** http://www.khanacademy.org/video/polynomial-divided-by-monomial?playlist=Developmental%20Math
 +
** http://www.khanacademy.org/video/dividing-polynomials-1?playlist=Developmental%20Math
 +
** http://www.khanacademy.org/video/dividing-polynomials-with-remainders?playlist=Developmental%20Math
 +
 +
== อย่าลืม commit และ push ==
 +
หลังจากทำงานเสร็จแล้ว อย่าลืมสั่ง
 +
 +
hg commit
 +
 +
และ
 +
 +
hg push
 +
 +
มิเช่นนั้นงานของคุุณจะไม่ขึ้นไปอยู่บน BitBucket และผมจะไม่สามารถ download งานมาตรวจได้

รุ่นแก้ไขปัจจุบันเมื่อ 08:44, 4 กรกฎาคม 2554

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

Pull โค้ด

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

ให้คุณ

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

และสั่ง

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 งานมาตรวจได้