Histograms er ofte funnet som et diagram alternativet i å analysere data i regneark programvare , og i bilderedigeringsprogrammet for å vise fordelingen av toner fra svart til hvitt i et bilde. I programmeringsspråket C , ved hjelp av en matrise for å holde frekvens teller forenkler skape et histogram til datasettet . Mens datasett som brukes for å lage histogrammer vanligvis inneholde heltall , figurer og til og med strenger kan telles og grafisk. Du trenger
datasett av heltallsverdiene
Vis flere Instruksjoner
en
fylle et heltall matrise kalt "verdier " med datasett, og sette " ; numvalues "variable til antall verdier i datasettet. Disse kan være tilfeldig generert , lese inn fra en fil , eller interaktivt samlet fra brukeren. Dette eksemplet initialiserer disse variablene når de blir vedtatt : en
int numvalues = 20; int verdier [ numvalues ] = { -3 , 2, -2 , 4, 5, 4, 2, 5, 4, 5 , -1 , 2, 3 , 4, 7, 4 , 2, 0 , 7 , -3 };
2
Sett opp to heltallsvariabler ( i og j ) å bruke som iteratorer :
int i = 0 , j = 0;
3
Iterate gjennom dine data - på verdier array - og sette " maxval " variable til den maksimale verdien av dataene dine : en
int maxval = 0; for (i = 0 ; i maxval ) maxval = verdier [ i] }
4 Gå gjennom dataene og sette " minval " variable til den maksimale verdien av dine data : en
int minval = maxval ; for (i = 0 ; i < numvalues ; i + + ) { if ( verdier [ i] < minval ) minval = verdier [ i] }
5
Erklærer en variabel " freqsize " for å holde størrelsen på frekvens matrise:
int freqsize = maxval - minval + 1;
6
Erklærer en matrise for å holde frekvenstellinger og starte hver matrise element til null : en
int frekvens [ freqsize ]; for (i = 0 ; i < freqsize ; i + + ) { frekvens [ i] = 0 ;}
p Det er en rekke element for hver mulig verdi i dataene satt
7
Gå gjennom hver verdi i . datasettet , og legger en til frekvens matrise element som tilsvarer den verdien : en
for (i = 0 ; i < numvalues ; i + + ) { int index = verdier [ i] - minval , frekvens [ index ] + + }
indeksen tilsvarende dagens verdi er generert av skiftende verdien av minimumsverdien .
8
Gå gjennom hvert element i frekvens array. Skrive ut gjeldende verdi (beregnet ved å flytte iterator "i" med minimum verdi) . Skriv ut hvor mange stjerner ( * ) som tilsvarer frekvensen nåverdien av looping fra den ene til den verdien som er lagret i frekvensen array, skrive ut en eneste stjerne hver gang : en
for (i = 1; i < = freqsize ; i + + ) { printf ( "% 2d \\ t