Histogram är vanligt förekommande som ett sjökort i att analysera data i kalkylprogram , och i bildbehandlingsprogrammet för att visa fördelningen av toner från svart till vitt i en bild . I programspråket C , med hjälp av en array för att hålla frekvensen räkna förenklar skapa ett histogram på din datamängd . Medan datamängder används för att skapa histogram brukar innehålla heltalsvärden , karaktärer och även strängar kan räknas och visas . Saker du behöver
Uppgifter som av heltalsvärden
Visa mer Instruktioner
1
fylla ett heltal array kallas "värden " med dina uppgifter set , och ställ in " ; numvalues " variabel till antalet värden i datamängden. Dessa slumpmässigt kan genereras , läses in från en fil , eller interaktivt samlas in från användaren . Detta exempel initierar dessa variabler när de deklareras :
int numvalues = 20 ; int värden [ numvalues ] = { -3 , 2 , -2 , 4 , 5 , 4 , 2 , 5 , 4 , 5 , -1 , 2 , 3 , 4 , 7 , 4 , 2 , 0 , 7 , -3 };
2
Sätt upp två heltalsvariabler ( i och j ) att använda som iteratorer :
int i = 0 , j = 0;
3
iterera igenom dina data - de värden array - och ställ in " MAXVAL " variabel till det högsta värdet för dina data :
int MAXVAL = 0 ; for (i = 0 ; jag MAXVAL ) MAXVAL = värden [ i] }
4 Steg igenom dina uppgifter och ange " MINVAL " variabel till det maximala värdet av dina data :
int MINVAL = MAXVAL , for (i = 0 ; i. < numvalues , i + + ) {if ( värden [ i] < MINVAL ) MINVAL = värden [ i] }
5
Deklarera en variabel " freqsize " för att hålla storleken på din frekvens array :
int freqsize = MAXVAL - MINVAL + 1 ;
6
Deklarera en array för att hålla frekvensen räknas och initiera varje arrayelement till noll :
int frekvens [ freqsize ] , for (i = 0 ; i < freqsize , i + + ) { frekvens [ i] = 0 ; }
p Det är ett array-element för varje möjlig värdet i dina uppgifter
7
steg genom varje värde på . dina data set , lägger man till frekvens array element som motsvarar detta värde :
for (i = 0 ; i. < numvalues , i + + ) { int index = värden [ i] - MINVAL , frekvens [ index ] + + }
Indexet motsvarar det aktuella värdet skapas genom att skifta värdet av den minsta värdet . 8
steg genom varje element i frekvens array
. Skriva ut det aktuella värdet (beräknat genom skiftning iteratorn "i" med den minsta värde). Skriv det antal stjärnor ( * ) motsvarande frekvensen det aktuella värdet av looping från ena till det värde som lagras i frekvens array , skriva en enda stjärna varje gång :
for (i = 1 ; i < = freqsize , i + + ) { printf ( " % 2d \\ t