|
2110101 : Lab8 - Class and Object

สิ่งที่ต้องการ
ให้เขียนเมท็อด reciprocate,
multiply และ mulMatrix ในคลาส Rational
ให้สมบูรณ์
คลาส Rational
Rational
คือคลาสซึ่งบรรยายการจัดเก็บและจัดการจำนวนตรรกยะ
(rational number) เช่น 1/2, 1/3, 6/11, 10001/20283
เป็นต้น ประกอบด้วยสอง fields
คือ
รายละเอียดของเมท็อดภายใน
Rational
ซึ่งเขียนให้แล้วมีดังนี้
รายละเอียดเมท็อดที่ต้องเขียนเพิ่ม
- object methods
- public
Rational reciprocate( )
สร้างออปเจกต์ใหม่ซึ่งมีค่ากลับกับ
"this"
นั่นคือกลับเศษเป็นส่วน
กลับส่วนเป็นเศษ
- public
Rational multiply( Rational a )
สร้างออปเจกต์ใหม่ซึ่งมีค่าเท่กับผลคูณของ
"this" กับ a
- class method
- public static
Rational [][]
mulMatrix(Rational [][] a, Rational [][] b )
สร้างอาเรย์สองมิติใหม่ซึ่งเก็บผลของการคูเมทริกซ์
a และ b ที่ได้รับ
ข้อแนะนำ
- ภายในสามเมท็อดที่ต้องเขียนเพิ่มนั้น
จะมีบรรทัด return
null; เติมให้แล้ว
ถ้าต้องการเขียนเมท็อดใด
ให้ลบบรรทัด return
null ของเมท็อดนั้นทิ้งไป
ส่วนเมท็อดใดที่ยังไม่ได้เขียน
ให้คงบรรทัดนี้ไว้ก่อน
จะทำให้เมท็อดนั้นแปลผ่าน
(แต่ยังทำงานไม่ถูก)
- อ่านรายละเอียดการทำงานของเมท็อด
add
ซึ่งเขียนให้แล้วเป็นตัวอย่างก่อน
- ทุกเมท็อดที่ให้เขียนจะต้องสร้างออปเจกต์ใหม่ที่เก์บผลลัพธ์
- ในเมท็อด multiply
ควรพยายามลดรูปผลคูณ
ก่อนไปสร้างออปเจกต์เพื่อคืนค่า
เช่น (2/7) x (39/14)
ก็ควรทำให้เป็น (1x39)/(7x2)
อย่าส่ง (2x39)/(7x14) ไปให้ constructor
ลดรูป
เพราะในกรณีที่เศษส่วนของทั้งสองจำนวนมีค่ามาก
ถ้าลดรูปได้แต่ไม่ทำ
จะทำให้ผลคูณของเศษหรือส่วน
เกินค่าที่ int เก็บได้
ก็จะให้ผลที่ผิดไป
- เมท็อด mulMatrix
จะมีขั้นตอนการทำงานคล้ายกับการคูณเมทริกซ์ในเอกสารประกอบการเรียนเรื่อง
array (หน้าที่ 49)
เพียงแต่ตรงนี้เราต้องเรียกใช้
add และ multiply ของ Rational
คะแนนเต็ม : 8 คะแนน
- เขียนโปรแกรม 8 คะแนน
- reciprocate 2 คะแนน multiply 4 คะแนน
และ mulMatrix 2 ตะแนน
- ระบบตรวจให้อัตโนมัติ
โดยทดสอบกรณีสุ่มๆ 8 กรณี
เวลาปฏิบัติการ : 45
นาที
|