prostuff1

May 19, 2006, 03:36 AM

Hello all. I am working on some homework and i can't seem to figure the whole thing out completely. I have ben going back and forth and just cant seem to figure it out.

OK, an explination of what i need to do:

I need to get the output of this little program to look like this:

How many numbers? 100

How many intervals? 10

Histogram

--------------------------------------------------------

1 ****(4)

2 ******(6)

3 ***********(11)

4 *****************(17)

5 **************************(26)

6 *************************(25)

7 *******(7)

8 ***(3)

9 (0)

10 *(1)

--------------------------------------------------------

And The program performs the following actions:

1. Ask the user to enter the number of numbers that will be generated and the number of intervals that will be used in the histogram, and input the two values;

2. Generate the required number of pseudo-random numbers by using the double[] Generator.getData(int n), which, given the number of numbers to generate, n, returns an array of double of size n containing the generated numbers;

3. Compute the range of data values (by finding the maximum and the minimum and taking their difference); then compute the width of each equally-sized interval (by dividing the whole range by the number of intervals specified by the user); finally, compute the number of data numbers falling in each interval and store these frequencies in an array of integers;

4. Output the histogram of the data as displayed in the sample run above: each bar starts with an index (1 through the number of intervals), followed by a number of '*' equal to the number of numbers in that range, followed by the number of '*' in parentheses.

While that does not seem to hard i seem to be having some trouble.

Right now this is what my program looks like:

import java.util.Scanner;

public class messwith {

/**

* @param args

*/

public static void main(String[] args)

{

Scanner keyboard = new Scanner(System.in);

System.out.print("How many numbers? ");

int numbers = keyboard.nextInt();

System.out.print("How many Intervals? ");

int intervals = keyboard.nextInt();

double[] rand_num = Generator.getData(numbers);

double max = max(rand_num);

double min = min(rand_num);

double inter_size = intervalSize(max, min, intervals);

int[] amount = numbers(rand_num, inter_size, min, intervals);

outPutResults(numbers, rand_num, amount);

}

private static double max(double[] rand_num)

{

double max = 0;

for(int index = 0; index < rand_num.length; index++)

{

if(rand_num[index] > max)

{

max = rand_num[index];

}

}

return max;

}

private static double min(double[] rand_num)

{

double min = 0;

for(int index = 0; index < rand_num.length; index++)

{

if(rand_num[index] < min)

{

min = rand_num[index];

}

}

return min;

}

private static double intervalSize(double max, double min, int intervals)

{

double range = max - min;

double width = range/intervals;

return width;

}

private static int[] numbers(double[] rand_num, double inter_size, double min, int intervals)

{

int[] numbers = new int[intervals];

int index = 0;

double count_interval = min + inter_size;

while(index < intervals)

{

int begin = 0;

int count = 0;

while(begin < (intervals-1))

{

if(rand_num[begin] >= min && rand_num[begin] < count_interval)

{

count++;

}

numbers[index] = count;

}

}

return numbers;

}

private static void outPutResults(int numbers, double[] rand_num, int[] amount)

{

int index = 0;

System.out.println("Histogram");

System.out.println("--------------------------------------------------------");

while(index < numbers)

{

System.out.print((index + 1) + " ");

while(index < rand_num[index])

{

System.out.print("*");

}

System.out.println("(" + rand_num[index] + ")");

index++;

}

System.out.println("-------------------------------------------------------");

}

}

While i thought this would work i seem to be having troubles. I cant seem to get it to print anything besides this:

How many numbers? 10

How many Intervals? 5

Histogram

--------------------------------------------------------

As you can see i have some problems in there that i cant seem to figure out. I was hopfing to get this done by friday afternoon cause this has to be turned in sunday night. I am not going to be at the school this weekend so i am trying to turn it in early.

If anyone can give me some help it would be appreciated!!!

Thanks

OK, an explination of what i need to do:

I need to get the output of this little program to look like this:

How many numbers? 100

How many intervals? 10

Histogram

--------------------------------------------------------

1 ****(4)

2 ******(6)

3 ***********(11)

4 *****************(17)

5 **************************(26)

6 *************************(25)

7 *******(7)

8 ***(3)

9 (0)

10 *(1)

--------------------------------------------------------

And The program performs the following actions:

1. Ask the user to enter the number of numbers that will be generated and the number of intervals that will be used in the histogram, and input the two values;

2. Generate the required number of pseudo-random numbers by using the double[] Generator.getData(int n), which, given the number of numbers to generate, n, returns an array of double of size n containing the generated numbers;

3. Compute the range of data values (by finding the maximum and the minimum and taking their difference); then compute the width of each equally-sized interval (by dividing the whole range by the number of intervals specified by the user); finally, compute the number of data numbers falling in each interval and store these frequencies in an array of integers;

4. Output the histogram of the data as displayed in the sample run above: each bar starts with an index (1 through the number of intervals), followed by a number of '*' equal to the number of numbers in that range, followed by the number of '*' in parentheses.

While that does not seem to hard i seem to be having some trouble.

Right now this is what my program looks like:

import java.util.Scanner;

public class messwith {

/**

* @param args

*/

public static void main(String[] args)

{

Scanner keyboard = new Scanner(System.in);

System.out.print("How many numbers? ");

int numbers = keyboard.nextInt();

System.out.print("How many Intervals? ");

int intervals = keyboard.nextInt();

double[] rand_num = Generator.getData(numbers);

double max = max(rand_num);

double min = min(rand_num);

double inter_size = intervalSize(max, min, intervals);

int[] amount = numbers(rand_num, inter_size, min, intervals);

outPutResults(numbers, rand_num, amount);

}

private static double max(double[] rand_num)

{

double max = 0;

for(int index = 0; index < rand_num.length; index++)

{

if(rand_num[index] > max)

{

max = rand_num[index];

}

}

return max;

}

private static double min(double[] rand_num)

{

double min = 0;

for(int index = 0; index < rand_num.length; index++)

{

if(rand_num[index] < min)

{

min = rand_num[index];

}

}

return min;

}

private static double intervalSize(double max, double min, int intervals)

{

double range = max - min;

double width = range/intervals;

return width;

}

private static int[] numbers(double[] rand_num, double inter_size, double min, int intervals)

{

int[] numbers = new int[intervals];

int index = 0;

double count_interval = min + inter_size;

while(index < intervals)

{

int begin = 0;

int count = 0;

while(begin < (intervals-1))

{

if(rand_num[begin] >= min && rand_num[begin] < count_interval)

{

count++;

}

numbers[index] = count;

}

}

return numbers;

}

private static void outPutResults(int numbers, double[] rand_num, int[] amount)

{

int index = 0;

System.out.println("Histogram");

System.out.println("--------------------------------------------------------");

while(index < numbers)

{

System.out.print((index + 1) + " ");

while(index < rand_num[index])

{

System.out.print("*");

}

System.out.println("(" + rand_num[index] + ")");

index++;

}

System.out.println("-------------------------------------------------------");

}

}

While i thought this would work i seem to be having troubles. I cant seem to get it to print anything besides this:

How many numbers? 10

How many Intervals? 5

Histogram

--------------------------------------------------------

As you can see i have some problems in there that i cant seem to figure out. I was hopfing to get this done by friday afternoon cause this has to be turned in sunday night. I am not going to be at the school this weekend so i am trying to turn it in early.

If anyone can give me some help it would be appreciated!!!

Thanks