Hisztogram létrehozása C programozási kóddal
A hisztogramok általában diagramlehetőségként használhatók táblázatkezelő szoftverekben az adatok elemzéséhez, valamint a képszerkesztő szoftverekben a tónusok feketétől a fehérig való eloszlásának megjelenítéséhez. A C programozási nyelvben a frekvenciaszámláló tömbjének használata leegyszerűsíti az adatkészlet hisztogramjának létrehozását. Míg a hisztogramok létrehozásához használt adatkészletek általában egész számokat tartalmaznak, a karakterek és a karakterláncok is megszámolhatók és ábrázolhatók.
1. lépés
Töltsön fel egy "értékek" nevű egész szám tömböt az adatkészlettel, és állítsa be a "numvalues" változót az adatkészletben lévő értékek számára. Ezek véletlenszerűen generálhatók, beolvashatók egy fájlból, vagy interaktív módon gyűjthetők a felhasználótól. Ez a példa inicializálja ezeket a változókat, amikor deklarálásra kerülnek:
int számértékek =20; int értékek[számértékek] ={ -3, 2, -2, 4, 5, 4, 2, 5, 4, 5, -1, 2, 3, 4, 7, 4, 2, 0, 7, -3 };
2. lépés
Állítson be két egész változót (i és j) iterátorként való használatra:
int i =0, j =0;
3. lépés
Ismételje meg adatait -- az értékek tömbjét -- és állítsa be a "maxval" változót az adatok maximális értékére:
int maxval =0; for (i=0; i
4. lépés
Lépjen végig az adatokon, és állítsa be a „minval” változót az adatok maximális értékére:
int minval =maxval; for (i=0; i
Deklaráljon egy "freqsize" változót a frekvenciatömb méretének megtartásához:
int freqsize =maxval - minval + 1;
Deklaráljon egy tömböt a gyakorisági számok tárolására, és inicializálja az egyes tömbelemeket nullára:
int frekvencia[frekvenciaméret]; for (i=0; i
Az adatkészletben minden lehetséges értékhez tartozik egy tömbelem.
Lépjen végig az adatkészlet minden egyes értékén, és adjon hozzá egyet az adott értéknek megfelelő frekvenciatömb elemhez:
for (i =0; i
Az aktuális értéknek megfelelő index az érték minimális értékkel való eltolásával jön létre.
Lépjen végig a frekvenciatömb minden elemén. Nyomtassa ki az aktuális értéket (az "i" iterátor minimális értékkel való eltolásával számítva). Nyomtassa ki az aktuális érték frekvenciájának megfelelő csillagok számát (*) úgy, hogy egyről a frekvenciatömbben tárolt értékre hurkol, és minden alkalommal egyetlen csillagot nyomtat:
for (i=1; i<=frekvenciaméret; i++) { printf("%2d\t|", i + minval); for(j=0; j 5. lépés
6. lépés
7. lépés
8. lépés