Exemplo n.º 1
0
    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();
    }
Exemplo n.º 2
0
    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));
    }