Showing posts with label while statements. Show all posts
Showing posts with label while 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("*");}
}
}