כיצד ליצור היסטוגרמה באמצעות קוד תכנות C
שלב 1
מלא מערך שלם של מספרים שלמים הנקראים \ "ערכים \" עם קבוצת הנתונים, וקבע את המשתנה \ numvalues \ עבור מספר הערכים במערך הנתונים. אלה יכולים להיות שנוצר באופן אקראי, לקרוא מתוך קובץ, או אינטראקטיבית שנאספו מהמשתמש. בדוגמה זו, אתה מאתחל משתנים אלה כאשר הם מצהירים: int numvalues = 20 GO ערכי int [numvalues] = {-3, 2, -2, 4, 5, 4, 2, 5, 4, 5, -1, 2, 3, 4, 7, 4, 2, 0, 7, -3};
שלב 2
הגדר שני משתנים שלמים (i ו- j) כדי להשתמש בהם בתור איטרטורים. int i = 0, j = 0;
שלב 3
זה עובר את הנתונים (מטריצת הערך) ומגדיר את המשתנה \ "maxval \" לערך המרבי של הנתונים. int maxval = 0 GO עבור (i = 0; i maxval) maxval = ערכים [i] GO}
שלב 4
עבור את הנתונים ולהפעיל את המשתנה "minval" בערך המרבי של הנתונים. int = minval = maxval עבור (i = 0 = i <numvalues, i ++) {אם [ערכים] i [minval] minval = ערכים [i]
שלב 5
להכריז משתנה \ "freqsize \" כדי לשמור על הגודל של מטריצת התדר. int freqsize = maxval - minval + 1;
שלב 6
קבע מערך המכיל את תדירות הספירה ולאתחל כל אלמנט במערך לאפס. יש אלמנט מטריצה עבור כל ערך אפשרי במערך הנתונים.
(i = 0; i <freqsize; i ++) (תדר [i] = 0 GO}
שלב 7
לעבור דרך כל ערך במערך הנתונים, הוספת אלמנט של המטריצה לתדר המקביל לאותו ערך. המדד המתאים לערך הנוכחי נוצר על ידי שינוי הערך לפי הערך המינימלי. (i = 0, i = numvalues, i ++) {int index = ערכים [i] - תדירות minval GO [index] ++ GO}
שלב 8
עבור כל רכיב במטריצת התדר. מציג את הערך הנוכחי (מחושב על ידי שינוי איטרטור \ "i \" לערך המינימלי). מדפיס את מספר הכוכבים ( ) התואמים את תדירות הערך הנוכחי של לולאה של אחד לערך המאוחסן במטריצת התדר, הדפסה מכוכב בודד בכל פעם. עבור (i = 1, i <= freqsize, i ++) {printf (\ "% d \ t | \", i + minval) עבור (j = 0; j <תדר [i]; j ++) {printf (\ " \") GO} printf (\ "\ n \") GO}
The example data set provided earlier will print the following histogram:
-3 -2 ° 0 | * 1 | 2 | * 3 4 5 6 | 7