Come creare un istogramma con C del codice di programmazione

November 9

Come creare un istogramma con C del codice di programmazione


Gli istogrammi si trovano comunemente come opzione grafico per l'analisi dei dati in fogli di calcolo, e in immagine software di editing per mostrare la distribuzione dei toni dal nero al bianco in un'immagine. Nel linguaggio di programmazione C, utilizzando una matrice per contenere il numero di frequenze semplifica la creazione di un istogramma del set di dati. Mentre serie di dati utilizzati per la creazione di istogrammi di solito contengono valori interi, caratteri e anche le stringhe possono essere contati e graficamente.

istruzione

1 Compilare una matrice intero chiamato "valori" con il set di dati, e impostare la variabile "numvalues" per il numero di valori nel set di dati. Questi potrebbero essere generati in modo casuale, letto da un file, o in modo interattivo raccolti da parte dell'utente. Questo esempio inizializza queste variabili che sono dichiarati:

int numvalues ​​= 20;
valori int [numvalues] = {-3, 2, -2, 4, 5, 4, 2, 5, 4, 5, -1, 2, 3, 4, 7, 4, 2, 0, 7, -3 };

2 Impostare due variabili intere (iej) da utilizzare come iteratori:

int i = 0, j = 0;

3 Scorrere i dati - la matrice dei valori - e impostare la variabile "maxval" per il valore massimo dei suoi dati:

int maxval = 0;
for (i = 0; i <numvalues; i ++) {if (valori [i]> VALMAX) maxval = valori [i]}

4 Passo attraverso i dati e impostare la variabile "MINVAL" per il valore massimo dei suoi dati:

int MINVAL = maxval;
{Valori se (valori [i] <MINVAL) MINVAL = [i]} per (i ++ i = 0;; i <numvalues)

5 Dichiarare una "freqsize" variabile per contenere la dimensione della matrice di frequenza:

int freqsize = maxval - minval + 1;

6 Dichiarare una matrice per contenere i conteggi di frequenza e inizializzare ogni elemento dell'array a zero:

int Frequenza [freqsize];
for (i = 0; i <freqsize; i ++) {Frequenza [i] = 0; }

C'è un elemento dell'array per ogni possibile valore nel set di dati.

7 Passo attraverso ogni valore nel set di dati, aggiungendo uno per l'elemento dell'array frequenza corrispondente a tale valore:

for (i = 0; i <numvalues; i ++) {int index = valori [i] - MINVAL; Frequenza [index] ++}

L'indice corrispondente al valore corrente è generata spostando il valore dal valore minimo.

8 Passo attraverso ogni elemento dell'array frequenza. Stampa il valore corrente (calcolato spostando l'iteratore "i" per il valore minimo). Stampa il numero di stelle (*) corrispondenti alla frequenza del valore corrente loop da uno al valore memorizzato nella matrice di frequenza, la stampa di una singola stella ogni volta:

for (i = 1; i <= freqsize; i ++) {printf ( "% 2d \ t |", i + MINVAL); for (j = 0; j <frequenza [i]; j ++) {printf ( "*")} printf ( "\ n")}