diff --git a/main.cpp b/main.cpp index d239ef5..6369c34 100644 --- a/main.cpp +++ b/main.cpp @@ -4,6 +4,7 @@ #include #include #include "histogram.h" +#include "text.h" using namespace std; //!Разделить программу на файлы (3 пункт)! @@ -36,58 +37,6 @@ Input input_data(){ return stct; } -//Функция отображения и масштабирования гистограммы -void show_histogram_text(const vector& bins){ - const size_t SCREEN_WIDTH = 80; - const size_t MAX_ASTERISK = SCREEN_WIDTH - 3 - 3; - - //Проверка необходимости масшатбирования - size_t max4scale = 0; - for (size_t x : bins){ - if (x > max4scale){ - max4scale = x; - } - } - if (max4scale > MAX_ASTERISK){ - for (size_t x : bins) { - if (x >= 100){ - cout << x << " | "; - } - else if (x >= 10){ - cout << " " << x << " | "; - } - else{ - cout << " " << x << " | "; - } - size_t count = x; - size_t height = MAX_ASTERISK * (static_cast(count) / max4scale); - for (size_t i = 0; i < height; i++) { - cout << "*"; - } - cout << "\n"; - } - } - else{ - //Вывод - for (size_t x : bins) { - if (x >= 100){ - cout << x << " | "; - } - else if (x >= 10){ - cout << " " << x << " | "; - } - else{ - cout << " " << x << " | "; - } - for (size_t i = 0; i < x; i++) { - cout << "*"; - } - cout << "\n"; - } - } - return; -} - int main() { //Ввод массива и количества корзин Input in = input_data(); diff --git a/text.cpp b/text.cpp new file mode 100644 index 0000000..3c98179 --- /dev/null +++ b/text.cpp @@ -0,0 +1,55 @@ +#include "text.h" +#include +#include + +//Функция отображения и масштабирования гистограммы +void show_histogram_text(const std::vector& bins){ + const size_t SCREEN_WIDTH = 80; + const size_t MAX_ASTERISK = SCREEN_WIDTH - 3 - 3; + + //Проверка необходимости масшатбирования + size_t max4scale = 0; + for (size_t x : bins){ + if (x > max4scale){ + max4scale = x; + } + } + if (max4scale > MAX_ASTERISK){ + for (size_t x : bins) { + if (x >= 100){ + std::cout << x << " | "; + } + else if (x >= 10){ + std::cout << " " << x << " | "; + } + else{ + std::cout << " " << x << " | "; + } + size_t count = x; + size_t height = MAX_ASTERISK * (static_cast(count) / max4scale); + for (size_t i = 0; i < height; i++) { + std::cout << "*"; + } + std::cout << "\n"; + } + } + else{ + //Вывод + for (size_t x : bins) { + if (x >= 100){ + std::cout << x << " | "; + } + else if (x >= 10){ + std::cout << " " << x << " | "; + } + else{ + std::cout << " " << x << " | "; + } + for (size_t i = 0; i < x; i++) { + std::cout << "*"; + } + std::cout << "\n"; + } + } + return; +} diff --git a/text.h b/text.h new file mode 100644 index 0000000..f9a55a5 --- /dev/null +++ b/text.h @@ -0,0 +1,7 @@ +#ifndef TEXT_H_INCLUDED +#define TEXT_H_INCLUDED +#include + +void show_histogram_text(const std::vector& bins); + +#endif // TEXT_H_INCLUDED