Lab6-ModeMajority


5530089721  น.ส.ชยธิญา หลีเจริญ (COM21803) (2/8/2013 (9:50:54 AM))

MiniQuiz + TestScript
JLab>javac Utils.java
JLab>
JLab>java Selftest 

JLab> 1. count    : ok ok ok ok ok  (5.0/5.0)
JLab> 2. mode     : ok ok ok ok ok  (5.0/5.0)
JLab> 3. majority : ok ok ok ok ok  (5.0/5.0)
JLab> : -----------------------------
JLab> : You got 15.0 points (out of 15.0)
JLab> : -----------------------------
JLab> :<POINT>15.0</POINT> (<TOTAL>15.0</TOTAL> )
JLab>

ได้ 15 คะแนน
Source Code

Utils.java


public class Utils { //------------------------------------------------------------ // คืนจำนวนข้อมูลในอาเรย์ d ที่มีค่าเท่ากับ x เช่น // ให้ d = [ 2, 3, 4, 4, 5, 5, 4 ], x = 4 // เมื่อเรียก count(d,x) จะได้ 3 เพราะมี 4 ปรากฏใน d อยู่ 3 ตัว public static int count(int[] d, int x) { int c=0; for (int i = 0; i < d.length; i++) { if (d[i] == x) c++; } return c; } //------------------------------------------------------------ // คืนข้อมูลในอาเรย์ d ที่ปรากฏเป็นจำนวนมากสุด เช่น // ให้ d = [1, 3, 3, 1, 2, 3, 9, 3, 3] // เมื่อเรียก mode(d) จะได้ 3 เพราะ 3 ปรากฏใน d เป็นจำนวน 5 ตัว ซึ่งเป็นจำนวนมากสุด // หมายเหตุ : ถ้ามีข้อมูลใน d เกินหนึ่งตัวที่ปรากฏมากสุดเป็นจำนวนเท่ากัน จะคืนตัวใดก็ได้ // และให้ถือว่าอาเรย์ d ที่ได้รับมีขนาดอย่างน้อย 1 ช่อง public static int mode(int[] d) { int max=0,maxva=d[0],n=0; for (int i = 0; i < d.length; i++) { n = count(d, d[i]); if (n > max) { max = n; maxva = d[i];} } return maxva; } //------------------------------------------------------------ // ถามว่ามีข้อมูลใดในอาเรย์ d หรือไม่ ที่มีค่าซ้ำ ๆ กันเป็นจำนวนเกินครึ่งของขนาดอาเรย์ เช่น // ให้ d = [1,0,1,2,1,1,1,1,1,2] // เมื่อเรียก majority(d) จะคืนค่า true // แต่ถ้า d = [1,1,1,2,2,3] // เมื่อเรียก majority(d) จะคืนค่า false เพราะไม่มีข้อมูลใดใน d ที่มีค่าซ้ำกันเกิน 3 ตัว public static boolean majority(int[] d) { if (count(d,mode(d))<d.length/2) return false; else return true; } //------------------------------------------------------------ // ถ้าต้องการเขียนเมท็อด main เพื่อทดสอบการทำงานของเมท็อดต่่าง ๆ ก็เขียนเพิ่มได้ที่บริเวณนี้ public static void main(String[] args) { int[] d = { 1, 3, 3, 1, 2, 3, 9,3,3 }; System.out.println(mode(d)); System.out.print(majority(d)); } //------------------------------------------------------------ }
SM=0, CM=11, ST=12, KY=811, TR=60:00
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;