Programme d'histogramme en Java

Yashaswi Kothari 12 octobre 2023
Programme d'histogramme en Java

Les histogrammes nous permettent de maintenir le décompte des différentes catégories de valeurs. On peut aussi les représenter graphiquement.

Dans cet article, nous utiliserons Java pour créer un histogramme qui stockera la somme des dés lancés.

Afin de vérifier les valeurs, nous utiliserons l’échelle if-else. L’échelle if-else est un moyen efficace de comparer un élément avec plusieurs valeurs. Nous maintenons le compte de chaque somme dans différentes variables entières. Chaque variable est incrémentée lorsque la correspondance se produit.

Nous demandons à l’utilisateur d’entrer la taille du tableau d’histogrammes. Ce tableau représentera le nombre total de fois où chaque dé sera lancé. Nous allons ensuite initialiser les nombres qui se produiront comme la somme de deux dés lancés simultanément, en commençant de 2 à 12.

L’utilisateur entre la valeur des deux dés, et nous calculerons leur somme. L’échelle if-else comparera la somme avec différentes possibilités et incrémentera chaque fois qu’une correspondance se produira.

Nous allons implémenter tout cela dans le programme suivant.

import java.io.*;
class Main {
  public static String toStars(int number) {
    StringBuilder temp = new StringBuilder();
    for (int i = 0; i < number; i++) {
      temp.append("*");
    }
    return temp.toString();
  }
  public static void main(String[] args) throws IOException {
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

    System.out.print("Total rolls for each dice?");

    int n = Integer.parseInt(br.readLine());
    int[] rolls = new int[n];
    int d1;
    int d2;
    int two = 0;
    int three = 0;
    int four = 0;
    int five = 0;
    int six = 0;
    int seven = 0;
    int eight = 0;
    int nine = 0;
    int ten = 0;
    int eleven = 0;
    int twelve = 0;

    for (int roll = 0; roll < rolls.length; roll++) {
      System.out.println("First dice roll");
      d1 = Integer.parseInt(br.readLine());
      System.out.println("Second dice roll");
      d2 = Integer.parseInt(br.readLine());
      System.out.println(" The first dice rolled a " + d1 + " the second dice rolled a " + d2);

      int sum;
      sum = d1 + d2;

      if (sum == 2)
        two++;
      if (sum == 3)
        three++;
      if (sum == 4)
        four++;
      if (sum == 5)
        five++;
      if (sum == 6)
        six++;
      if (sum == 7)
        seven++;
      if (sum == 8)
        eight++;
      if (sum == 9)
        nine++;
      if (sum == 10)
        ten++;
      if (sum == 11)
        eleven++;
      if (sum == 12)
        twelve++;
    }
    System.out.println("Histogram of rolls:");
    System.out.println("2 occurred " + toStars(two) + " times");
    System.out.println("3 occurred " + toStars(three) + " times");
    System.out.println("4 occurred " + toStars(four) + " times");
    System.out.println("5 occurred " + toStars(five) + " times");
    System.out.println("6 occurred " + toStars(six) + " times");
    System.out.println("7 occurred " + toStars(seven) + " times");
    System.out.println("8 occurred " + toStars(eight) + " times");
    System.out.println("9 occurred " + toStars(nine) + " times");
    System.out.println("10 occurred " + toStars(ten) + " times");
    System.out.println("11 occurred " + toStars(eleven) + " times");
    System.out.println("12 occurred " + toStars(twelve) + " times");
  }
}

Production:

Total rolls for each dice?5

First dice roll

1

Second dice roll

2

 The first dice rolled a 1 the second dice rolled a 2

First dice roll

2

Second dice roll

1

 The first dice rolled a 2 the second dice rolled a 1

First dice roll

5

Second dice roll

4

 The first dice rolled a 5 the second dice rolled a 4

First dice roll

1

Second dice roll

1

 The first dice rolled a 1 the second dice rolled a 1

First dice roll

3

Second dice roll

1

 The first dice rolled a 3 the second dice rolled a 1

Histogram of rolls:

2 occurred * times

3 occurred ** times

4 occurred * times

5 occurred  times

6 occurred  times

7 occurred  times

8 occurred  times

9 occurred * times

10 occurred  times

11 occurred  times

12 occurred  times

Notez que pour afficher la sortie finale, nous créons une fonction distincte toStars() qui convertit la fréquence de chaque possibilité en nombre d’étoiles. Cette méthode est visuellement attrayante et donne une bonne représentation d’un histogramme.