diff --git a/lab01.cbp b/lab01.cbp index d541ad7..ce2ffa6 100644 --- a/lab01.cbp +++ b/lab01.cbp @@ -32,7 +32,11 @@ + + + + diff --git a/main.cpp b/main.cpp index c3bc083..7e33fab 100644 --- a/main.cpp +++ b/main.cpp @@ -1,6 +1,7 @@ #include #include #include "histogram.h" +#include "text.h" using namespace std; @@ -27,46 +28,6 @@ input_data() return in; } -void -show_histogram_text(const vector& bins, size_t& bin_count) { - const size_t SCREEN_WIDTH = 80; - const size_t MAX_ASTERISK = SCREEN_WIDTH - 3 - 1; - size_t max_count = 0; - for (size_t s = 0; s < bin_count; s++) - { - if (bins[s] > max_count) - { - max_count = bins[s]; - } - } - for (size_t bin : bins) - { - if (bin <100) - { - cout << " "; - } - if (bin <10) - { - cout << " "; - } - cout << bin << "|"; - if (max_count > MAX_ASTERISK) - { - size_t count = bin; - size_t height = MAX_ASTERISK * (static_cast(count) / max_count); - for (size_t t = 0; t < height; t++) - { - cout << "*"; - } - } - else for (size_t k = 0; k < bin; k++) - { - cout << "*"; - } - cout << endl; - } -} - int main() { Input in = input_data(); diff --git a/text.cpp b/text.cpp new file mode 100644 index 0000000..ec26043 --- /dev/null +++ b/text.cpp @@ -0,0 +1,42 @@ +#include +#include "text.h" +#include "histogram.h" + +using namespace std; + +void +show_histogram_text(const vector& bins, size_t& bin_count) { + const size_t SCREEN_WIDTH = 80; + const size_t MAX_ASTERISK = SCREEN_WIDTH - 3 - 1; + size_t max_count = 0; + for (size_t s = 0; s < bin_count; s++) + { + if (bins[s] > max_count) + { + max_count = bins[s]; + } + } + auto kof = static_cast(MAX_ASTERISK) / max_count; + if (kof > 1) + { + kof = 1; + } + for (size_t bin : bins) + { + if (bin <100) + { + cout << " "; + } + if (bin <10) + { + cout << " "; + } + cout << bin << "|"; + size_t weight = bin * kof; + for (size_t t = 0; t < weight; t++) + { + cout << "*"; + } + cout << endl; + } +} diff --git a/text.h b/text.h new file mode 100644 index 0000000..5733dff --- /dev/null +++ b/text.h @@ -0,0 +1,7 @@ +#ifndef TEXT_H_INCLUDED +#define TEXT_H_INCLUDED + +void +show_histogram_text(const std::vector& bins, size_t& bin_count); + +#endif // TEXT_H_INCLUDED