static void display_graph(FrequencyArray freq_data, string xlabel, string ylabel) { // Determine scale for graph int i; double scale = (double)teminal_cols / (double)freq_data.MaxFreq; Console.WriteLine("\n{0}| {1}", xlabel, ylabel); Console.WriteLine(new String('-', teminal_cols + 6)); for (i = 0; i < freq_data.Length; i++) { string bar = new String('#', (int)Math.Round(freq_data.Frequency(i) * scale)); Console.WriteLine("{0}|{1} {2}", freq_data.Value(i), bar, freq_data.Frequency(i)); } Console.WriteLine(); }
public void Calc(FrequencyArray freq_data) { // Average _size = 0; int i, sum = 0, max_freq = 0; for (i = 0; i < freq_data.Length; i++) { _size += freq_data.Frequency(i); sum += i * freq_data.Frequency(i); if (freq_data.Frequency(i) > max_freq) { max_freq = freq_data.Frequency(i); _mode = i; } } _average = (double)sum / (double)_size; // median and variance double var = 0; int count = 0; _median = -1; for (i = 0; i < freq_data.Length; i++) { var += (i - _average) * (i - _average) * freq_data.Frequency(i); count += freq_data.Frequency(i); if (_median == -1 && count >= _size / 2) { _median = i; } } // standard deviation _standard_deviation = Math.Sqrt(var / (double)(_size - 1)); }