diff --git a/main.cpp b/main.cpp new file mode 100644 index 0000000..092894b --- /dev/null +++ b/main.cpp @@ -0,0 +1,50 @@ +#include +#include +#include +#include +#include +#include "histogram.h" +#include "text.h" + +using namespace std; + +const size_t SCREEN_WIDTH = 80; +const size_t MAX_ASTERISK = SCREEN_WIDTH - 3 - 1; + + +struct Input +{ + vector numbers; + size_t bin_count{}; +}; + + +Input +input_data(){ + cerr << "Input numbers count: "; + size_t number_count; + cin >> number_count; + Input in; + in.numbers.resize(number_count); + cerr << "Input numbers: "; + for (size_t i = 0; i < number_count; i++) + { + cin >> in.numbers[i]; + } + cerr << "Input bin count: "; + cin >> in.bin_count; + return in; +} + + +int main() +{ + + Input in = input_data(); + + auto bins = make_histogramm(in.numbers, in.bin_count); + + show_histogramm(bins); + + return 0; +} diff --git a/text.cpp b/text.cpp new file mode 100644 index 0000000..0fe1348 --- /dev/null +++ b/text.cpp @@ -0,0 +1,18 @@ +#include +#include +#include +#include +#include "text.h" + +using namespace std; +void show_histogramm(vectorbins) +{ + for (size_t i = 0; i < bins.size(); i++) + { + cout << bins[i] << "|"; + for (size_t j = 0; j < bins[i]; j++) + cout << "*"; + cout << endl; + } + return; +} diff --git a/text.h b/text.h new file mode 100644 index 0000000..91069d3 --- /dev/null +++ b/text.h @@ -0,0 +1,8 @@ +#ifndef TEXT_H_INCLUDED +#define TEXT_H_INCLUDED + +#include + +void show_histogramm(std::vectorbins); + +#endif // TEXT_H_INCLUDED