Comment créer un histogramme en utilisant le code de programmation C
Étape 1
Remplissez un tableau d’entiers appelé \ "valeurs \" avec le jeu de données et définissez la variable \ "numvalues \" pour le nombre de valeurs du jeu de données. Ceux-ci peuvent être générés aléatoirement, lus à partir d'un fichier ou collectés de manière interactive auprès de l'utilisateur. Dans cet exemple, vous initialisez ces variables lorsqu'elles sont déclarées: int numvalues = 20 GO valeurs int [numvalues] = {-3, 2, -2, 4, 5, 4, 2, 5, 4, 5, -1, 2, 3, 4, 7, 4, 2, 0, 7, -3};
Étape 2
Configurez deux variables entières (i et j) à utiliser comme itérateurs. int i = 0, j = 0;
Étape 3
Il parcourt les données (la matrice de valeurs) et définit la variable \ "maxval \" sur la valeur maximale des données. int maxval = 0 GO pour (i = 0; i maxval) maxval = valeurs [i] GO}
Étape 4
Parcourez les données et activez la variable "minval" dans la valeur maximale des données. int minval = maxval GO pour (i = 0; i <numvalues; i ++) {if (valeurs [i] <minval) minval = valeurs [i] GO}
Étape 5
Déclarez une variable \ "freqsize \" pour conserver la taille de la matrice de fréquences. int freqsize = maxval - minval + 1;
Étape 6
Déclarez un tableau contenant les comptes de fréquence et initialisez chaque élément du tableau à zéro. Il existe un élément de matrice pour chaque valeur possible dans le jeu de données.
int frequency [freqsize] GO pendant (i = 0; i <freqsize; i ++) {fréquence [i] = 0 GO}
Étape 7
Passez à travers chaque valeur de l'ensemble de données en ajoutant un élément de la matrice à la fréquence correspondant à cette valeur. L'indice correspondant à la valeur du courant est généré en modifiant la valeur par la valeur minimale. pour (i = 0; i <numvalues; i ++) {int index = valeurs [i] - minval GO fréquence [index] ++ GO}
Étape 8
Parcourez chaque élément de la matrice de fréquence. Affiche la valeur actuelle (calculée en modifiant l’itérateur \ "i \" sur la valeur minimale). Imprime le nombre d’étoiles ( ) correspondant à la fréquence de la valeur du courant par une boucle de un à la valeur stockée dans la matrice de fréquences, en imprimant à partir d’une seule étoile à chaque fois. pour (i = 1; i <= freqsize; i ++) {printf (\ "% 2d \ t | \", i + minval) GO pour (j = 0; j <fréquence [i]; j ++) {printf (\ " \") GO} printf (\ "\ n \") GO}
The example data set provided earlier will print the following histogram:
-3 | -2 | -1 | 0 | * 1 | 2 | * 3 | 4 | 5 | 6 | 7 |