Jak utworzyć histogram za pomocą kodu programowania C
Krok 1
Wypełnij tablicę liczb całkowitych nazywaną \ "wartościami \" za pomocą zestawu danych i ustaw zmienną \ "numvalues \" na liczbę wartości w zbiorze danych. Mogą być generowane losowo, czytane z pliku lub odbierane interaktywnie od użytkownika. W tym przykładzie należy zainicjować te zmienne, gdy są one zadeklarowane: int wartości_zmiennych = 20 wartości GO int [wartości liczbowe] = {-3, 2, -2, 4, 5, 4, 2, 5, 4, 5, -1, 2, 3, 4, 7, 4, 2, 0, 7, -3};
Krok 2
Skonfiguruj dwie zmienne całkowite (i i j), które będą używane jako iteratory. int i = 0, j = 0;
Krok 3
Wykonuje iterację poprzez dane (macierz wartości) i ustawia zmienną \ "maxval \" na maksymalną wartość danych. int maxval = 0 GO dla (i = 0; i maxval) maxval = wartości [i] GO}
Krok 4
Przejrzyj dane i aktywuj zmienną "minval" w maksymalnej wartości danych. int minval = maxval GO dla (i = 0; i <liczba wartości; i ++) {jeśli (wartości [i] <minval) minval = wartości [i] GO}
Krok 5
Zadeklaruj zmienną \ "freqsize \", aby zachować rozmiar macierzy częstotliwości. int freqsize = maxval - minval + 1;
Krok 6
Deklaracja tablicy zawierającej liczniki częstotliwości i inicjalizacja każdego elementu tablicy do zera. W zestawie danych znajduje się element macierzowy dla każdej możliwej wartości.
int częstotliwość [freqsize] GO dla (i = 0; i <freqsize; i ++) {częstotliwość [i] = 0 GO}
Krok 7
Przechodzi każdą wartość w zbiorze danych, dodając element macierzy do częstotliwości odpowiadającej tej wartości. Indeks odpowiadający wartości prądu generowany jest przez zmianę wartości o minimalną wartość. dla (i = 0; i <wartości liczbowe; i ++) {int index = wartości [i] - minval GO frequency [indeks] ++ GO}
Krok 8
Przejdź przez każdy element w macierzy częstotliwości. Wyświetla bieżącą wartość (obliczoną przez zmianę iteratora \ "i \" na wartość minimalną). Drukuje liczbę gwiazdek ( ) odpowiadającą częstotliwości prądu za pomocą pętli o wartości jeden przechowywanej w macierzy częstotliwości, za każdym razem drukując z jednej gwiazdy. for (i = 1; i <= freqsize; i ++) {printf (\ "% 2d \ t | \", i + minval) GO dla (j = 0; j <częstotliwość [i]; j ++) {printf (\ " \") GO} printf (\ "\ n \") GO}
The example data set provided earlier will print the following histogram:
-3 | -2 | -1 | 0 | * 1 | 2 | * 3 | 4 | 5 | 6 | 7 |