C programlama kodunu kullanarak histogram nasıl oluşturulur
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 |