כיצד ליצור היסטוגרמה באמצעות קוד תכנות 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