Сравнить коммиты
	
		
			Ничего общего в коммитах. '07191f75fd6d7c5e84c0f47a8e92691f31dd8c52' и 'd122361676babeaee3b1d5519f6b5e1599153fcf' имеют совершенно разные истории. 
		
	
	
		
			07191f75fd
			...
			d122361676
		
	
		
	@ -1,54 +0,0 @@
 | 
				
			|||||||
#include "histogram.h"
 | 
					 | 
				
			||||||
#include <iostream>
 | 
					 | 
				
			||||||
#include <vector>
 | 
					 | 
				
			||||||
using namespace std;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
void find_minmax(const vector<double> &numbers, double &min, double &max)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    min = numbers[0];
 | 
					 | 
				
			||||||
    max = numbers[0];
 | 
					 | 
				
			||||||
       for (double x : numbers)
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        if (x < min)
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            min = x;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        else if (x > max)
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            max = x;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    return;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
vector<size_t> make_histogram (vector<double> numbers, size_t bin_count)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    double min;
 | 
					 | 
				
			||||||
    double max;
 | 
					 | 
				
			||||||
    find_minmax (numbers, min, max);
 | 
					 | 
				
			||||||
    double bin_size = (max - min) / bin_count;
 | 
					 | 
				
			||||||
    vector<size_t> bins(bin_count);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    for (size_t i = 0; i < numbers.size(); i++)
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        bool found = false;
 | 
					 | 
				
			||||||
        for (size_t j = 0; (j < bin_count - 1) && !found; j++)
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            auto lo = min + j * bin_size;
 | 
					 | 
				
			||||||
            auto hi = min + (j + 1) * bin_size;
 | 
					 | 
				
			||||||
            if ((lo <= numbers[i]) && (numbers[i] < hi))
 | 
					 | 
				
			||||||
            {
 | 
					 | 
				
			||||||
                bins[j]++;
 | 
					 | 
				
			||||||
                found = true;
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        if (!found)
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            bins[bin_count - 1]++;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    return bins;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@ -1,6 +0,0 @@
 | 
				
			|||||||
#ifndef HISTOGRAM_H_INCLUDED
 | 
					 | 
				
			||||||
#define HISTOGRAM_H_INCLUDED
 | 
					 | 
				
			||||||
#include <vector>
 | 
					 | 
				
			||||||
std::vector<size_t>
 | 
					 | 
				
			||||||
make_histogram(const std::vector<double> numbers, size_t bin_count);
 | 
					 | 
				
			||||||
#endif // HISTOGRAM_H_INCLUDED
 | 
					 | 
				
			||||||
@ -1,53 +0,0 @@
 | 
				
			|||||||
#include <iostream>
 | 
					 | 
				
			||||||
#include <vector>
 | 
					 | 
				
			||||||
#include "text.h"
 | 
					 | 
				
			||||||
using namespace std;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
void show_histogram_text(vector<size_t> bins, size_t bin_count)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    const size_t screen_width = 80;
 | 
					 | 
				
			||||||
    const size_t max_asterisk = screen_width - 3 - 1;
 | 
					 | 
				
			||||||
    size_t i,j;
 | 
					 | 
				
			||||||
    double max_count;
 | 
					 | 
				
			||||||
    max_count = bins[0];
 | 
					 | 
				
			||||||
    for (i=0; i< bin_count; i++)
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        if (max_count<bins[i])
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            max_count=bins[i];
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    size_t height;
 | 
					 | 
				
			||||||
    bool flag = false;
 | 
					 | 
				
			||||||
    if(max_count>max_asterisk)
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        flag=true;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    for (j = 0; j < bin_count; j++)
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        if (bins[j] < 100)
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            cout << " ";
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        if (bins[j] < 10)
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            cout << " ";
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        cout << bins[j] << "|";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        if (flag)
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            height = max_asterisk * (static_cast<double>(bins[j]) / max_count);
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        else
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            height=bins[j];
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        for (i = 0; i < height; i++)
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            cout << "*";
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        cout << endl;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@ -1,7 +0,0 @@
 | 
				
			|||||||
#ifndef TEXT_H_INCLUDED
 | 
					 | 
				
			||||||
#define TEXT_H_INCLUDED
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
void
 | 
					 | 
				
			||||||
show_histogram_text(std::vector<size_t> bins, size_t bin_count);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#endif // TEXT_H_INCLUDED
 | 
					 | 
				
			||||||
					Загрузка…
					
					
				
		Ссылка в новой задаче