Kako stvoriti histogram pomoću C programskog koda
Histogrami se obično nalaze kao opcija grafikona u analizi podataka u softveru za proračunske tablice i u softveru za uređivanje slika za prikaz distribucije tonova od crnog do bijelog na slici. U programskom jeziku C, korištenje niza za držanje broja frekvencija pojednostavljuje stvaranje histograma vašeg skupa podataka. Dok skupovi podataka koji se koriste za izradu histograma obično sadrže cjelobrojne vrijednosti, znakovi, pa čak i nizovi mogu se prebrojati i prikazati grafikonom.
1. korak
Popunite niz cijelih brojeva pod nazivom "vrijednosti" svojim skupom podataka i postavite varijablu "numvalues" na broj vrijednosti u vašem skupu podataka. Oni se mogu nasumično generirati, čitati iz datoteke ili interaktivno prikupljati od korisnika. Ovaj primjer inicijalizira ove varijable kada su deklarirane:
int numvalues =20; int vrijednosti[brojvrijednosti] ={ -3, 2, -2, 4, 5, 4, 2, 5, 4, 5, -1, 2, 3, 4, 7, 4, 2, 0, 7, -3 };
2. korak
Postavite dvije cjelobrojne varijable (i i j) koje ćete koristiti kao iteratore:
int i =0, j =0;
3. korak
Iterirajte kroz svoje podatke -- niz vrijednosti -- i postavite varijablu "maxval" na maksimalnu vrijednost vaših podataka:
int maxval =0; for (i=0; i
4. korak
Prođite kroz svoje podatke i postavite varijablu "minval" na najveću vrijednost vaših podataka:
int minval =maxval; for (i=0; i
Deklarirajte varijablu "freqsize" da zadržite veličinu vašeg niza frekvencija:
int freqsize =maxval - minval + 1;
Deklarirajte niz za držanje brojača frekvencija i inicijalizirajte svaki element niza na nulu:
int frekvencija[veličina frekvencije]; for (i=0; i
Postoji jedan element polja za svaku moguću vrijednost u vašem skupu podataka.
Prođite kroz svaku vrijednost u svom skupu podataka, dodajući jednu u element niza frekvencija koji odgovara toj vrijednosti:
for (i =0; i
Indeks koji odgovara trenutnoj vrijednosti generira se pomicanjem vrijednosti za minimalnu vrijednost.
Prođite kroz svaki element u frekvencijskom nizu. Ispiši trenutnu vrijednost (izračunatu pomicanjem iteratora "i" za minimalnu vrijednost). Ispišite broj zvjezdica (*) koji odgovara frekvenciji i trenutnoj vrijednosti petljom od jedan do vrijednosti pohranjene u frekvencijskom nizu, ispisujući jednu zvjezdicu svaki put:
for (i=1; i<=veličina frekvencije; i++) { printf("%2d\t|", i + minval); for(j=0; j Korak 5
Korak 6
7. korak
Korak 8