Showing posts with label if statements. Show all posts
Showing posts with label if statements. Show all posts

Monday, June 17, 2013

Java Program Loops, Frequency Count using loops


Java Program for Loops in Eclipse.

Java assignment

Problem to Solve
This assignment is to solve problem using loops. Write a program to generate 100 random integers in the range of 0 and 99999, find the frequency count of each digit (0, 1, 2, . . . , 9) in these numbers, and print a frequency histogram.
How to Do It
The Overall program structure may look like this:
  1. Use ten variables for the frequency counts for the ten digits 0, 1, 2, . . . , 9. 
  2. Other variables are also needed. For example, a variable to hold a random number, a variable 
    for the digit, etc. 
  3. Repeat 100 times (a loop): 
    • Generate a random number. 
    • For each digit in the number, increase the frequency count of by 1. This is done 
      using a loop. Note: we do not know how many digits are in the number. 
  4. For each digit from 0 to 9 (a loop): 
    • Store its frequency count into a variable.• Display the digit and the frequency count.• Display the horizontal frequency bar of asterisks using a loop. 
To accomplish the task, Here are some suggestions:
  1. Generate random integers in the range [0, 99999]. Assume the variable is number
             number = (int)(Math.random() * 99999);
    
  2. Get the digits of the random number. Since we do not know how many digits in the number, you need to use a loop to “peel off” the rightmost digit one at a time using integer division (/) and modulus (%) operations. Here are some example of random numbers and their digits: 
number digits
4028 4028 75 75 66 93540 94540
3. Print a horizontal bar. For each digit (say digit 5) with a frequency count (say 41), a bar is displayed with 41 asterisks like this
         5 (41): *****************************************




The code used for java in Eclipse is


import java.util.Scanner;
public class Enter Your Class Name Here {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input = new Scanner(System.in);
//Declare the Variables
int count = 0, count0 = 0, count1 = 0, count2 = 0, count3 = 0, count4 = 0, count5 = 0, count6 = 0, count7 = 0, count8 = 0, count9 = 0; 
int digit1= 1, digit2 = 1, digit3 = 1, digit4 = 1, digit5 = 1;
int num = 1;
//Loop
while (count<100){
num = (int)(Math.random() * 99999); // to generate a random number
count++;
//Break Numbers
digit1 = num / 10;
digit2 = (num % 10000) / 1000;
digit3 = ((num % 10000) % 1000) / 100;
digit4 = (((num % 10000) % 1000) % 100) / 10;
digit5 = ((((num % 10000) % 1000) % 100) % 10);
if(digit1 == 0 || digit2 == 0 || digit3 == 0 || digit4 == 0 || digit5 == 0){
count0 = count0 +1;}
if(digit1 == 1 || digit2 == 1 || digit3 == 1 || digit4 == 1 || digit5 == 1){
count1 = count1 +1;}
if(digit1 == 2 || digit2 == 2 || digit3 == 2 || digit4 == 2 || digit5 == 2){
count2 = count2 +1;}
if(digit1 == 3 || digit2 == 3 || digit3 == 3 || digit4 == 3 || digit5 == 3){
count3 = count3 +1;}
if(digit1 == 4 || digit2 == 4 || digit3 == 4 || digit4 == 4 || digit5 == 4){
count4 = count4 +1;}
if(digit1 == 5 || digit2 == 5 || digit3 == 5 || digit4 == 5 || digit5 == 5){
count5 = count5 +1;}
if(digit1 == 6 || digit2 == 6 || digit3 == 6 || digit4 == 6 || digit5 == 6){
count6 = count6 +1;}
if(digit1 == 7 || digit2 == 7 || digit3 == 7 || digit4 == 7 || digit5 == 7){
count7 = count7 +1;}
if(digit1 == 8 || digit2 == 8 || digit3 == 8 || digit4 == 8 || digit5 == 8){
count8 = count8 +1;}
if(digit1 == 9 || digit2 == 9 || digit3 == 9 || digit4 == 9 || digit5 == 9){
count9 = count9 +1;}
}
System.out.println("\n0" + "(" + count0 + ")");
for (int i = 0; i < count0; i++){
System.out.print("*");}
System.out.println("\n1" + "(" + count1 + ")");
for (int i = 0; i < count1; i++){
System.out.print("*");}
System.out.println("\n2" + "(" + count2 + ")");
for (int i = 0; i < count2; i++){
System.out.print("*");}
System.out.println("\n3" + "(" + count3 + ")");
for (int i = 0; i < count3; i++){
System.out.print("*");}
System.out.println("\n4" + "(" + count4 + ")");
for (int i = 0; i < count4; i++){
System.out.print("*");}
System.out.println("\n5" + "(" + count5 + ")");
for (int i = 0; i < count5; i++){
System.out.print("*");}
System.out.println("\n6" + "(" + count6 + ")");
for (int i = 0; i < count6; i++){
System.out.print("*");}
System.out.println("\n7" + "(" + count7 + ")");
for (int i = 0; i < count7; i++){
System.out.print("*");}
System.out.println("\n8" + "(" + count8 + ")");
for (int i = 0; i < count8; i++){
System.out.print("*");}
System.out.println("\n9" + "(" + count9 + ")");
for (int i = 0; i < count9; i++){
System.out.print("*");}
}
}


Java Program Sentinel Control Loop



Java Program Sentinel Control Loop



Use in Program Eclipse


import java.util.Scanner;
public class SentinelControlLoop {

 /**
  * 
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  
  Scanner myInput = new Scanner(System.in);
  
  
  //Declare Variables
  int num, sum = 0, max, min, count =0;
  double average = 0.0;
  final int Sentinel = -9999;
  
  
  //Priming Stage
  System.out.print("Enter an integer value, or -9999 to quit: ");
  num = myInput.nextInt();
  
  //intitalize max and min
  max = min = num;
  
  
  
  //WHILE Loop
  while (num != Sentinel) {
   //body of loop
   //Update Sum
   sum = sum + num; //sum +=
   System.out.println("Sum is now "+ sum);
   
   if (num > max)
    max = num;
   if (num < min)
    min = num;
   
   //increment count of data items read
   count++; //Same as count = count + 1;
   System.out.print("num = " + num + " Count = " + count );
   System.out.print(" Enter an integer value, or -9999 to quit: ");
   num = myInput.nextInt();
   
   
  }
  if (count != 0) {
   average = (double)sum / count;
   System.out.println("Average is " + average);
   System.out.println (" max = "+ max + ", min " + min);
  }
  else 
   System.out.println("Cant average 0 items ");
  
 }

}





-->