C programlama kodunu kullanarak histogram nasıl oluşturulur

Bir histogram, her değerin ne sıklıkla bir ayrık değerler kümesinde oluştuğunu gösteren bir çubuk grafiktir.

1. Adım

Veri kümesiyle \ "değerler \" adlı bir dizi tamsayı doldurun ve veri kümesindeki değerlerin sayısı için \ "numvalues ​​\" değişkenini ayarlayın. Bunlar rastgele oluşturulabilir, bir dosyadan okunabilir veya kullanıcı tarafından etkileşimli olarak toplanabilir. Bu örnekte, bildirildiklerinde bu değişkenleri başlatırsınız: int numvalues ​​= 20 GO int değeri [numvalde] = {-3, 2, -2, 4, 5, 4, 2, 5, 4, 5, -1, 2, 3 4, 7, 4, 2, 0, 7, -3};

2. Adım

Yineleyici olarak kullanmak için iki tamsayı değişkenini (i ve j) ayarlayın. int i = 0, j = 0;

3. adım

Veriler (değer matrisi) boyunca yinelenir ve \ "maxval \" değişkenini verilerin maksimum değerine ayarlar. int maxval = 0 GO için (i = 0; i maxval) maxval = değerler [i] GO}

4. Adım

Verileri gözden geçirin ve verilerin "minval" değişkenini maksimum değerde etkinleştirin. int minval = maxval GO için (i = 0; i <sayısal değerler; i ++) {if (değerler [i] <minval) minval = değerler [i] GO}

Adım 5

Frekans matrisinin boyutunu korumak için \ "freqsize \" değişkenini bildirin. int freqsize = maxval - minval + 1;

6. Adım

Frekans sayımlarını içeren bir dizi bildirin ve dizinin her bir öğesini sıfırlayın. Veri kümesindeki her olası değer için bir matris elemanı vardır.

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

7. adım

Veri kümesindeki her bir değerden geçerek, matrisin bir elemanını o değere karşılık gelen frekansa ekleyin. Akımın değerine karşılık gelen indeks, değeri minimum değerle değiştirerek oluşturulur. (i = 0; i <sayısal değerler; i ++) {int endeksi = değerler [i] - minval GO frekansı [index] ++ GO}

8. adım

Frekans matrisindeki her bir öğeye gidin. Geçerli değeri gösterir (yineleyici \ "i \" değiştirerek minimum değere hesaplanır). Her bir kerede tek bir yıldızdan yazdırmak için, frekansın matrisinde depolanan değere bir döngü ile akım değerinin frekansına karşılık gelen yıldız ( ) sayısını yazdırır . (i = 1; i <= freqsize; i ++) {printf (\ "% 2d \ t | \", i + minval) GO için (j = 0; j <frequency [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 |