Page 1 of 2 12 LastLast
Results 1 to 20 of 22
  1. #1
    xdrazkalnytex is offline Member
    Join Date
    Mar 2012
    Posts
    34
    Rep Power
    0

    Default Already finished 1-5. Wondering if Someone can help with Steps 6-9. Please & Thanks!

    EventFrequency.java
    Java Code:
    import java.util.Scanner;
    public class EventFrequency {
    
    public static void main(String[] args) {
    // set up to get user input
    Scanner scan = new Scanner(System.in); 
    
    
    // ask user for the average number of events per time interval
    System.out.println("What average number of events per time interval do you want?");
    int lambda = scan.nextInt(); 
    
    
    // ask user for the number of time intervals to observe
    System.out.println("How many time intervals do you want to observe?");
    int times = scan.nextInt(); 
    
    // instantiate a Poisson object named myDist with average number of events
    Poisson myDist = new Poisson(lambda); 
    
    // step 1:
    // declare an int array named "counts" to count coin flip occurences
    // make its size one larger than 3 * lambda 
    int counts [] = new int [3 * lambda + 1];
    
    
    
    // step 2:
    // initialize all of the values in the counts array to 0
    for ( int i =0; i < counts.length; i++)
    {
        counts[i] = 0;
    }
    
    
    // step 3:
    // count the number of events occurring in each time interval observed
    
    for (int i =0; i < times; i++)
    {
        int k = myDist.getValue();
        counts[k]++;
    }
    
    
    // step 4:
    // print out the estimated probabilities of zero events and lambda events 
    
    float zeroevents= counts[0] / (float)times;
    float lambdaevents = counts[lambda] / (float)times;
    System.out.println("Zero Events \t" +zeroevents);
    System.out.println("Lambda Events \t" +lambdaevents);
    
    
    // step 5:
    // instantiate an object of the Histogram class with 
    // the array to be drawn, the indices of valid data,
    // and the maximum length of the bars in the histogram
    //
    // call its draw methods to draw the two histograms
    
    
    int minIndex = 0;
    int maxIndex = counts.length-1;
    int maxLength = (100 * counts[lambda] / times);
    
    Histogram event = new Histogram(counts, minIndex,maxIndex,maxLength);
    
    event.drawHor();
    event.drawVer();
    
    
    }
    } /*201220*/
    
    Poisson.java
    
    import java.util.Random;
    public class Poisson
    {
        private int lambda;
        private double values[]; 
        public Poisson(int lambda)
       {
           this.lambda = lambda;
           this.values = new double [3 * lambda]; 
           this.values[0] = functionOfKAndLambda(0);
           for (int i = 1; i < values.length; i++) 
           this.values[i] = this.values[i-1] + functionOfKAndLambda(i);
       } 
       private double functionOfKAndLambda(int k)
      {
            return Math.pow(lambda, k) * Math.pow(Math.E, -lambda) / factorial(k);
      } 
      private long factorial(long n)
      {
           long factorial = 1; 
          // write the code for a loop to calculate factorial of n here
          for (long i = 2; i <= n; i++)
          factorial = i * factorial; 
          return factorial;
      } 
      public int getValue()
      {
            double random = Math.random();
            for (int i = 0; i < values.length; i++)
            if (random < values[i])
            return i;
            return values.length; 
      }
    } /*201220*/
    
    
    Histogram.java
    
    public class Histogram 
    {
    private int [] values;
    private int minIndex;
    private int maxIndex;
    private int maxLength;
    
    /** constructor for histogram drawing class
    * @param values the array of integer values to draw
    * @param minIndex the lowest index in the array for the range to draw
    * @param maxIndex the highest index in the array for the range to draw
    * @param maxLength the length of line to draw for the largest value
    */
    
    public Histogram(int [] values, int minIndex, int maxIndex, int maxLength) 
    {
    // initialize the values of the instance variables from the constructor parameters
    this.values = new int [maxIndex + 1]; // allocate memory for a copy of the values array
    this.minIndex = minIndex;
    this.maxIndex = maxIndex;
    this.maxLength = maxLength;
    
    // step 6: 
    // find largest number in values array for scaling length of bars
    for (int i =0; i < values.length; i++);
    {
         int maxValue= values.length;
    }
    
    
    // step 7:
    // copy data from values array to this.values array while scaling to maximum length of bars
    
    for (int i=0; i < values.length; i++)
    {
         float bars = (float)maxLength / (float)maxIndex;
    }
    
    
    }
    
    /** draw a horizontal bar graph
    */
    
    public void drawHor()
    {
    // step 8:
    // draw horizontal bar graph (one line per roll value)
    
    
    for(int i = 0; i < values.length; i++);
    {
         for(int j = 0; j < values[i]; j++);
         {
              values=System.out.println(" *");
         }
    }
    
    
    
    
    
    
    }
    
    /** draw a vertical bar graph
    */
    
    public void drawVer()
    {
    
    // step 9:
    // draw vertical bar graph (one column per roll value)
    
    
    
    
    
    
    
    
    
    
    
    }
    }/*201220*/


    6-9(Histogram.java)
    6. and 7. We may have very large values in the values array supplied as a parameter. Since we want to limit the size of the histogram bar graph to maxLength, we need to scale the data in the values array when we copy it into the instance copy of the data in the array. This consists of two loops. The first loop finds the largest value in the values array. (Declare, initialize, and use a variable named something like “maxValue”). The second loop multiplies each value in the values array by the max length we want for bars (maxLength) and divides by the largest value found (“maxValue”). Remember the limitations of multiplication and division for integer variables. You may need to cast the integer values to double for the calculation and cast the result back to integer to update the value in each counts array element with good “resolution”. You can also get good resolution by performing integer multiplications and divisions in the correct order. See if you can do that as it will have better run time performance.

    8. In the drawHor method, your code must draw a horizontal bar graph of the data in the values array. (See Sample Output) This will require two nested loops. The outer loop will be a scan through each element of the values array and the inner loop will print an asterisk from 1 through the value in the outer loop element of the values array. Print the values array integer at the end of each bar of asterisks.

    9. In the drawVer method, your code must draw a vertical bar graph of the data in the values array. (See Sample Output) This is a little trickier than the horizontal bar graph. You still need two nested loops. The outer loop will count down through all the values from maxLength to 1 to print each line. The inner loop will print a piece of each line for each value (index into the values array). If the count for the value is greater than or equal to the decreasing count of the outer loop, print an asterisk with a space on either side of it. If the count for the value is not greater than or equal to the value of the outer loop count, print an equivalent number of spaces to maintain the column alignment but not show the “bar” in this column.
    Last edited by xdrazkalnytex; 03-28-2012 at 02:08 AM. Reason: added code tags

  2. #2
    Norm's Avatar
    Norm is offline Moderator
    Join Date
    Jun 2008
    Location
    SW Missouri
    Posts
    17,449
    Rep Power
    25

    Default Re: Already finished 1-5. Wondering if Someone can help with Steps 6-9. Please & Than

    Do you have any specific questions or problems with the code you are trying to write?
    Please post them.

    Can you edit the code in your post and properly indent it?
    Normally nested code is indented 3-4 spaces for every level of nesting within a pair of {}s.
    This makes it easier to see the program logic.
    Last edited by Norm; 03-28-2012 at 02:03 AM.
    If you don't understand my response, don't ignore it, ask a question.

  3. #3
    xdrazkalnytex is offline Member
    Join Date
    Mar 2012
    Posts
    34
    Rep Power
    0

    Default Re: Already finished 1-5. Wondering if Someone can help with Steps 6-9. Please & Than

    Yes, I need help with Steps 6-9.

    Step 6 and 7 I have to do a pair of loops for maxValue and maxLength, but I don't know how to start or finish the loops. I try on it but wasn't sure if it is right or not.

    and for Step 8 and 9. I do not know how to make a nested loops for the array to draw the verticle and horizontal bar graph.

    Looking for someone to help me finish the program. Can you help me?

  4. #4
    Norm's Avatar
    Norm is offline Moderator
    Join Date
    Jun 2008
    Location
    SW Missouri
    Posts
    17,449
    Rep Power
    25

    Default Re: Already finished 1-5. Wondering if Someone can help with Steps 6-9. Please & Than

    What kind of loop are you trying to use? Post your code and explain what you want it to do.
    Post any compiler errors you get also.
    If you don't understand my response, don't ignore it, ask a question.

  5. #5
    xdrazkalnytex is offline Member
    Join Date
    Mar 2012
    Posts
    34
    Rep Power
    0

    Default Re: Already finished 1-5. Wondering if Someone can help with Steps 6-9. Please & Than

    Step 6 and 7 require two loops according to the step lists.
    the first loop is to find the largest value in the values array (Declare, initialize, and use a variable named something like “maxValue”). The second loop multiplies each value in the values array by the max length we want for bars (maxLength) and divides by the largest value found (“maxValue”)

    I was thinking that this step reqiure me to use the for loop.

    // step 6:
    // find largest number in values array for scaling length of bars
    for (int i =0; i < values.length; i++);
    {
    int maxValue= values.length;
    }


    // step 7:
    // copy data from values array to this.values array while scaling to maximum length of bars

    for (int i=0; i < values.length; i++)
    {
    float bars = (float)maxLength / (float)maxIndex;
    }


    }

    /** draw a horizontal bar graph
    */

    step 8 require me to do two nested loop. outer loop will be a scan through each element of the values array and the inner loop will print an asterisk from 1 through the value in the outer loop element of the values array. Print the values array integer at the end of each bar of asterisks. But i have no idea how to do it, i try it but not sure if it is right or not.
    public void drawHor()
    {
    // step 8:
    // draw horizontal bar graph (one line per roll value)


    for(int i = 0; i < values.length; i++);
    {
    for(int j = 0; j < maxLength; j++);
    {
    System.out.println(" *");

    }
    }






    }

    /** draw a vertical bar graph
    */

    public void drawVer()
    {
    step 9 require me to do two nested loop also. the outer loop will count down through all the values from maxLength to 1 to print each line. The inner loop will print a piece of each line for each value (index into the values array). If the count for the value is greater than or equal to the decreasing count of the outer loop, print an asterisk with a space on either side of it. If the count for the value is not greater than or equal to the value of the outer loop count, print an equivalent number of spaces to maintain the column alignment but not show the “bar” in this column.
    // step 9:
    // draw vertical bar graph (one column per roll value)

















    }

    the errors i got is that i can't do array with double values which I am not sure why, So far that's how much I have gotten so far, and I have no idea how to finish it.

  6. #6
    Norm's Avatar
    Norm is offline Moderator
    Join Date
    Jun 2008
    Location
    SW Missouri
    Posts
    17,449
    Rep Power
    25

    Default Re: Already finished 1-5. Wondering if Someone can help with Steps 6-9. Please & Than

    If you get compiler errors, copy the full text and paste them here. Your edited version leaves off info.

    You get an element in an array by using array notation: array[ix]

    Take a look at the tutorial:
    Arrays (The Java™ Tutorials > The Reflection API > Arrays and Enumerated Types)
    If you don't understand my response, don't ignore it, ask a question.

  7. #7
    xdrazkalnytex is offline Member
    Join Date
    Mar 2012
    Posts
    34
    Rep Power
    0

    Default Re: Already finished 1-5. Wondering if Someone can help with Steps 6-9. Please & Than

    public class Histogram
    {
    private int [] values;
    private int minIndex;
    private int maxIndex;
    private int maxLength;

    public Histogram(int [] values, int minIndex, int maxIndex, int maxLength)
    {
    // initialize the values of the instance variables from the constructor parameters
    this.values = new int [maxIndex + 1]; // allocate memory for a copy of the values array
    this.minIndex = minIndex;
    this.maxIndex = maxIndex;
    this.maxLength = maxLength;

    // step 6:
    // find largest number in values array for scaling length of bars
    for (int i =0; i < values.length; i++);
    {
    int maxValue= values.length;
    }


    // step 7:
    // copy data from values array to this.values array while scaling to maximum length of bars

    for (int i=0; i < values.length; i++)
    {
    float bars = (float)maxLength / (float)maxIndex;
    }


    }

    /** draw a horizontal bar graph
    */

    public void drawHor()
    {
    // step 8:
    // draw horizontal bar graph (one line per roll value)


    for(int i = 0; i < values.length; i++);
    {
    for(int j = 0; j < maxLength; j++);
    {
    System.out.println(" *");

    }
    }



    }

    /** draw a vertical bar graph
    */

    public void drawVer()
    {

    // step 9:
    // draw vertical bar graph (one column per roll value)

    }
    }/*201220*/

    ******
    // step 6:
    // find largest number in values array for scaling length of bars

    // step 7:
    // copy data from values array to this.values array while scaling to maximum length of bars
    ********





    I just compile this and I got no errors. Can you tell me if I am doing the for loop right or not in step 6 and 7? If I got it wrong can you correct it for me?

  8. #8
    Norm's Avatar
    Norm is offline Moderator
    Join Date
    Jun 2008
    Location
    SW Missouri
    Posts
    17,449
    Rep Power
    25

    Default Re: Already finished 1-5. Wondering if Someone can help with Steps 6-9. Please & Than

    am doing the for loop right
    The test should be: Does the program generate the required output?
    If you don't understand my response, don't ignore it, ask a question.

  9. #9
    xdrazkalnytex is offline Member
    Join Date
    Mar 2012
    Posts
    34
    Rep Power
    0

    Default Re: Already finished 1-5. Wondering if Someone can help with Steps 6-9. Please & Than

    it supposed to link to Step 8 and 9 and make the histogram. But step 6 and 7 just find the values, which I don't know how to do

  10. #10
    Norm's Avatar
    Norm is offline Moderator
    Join Date
    Jun 2008
    Location
    SW Missouri
    Posts
    17,449
    Rep Power
    25

    Default Re: Already finished 1-5. Wondering if Someone can help with Steps 6-9. Please & Than

    Try doing one Step at a time.
    What do you want to do for Step 6?
    If you don't understand my response, don't ignore it, ask a question.

  11. #11
    xdrazkalnytex is offline Member
    Join Date
    Mar 2012
    Posts
    34
    Rep Power
    0

    Default Re: Already finished 1-5. Wondering if Someone can help with Steps 6-9. Please & Than

    6. and 7. We may have very large values in the values array supplied as a parameter. Since we want to limit the size of the histogram bar graph to maxLength, we need to scale the data in the values array when we copy it into the instance copy of the data in the array. This consists of two loops. The first loop finds the largest value in the values array. (Declare, initialize, and use a variable named something like “maxValue”). The second loop multiplies each value in the values array by the max length we want for bars (maxLength) and divides by the largest value found (“maxValue”). Remember the limitations of multiplication and division for integer variables. You may need to cast the integer values to double for the calculation and cast the result back to integer to update the value in each counts array element with good “resolution”. You can also get good resolution by performing integer multiplications and divisions in the correct order. See if you can do that as it will have better run time performance.

    Yeah. I am trying to get my loops to work for step 6 and 7 but i can't seem ti get it to work.
    Step 6 require a for loop for largest value in the array.

  12. #12
    Norm's Avatar
    Norm is offline Moderator
    Join Date
    Jun 2008
    Location
    SW Missouri
    Posts
    17,449
    Rep Power
    25

    Default Re: Already finished 1-5. Wondering if Someone can help with Steps 6-9. Please & Than

    To find the largest element in an array:
    Try using a for loop that loops for the number of elements in the array.
    Use the loop index value to access each element in the array.
    Compare each element in the array with another variable that holds the current max value using a if statement
    If the current element is greater than the max value, save it as the max value
    At the end of the loop the max value variable will hold the largest value found in the array.
    If you don't understand my response, don't ignore it, ask a question.

  13. #13
    xdrazkalnytex is offline Member
    Join Date
    Mar 2012
    Posts
    34
    Rep Power
    0

    Default Re: Already finished 1-5. Wondering if Someone can help with Steps 6-9. Please & Than

    I have no idea how to do that. Been trying on it for awhile now. Can you help me out?

  14. #14
    Norm's Avatar
    Norm is offline Moderator
    Join Date
    Jun 2008
    Location
    SW Missouri
    Posts
    17,449
    Rep Power
    25

    Default Re: Already finished 1-5. Wondering if Someone can help with Steps 6-9. Please & Than

    You know how to write a loop because I can see for loops in the code you posted.
    What part of what I posted don't you understand?
    Do you know how to get the contents of an array element? Here is a sample:
    aVar = theArray[theIndexToArray]; // get the value of the array at theIndexToArray
    Do you know how to write an if statement to compare two values to see which one is larger?
    Do you know how to assign a value to a variable?
    If you don't understand my response, don't ignore it, ask a question.

  15. #15
    xdrazkalnytex is offline Member
    Join Date
    Mar 2012
    Posts
    34
    Rep Power
    0

    Default Re: Already finished 1-5. Wondering if Someone can help with Steps 6-9. Please & Than

    I know how to write the loop, the part I dont understand is what to put inside of the loop.

    "Do you know how to write an if statement to compare two values to see which one is larger?
    Do you know how to assign a value to a variable?"

    I don't understand those.

    for(int i=0; i < values.length; i++)
    {
    // I don't know what to put here
    }

  16. #16
    Norm's Avatar
    Norm is offline Moderator
    Join Date
    Jun 2008
    Location
    SW Missouri
    Posts
    17,449
    Rep Power
    25

    Default Re: Already finished 1-5. Wondering if Someone can help with Steps 6-9. Please & Than

    Look at posts #12 & #14

    Write some pseudo code describing the steps that need to be done in the loop to find the largest element in the array.

    Doc on the if statement:
    http://docs.oracle.com/javase/tutori...dbolts/if.html

    Expressions:
    http://docs.oracle.com/javase/tutori...pressions.html

    how to assign a value to a variable
    I don't believe that.
    An assignment statement: x = 3; // assign 3 to x
    Last edited by Norm; 03-28-2012 at 05:02 PM.
    If you don't understand my response, don't ignore it, ask a question.

  17. #17
    xdrazkalnytex is offline Member
    Join Date
    Mar 2012
    Posts
    34
    Rep Power
    0

    Default Re: Already finished 1-5. Wondering if Someone can help with Steps 6-9. Please & Than

    Doesn't really help at all. Thanks anyway, I'm going to continue to work on it

  18. #18
    Norm's Avatar
    Norm is offline Moderator
    Join Date
    Jun 2008
    Location
    SW Missouri
    Posts
    17,449
    Rep Power
    25

    Default Re: Already finished 1-5. Wondering if Someone can help with Steps 6-9. Please & Than

    If you can not write down the steps a program is supposed to do, you will not be able to write the code for the program.

    There are thousands of examples of code with loops that look at the elements of an array.
    If you don't understand my response, don't ignore it, ask a question.

  19. #19
    xdrazkalnytex is offline Member
    Join Date
    Mar 2012
    Posts
    34
    Rep Power
    0

    Default Re: Already finished 1-5. Wondering if Someone can help with Steps 6-9. Please & Than

    To find the largest element in an array:
    Try using a for loop that loops for the number of elements in the array.
    Use the loop index value to access each element in the array.
    Compare each element in the array with another variable that holds the current max value using a if statement
    If the current element is greater than the max value, save it as the max value
    At the end of the loop the max value variable will hold the largest value found in the array.

    You replay that to me earlier,

    quick questions, what is the loop index value?

  20. #20
    Norm's Avatar
    Norm is offline Moderator
    Join Date
    Jun 2008
    Location
    SW Missouri
    Posts
    17,449
    Rep Power
    25

    Default Re: Already finished 1-5. Wondering if Someone can help with Steps 6-9. Please & Than

    for(int i = 0; i < values.length; i++);
    Here i is the loop indexing/control value.
    If you don't understand my response, don't ignore it, ask a question.

Page 1 of 2 12 LastLast

Similar Threads

  1. Replies: 4
    Last Post: 03-27-2012, 10:47 AM
  2. Replies: 1
    Last Post: 03-23-2012, 04:09 AM
  3. Replies: 2
    Last Post: 09-25-2011, 02:48 AM
  4. Wondering..~
    By ryozkidz in forum Java Applets
    Replies: 0
    Last Post: 01-20-2011, 10:09 PM
  5. Hi, i was wondering if someone could help me
    By deathnote202 in forum New To Java
    Replies: 4
    Last Post: 04-23-2010, 05:03 AM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •