Home Hardware Networking Programmazione Software Domanda Sistemi
Conoscenza Informatica >> Programmazione >> C /C + + Programming >> .

Come creare un istogramma con C Codice di programmazione

istogrammi si trovano comunemente come opzione di grafico per l'analisi dei dati in un foglio elettronico , e nel software di editing delle immagini per mostrare la distribuzione dei toni dal nero al bianco in un'immagine. Nel linguaggio di programmazione C , utilizzando una matrice di tenere il conteggio di frequenza semplifica la creazione di un istogramma del set di dati . Mentre la serie di dati utilizzati per la creazione di istogrammi di solito contengono valori interi , personaggi e persino le stringhe possono essere contati e graficamente . Cose che ti serviranno : Dati insieme di valori interi
Mostra più istruzioni
1

popolare un array di interi chiamato "valori " con il set di dati , e impostare il " , numvalues ​​" variabile per il numero di valori del set di dati . Questi potrebbero essere generati in modo casuale , lette da un file , o in modo interattivo raccolti presso l' utente . Questo esempio inizializza le variabili che sono dichiarati :

int numvalues ​​= 20; int valori [ 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 ( i e j ) da utilizzare come iteratori :

int i = 0 , j = 0;
3

iterare i vostri dati - la matrice di valori - e impostare la variabile " maxval " per il valore massimo di i tuoi dati :

maxval int = 0; for (i = 0; i maxval ) maxval = valori [ i] }
4

Passo attraverso i dati e impostare la variabile " minval " per il valore massimo dei dati :

int minval = maxval ; for (i = 0; i < numvalues ​​; i + + ) {if ( valori [ i] < MINVAL ) minval = valori [ i] }
5

dichiarare una variabile " freqsize " per contenere le dimensioni del vostro allineamento di frequenza :

int freqsize = maxval - minval + 1 ;
6

dichiarare un array 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 di un array per ogni valore possibile nei dati impostare
7

passo attraverso ogni valore . il set di dati , l'aggiunta di uno a l'elemento di matrice 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

Passaggio attraverso ogni elemento dell'array frequenza. Stampare il valore attuale (calcolato spostando l' iteratore "i" per il valore minimo) . Stampare il numero di stelle ( *) corrispondente alla frequenza del valore corrente di 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

 

Programmazione © www.354353.com