Nwlapcug.com


Come creare un istogramma utilizzando codice di programmazione di C

Come creare un istogramma utilizzando codice di programmazione di C


Gli istogrammi sono comunemente come opzione in analisi dei dati nel software del foglio elettronico e nell'immagine software per mostrare la distribuzione dei toni dal nero al bianco in un'immagine di editing grafico. Nel linguaggio di programmazione C, utilizzando una matrice per tenere il conteggio di frequenza semplifica la creazione di un istogramma dell'insieme di dati. Mentre i set di dati utilizzati per la creazione di istogrammi di solito contengono valori integer, caratteri e stringhe anche possono essere contate e rappresentati graficamente.

Istruzioni

1

Popolare la matrice di valori integer denominata "valori" con il set di dati e impostare la variabile "numvalues" al numero di valori nel set di dati. Questi potrebbe essere generati in modo casuale, letti da un file o raccolte in modo interattivo dall'utente. Questo esempio Inizializza queste variabili quando vengono 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 integer (i e j) da utilizzare come iteratori:

int i = 0, j = 0;

3

Scorrere i dati..--la matrice di valori..--e impostare la variabile "maxval" al valore massimo dei dati:

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

4

Passaggio tramite i vostri dati e impostare la variabile "minval" al valore massimo dei dati:

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

5

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

int freqsize = maxval - minval + 1;

6

Dichiarare una matrice per tenere i conteggi di frequenza e inizializzare ogni elemento della matrice a zero:

frequenza di int [freqsize];
per (i = 0; i < freqsize; i + +) {frequenza [i] = 0;}

C'รจ un elemento di matrice per ogni possibile valore nel set di dati.

7

Passo attraverso ogni valore nel set di dati, aggiungendo uno all'elemento della matrice di frequenza corrispondente a tale valore:

per (i = 0; i < numvalues; i + +) {int indice = valori [i] - minval; frequenza [Indice] + +}

Spostando il valore dal valore minimo viene generato l'indice corrispondente al valore corrente.

8

Passo attraverso ogni elemento della matrice di frequenza. Stampare il valore corrente (calcolato spostando l'iteratore "i" dal valore minimo). Stampare il numero di stelle (*) corrispondente alla frequenza il valore corrente di loop da uno al valore archiviato nella matrice di frequenza, stampa una singola stella ogni volta:

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