ผลต่างระหว่างรุ่นของ "418512 ภาคต้น 2554/โปรเจค 1"
Cardcaptor (คุย | มีส่วนร่วม) |
Cardcaptor (คุย | มีส่วนร่วม) |
||
(ไม่แสดง 6 รุ่นระหว่างกลางโดยผู้ใช้คนเดียวกัน) | |||
แถว 9: | แถว 9: | ||
* สั่ง | * สั่ง | ||
hg pull https://bitbucket.org/418512/first2011 | hg pull https://bitbucket.org/418512/first2011 | ||
+ | |||
+ | และสั่ง | ||
+ | |||
+ | hg update | ||
คุณจะพบว่ามีไดเรคทอรีใหม่ชื่อ <tt>prj01</tt> ซึ่งมีโครงสร้างดังต่อไปนี้ | คุณจะพบว่ามีไดเรคทอรีใหม่ชื่อ <tt>prj01</tt> ซึ่งมีโครงสร้างดังต่อไปนี้ | ||
แถว 34: | แถว 38: | ||
คุณจะพบว่ามี test ที่รันไม่ผ่านเป็นจำนวนมาก | คุณจะพบว่ามี test ที่รันไม่ผ่านเป็นจำนวนมาก | ||
− | '''งานของคุณในโปรเจคนี้คือแก้ไขไฟล์ <tt>rat_num.py</tt>, <tt>rat_poly.py</tt>, <tt>rat_term.py</tt> จนกระทั้ง test รันผ่านทั้งหมด</tt>'' | + | == งานนี้ให้ทำอะไร? == |
+ | '''งานของคุณในโปรเจคนี้คือแก้ไขไฟล์ <tt>rat_num.py</tt>, <tt>rat_poly.py</tt>, <tt>rat_term.py</tt> จนกระทั้ง test รันผ่านทั้งหมด''' | ||
+ | |||
+ | กล่าวคือ คุณจะต้องเติมเมธอดของคลาสต่อไปนี้ให้สมบูรณ์ | ||
+ | * <tt>RatNum</tt> อยู่ในโมดูล <tt>rat_num.py</tt> ใช้แทนจำนวนตรรกยะต่างๆ | ||
+ | * <tt>RatTerm</tt> อยู่ในโมดูล <tt>rat_term.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 เป็นตัวย่อของ "not a number" ในที่นี้เราหมายถึงเศษส่วนที่มีส่วนเป็น 0 | ||
+ | |||
+ | <tt>RatNum</tt> ใดที่มีส่วนเป็น 0 เราจะเรียกว่า nan | ||
+ | |||
+ | <tt>RatTerm</tt> ใดที่มีสัมประสิทธิ์เป็น 0 เราก็จะเรียกว่า nan ด้วย | ||
+ | |||
+ | <tt>RatPoly</tt> ใดมีพจน์ที่มีสัมประสิทธิ์เป็น 0 เราก็จะเรียกว่า nan ด้วย | ||
+ | |||
+ | เมื่อแปลง <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)
ตัวช่วย
- เศษส่วน
- 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 งานมาตรวจได้