2005 Average
<< 2005Tickets | APQuestionsTrailIndex | 2004 WordList >>
Question from the College Board
public class StudentRecord { private int[] scores; public StudentRecord(int[] scores) { this.scores = scores; } /** * returns the average (arithmetic mean) of the * whose subscripts are between first and last, * precondition: 0 <= first <= last < scores.length */ public double average(int first, int last) { // part (a) return 0D; } /** * returns true if each successive value in scores is greater * than or equal to the previous value; * otherwise, returns false */ public boolean hasImproved() { //part (b) return false; } /** * if the values in scores have improved, returns the average * of the elements in scores with indexes greater than or equal * to scores.length/2; * otherwise, returns the average of all of the values in scores * */ public double finalAverage() { // part (c) return 0D; } public static void main (String[] args) { //three different ways to make our int arrays int[] a1={50, 50, 20, 80, 53}; int a2[]={20, 50, 50, 53, 80}; int[] a3=new int[4]; a3[0]=20; a3[1]=a3[2]=50; a3[3]=80; StudentRecord s1=new StudentRecord(a1); StudentRecord s2=new StudentRecord(a2); StudentRecord s3=new StudentRecord(a3); System.out.println("s1 improved? "+ passFail(false, s1.hasImproved())); System.out.println("s2 improved? "+ passFail(true, s2.hasImproved())); System.out.println("s3 improved? "+ passFail(true, s3.hasImproved())); System.out.println("\ns1 average(0,1): "+ passFail(50, s1.average(0, 1))); System.out.println("s2 average(1,2): "+ passFail(50, s2.average(1, 2))); System.out.println("s3 average(0,2): "+ passFail(40, s3.average(0, 2))); System.out.println("\ns1 final average: " + passFail(50.6, s1.finalAverage())); System.out.println("s2 final average: " + passFail(61.0, s2.finalAverage())); System.out.println("s3 final average: " + passFail(65.0, s3.finalAverage())); } }
Driver to test it out:
public class AverageTester{ public static void main (String[] args) { //I made 3 integer arrays in three different ways! int[] a1={50, 50, 20, 80, 53}; StudentRecord s1=new StudentRecord(a1); int a2[]={20, 50, 50, 53, 80}; StudentRecord s2=new StudentRecord(a2); int[] a3=new int[4]; a3[0]=20; a3[1]=a3[2]=50; a3[3]=80; StudentRecord s3=new StudentRecord(a3); System.out.println("s1 improved? (should be false):"+ s1.hasImproved()); System.out.println("s2 improved? (should be true):"+ s2.hasImproved()); System.out.println("s3 improved? (should be true):"+ s3.hasImproved()); System.out.println("s1 average? (should be 50.6):"+ s1.finalAverage()); System.out.println("s2 average? (should be 61.6):"+ s2.finalAverage()); System.out.println("s3 average? (should be 65.0):"+ s3.finalAverage()); } }