diff --git a/lab1.cpp b/lab1.cpp new file mode 100644 index 0000000..14127b8 --- /dev/null +++ b/lab1.cpp @@ -0,0 +1,121 @@ +// lab1.cpp : Этот файл содержит функцию "main". Здесь начинается и заканчивается выполнение программы. +// + +#include +#include +#include + + +using namespace std; +int main() +{ + size_t number_count; + size_t bin_count; + cerr << "Enter number count:"; + cin >> number_count; + + vector numbers(number_count); + for (size_t i = 0; i < number_count; i++) { + cin >> numbers[i]; + } + + cerr << "Enter number of bins:"; + cin >> bin_count; + + vector bins(bin_count); + vector binss(bin_count); + + float t = numbers[0]; + for (size_t i = 0; i < number_count; i++) { + if (numbers[i] < t) { + t = numbers[i]; + } + } + + float min = t; + t = numbers[0]; + for (size_t i = 0; i < number_count; i++) { + if (numbers[i] > t) { + t = numbers[i]; + } + } + + float max = t; + + double bin_size = (max / min) / bin_count; + + for (size_t i = 0; i < number_count; 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]++; + } + } + + for (size_t i = 0; i < bin_count; i++) { + binss[i] = bins[i]; + } + + int max_count = bins[0]; + for (size_t i = 0; i < bin_count; i++) { + if (bins[i] > max_count) { + max_count = bins[i]; + } + } + + if (max_count > 76) { + + for (size_t i = 0; i < bin_count; i++) { + int count = bins[i]; + size_t height = 76 * (static_cast(count) / max_count); + bins[i] = height; + } + } + + for (size_t i = 0; i < bin_count; i++) { + if (binss[i] < 100) { + cout << " "; + } + if (binss[i] < 10) { + cout << " "; + } + cout << bins[i] << "%" << "|"; + for (size_t j = 0; j < binss[i]; j++) { + cout << "*"; + } + cout << "\n"; + } + + + } + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lab1.vcxproj b/lab1.vcxproj new file mode 100644 index 0000000..940d519 --- /dev/null +++ b/lab1.vcxproj @@ -0,0 +1,135 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 16.0 + Win32Proj + {e29b0ece-b766-48ce-a826-acfb8eff2990} + lab1 + 10.0 + + + + Application + true + v143 + Unicode + + + Application + false + v143 + true + Unicode + + + Application + true + v143 + Unicode + + + Application + false + v143 + true + Unicode + + + + + + + + + + + + + + + + + + + + + + Level3 + true + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + Level3 + true + _DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + + + + + \ No newline at end of file diff --git a/lab1.vcxproj.filters b/lab1.vcxproj.filters new file mode 100644 index 0000000..b28bd20 --- /dev/null +++ b/lab1.vcxproj.filters @@ -0,0 +1,22 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Исходные файлы + + + \ No newline at end of file