Cara membuat histogram menggunakan kode pemrograman C

Histogram adalah grafik batang yang menunjukkan seberapa sering setiap nilai terjadi dalam satu set nilai diskrit.

Langkah 1

Isi array integer yang disebut \ "values ​​\" dengan kumpulan data, dan atur variabel \ "numvalues ​​\" untuk jumlah nilai dalam kumpulan data. Ini dapat dihasilkan secara acak, dibaca dari file, atau secara interaktif dikumpulkan dari pengguna. Dalam contoh ini, Anda menginisialisasi variabel-variabel ini ketika dinyatakan: int numvalues ​​= 20 GO int values ​​[numvalues] = {-3, 2, -2, 4, 5, 4, 2, 5, 4, 5, -1, 2, 3, 4, 7, 4, 2, 0, 7, -3};

Langkah 2

Atur dua variabel integer (i dan j) untuk digunakan sebagai iterator. int i = 0, j = 0;

Langkah 3

Ini iterates melalui data (matriks nilai) dan menetapkan variabel \ "maxval \" ke nilai maksimum data. int maxval = 0 GO untuk (i = 0; i maxval) maxval = nilai [i] GO}

Langkah 4

Telusuri data dan aktifkan variabel "minval" dalam nilai maksimum data. int minval = maxval GO untuk (i = 0; i <numvalues; i ++) {if (nilai [i] <minval) minval = nilai [i] GO}

Langkah 5

Deklarasikan variabel \ "freqsize \" untuk mempertahankan ukuran matriks frekuensi. int freqsize = maxval - minval + 1;

Langkah 6

Deklarasikan sebuah array yang berisi jumlah frekuensi dan menginisialisasi setiap elemen dari array ke nol. Ada elemen matriks untuk setiap nilai yang mungkin dalam kumpulan data.

int frekuensi [freqsize] GO untuk (i = 0; i <freqsize; i ++) {frequency [i] = 0 GO}

Langkah 7

Lewati setiap nilai dalam kumpulan data, tambahkan elemen matriks ke frekuensi yang sesuai dengan nilai tersebut. Indeks yang sesuai dengan nilai arus dihasilkan dengan mengubah nilai dengan nilai minimum. untuk (i = 0; i <numvalues; i ++) {int index = nilai [i] - frekuensi GO minit [indeks] ++ GO}

Langkah 8

Pergi melalui setiap elemen dalam matriks frekuensi. Menampilkan nilai saat ini (dihitung dengan mengubah iterator \ "i \" ke nilai minimum). Mencetak jumlah bintang ( ) yang sesuai dengan frekuensi nilai arus dengan satu lingkaran dari satu ke nilai yang disimpan dalam matriks frekuensi, mencetak dari satu bintang setiap kali. untuk (i = 1; i <= freqsize; i ++) {printf (\ "% 2d \ t | \", i + minval) GO untuk (j = 0; j <frekuensi [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 |