Histogrammen worden vaak gevonden als een grafiek optie in het analyseren van gegevens in spreadsheet- software , en in beeldbewerkingssoftware voor het tonen van de verdeling van tonen van zwart naar wit in een afbeelding . In de C -programmeertaal , met behulp van een array om de frequentie telling houden vereenvoudigt het creëren van een histogram van uw dataset . Terwijl de gegevens die worden gebruikt voor het maken van histogrammen bevatten meestal gehele getallen , letters en zelfs strings kunnen worden geteld en stroomvorm opgenomen . Wat je nodig hebt Gegevens set van integer waarden Toon Meer Aanwijzingen 1 Bevolk een integer array met de naam " waarden " met uw dataset , en zet de " ; numvalues " variabel het aantal waarden in de data set . Deze kunnen willekeurig gegenereerd , gelezen uit een bestand of interactief vanuit de gebruiker . Dit voorbeeld initialiseert deze variabelen wanneer ze worden aangegeven : int numvalues = 20 int waarden [ numvalues ] = { -3 , 2 , -2 , 4 , 5 , 4 , 2 , 5 , 4 , 5 , -1 , 2 , 3 , 4 , 7 , 4 , 2 , 0 , 7 , -3 } ; 2 instellen twee integer variabelen ( i en j ) te gebruiken als iterators : < br > int i = 0 , j = 0 ; 3 Doorloop uw gegevens - de waarden matrix - en stel de variabele " MAXVAL " om de maximale waarde van uw gegevens : int MAXVAL = 0; for ( i = 0 ; i MAXVAL ) MAXVAL = waarden [ i ] } Stap 4 door je gegevens en stel de " MINVAL " variabele naar de maximale waarde van uw gegevens : int MINVAL = MAXVAL ; for ( i = 0 ; i < numvalues ; i + + ) { if ( waarden [ i ] < MINVAL ) MINVAL = waarden [ i ] } 5 Declareer een variabele " freqsize " om de grootte van je frequentie matrix te houden : int freqsize = MAXVAL - MINVAL + 1 ; 6 Verklaar een array om de frequentie telt houden en initialiseren van elk array-element op nul: int frequentie [ freqsize ] ; for ( i = 0 ; i < freqsize ; i + + ) { frequentie [ i ] = 0 ; } Er is een array-element voor elke mogelijke waarde in uw gegevensset Stap 7 door elke waarde in . uw data set , het toevoegen van een aan de frequentie arrayelement die met deze waarde : for (i = 0 ; i < numvalues ; i + + ) { int index = waarden [ i ] - MINVAL ; frequentie [ index ] + + } de index die overeenkomt met de actuele waarde wordt gegenereerd door het verschuiven van de waarde van de minimale waarde . stap door elk element in de frequentie -array 8 . Print de huidige waarde ( berekend door het verschuiven van de iterator " i " door de minimale waarde ) . Druk het aantal sterren ( * ) die overeenkomt met de frequentie van de actuele waarde van de ene lus naar de waarde in de frequentie array, drukken een ster telkens for ( i = 1 , i < = freqsize ; i + + ) { printf ( " % 2d \\ t | ' , i + MINVAL ) ; for ( j = 0 ; j < frequentie [ i ] ; j + + ) { printf ( " * " ) } printf ( " , \\ n " ) }
|