commit d4d03894278eb3046c7b6c68f34b20cb5cb36ce2 Author: KruzhkovVI Date: Sun Dec 29 16:48:12 2024 +0000 Initial commit diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e257658 --- /dev/null +++ b/.gitignore @@ -0,0 +1,34 @@ +# ---> C++ +# Prerequisites +*.d + +# Compiled Object files +*.slo +*.lo +*.o +*.obj + +# Precompiled Headers +*.gch +*.pch + +# Compiled Dynamic libraries +*.so +*.dylib +*.dll + +# Fortran module files +*.mod +*.smod + +# Compiled Static libraries +*.lai +*.la +*.a +*.lib + +# Executables +*.exe +*.out +*.app + diff --git a/README.md b/README.md new file mode 100644 index 0000000..fef6cad --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +# lab01 + +Репозиторий для первой лабораторной работы по предмету Разработка программного обеспечения систем управления (ИДДО РПОСУ-Б-3-1-ЗаО) \ No newline at end of file diff --git a/code_files/lab01.cpp b/code_files/lab01.cpp new file mode 100644 index 0000000..393038c --- /dev/null +++ b/code_files/lab01.cpp @@ -0,0 +1,76 @@ +#include +#include +#include +#include + +const size_t SCREEN_WIDTH = 80; // Максимальная ширина экрана +const size_t MAX_ASTERISK = SCREEN_WIDTH - 4; // Ограничение на длину столбца + +// Функция для ввода данных: количество чисел и сами числа +void input_data(std::vector& numbers, size_t& bin_count) { + size_t number_count; + std::cerr << "Enter number count: "; + std::cin >> number_count; + + numbers.resize(number_count); + std::cerr << "Enter numbers: "; + for (size_t i = 0; i < number_count; ++i) { + std::cin >> numbers[i]; + } + + std::cerr << "Enter bin count: "; + std::cin >> bin_count; +} + +// Функция для расчета количества чисел в каждой корзине +void calculate_bins(const std::vector& numbers, std::vector& bins, double& min, double& max) { + // Определяем минимальное и максимальное значение для диапазона + min = *std::min_element(numbers.begin(), numbers.end()); + max = *std::max_element(numbers.begin(), numbers.end()); + + // Вычисляем размер каждой корзины + double bin_size = (max - min) / bins.size(); + + // Заполняем корзины, увеличивая счётчик для каждого числа, попадающего в интервал + for (const double& number : numbers) { + size_t bin_index = static_cast((number - min) / bin_size); + if (bin_index >= bins.size()) bin_index = bins.size() - 1; + bins[bin_index]++; + } +} + +// Функция для вывода гистограммы +void print_histogram(const std::vector& bins) { + // Находим максимальное количество чисел в одной корзине для масштабирования + size_t max_count = *std::max_element(bins.begin(), bins.end()); + + // Проверка необходимости масштабирования + bool needs_scaling = max_count > MAX_ASTERISK; + + for (size_t i = 0; i < bins.size(); ++i) { + std::cout << std::setw(3) << std::right << bins[i] << "|"; + + // Рассчитываем высоту столбца с учётом ограничения MAX_ASTERISK + size_t height = needs_scaling ? static_cast(MAX_ASTERISK * static_cast(bins[i]) / max_count) : bins[i]; + + // Выводим звёздочки для визуализации количества элементов + for (size_t j = 0; j < height; ++j) { + std::cout << "*"; + } + std::cout << "\n"; + } +} + +int main() { + std::vector numbers; // Массив чисел + size_t bin_count; // Количество корзин + + input_data(numbers, bin_count); // Ввод данных + + std::vector bins(bin_count, 0); // Инициализируем корзины с нулями + double min, max; + calculate_bins(numbers, bins, min, max); // Подсчёт чисел в корзинах + print_histogram(bins); // Вывод гистограммы + + return 0; +} diff --git a/code_files/lab01.txt b/code_files/lab01.txt new file mode 100644 index 0000000..393038c --- /dev/null +++ b/code_files/lab01.txt @@ -0,0 +1,76 @@ +#include +#include +#include +#include + +const size_t SCREEN_WIDTH = 80; // Максимальная ширина экрана +const size_t MAX_ASTERISK = SCREEN_WIDTH - 4; // Ограничение на длину столбца + +// Функция для ввода данных: количество чисел и сами числа +void input_data(std::vector& numbers, size_t& bin_count) { + size_t number_count; + std::cerr << "Enter number count: "; + std::cin >> number_count; + + numbers.resize(number_count); + std::cerr << "Enter numbers: "; + for (size_t i = 0; i < number_count; ++i) { + std::cin >> numbers[i]; + } + + std::cerr << "Enter bin count: "; + std::cin >> bin_count; +} + +// Функция для расчета количества чисел в каждой корзине +void calculate_bins(const std::vector& numbers, std::vector& bins, double& min, double& max) { + // Определяем минимальное и максимальное значение для диапазона + min = *std::min_element(numbers.begin(), numbers.end()); + max = *std::max_element(numbers.begin(), numbers.end()); + + // Вычисляем размер каждой корзины + double bin_size = (max - min) / bins.size(); + + // Заполняем корзины, увеличивая счётчик для каждого числа, попадающего в интервал + for (const double& number : numbers) { + size_t bin_index = static_cast((number - min) / bin_size); + if (bin_index >= bins.size()) bin_index = bins.size() - 1; + bins[bin_index]++; + } +} + +// Функция для вывода гистограммы +void print_histogram(const std::vector& bins) { + // Находим максимальное количество чисел в одной корзине для масштабирования + size_t max_count = *std::max_element(bins.begin(), bins.end()); + + // Проверка необходимости масштабирования + bool needs_scaling = max_count > MAX_ASTERISK; + + for (size_t i = 0; i < bins.size(); ++i) { + std::cout << std::setw(3) << std::right << bins[i] << "|"; + + // Рассчитываем высоту столбца с учётом ограничения MAX_ASTERISK + size_t height = needs_scaling ? static_cast(MAX_ASTERISK * static_cast(bins[i]) / max_count) : bins[i]; + + // Выводим звёздочки для визуализации количества элементов + for (size_t j = 0; j < height; ++j) { + std::cout << "*"; + } + std::cout << "\n"; + } +} + +int main() { + std::vector numbers; // Массив чисел + size_t bin_count; // Количество корзин + + input_data(numbers, bin_count); // Ввод данных + + std::vector bins(bin_count, 0); // Инициализируем корзины с нулями + double min, max; + calculate_bins(numbers, bins, min, max); // Подсчёт чисел в корзинах + print_histogram(bins); // Вывод гистограммы + + return 0; +} diff --git a/code_files/lab01_12var.cpp b/code_files/lab01_12var.cpp new file mode 100644 index 0000000..9901d99 --- /dev/null +++ b/code_files/lab01_12var.cpp @@ -0,0 +1,78 @@ +#include +#include +#include +#include + +const size_t SCREEN_WIDTH = 80; // Максимальная ширина экрана +const size_t MAX_ASTERISK = SCREEN_WIDTH - 6; // Ограничение на длину столбца, с учетом увеличенного места для подписей + +// Функция для ввода данных: количество чисел и сами числа +void input_data(std::vector& numbers, size_t& bin_count) { + size_t number_count; + std::cerr << "Enter number count: "; + std::cin >> number_count; + + numbers.resize(number_count); + std::cerr << "Enter numbers: "; + for (size_t i = 0; i < number_count; ++i) { + std::cin >> numbers[i]; + } + + std::cerr << "Enter bin count: "; + std::cin >> bin_count; +} + +// Функция для расчета количества чисел в каждой корзине +void calculate_bins(const std::vector& numbers, std::vector& bins, double& min, double& max) { + min = *std::min_element(numbers.begin(), numbers.end()); + max = *std::max_element(numbers.begin(), numbers.end()); + + double bin_size = (max - min) / bins.size(); + + for (const double& number : numbers) { + size_t bin_index = static_cast((number - min) / bin_size); + if (bin_index >= bins.size()) bin_index = bins.size() - 1; + bins[bin_index]++; + } +} + +// Функция для вывода гистограммы с промежуточными границами столбцов +void print_histogram(const std::vector& bins, double min, double max) { + size_t max_count = *std::max_element(bins.begin(), bins.end()); + bool needs_scaling = max_count > MAX_ASTERISK; + double bin_size = (max - min) / bins.size(); + + for (size_t i = 0; i < bins.size(); ++i) { + // Вывод количества элементов с полем в 6 символов + std::cout << std::setw(6) << std::right << bins[i] << "|"; + + // Рассчитываем высоту столбца с учетом ограничения MAX_ASTERISK + size_t height = needs_scaling ? static_cast(MAX_ASTERISK * static_cast(bins[i]) / max_count) : bins[i]; + + // Выводим звездочки для визуализации количества элементов + for (size_t j = 0; j < height; ++j) { + std::cout << "*"; + } + std::cout << "\n"; + + // Выводим промежуточные границы между столбцами (исключая первую границу) + if (i < bins.size() - 1) { + double boundary = min + (i + 1) * bin_size; + std::cout << std::fixed << std::setprecision(2) << boundary << "\n"; + } + } +} + +int main() { + std::vector numbers; + size_t bin_count; + + input_data(numbers, bin_count); + + std::vector bins(bin_count, 0); + double min, max; + calculate_bins(numbers, bins, min, max); + print_histogram(bins, min, max); + + return 0; +} diff --git a/code_files/lab01_12var.txt b/code_files/lab01_12var.txt new file mode 100644 index 0000000..9901d99 --- /dev/null +++ b/code_files/lab01_12var.txt @@ -0,0 +1,78 @@ +#include +#include +#include +#include + +const size_t SCREEN_WIDTH = 80; // Максимальная ширина экрана +const size_t MAX_ASTERISK = SCREEN_WIDTH - 6; // Ограничение на длину столбца, с учетом увеличенного места для подписей + +// Функция для ввода данных: количество чисел и сами числа +void input_data(std::vector& numbers, size_t& bin_count) { + size_t number_count; + std::cerr << "Enter number count: "; + std::cin >> number_count; + + numbers.resize(number_count); + std::cerr << "Enter numbers: "; + for (size_t i = 0; i < number_count; ++i) { + std::cin >> numbers[i]; + } + + std::cerr << "Enter bin count: "; + std::cin >> bin_count; +} + +// Функция для расчета количества чисел в каждой корзине +void calculate_bins(const std::vector& numbers, std::vector& bins, double& min, double& max) { + min = *std::min_element(numbers.begin(), numbers.end()); + max = *std::max_element(numbers.begin(), numbers.end()); + + double bin_size = (max - min) / bins.size(); + + for (const double& number : numbers) { + size_t bin_index = static_cast((number - min) / bin_size); + if (bin_index >= bins.size()) bin_index = bins.size() - 1; + bins[bin_index]++; + } +} + +// Функция для вывода гистограммы с промежуточными границами столбцов +void print_histogram(const std::vector& bins, double min, double max) { + size_t max_count = *std::max_element(bins.begin(), bins.end()); + bool needs_scaling = max_count > MAX_ASTERISK; + double bin_size = (max - min) / bins.size(); + + for (size_t i = 0; i < bins.size(); ++i) { + // Вывод количества элементов с полем в 6 символов + std::cout << std::setw(6) << std::right << bins[i] << "|"; + + // Рассчитываем высоту столбца с учетом ограничения MAX_ASTERISK + size_t height = needs_scaling ? static_cast(MAX_ASTERISK * static_cast(bins[i]) / max_count) : bins[i]; + + // Выводим звездочки для визуализации количества элементов + for (size_t j = 0; j < height; ++j) { + std::cout << "*"; + } + std::cout << "\n"; + + // Выводим промежуточные границы между столбцами (исключая первую границу) + if (i < bins.size() - 1) { + double boundary = min + (i + 1) * bin_size; + std::cout << std::fixed << std::setprecision(2) << boundary << "\n"; + } + } +} + +int main() { + std::vector numbers; + size_t bin_count; + + input_data(numbers, bin_count); + + std::vector bins(bin_count, 0); + double min, max; + calculate_bins(numbers, bins, min, max); + print_histogram(bins, min, max); + + return 0; +} diff --git a/project_files/lab01/.vs/lab01/FileContentIndex/09b63578-0795-41f7-897c-9319ecb06e15.vsidx b/project_files/lab01/.vs/lab01/FileContentIndex/09b63578-0795-41f7-897c-9319ecb06e15.vsidx new file mode 100644 index 0000000..ba38071 Binary files /dev/null and b/project_files/lab01/.vs/lab01/FileContentIndex/09b63578-0795-41f7-897c-9319ecb06e15.vsidx differ diff --git a/project_files/lab01/.vs/lab01/v17/.suo b/project_files/lab01/.vs/lab01/v17/.suo new file mode 100644 index 0000000..7984c07 Binary files /dev/null and b/project_files/lab01/.vs/lab01/v17/.suo differ diff --git a/project_files/lab01/.vs/lab01/v17/Browse.VC.db b/project_files/lab01/.vs/lab01/v17/Browse.VC.db new file mode 100644 index 0000000..dc4e6f5 Binary files /dev/null and b/project_files/lab01/.vs/lab01/v17/Browse.VC.db differ diff --git a/project_files/lab01/.vs/lab01/v17/DocumentLayout.json b/project_files/lab01/.vs/lab01/v17/DocumentLayout.json new file mode 100644 index 0000000..60eeeb0 --- /dev/null +++ b/project_files/lab01/.vs/lab01/v17/DocumentLayout.json @@ -0,0 +1,41 @@ +{ + "Version": 1, + "WorkspaceRootPath": "C:\\Users\\mikhailov\\source\\repos\\lab01\\", + "Documents": [ + { + "AbsoluteMoniker": "D:0:0:{071943DF-3332-437E-BBFD-985E2D83873F}|lab01\\lab01.vcxproj|C:\\Users\\mikhailov\\source\\repos\\lab01\\lab01\\lab01.cpp||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}", + "RelativeMoniker": "D:0:0:{071943DF-3332-437E-BBFD-985E2D83873F}|lab01\\lab01.vcxproj|solutionrelative:lab01\\lab01.cpp||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}" + } + ], + "DocumentGroupContainers": [ + { + "Orientation": 0, + "VerticalTabListWidth": 256, + "DocumentGroups": [ + { + "DockedWidth": 200, + "SelectedChildIndex": 0, + "Children": [ + { + "$type": "Document", + "DocumentIndex": 0, + "Title": "lab01.cpp", + "DocumentMoniker": "C:\\Users\\mikhailov\\source\\repos\\lab01\\lab01\\lab01.cpp", + "RelativeDocumentMoniker": "lab01\\lab01.cpp", + "ToolTip": "C:\\Users\\mikhailov\\source\\repos\\lab01\\lab01\\lab01.cpp", + "RelativeToolTip": "lab01\\lab01.cpp", + "ViewState": "AQIAAC0AAAAAAAAAAAAgwD0AAAABAAAA", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000677|", + "WhenOpened": "2024-11-13T15:34:19.217Z", + "EditorCaption": "" + }, + { + "$type": "Bookmark", + "Name": "ST:0:0:{cce594b6-0c39-4442-ba28-10c64ac7e89f}" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/project_files/lab01/.vs/lab01/v17/Solution.VC.db b/project_files/lab01/.vs/lab01/v17/Solution.VC.db new file mode 100644 index 0000000..20937a3 Binary files /dev/null and b/project_files/lab01/.vs/lab01/v17/Solution.VC.db differ diff --git a/project_files/lab01/.vs/lab01/v17/ipch/AutoPCH/42421def6af6ea59/LAB01.ipch b/project_files/lab01/.vs/lab01/v17/ipch/AutoPCH/42421def6af6ea59/LAB01.ipch new file mode 100644 index 0000000..0f773ee Binary files /dev/null and b/project_files/lab01/.vs/lab01/v17/ipch/AutoPCH/42421def6af6ea59/LAB01.ipch differ diff --git a/project_files/lab01/.vs/lab01/v17/ipch/AutoPCH/fc18634114faf87b/LAB01.ipch b/project_files/lab01/.vs/lab01/v17/ipch/AutoPCH/fc18634114faf87b/LAB01.ipch new file mode 100644 index 0000000..4f5c29c Binary files /dev/null and b/project_files/lab01/.vs/lab01/v17/ipch/AutoPCH/fc18634114faf87b/LAB01.ipch differ diff --git a/project_files/lab01/ARM64/Debug/lab01.pdb b/project_files/lab01/ARM64/Debug/lab01.pdb new file mode 100644 index 0000000..a4674fd Binary files /dev/null and b/project_files/lab01/ARM64/Debug/lab01.pdb differ diff --git a/project_files/lab01/ARM64/Release/lab01.pdb b/project_files/lab01/ARM64/Release/lab01.pdb new file mode 100644 index 0000000..aed11e8 Binary files /dev/null and b/project_files/lab01/ARM64/Release/lab01.pdb differ diff --git a/project_files/lab01/lab01.sln b/project_files/lab01/lab01.sln new file mode 100644 index 0000000..929ce36 --- /dev/null +++ b/project_files/lab01/lab01.sln @@ -0,0 +1,37 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.10.35027.167 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lab01", "lab01\lab01.vcxproj", "{071943DF-3332-437E-BBFD-985E2D83873F}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|ARM64 = Debug|ARM64 + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|ARM64 = Release|ARM64 + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {071943DF-3332-437E-BBFD-985E2D83873F}.Debug|ARM64.ActiveCfg = Debug|ARM64 + {071943DF-3332-437E-BBFD-985E2D83873F}.Debug|ARM64.Build.0 = Debug|ARM64 + {071943DF-3332-437E-BBFD-985E2D83873F}.Debug|x64.ActiveCfg = Debug|x64 + {071943DF-3332-437E-BBFD-985E2D83873F}.Debug|x64.Build.0 = Debug|x64 + {071943DF-3332-437E-BBFD-985E2D83873F}.Debug|x86.ActiveCfg = Debug|Win32 + {071943DF-3332-437E-BBFD-985E2D83873F}.Debug|x86.Build.0 = Debug|Win32 + {071943DF-3332-437E-BBFD-985E2D83873F}.Release|ARM64.ActiveCfg = Release|ARM64 + {071943DF-3332-437E-BBFD-985E2D83873F}.Release|ARM64.Build.0 = Release|ARM64 + {071943DF-3332-437E-BBFD-985E2D83873F}.Release|x64.ActiveCfg = Release|x64 + {071943DF-3332-437E-BBFD-985E2D83873F}.Release|x64.Build.0 = Release|x64 + {071943DF-3332-437E-BBFD-985E2D83873F}.Release|x86.ActiveCfg = Release|Win32 + {071943DF-3332-437E-BBFD-985E2D83873F}.Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {FF1366EE-6C16-47C0-865A-D5C9D8716A2F} + EndGlobalSection +EndGlobal diff --git a/project_files/lab01/lab01/ARM64/Debug/lab01.Build.CppClean.log b/project_files/lab01/lab01/ARM64/Debug/lab01.Build.CppClean.log new file mode 100644 index 0000000..7ff1631 --- /dev/null +++ b/project_files/lab01/lab01/ARM64/Debug/lab01.Build.CppClean.log @@ -0,0 +1,14 @@ +c:\users\mikhailov\source\repos\lab01\lab01\arm64\debug\vc143.pdb +c:\users\mikhailov\source\repos\lab01\lab01\arm64\debug\vc143.idb +c:\users\mikhailov\source\repos\lab01\lab01\arm64\debug\lab01.obj +c:\users\mikhailov\source\repos\lab01\arm64\debug\lab01.exe +c:\users\mikhailov\source\repos\lab01\arm64\debug\lab01.pdb +c:\users\mikhailov\source\repos\lab01\lab01\arm64\debug\lab01.ilk +c:\users\mikhailov\source\repos\lab01\lab01\arm64\debug\lab01.tlog\cl.command.1.tlog +c:\users\mikhailov\source\repos\lab01\lab01\arm64\debug\lab01.tlog\cl.items.tlog +c:\users\mikhailov\source\repos\lab01\lab01\arm64\debug\lab01.tlog\cl.read.1.tlog +c:\users\mikhailov\source\repos\lab01\lab01\arm64\debug\lab01.tlog\cl.write.1.tlog +c:\users\mikhailov\source\repos\lab01\lab01\arm64\debug\lab01.tlog\link.command.1.tlog +c:\users\mikhailov\source\repos\lab01\lab01\arm64\debug\lab01.tlog\link.read.1.tlog +c:\users\mikhailov\source\repos\lab01\lab01\arm64\debug\lab01.tlog\link.secondary.1.tlog +c:\users\mikhailov\source\repos\lab01\lab01\arm64\debug\lab01.tlog\link.write.1.tlog diff --git a/project_files/lab01/lab01/ARM64/Debug/lab01.exe.recipe b/project_files/lab01/lab01/ARM64/Debug/lab01.exe.recipe new file mode 100644 index 0000000..f12e8ea --- /dev/null +++ b/project_files/lab01/lab01/ARM64/Debug/lab01.exe.recipe @@ -0,0 +1,11 @@ + + + + + C:\Users\mikhailov\source\repos\lab01\ARM64\Debug\lab01.exe + + + + + + \ No newline at end of file diff --git a/project_files/lab01/lab01/ARM64/Debug/lab01.log b/project_files/lab01/lab01/ARM64/Debug/lab01.log new file mode 100644 index 0000000..5c913b0 --- /dev/null +++ b/project_files/lab01/lab01/ARM64/Debug/lab01.log @@ -0,0 +1,43 @@ + lab01.cpp +C:\Users\mikhailov\source\repos\lab01\lab01\lab01.cpp(54,23): warning C4244: 'initializing': conversion from 'double' to 'size_t', possible loss of data +libcpmtd.lib(xlocale.obj) : error LNK2001: unresolved external symbol _calloc_dbg +lab01.obj : error LNK2001: unresolved external symbol _calloc_dbg +libcpmtd.lib(_tolower.obj) : error LNK2001: unresolved external symbol _calloc_dbg +libcpmtd.lib(locale.obj) : error LNK2001: unresolved external symbol _calloc_dbg +libcpmtd.lib(wlocale.obj) : error LNK2001: unresolved external symbol _calloc_dbg +libcpmtd.lib(xlocale.obj) : error LNK2001: unresolved external symbol _free_dbg +libcpmtd.lib(xwcsxfrm.obj) : error LNK2001: unresolved external symbol _free_dbg +libcpmtd.lib(StlCompareStringA.obj) : error LNK2001: unresolved external symbol _free_dbg +libcpmtd.lib(cerr.obj) : error LNK2001: unresolved external symbol _free_dbg +libcpmtd.lib(locale.obj) : error LNK2001: unresolved external symbol _free_dbg +libcpmtd.lib(StlLCMapStringA.obj) : error LNK2001: unresolved external symbol _free_dbg +libcpmtd.lib(wlocale.obj) : error LNK2001: unresolved external symbol _free_dbg +lab01.obj : error LNK2001: unresolved external symbol _free_dbg +libcpmtd.lib(locale0.obj) : error LNK2001: unresolved external symbol _free_dbg +libcpmtd.lib(cin.obj) : error LNK2001: unresolved external symbol _free_dbg +libcpmtd.lib(cout.obj) : error LNK2001: unresolved external symbol _free_dbg +libcpmtd.lib(xlocale.obj) : error LNK2001: unresolved external symbol _malloc_dbg +libcpmtd.lib(xwcsxfrm.obj) : error LNK2001: unresolved external symbol _malloc_dbg +libcpmtd.lib(StlCompareStringA.obj) : error LNK2001: unresolved external symbol _malloc_dbg +libcpmtd.lib(cerr.obj) : error LNK2001: unresolved external symbol _malloc_dbg +libcpmtd.lib(locale.obj) : error LNK2001: unresolved external symbol _malloc_dbg +libcpmtd.lib(StlLCMapStringA.obj) : error LNK2001: unresolved external symbol _malloc_dbg +libcpmtd.lib(wlocale.obj) : error LNK2001: unresolved external symbol _malloc_dbg +lab01.obj : error LNK2001: unresolved external symbol _malloc_dbg +libcpmtd.lib(locale0.obj) : error LNK2001: unresolved external symbol _malloc_dbg +libcpmtd.lib(cin.obj) : error LNK2001: unresolved external symbol _malloc_dbg +libcpmtd.lib(cout.obj) : error LNK2001: unresolved external symbol _malloc_dbg +libcpmtd.lib(locale.obj) : error LNK2001: unresolved external symbol _CrtDbgReport +libcpmtd.lib(wlocale.obj) : error LNK2001: unresolved external symbol _CrtDbgReport +libcpmtd.lib(xlocale.obj) : error LNK2001: unresolved external symbol _CrtDbgReport +lab01.obj : error LNK2001: unresolved external symbol _CrtDbgReport +libcpmtd.lib(cin.obj) : error LNK2001: unresolved external symbol _CrtDbgReport +libcpmtd.lib(cout.obj) : error LNK2001: unresolved external symbol _CrtDbgReport +libcpmtd.lib(cerr.obj) : error LNK2001: unresolved external symbol _CrtDbgReport +libcpmtd.lib(_tolower.obj) : error LNK2019: unresolved external symbol _wcsdup_dbg referenced in function _Getctype +libcpmtd.lib(xstrcoll.obj) : error LNK2001: unresolved external symbol _wcsdup_dbg +libcpmtd.lib(locale.obj) : error LNK2019: unresolved external symbol _realloc_dbg referenced in function "private: static void __cdecl std::locale::_Locimp::_Locimp_Addfac(class std::locale::_Locimp *,class std::locale::facet *,unsigned __int64)" (?_Locimp_Addfac@_Locimp@locale@std@@CAXPEAV123@PEAVfacet@23@_K@Z) +libcpmtd.lib(StlLCMapStringA.obj) : error LNK2019: unresolved external symbol _CrtDbgReportW referenced in function _freea_crt +libcpmtd.lib(xmbtowc.obj) : error LNK2001: unresolved external symbol _CrtDbgReportW +libcpmtd.lib(StlCompareStringA.obj) : error LNK2001: unresolved external symbol _CrtDbgReportW +C:\Users\mikhailov\source\repos\lab01\ARM64\Debug\lab01.exe : fatal error LNK1120: 7 unresolved externals diff --git a/project_files/lab01/lab01/ARM64/Debug/lab01.tlog/CL.command.1.tlog b/project_files/lab01/lab01/ARM64/Debug/lab01.tlog/CL.command.1.tlog new file mode 100644 index 0000000..291eea1 Binary files /dev/null and b/project_files/lab01/lab01/ARM64/Debug/lab01.tlog/CL.command.1.tlog differ diff --git a/project_files/lab01/lab01/ARM64/Debug/lab01.tlog/CL.read.1.tlog b/project_files/lab01/lab01/ARM64/Debug/lab01.tlog/CL.read.1.tlog new file mode 100644 index 0000000..695ccfa Binary files /dev/null and b/project_files/lab01/lab01/ARM64/Debug/lab01.tlog/CL.read.1.tlog differ diff --git a/project_files/lab01/lab01/ARM64/Debug/lab01.tlog/CL.write.1.tlog b/project_files/lab01/lab01/ARM64/Debug/lab01.tlog/CL.write.1.tlog new file mode 100644 index 0000000..cf4306f Binary files /dev/null and b/project_files/lab01/lab01/ARM64/Debug/lab01.tlog/CL.write.1.tlog differ diff --git a/project_files/lab01/lab01/ARM64/Debug/lab01.tlog/lab01.lastbuildstate b/project_files/lab01/lab01/ARM64/Debug/lab01.tlog/lab01.lastbuildstate new file mode 100644 index 0000000..f9a0950 --- /dev/null +++ b/project_files/lab01/lab01/ARM64/Debug/lab01.tlog/lab01.lastbuildstate @@ -0,0 +1,2 @@ +PlatformToolSet=v143:VCToolArchitecture=NativeARM64:VCToolsVersion=14.40.33807:TargetPlatformVersion=10.0.22621.0: +Debug|ARM64|C:\Users\mikhailov\source\repos\lab01\| diff --git a/project_files/lab01/lab01/ARM64/Debug/lab01.tlog/link-cvtres.read.1.tlog b/project_files/lab01/lab01/ARM64/Debug/lab01.tlog/link-cvtres.read.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/project_files/lab01/lab01/ARM64/Debug/lab01.tlog/link-cvtres.read.1.tlog @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/project_files/lab01/lab01/ARM64/Debug/lab01.tlog/link-cvtres.write.1.tlog b/project_files/lab01/lab01/ARM64/Debug/lab01.tlog/link-cvtres.write.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/project_files/lab01/lab01/ARM64/Debug/lab01.tlog/link-cvtres.write.1.tlog @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/project_files/lab01/lab01/ARM64/Debug/lab01.tlog/link-rc.read.1.tlog b/project_files/lab01/lab01/ARM64/Debug/lab01.tlog/link-rc.read.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/project_files/lab01/lab01/ARM64/Debug/lab01.tlog/link-rc.read.1.tlog @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/project_files/lab01/lab01/ARM64/Debug/lab01.tlog/link-rc.write.1.tlog b/project_files/lab01/lab01/ARM64/Debug/lab01.tlog/link-rc.write.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/project_files/lab01/lab01/ARM64/Debug/lab01.tlog/link-rc.write.1.tlog @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/project_files/lab01/lab01/ARM64/Debug/lab01.tlog/link.command.1.tlog b/project_files/lab01/lab01/ARM64/Debug/lab01.tlog/link.command.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/project_files/lab01/lab01/ARM64/Debug/lab01.tlog/link.command.1.tlog @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/project_files/lab01/lab01/ARM64/Debug/lab01.tlog/link.read.1.tlog b/project_files/lab01/lab01/ARM64/Debug/lab01.tlog/link.read.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/project_files/lab01/lab01/ARM64/Debug/lab01.tlog/link.read.1.tlog @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/project_files/lab01/lab01/ARM64/Debug/lab01.tlog/link.read.2.tlog b/project_files/lab01/lab01/ARM64/Debug/lab01.tlog/link.read.2.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/project_files/lab01/lab01/ARM64/Debug/lab01.tlog/link.read.2.tlog @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/project_files/lab01/lab01/ARM64/Debug/lab01.tlog/link.write.1.tlog b/project_files/lab01/lab01/ARM64/Debug/lab01.tlog/link.write.1.tlog new file mode 100644 index 0000000..46b134b --- /dev/null +++ b/project_files/lab01/lab01/ARM64/Debug/lab01.tlog/link.write.1.tlog @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/project_files/lab01/lab01/ARM64/Debug/lab01.tlog/unsuccessfulbuild b/project_files/lab01/lab01/ARM64/Debug/lab01.tlog/unsuccessfulbuild new file mode 100644 index 0000000..e69de29 diff --git a/project_files/lab01/lab01/ARM64/Debug/lab01.vcxproj.FileListAbsolute.txt b/project_files/lab01/lab01/ARM64/Debug/lab01.vcxproj.FileListAbsolute.txt new file mode 100644 index 0000000..e69de29 diff --git a/project_files/lab01/lab01/ARM64/Debug/vc143.idb b/project_files/lab01/lab01/ARM64/Debug/vc143.idb new file mode 100644 index 0000000..2288ec5 Binary files /dev/null and b/project_files/lab01/lab01/ARM64/Debug/vc143.idb differ diff --git a/project_files/lab01/lab01/ARM64/Debug/vc143.pdb b/project_files/lab01/lab01/ARM64/Debug/vc143.pdb new file mode 100644 index 0000000..78cbd12 Binary files /dev/null and b/project_files/lab01/lab01/ARM64/Debug/vc143.pdb differ diff --git a/project_files/lab01/lab01/ARM64/Release/lab01.Build.CppClean.log b/project_files/lab01/lab01/ARM64/Release/lab01.Build.CppClean.log new file mode 100644 index 0000000..ddcdb02 --- /dev/null +++ b/project_files/lab01/lab01/ARM64/Release/lab01.Build.CppClean.log @@ -0,0 +1,13 @@ +c:\users\mikhailov\source\repos\lab01\lab01\arm64\release\vc143.pdb +c:\users\mikhailov\source\repos\lab01\lab01\arm64\release\lab01.obj +c:\users\mikhailov\source\repos\lab01\arm64\release\lab01.exe +c:\users\mikhailov\source\repos\lab01\arm64\release\lab01.pdb +c:\users\mikhailov\source\repos\lab01\lab01\arm64\release\lab01.iobj +c:\users\mikhailov\source\repos\lab01\lab01\arm64\release\lab01.tlog\cl.command.1.tlog +c:\users\mikhailov\source\repos\lab01\lab01\arm64\release\lab01.tlog\cl.items.tlog +c:\users\mikhailov\source\repos\lab01\lab01\arm64\release\lab01.tlog\cl.read.1.tlog +c:\users\mikhailov\source\repos\lab01\lab01\arm64\release\lab01.tlog\cl.write.1.tlog +c:\users\mikhailov\source\repos\lab01\lab01\arm64\release\lab01.tlog\link.command.1.tlog +c:\users\mikhailov\source\repos\lab01\lab01\arm64\release\lab01.tlog\link.read.1.tlog +c:\users\mikhailov\source\repos\lab01\lab01\arm64\release\lab01.tlog\link.secondary.1.tlog +c:\users\mikhailov\source\repos\lab01\lab01\arm64\release\lab01.tlog\link.write.1.tlog diff --git a/project_files/lab01/lab01/ARM64/Release/lab01.exe.recipe b/project_files/lab01/lab01/ARM64/Release/lab01.exe.recipe new file mode 100644 index 0000000..a713c3f --- /dev/null +++ b/project_files/lab01/lab01/ARM64/Release/lab01.exe.recipe @@ -0,0 +1,11 @@ + + + + + C:\Users\mikhailov\source\repos\lab01\ARM64\Release\lab01.exe + + + + + + \ No newline at end of file diff --git a/project_files/lab01/lab01/ARM64/Release/lab01.iobj b/project_files/lab01/lab01/ARM64/Release/lab01.iobj new file mode 100644 index 0000000..b4c4694 Binary files /dev/null and b/project_files/lab01/lab01/ARM64/Release/lab01.iobj differ diff --git a/project_files/lab01/lab01/ARM64/Release/lab01.log b/project_files/lab01/lab01/ARM64/Release/lab01.log new file mode 100644 index 0000000..ba6534f --- /dev/null +++ b/project_files/lab01/lab01/ARM64/Release/lab01.log @@ -0,0 +1,4 @@ + lab01.cpp + Generating code + Finished generating code + lab01.vcxproj -> C:\Users\mikhailov\source\repos\lab01\ARM64\Release\lab01.exe diff --git a/project_files/lab01/lab01/ARM64/Release/lab01.tlog/CL.command.1.tlog b/project_files/lab01/lab01/ARM64/Release/lab01.tlog/CL.command.1.tlog new file mode 100644 index 0000000..24f8cf6 Binary files /dev/null and b/project_files/lab01/lab01/ARM64/Release/lab01.tlog/CL.command.1.tlog differ diff --git a/project_files/lab01/lab01/ARM64/Release/lab01.tlog/CL.read.1.tlog b/project_files/lab01/lab01/ARM64/Release/lab01.tlog/CL.read.1.tlog new file mode 100644 index 0000000..695ccfa Binary files /dev/null and b/project_files/lab01/lab01/ARM64/Release/lab01.tlog/CL.read.1.tlog differ diff --git a/project_files/lab01/lab01/ARM64/Release/lab01.tlog/CL.write.1.tlog b/project_files/lab01/lab01/ARM64/Release/lab01.tlog/CL.write.1.tlog new file mode 100644 index 0000000..5f54820 Binary files /dev/null and b/project_files/lab01/lab01/ARM64/Release/lab01.tlog/CL.write.1.tlog differ diff --git a/project_files/lab01/lab01/ARM64/Release/lab01.tlog/Cl.items.tlog b/project_files/lab01/lab01/ARM64/Release/lab01.tlog/Cl.items.tlog new file mode 100644 index 0000000..192b043 --- /dev/null +++ b/project_files/lab01/lab01/ARM64/Release/lab01.tlog/Cl.items.tlog @@ -0,0 +1 @@ +C:\Users\mikhailov\source\repos\lab01\lab01\lab01.cpp;C:\Users\mikhailov\source\repos\lab01\lab01\ARM64\Release\lab01.obj diff --git a/project_files/lab01/lab01/ARM64/Release/lab01.tlog/lab01.lastbuildstate b/project_files/lab01/lab01/ARM64/Release/lab01.tlog/lab01.lastbuildstate new file mode 100644 index 0000000..22f58d8 --- /dev/null +++ b/project_files/lab01/lab01/ARM64/Release/lab01.tlog/lab01.lastbuildstate @@ -0,0 +1,2 @@ +PlatformToolSet=v143:VCToolArchitecture=NativeARM64:VCToolsVersion=14.40.33807:TargetPlatformVersion=10.0.22621.0: +Release|ARM64|C:\Users\mikhailov\source\repos\lab01\| diff --git a/project_files/lab01/lab01/ARM64/Release/lab01.tlog/link.command.1.tlog b/project_files/lab01/lab01/ARM64/Release/lab01.tlog/link.command.1.tlog new file mode 100644 index 0000000..65e9a2c Binary files /dev/null and b/project_files/lab01/lab01/ARM64/Release/lab01.tlog/link.command.1.tlog differ diff --git a/project_files/lab01/lab01/ARM64/Release/lab01.tlog/link.read.1.tlog b/project_files/lab01/lab01/ARM64/Release/lab01.tlog/link.read.1.tlog new file mode 100644 index 0000000..8d79584 Binary files /dev/null and b/project_files/lab01/lab01/ARM64/Release/lab01.tlog/link.read.1.tlog differ diff --git a/project_files/lab01/lab01/ARM64/Release/lab01.tlog/link.secondary.1.tlog b/project_files/lab01/lab01/ARM64/Release/lab01.tlog/link.secondary.1.tlog new file mode 100644 index 0000000..6858105 --- /dev/null +++ b/project_files/lab01/lab01/ARM64/Release/lab01.tlog/link.secondary.1.tlog @@ -0,0 +1,2 @@ +^C:\USERS\MIKHAILOV\SOURCE\REPOS\LAB01\LAB01\ARM64\RELEASE\LAB01.OBJ +C:\Users\mikhailov\source\repos\lab01\lab01\ARM64\Release\lab01.iobj diff --git a/project_files/lab01/lab01/ARM64/Release/lab01.tlog/link.write.1.tlog b/project_files/lab01/lab01/ARM64/Release/lab01.tlog/link.write.1.tlog new file mode 100644 index 0000000..d5d0afe Binary files /dev/null and b/project_files/lab01/lab01/ARM64/Release/lab01.tlog/link.write.1.tlog differ diff --git a/project_files/lab01/lab01/ARM64/Release/lab01.vcxproj.FileListAbsolute.txt b/project_files/lab01/lab01/ARM64/Release/lab01.vcxproj.FileListAbsolute.txt new file mode 100644 index 0000000..e69de29 diff --git a/project_files/lab01/lab01/ARM64/Release/vc143.pdb b/project_files/lab01/lab01/ARM64/Release/vc143.pdb new file mode 100644 index 0000000..444425e Binary files /dev/null and b/project_files/lab01/lab01/ARM64/Release/vc143.pdb differ diff --git a/project_files/lab01/lab01/lab01.cpp b/project_files/lab01/lab01/lab01.cpp new file mode 100644 index 0000000..a52fb87 --- /dev/null +++ b/project_files/lab01/lab01/lab01.cpp @@ -0,0 +1,76 @@ +#include +#include +#include +#include + +const size_t SCREEN_WIDTH = 80; // Максимальная ширина экрана +const size_t MAX_ASTERISK = SCREEN_WIDTH - 4; // Ограничение на длину столбца + +// Функция для ввода данных: количество чисел и сами числа +void input_data(std::vector& numbers, size_t& bin_count) { + size_t number_count; + std::cerr << "Enter number count: "; + std::cin >> number_count; + + numbers.resize(number_count); + std::cerr << "Enter numbers: "; + for (size_t i = 0; i < number_count; ++i) { + std::cin >> numbers[i]; + } + + std::cerr << "Enter bin count: "; + std::cin >> bin_count; +} + +// Функция для расчета количества чисел в каждой корзине +void calculate_bins(const std::vector& numbers, std::vector& bins, double& min, double& max) { + // Определяем минимальное и максимальное значение для диапазона + min = *std::min_element(numbers.begin(), numbers.end()); + max = *std::max_element(numbers.begin(), numbers.end()); + + // Вычисляем размер каждой корзины + double bin_size = (max - min) / bins.size(); + + // Заполняем корзины, увеличивая счётчик для каждого числа, попадающего в интервал + for (const double& number : numbers) { + size_t bin_index = static_cast((number - min) / bin_size); + if (bin_index >= bins.size()) bin_index = bins.size() - 1; + bins[bin_index]++; + } +} + +// Функция для вывода гистограммы +void print_histogram(const std::vector& bins) { + // Находим максимальное количество чисел в одной корзине для масштабирования + size_t max_count = *std::max_element(bins.begin(), bins.end()); + + // Проверка необходимости масштабирования + bool needs_scaling = max_count > MAX_ASTERISK; + + for (size_t i = 0; i < bins.size(); ++i) { + std::cout << std::setw(3) << std::right << bins[i] << "|"; + + // Рассчитываем высоту столбца с учётом ограничения MAX_ASTERISK + size_t height = needs_scaling ? static_cast(MAX_ASTERISK * static_cast(bins[i]) / max_count) : bins[i]; + + // Выводим звёздочки для визуализации количества элементов + for (size_t j = 0; j < height; ++j) { + std::cout << "*"; + } + std::cout << "\n"; + } +} + +int main() { + std::vector numbers; // Массив чисел + size_t bin_count; // Количество корзин + + input_data(numbers, bin_count); // Ввод данных + + std::vector bins(bin_count, 0); // Инициализируем корзины с нулями + double min, max; + calculate_bins(numbers, bins, min, max); // Подсчёт чисел в корзинах + print_histogram(bins); // Вывод гистограммы + + return 0; +} diff --git a/project_files/lab01/lab01/lab01.vcxproj b/project_files/lab01/lab01/lab01.vcxproj new file mode 100644 index 0000000..7da052a --- /dev/null +++ b/project_files/lab01/lab01/lab01.vcxproj @@ -0,0 +1,196 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + Debug + ARM64 + + + Release + ARM64 + + + + 17.0 + Win32Proj + {071943df-3332-437e-bbfd-985e2d83873f} + lab01 + 10.0 + + + + Application + true + v143 + Unicode + + + Application + false + v143 + true + Unicode + + + 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 + MultiThreaded + + + Console + true + + + + + Level3 + true + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + MultiThreaded + + + Console + true + true + true + + + + + Level3 + true + _DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + MultiThreaded + + + Console + true + + + + + Level3 + true + true + true + NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + MultiThreaded + + + Console + true + true + true + + + + + Level3 + true + _DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + MultiThreaded + + + Console + true + + + + + Level3 + true + true + true + NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + MultiThreaded + + + Console + true + true + true + + + + + + + + + \ No newline at end of file diff --git a/project_files/lab01/lab01/lab01.vcxproj.filters b/project_files/lab01/lab01/lab01.vcxproj.filters new file mode 100644 index 0000000..59454b2 --- /dev/null +++ b/project_files/lab01/lab01/lab01.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 + + + + + Source Files + + + \ No newline at end of file diff --git a/project_files/lab01/lab01/lab01.vcxproj.user b/project_files/lab01/lab01/lab01.vcxproj.user new file mode 100644 index 0000000..88a5509 --- /dev/null +++ b/project_files/lab01/lab01/lab01.vcxproj.user @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/project_files/lab01_12var/.vs/lab01_12var/FileContentIndex/52bc3a93-000a-46f0-ba2a-3dd8b3568651.vsidx b/project_files/lab01_12var/.vs/lab01_12var/FileContentIndex/52bc3a93-000a-46f0-ba2a-3dd8b3568651.vsidx new file mode 100644 index 0000000..de22354 Binary files /dev/null and b/project_files/lab01_12var/.vs/lab01_12var/FileContentIndex/52bc3a93-000a-46f0-ba2a-3dd8b3568651.vsidx differ diff --git a/project_files/lab01_12var/.vs/lab01_12var/v17/.suo b/project_files/lab01_12var/.vs/lab01_12var/v17/.suo new file mode 100644 index 0000000..f0d6acd Binary files /dev/null and b/project_files/lab01_12var/.vs/lab01_12var/v17/.suo differ diff --git a/project_files/lab01_12var/.vs/lab01_12var/v17/Browse.VC.db b/project_files/lab01_12var/.vs/lab01_12var/v17/Browse.VC.db new file mode 100644 index 0000000..8601739 Binary files /dev/null and b/project_files/lab01_12var/.vs/lab01_12var/v17/Browse.VC.db differ diff --git a/project_files/lab01_12var/.vs/lab01_12var/v17/Browse.VC.db-shm b/project_files/lab01_12var/.vs/lab01_12var/v17/Browse.VC.db-shm new file mode 100644 index 0000000..0102f10 Binary files /dev/null and b/project_files/lab01_12var/.vs/lab01_12var/v17/Browse.VC.db-shm differ diff --git a/project_files/lab01_12var/.vs/lab01_12var/v17/Browse.VC.db-wal b/project_files/lab01_12var/.vs/lab01_12var/v17/Browse.VC.db-wal new file mode 100644 index 0000000..e69de29 diff --git a/project_files/lab01_12var/.vs/lab01_12var/v17/Browse.VC.opendb b/project_files/lab01_12var/.vs/lab01_12var/v17/Browse.VC.opendb new file mode 100644 index 0000000..1638510 Binary files /dev/null and b/project_files/lab01_12var/.vs/lab01_12var/v17/Browse.VC.opendb differ diff --git a/project_files/lab01_12var/.vs/lab01_12var/v17/DocumentLayout.json b/project_files/lab01_12var/.vs/lab01_12var/v17/DocumentLayout.json new file mode 100644 index 0000000..22892fc --- /dev/null +++ b/project_files/lab01_12var/.vs/lab01_12var/v17/DocumentLayout.json @@ -0,0 +1,41 @@ +{ + "Version": 1, + "WorkspaceRootPath": "C:\\Users\\mikhailov\\source\\repos\\lab01_12var\\", + "Documents": [ + { + "AbsoluteMoniker": "D:0:0:{BC866592-2029-4ECB-B62A-2FCA352AAA22}|lab01_12var\\lab01_12var.vcxproj|C:\\Users\\mikhailov\\source\\repos\\lab01_12var\\lab01_12var\\lab01_12var.cpp||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}", + "RelativeMoniker": "D:0:0:{BC866592-2029-4ECB-B62A-2FCA352AAA22}|lab01_12var\\lab01_12var.vcxproj|solutionrelative:lab01_12var\\lab01_12var.cpp||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}" + } + ], + "DocumentGroupContainers": [ + { + "Orientation": 0, + "VerticalTabListWidth": 256, + "DocumentGroups": [ + { + "DockedWidth": 200, + "SelectedChildIndex": 1, + "Children": [ + { + "$type": "Bookmark", + "Name": "ST:0:0:{cce594b6-0c39-4442-ba28-10c64ac7e89f}" + }, + { + "$type": "Document", + "DocumentIndex": 0, + "Title": "lab01_12var.cpp", + "DocumentMoniker": "C:\\Users\\mikhailov\\source\\repos\\lab01_12var\\lab01_12var\\lab01_12var.cpp", + "RelativeDocumentMoniker": "lab01_12var\\lab01_12var.cpp", + "ToolTip": "C:\\Users\\mikhailov\\source\\repos\\lab01_12var\\lab01_12var\\lab01_12var.cpp", + "RelativeToolTip": "lab01_12var\\lab01_12var.cpp", + "ViewState": "AQIAAC8AAAAAAAAAAAAgwE4AAAAAAAAA", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000677|", + "WhenOpened": "2024-11-14T06:23:34.668Z", + "EditorCaption": "" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/project_files/lab01_12var/.vs/lab01_12var/v17/ipch/AutoPCH/6fafa9928b7f00d5/LAB01_12VAR.ipch b/project_files/lab01_12var/.vs/lab01_12var/v17/ipch/AutoPCH/6fafa9928b7f00d5/LAB01_12VAR.ipch new file mode 100644 index 0000000..d1c6c5c Binary files /dev/null and b/project_files/lab01_12var/.vs/lab01_12var/v17/ipch/AutoPCH/6fafa9928b7f00d5/LAB01_12VAR.ipch differ diff --git a/project_files/lab01_12var/.vs/lab01_12var/v17/ipch/AutoPCH/da1c0e1b0c93c937/LAB01_12VAR.ipch b/project_files/lab01_12var/.vs/lab01_12var/v17/ipch/AutoPCH/da1c0e1b0c93c937/LAB01_12VAR.ipch new file mode 100644 index 0000000..794335f Binary files /dev/null and b/project_files/lab01_12var/.vs/lab01_12var/v17/ipch/AutoPCH/da1c0e1b0c93c937/LAB01_12VAR.ipch differ diff --git a/project_files/lab01_12var/lab01_12var.sln b/project_files/lab01_12var/lab01_12var.sln new file mode 100644 index 0000000..335ac94 --- /dev/null +++ b/project_files/lab01_12var/lab01_12var.sln @@ -0,0 +1,37 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.10.35027.167 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lab01_12var", "lab01_12var\lab01_12var.vcxproj", "{BC866592-2029-4ECB-B62A-2FCA352AAA22}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|ARM64 = Debug|ARM64 + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|ARM64 = Release|ARM64 + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {BC866592-2029-4ECB-B62A-2FCA352AAA22}.Debug|ARM64.ActiveCfg = Debug|ARM64 + {BC866592-2029-4ECB-B62A-2FCA352AAA22}.Debug|ARM64.Build.0 = Debug|ARM64 + {BC866592-2029-4ECB-B62A-2FCA352AAA22}.Debug|x64.ActiveCfg = Debug|x64 + {BC866592-2029-4ECB-B62A-2FCA352AAA22}.Debug|x64.Build.0 = Debug|x64 + {BC866592-2029-4ECB-B62A-2FCA352AAA22}.Debug|x86.ActiveCfg = Debug|Win32 + {BC866592-2029-4ECB-B62A-2FCA352AAA22}.Debug|x86.Build.0 = Debug|Win32 + {BC866592-2029-4ECB-B62A-2FCA352AAA22}.Release|ARM64.ActiveCfg = Release|ARM64 + {BC866592-2029-4ECB-B62A-2FCA352AAA22}.Release|ARM64.Build.0 = Release|ARM64 + {BC866592-2029-4ECB-B62A-2FCA352AAA22}.Release|x64.ActiveCfg = Release|x64 + {BC866592-2029-4ECB-B62A-2FCA352AAA22}.Release|x64.Build.0 = Release|x64 + {BC866592-2029-4ECB-B62A-2FCA352AAA22}.Release|x86.ActiveCfg = Release|Win32 + {BC866592-2029-4ECB-B62A-2FCA352AAA22}.Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {EEC45BC8-FC13-4BE3-8660-A249D4E0BE64} + EndGlobalSection +EndGlobal diff --git a/project_files/lab01_12var/lab01_12var/ARM64/Debug/lab01_12var.pdb b/project_files/lab01_12var/lab01_12var/ARM64/Debug/lab01_12var.pdb new file mode 100644 index 0000000..78d3986 Binary files /dev/null and b/project_files/lab01_12var/lab01_12var/ARM64/Debug/lab01_12var.pdb differ diff --git a/project_files/lab01_12var/lab01_12var/ARM64/Release/lab01_12var.pdb b/project_files/lab01_12var/lab01_12var/ARM64/Release/lab01_12var.pdb new file mode 100644 index 0000000..65f7fa3 Binary files /dev/null and b/project_files/lab01_12var/lab01_12var/ARM64/Release/lab01_12var.pdb differ diff --git a/project_files/lab01_12var/lab01_12var/lab01_12var.cpp b/project_files/lab01_12var/lab01_12var/lab01_12var.cpp new file mode 100644 index 0000000..c67a74f --- /dev/null +++ b/project_files/lab01_12var/lab01_12var/lab01_12var.cpp @@ -0,0 +1,78 @@ +#include +#include +#include +#include + +const size_t SCREEN_WIDTH = 80; // Максимальная ширина экрана +const size_t MAX_ASTERISK = SCREEN_WIDTH - 6; // Ограничение на длину столбца, с учетом увеличенного места для подписей + +// Функция для ввода данных: количество чисел и сами числа +void input_data(std::vector& numbers, size_t& bin_count) { + size_t number_count; + std::cerr << "Enter number count: "; + std::cin >> number_count; + + numbers.resize(number_count); + std::cerr << "Enter numbers: "; + for (size_t i = 0; i < number_count; ++i) { + std::cin >> numbers[i]; + } + + std::cerr << "Enter bin count: "; + std::cin >> bin_count; +} + +// Функция для расчета количества чисел в каждой корзине +void calculate_bins(const std::vector& numbers, std::vector& bins, double& min, double& max) { + min = *std::min_element(numbers.begin(), numbers.end()); + max = *std::max_element(numbers.begin(), numbers.end()); + + double bin_size = (max - min) / bins.size(); + + for (const double& number : numbers) { + size_t bin_index = static_cast((number - min) / bin_size); + if (bin_index >= bins.size()) bin_index = bins.size() - 1; + bins[bin_index]++; + } +} + +// Функция для вывода гистограммы с промежуточными границами столбцов +void print_histogram(const std::vector& bins, double min, double max) { + size_t max_count = *std::max_element(bins.begin(), bins.end()); + bool needs_scaling = max_count > MAX_ASTERISK; + double bin_size = (max - min) / bins.size(); + + for (size_t i = 0; i < bins.size(); ++i) { + // Вывод количества элементов с полем в 6 символов + std::cout << std::setw(6) << std::right << bins[i] << "|"; + + // Рассчитываем высоту столбца с учетом ограничения MAX_ASTERISK + size_t height = needs_scaling ? static_cast(MAX_ASTERISK * static_cast(bins[i]) / max_count) : bins[i]; + + // Выводим звездочки для визуализации количества элементов + for (size_t j = 0; j < height; ++j) { + std::cout << "*"; + } + std::cout << "\n"; + + // Выводим промежуточные границы между столбцами (исключая первую границу) + if (i < bins.size() - 1) { + double boundary = min + (i + 1) * bin_size; + std::cout << std::fixed << std::setprecision(2) << boundary << "\n"; + } + } +} + +int main() { + std::vector numbers; + size_t bin_count; + + input_data(numbers, bin_count); + + std::vector bins(bin_count, 0); + double min, max; + calculate_bins(numbers, bins, min, max); + print_histogram(bins, min, max); + + return 0; +} diff --git a/project_files/lab01_12var/lab01_12var/lab01_12var.vcxproj b/project_files/lab01_12var/lab01_12var/lab01_12var.vcxproj new file mode 100644 index 0000000..e013bbd --- /dev/null +++ b/project_files/lab01_12var/lab01_12var/lab01_12var.vcxproj @@ -0,0 +1,196 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + Debug + ARM64 + + + Release + ARM64 + + + + 17.0 + Win32Proj + {bc866592-2029-4ecb-b62a-2fca352aaa22} + lab0112var + 10.0 + + + + Application + true + v143 + Unicode + + + Application + false + v143 + true + Unicode + + + 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 + MultiThreaded + + + Console + true + + + + + Level3 + true + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + MultiThreaded + + + Console + true + true + true + + + + + Level3 + true + _DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + MultiThreaded + + + Console + true + + + + + Level3 + true + true + true + NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + MultiThreaded + + + Console + true + true + true + + + + + Level3 + true + _DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + MultiThreaded + + + Console + true + + + + + Level3 + true + true + true + NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + MultiThreaded + + + Console + true + true + true + + + + + + + + + \ No newline at end of file diff --git a/project_files/lab01_12var/lab01_12var/lab01_12var.vcxproj.filters b/project_files/lab01_12var/lab01_12var/lab01_12var.vcxproj.filters new file mode 100644 index 0000000..207fcaa --- /dev/null +++ b/project_files/lab01_12var/lab01_12var/lab01_12var.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 + + + + + Source Files + + + \ No newline at end of file diff --git a/project_files/lab01_12var/lab01_12var/lab01_12var.vcxproj.user b/project_files/lab01_12var/lab01_12var/lab01_12var.vcxproj.user new file mode 100644 index 0000000..88a5509 --- /dev/null +++ b/project_files/lab01_12var/lab01_12var/lab01_12var.vcxproj.user @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/project_files/lab01_12var/lab01_12var/lab01_12var/ARM64/Debug/lab01_12var.exe.recipe b/project_files/lab01_12var/lab01_12var/lab01_12var/ARM64/Debug/lab01_12var.exe.recipe new file mode 100644 index 0000000..d957bf4 --- /dev/null +++ b/project_files/lab01_12var/lab01_12var/lab01_12var/ARM64/Debug/lab01_12var.exe.recipe @@ -0,0 +1,11 @@ + + + + + C:\Users\mikhailov\source\repos\lab01_12var\lab01_12var\ARM64\Debug\lab01_12var.exe + + + + + + \ No newline at end of file diff --git a/project_files/lab01_12var/lab01_12var/lab01_12var/ARM64/Debug/lab01_12var.ilk b/project_files/lab01_12var/lab01_12var/lab01_12var/ARM64/Debug/lab01_12var.ilk new file mode 100644 index 0000000..b3f8da5 Binary files /dev/null and b/project_files/lab01_12var/lab01_12var/lab01_12var/ARM64/Debug/lab01_12var.ilk differ diff --git a/project_files/lab01_12var/lab01_12var/lab01_12var/ARM64/Debug/lab01_12var.log b/project_files/lab01_12var/lab01_12var/lab01_12var/ARM64/Debug/lab01_12var.log new file mode 100644 index 0000000..460eeec --- /dev/null +++ b/project_files/lab01_12var/lab01_12var/lab01_12var/ARM64/Debug/lab01_12var.log @@ -0,0 +1,2 @@ + lab01_12var.cpp + lab01_12var.vcxproj -> C:\Users\mikhailov\source\repos\lab01_12var\lab01_12var\ARM64\Debug\lab01_12var.exe diff --git a/project_files/lab01_12var/lab01_12var/lab01_12var/ARM64/Debug/lab01_12var.tlog/CL.command.1.tlog b/project_files/lab01_12var/lab01_12var/lab01_12var/ARM64/Debug/lab01_12var.tlog/CL.command.1.tlog new file mode 100644 index 0000000..ed98eae Binary files /dev/null and b/project_files/lab01_12var/lab01_12var/lab01_12var/ARM64/Debug/lab01_12var.tlog/CL.command.1.tlog differ diff --git a/project_files/lab01_12var/lab01_12var/lab01_12var/ARM64/Debug/lab01_12var.tlog/CL.read.1.tlog b/project_files/lab01_12var/lab01_12var/lab01_12var/ARM64/Debug/lab01_12var.tlog/CL.read.1.tlog new file mode 100644 index 0000000..701e8c3 Binary files /dev/null and b/project_files/lab01_12var/lab01_12var/lab01_12var/ARM64/Debug/lab01_12var.tlog/CL.read.1.tlog differ diff --git a/project_files/lab01_12var/lab01_12var/lab01_12var/ARM64/Debug/lab01_12var.tlog/CL.write.1.tlog b/project_files/lab01_12var/lab01_12var/lab01_12var/ARM64/Debug/lab01_12var.tlog/CL.write.1.tlog new file mode 100644 index 0000000..5c558fe Binary files /dev/null and b/project_files/lab01_12var/lab01_12var/lab01_12var/ARM64/Debug/lab01_12var.tlog/CL.write.1.tlog differ diff --git a/project_files/lab01_12var/lab01_12var/lab01_12var/ARM64/Debug/lab01_12var.tlog/Cl.items.tlog b/project_files/lab01_12var/lab01_12var/lab01_12var/ARM64/Debug/lab01_12var.tlog/Cl.items.tlog new file mode 100644 index 0000000..8e00b3f --- /dev/null +++ b/project_files/lab01_12var/lab01_12var/lab01_12var/ARM64/Debug/lab01_12var.tlog/Cl.items.tlog @@ -0,0 +1 @@ +C:\Users\mikhailov\source\repos\lab01_12var\lab01_12var\lab01_12var.cpp;C:\Users\mikhailov\source\repos\lab01_12var\lab01_12var\lab01_12var\ARM64\Debug\lab01_12var.obj diff --git a/project_files/lab01_12var/lab01_12var/lab01_12var/ARM64/Debug/lab01_12var.tlog/lab01_12var.lastbuildstate b/project_files/lab01_12var/lab01_12var/lab01_12var/ARM64/Debug/lab01_12var.tlog/lab01_12var.lastbuildstate new file mode 100644 index 0000000..fab8819 --- /dev/null +++ b/project_files/lab01_12var/lab01_12var/lab01_12var/ARM64/Debug/lab01_12var.tlog/lab01_12var.lastbuildstate @@ -0,0 +1,2 @@ +PlatformToolSet=v143:VCToolArchitecture=NativeARM64:VCToolsVersion=14.40.33807:TargetPlatformVersion=10.0.22621.0: +Debug|ARM64|C:\Users\mikhailov\source\repos\lab01_12var\lab01_12var\| diff --git a/project_files/lab01_12var/lab01_12var/lab01_12var/ARM64/Debug/lab01_12var.tlog/link.command.1.tlog b/project_files/lab01_12var/lab01_12var/lab01_12var/ARM64/Debug/lab01_12var.tlog/link.command.1.tlog new file mode 100644 index 0000000..3b84df3 Binary files /dev/null and b/project_files/lab01_12var/lab01_12var/lab01_12var/ARM64/Debug/lab01_12var.tlog/link.command.1.tlog differ diff --git a/project_files/lab01_12var/lab01_12var/lab01_12var/ARM64/Debug/lab01_12var.tlog/link.read.1.tlog b/project_files/lab01_12var/lab01_12var/lab01_12var/ARM64/Debug/lab01_12var.tlog/link.read.1.tlog new file mode 100644 index 0000000..be411fd Binary files /dev/null and b/project_files/lab01_12var/lab01_12var/lab01_12var/ARM64/Debug/lab01_12var.tlog/link.read.1.tlog differ diff --git a/project_files/lab01_12var/lab01_12var/lab01_12var/ARM64/Debug/lab01_12var.tlog/link.secondary.1.tlog b/project_files/lab01_12var/lab01_12var/lab01_12var/ARM64/Debug/lab01_12var.tlog/link.secondary.1.tlog new file mode 100644 index 0000000..c95dce2 --- /dev/null +++ b/project_files/lab01_12var/lab01_12var/lab01_12var/ARM64/Debug/lab01_12var.tlog/link.secondary.1.tlog @@ -0,0 +1,2 @@ +^C:\USERS\MIKHAILOV\SOURCE\REPOS\LAB01_12VAR\LAB01_12VAR\LAB01_12VAR\ARM64\DEBUG\LAB01_12VAR.OBJ +C:\Users\mikhailov\source\repos\lab01_12var\lab01_12var\lab01_12var\ARM64\Debug\lab01_12var.ilk diff --git a/project_files/lab01_12var/lab01_12var/lab01_12var/ARM64/Debug/lab01_12var.tlog/link.write.1.tlog b/project_files/lab01_12var/lab01_12var/lab01_12var/ARM64/Debug/lab01_12var.tlog/link.write.1.tlog new file mode 100644 index 0000000..54ca47d Binary files /dev/null and b/project_files/lab01_12var/lab01_12var/lab01_12var/ARM64/Debug/lab01_12var.tlog/link.write.1.tlog differ diff --git a/project_files/lab01_12var/lab01_12var/lab01_12var/ARM64/Debug/vc143.idb b/project_files/lab01_12var/lab01_12var/lab01_12var/ARM64/Debug/vc143.idb new file mode 100644 index 0000000..18394bf Binary files /dev/null and b/project_files/lab01_12var/lab01_12var/lab01_12var/ARM64/Debug/vc143.idb differ diff --git a/project_files/lab01_12var/lab01_12var/lab01_12var/ARM64/Debug/vc143.pdb b/project_files/lab01_12var/lab01_12var/lab01_12var/ARM64/Debug/vc143.pdb new file mode 100644 index 0000000..d27584c Binary files /dev/null and b/project_files/lab01_12var/lab01_12var/lab01_12var/ARM64/Debug/vc143.pdb differ diff --git a/project_files/lab01_12var/lab01_12var/lab01_12var/ARM64/Release/lab01_12var.Build.CppClean.log b/project_files/lab01_12var/lab01_12var/lab01_12var/ARM64/Release/lab01_12var.Build.CppClean.log new file mode 100644 index 0000000..317175a --- /dev/null +++ b/project_files/lab01_12var/lab01_12var/lab01_12var/ARM64/Release/lab01_12var.Build.CppClean.log @@ -0,0 +1,13 @@ +c:\users\mikhailov\source\repos\lab01_12var\lab01_12var\lab01_12var\arm64\release\vc143.pdb +c:\users\mikhailov\source\repos\lab01_12var\lab01_12var\lab01_12var\arm64\release\lab01_12var.obj +c:\users\mikhailov\source\repos\lab01_12var\lab01_12var\arm64\release\lab01_12var.exe +c:\users\mikhailov\source\repos\lab01_12var\lab01_12var\arm64\release\lab01_12var.pdb +c:\users\mikhailov\source\repos\lab01_12var\lab01_12var\lab01_12var\arm64\release\lab01_12var.iobj +c:\users\mikhailov\source\repos\lab01_12var\lab01_12var\lab01_12var\arm64\release\lab01_12var.tlog\cl.command.1.tlog +c:\users\mikhailov\source\repos\lab01_12var\lab01_12var\lab01_12var\arm64\release\lab01_12var.tlog\cl.items.tlog +c:\users\mikhailov\source\repos\lab01_12var\lab01_12var\lab01_12var\arm64\release\lab01_12var.tlog\cl.read.1.tlog +c:\users\mikhailov\source\repos\lab01_12var\lab01_12var\lab01_12var\arm64\release\lab01_12var.tlog\cl.write.1.tlog +c:\users\mikhailov\source\repos\lab01_12var\lab01_12var\lab01_12var\arm64\release\lab01_12var.tlog\link.command.1.tlog +c:\users\mikhailov\source\repos\lab01_12var\lab01_12var\lab01_12var\arm64\release\lab01_12var.tlog\link.read.1.tlog +c:\users\mikhailov\source\repos\lab01_12var\lab01_12var\lab01_12var\arm64\release\lab01_12var.tlog\link.secondary.1.tlog +c:\users\mikhailov\source\repos\lab01_12var\lab01_12var\lab01_12var\arm64\release\lab01_12var.tlog\link.write.1.tlog diff --git a/project_files/lab01_12var/lab01_12var/lab01_12var/ARM64/Release/lab01_12var.exe.recipe b/project_files/lab01_12var/lab01_12var/lab01_12var/ARM64/Release/lab01_12var.exe.recipe new file mode 100644 index 0000000..5d0a293 --- /dev/null +++ b/project_files/lab01_12var/lab01_12var/lab01_12var/ARM64/Release/lab01_12var.exe.recipe @@ -0,0 +1,11 @@ + + + + + C:\Users\mikhailov\source\repos\lab01_12var\lab01_12var\ARM64\Release\lab01_12var.exe + + + + + + \ No newline at end of file diff --git a/project_files/lab01_12var/lab01_12var/lab01_12var/ARM64/Release/lab01_12var.iobj b/project_files/lab01_12var/lab01_12var/lab01_12var/ARM64/Release/lab01_12var.iobj new file mode 100644 index 0000000..b5b5747 Binary files /dev/null and b/project_files/lab01_12var/lab01_12var/lab01_12var/ARM64/Release/lab01_12var.iobj differ diff --git a/project_files/lab01_12var/lab01_12var/lab01_12var/ARM64/Release/lab01_12var.log b/project_files/lab01_12var/lab01_12var/lab01_12var/ARM64/Release/lab01_12var.log new file mode 100644 index 0000000..9cc20a1 --- /dev/null +++ b/project_files/lab01_12var/lab01_12var/lab01_12var/ARM64/Release/lab01_12var.log @@ -0,0 +1,3 @@ + Generating code + Finished generating code + lab01_12var.vcxproj -> C:\Users\mikhailov\source\repos\lab01_12var\lab01_12var\ARM64\Release\lab01_12var.exe diff --git a/project_files/lab01_12var/lab01_12var/lab01_12var/ARM64/Release/lab01_12var.tlog/CL.command.1.tlog b/project_files/lab01_12var/lab01_12var/lab01_12var/ARM64/Release/lab01_12var.tlog/CL.command.1.tlog new file mode 100644 index 0000000..51a7030 Binary files /dev/null and b/project_files/lab01_12var/lab01_12var/lab01_12var/ARM64/Release/lab01_12var.tlog/CL.command.1.tlog differ diff --git a/project_files/lab01_12var/lab01_12var/lab01_12var/ARM64/Release/lab01_12var.tlog/CL.read.1.tlog b/project_files/lab01_12var/lab01_12var/lab01_12var/ARM64/Release/lab01_12var.tlog/CL.read.1.tlog new file mode 100644 index 0000000..701e8c3 Binary files /dev/null and b/project_files/lab01_12var/lab01_12var/lab01_12var/ARM64/Release/lab01_12var.tlog/CL.read.1.tlog differ diff --git a/project_files/lab01_12var/lab01_12var/lab01_12var/ARM64/Release/lab01_12var.tlog/CL.write.1.tlog b/project_files/lab01_12var/lab01_12var/lab01_12var/ARM64/Release/lab01_12var.tlog/CL.write.1.tlog new file mode 100644 index 0000000..36e3844 Binary files /dev/null and b/project_files/lab01_12var/lab01_12var/lab01_12var/ARM64/Release/lab01_12var.tlog/CL.write.1.tlog differ diff --git a/project_files/lab01_12var/lab01_12var/lab01_12var/ARM64/Release/lab01_12var.tlog/Cl.items.tlog b/project_files/lab01_12var/lab01_12var/lab01_12var/ARM64/Release/lab01_12var.tlog/Cl.items.tlog new file mode 100644 index 0000000..f76f720 --- /dev/null +++ b/project_files/lab01_12var/lab01_12var/lab01_12var/ARM64/Release/lab01_12var.tlog/Cl.items.tlog @@ -0,0 +1 @@ +C:\Users\mikhailov\source\repos\lab01_12var\lab01_12var\lab01_12var.cpp;C:\Users\mikhailov\source\repos\lab01_12var\lab01_12var\lab01_12var\ARM64\Release\lab01_12var.obj diff --git a/project_files/lab01_12var/lab01_12var/lab01_12var/ARM64/Release/lab01_12var.tlog/lab01_12var.lastbuildstate b/project_files/lab01_12var/lab01_12var/lab01_12var/ARM64/Release/lab01_12var.tlog/lab01_12var.lastbuildstate new file mode 100644 index 0000000..8709778 --- /dev/null +++ b/project_files/lab01_12var/lab01_12var/lab01_12var/ARM64/Release/lab01_12var.tlog/lab01_12var.lastbuildstate @@ -0,0 +1,2 @@ +PlatformToolSet=v143:VCToolArchitecture=NativeARM64:VCToolsVersion=14.40.33807:TargetPlatformVersion=10.0.22621.0: +Release|ARM64|C:\Users\mikhailov\source\repos\lab01_12var\lab01_12var\| diff --git a/project_files/lab01_12var/lab01_12var/lab01_12var/ARM64/Release/lab01_12var.tlog/link.command.1.tlog b/project_files/lab01_12var/lab01_12var/lab01_12var/ARM64/Release/lab01_12var.tlog/link.command.1.tlog new file mode 100644 index 0000000..a322665 Binary files /dev/null and b/project_files/lab01_12var/lab01_12var/lab01_12var/ARM64/Release/lab01_12var.tlog/link.command.1.tlog differ diff --git a/project_files/lab01_12var/lab01_12var/lab01_12var/ARM64/Release/lab01_12var.tlog/link.read.1.tlog b/project_files/lab01_12var/lab01_12var/lab01_12var/ARM64/Release/lab01_12var.tlog/link.read.1.tlog new file mode 100644 index 0000000..0b12fb9 Binary files /dev/null and b/project_files/lab01_12var/lab01_12var/lab01_12var/ARM64/Release/lab01_12var.tlog/link.read.1.tlog differ diff --git a/project_files/lab01_12var/lab01_12var/lab01_12var/ARM64/Release/lab01_12var.tlog/link.secondary.1.tlog b/project_files/lab01_12var/lab01_12var/lab01_12var/ARM64/Release/lab01_12var.tlog/link.secondary.1.tlog new file mode 100644 index 0000000..40b4770 --- /dev/null +++ b/project_files/lab01_12var/lab01_12var/lab01_12var/ARM64/Release/lab01_12var.tlog/link.secondary.1.tlog @@ -0,0 +1,2 @@ +^C:\USERS\MIKHAILOV\SOURCE\REPOS\LAB01_12VAR\LAB01_12VAR\LAB01_12VAR\ARM64\RELEASE\LAB01_12VAR.OBJ +C:\Users\mikhailov\source\repos\lab01_12var\lab01_12var\lab01_12var\ARM64\Release\lab01_12var.iobj diff --git a/project_files/lab01_12var/lab01_12var/lab01_12var/ARM64/Release/lab01_12var.tlog/link.write.1.tlog b/project_files/lab01_12var/lab01_12var/lab01_12var/ARM64/Release/lab01_12var.tlog/link.write.1.tlog new file mode 100644 index 0000000..d8cab8a Binary files /dev/null and b/project_files/lab01_12var/lab01_12var/lab01_12var/ARM64/Release/lab01_12var.tlog/link.write.1.tlog differ diff --git a/project_files/lab01_12var/lab01_12var/lab01_12var/ARM64/Release/lab01_12var.vcxproj.FileListAbsolute.txt b/project_files/lab01_12var/lab01_12var/lab01_12var/ARM64/Release/lab01_12var.vcxproj.FileListAbsolute.txt new file mode 100644 index 0000000..e69de29 diff --git a/project_files/lab01_12var/lab01_12var/lab01_12var/ARM64/Release/vc143.pdb b/project_files/lab01_12var/lab01_12var/lab01_12var/ARM64/Release/vc143.pdb new file mode 100644 index 0000000..d02e9cd Binary files /dev/null and b/project_files/lab01_12var/lab01_12var/lab01_12var/ARM64/Release/vc143.pdb differ diff --git a/run_tests.bat b/run_tests.bat new file mode 100644 index 0000000..9444823 --- /dev/null +++ b/run_tests.bat @@ -0,0 +1,121 @@ +@echo off +REM Пути к тестовым файлам для базовой версии и варианта 12 +set input_dir=tests\base_version\input +set expected_dir=tests\base_version\expected +set actual_dir=tests\base_version\actual + +set var12_input_dir=tests\var12_version\input +set var12_expected_dir=tests\var12_version\expected +set var12_actual_dir=tests\var12_version\actual + +REM Переменные для подсчета непройденных тестов +set /a failed_tests=0 +set /a var12_failed_tests=0 + +REM Создаем папки для результатов, если они не существуют +if not exist %actual_dir% mkdir %actual_dir% +if not exist %var12_actual_dir% mkdir %var12_actual_dir% + +REM --- Базовые тесты --- +echo Running Base Test 1 +lab01.exe < %input_dir%\01-scaling.input.txt > %actual_dir%\01-scaling.actual.txt 2>NUL +fc /N %actual_dir%\01-scaling.actual.txt %expected_dir%\01-scaling.expected.txt >nul +if %errorlevel% equ 0 ( + echo Base Test 1 passed +) else ( + echo Base Test 1 failed + set /a failed_tests+=1 + fc /N %actual_dir%\01-scaling.actual.txt %expected_dir%\01-scaling.expected.txt +) +echo --------------------------------------------------- + +echo Running Base Test 2 +lab01.exe < %input_dir%\02-scaling.input.txt > %actual_dir%\02-scaling.actual.txt 2>NUL +fc /N %actual_dir%\02-scaling.actual.txt %expected_dir%\02-scaling.expected.txt >nul +if %errorlevel% equ 0 ( + echo Base Test 2 passed +) else ( + echo Base Test 2 failed + set /a failed_tests+=1 + fc /N %actual_dir%\02-scaling.actual.txt %expected_dir%\02-scaling.expected.txt +) +echo --------------------------------------------------- + +echo Running Base Test 3 +lab01.exe < %input_dir%\03-scaling.input.txt > %actual_dir%\03-scaling.actual.txt 2>NUL +fc /N %actual_dir%\03-scaling.actual.txt %expected_dir%\03-scaling.expected.txt >nul +if %errorlevel% equ 0 ( + echo Base Test 3 passed +) else ( + echo Base Test 3 failed + set /a failed_tests+=1 + fc /N %actual_dir%\03-scaling.actual.txt %expected_dir%\03-scaling.expected.txt +) +echo --------------------------------------------------- + +echo Running Base Test 4 +lab01.exe < %input_dir%\04-scaling.input.txt > %actual_dir%\04-scaling.actual.txt 2>NUL +fc /N %actual_dir%\04-scaling.actual.txt %expected_dir%\04-scaling.expected.txt >nul +if %errorlevel% equ 0 ( + echo Base Test 4 passed +) else ( + echo Base Test 4 failed + set /a failed_tests+=1 + fc /N %actual_dir%\04-scaling.actual.txt %expected_dir%\04-scaling.expected.txt +) +echo --------------------------------------------------- + +REM --- Тесты варианта 12 --- +echo Running Var12 Test 1 +lab01_12var.exe < %var12_input_dir%\01-scaling.input.txt > %var12_actual_dir%\01-scaling.actual.txt 2>NUL +fc /N %var12_actual_dir%\01-scaling.actual.txt %var12_expected_dir%\01-scaling.expected.txt >nul +if %errorlevel% equ 0 ( + echo Var12 Test 1 passed +) else ( + echo Var12 Test 1 failed + set /a var12_failed_tests+=1 + fc /N %var12_actual_dir%\01-scaling.actual.txt %var12_expected_dir%\01-scaling.expected.txt +) +echo --------------------------------------------------- + +echo Running Var12 Test 2 +lab01_12var.exe < %var12_input_dir%\02-scaling.input.txt > %var12_actual_dir%\02-scaling.actual.txt 2>NUL +fc /N %var12_actual_dir%\02-scaling.actual.txt %var12_expected_dir%\02-scaling.expected.txt >nul +if %errorlevel% equ 0 ( + echo Var12 Test 2 passed +) else ( + echo Var12 Test 2 failed + set /a var12_failed_tests+=1 + fc /N %var12_actual_dir%\02-scaling.actual.txt %var12_expected_dir%\02-scaling.expected.txt +) +echo --------------------------------------------------- + +echo Running Var12 Test 3 +lab01_12var.exe < %var12_input_dir%\03-scaling.input.txt > %var12_actual_dir%\03-scaling.actual.txt 2>NUL +fc /N %var12_actual_dir%\03-scaling.actual.txt %var12_expected_dir%\03-scaling.expected.txt >nul +if %errorlevel% equ 0 ( + echo Var12 Test 3 passed +) else ( + echo Var12 Test 3 failed + set /a var12_failed_tests+=1 + fc /N %var12_actual_dir%\03-scaling.actual.txt %var12_expected_dir%\03-scaling.expected.txt +) +echo --------------------------------------------------- + +echo Running Var12 Test 4 +lab01_12var.exe < %var12_input_dir%\04-scaling.input.txt > %var12_actual_dir%\04-scaling.actual.txt 2>NUL +fc /N %var12_actual_dir%\04-scaling.actual.txt %var12_expected_dir%\04-scaling.expected.txt >nul +if %errorlevel% equ 0 ( + echo Var12 Test 4 passed +) else ( + echo Var12 Test 4 failed + set /a var12_failed_tests+=1 + fc /N %var12_actual_dir%\04-scaling.actual.txt %var12_expected_dir%\04-scaling.expected.txt +) +echo --------------------------------------------------- + +REM Вывод итогов +echo All tests completed. +echo Number of failed base tests: %failed_tests% +echo Number of failed Var12 tests: %var12_failed_tests% +pause diff --git a/tests/base_version/actual/01-scaling.actual.txt b/tests/base_version/actual/01-scaling.actual.txt new file mode 100644 index 0000000..430e5ce --- /dev/null +++ b/tests/base_version/actual/01-scaling.actual.txt @@ -0,0 +1,5 @@ + 2|** + 2|** + 2|** + 2|** + 2|** diff --git a/tests/base_version/actual/02-scaling.actual.txt b/tests/base_version/actual/02-scaling.actual.txt new file mode 100644 index 0000000..b9a73a9 --- /dev/null +++ b/tests/base_version/actual/02-scaling.actual.txt @@ -0,0 +1,3 @@ + 3|*** + 2|** + 3|*** diff --git a/tests/base_version/actual/03-scaling.actual.txt b/tests/base_version/actual/03-scaling.actual.txt new file mode 100644 index 0000000..693ba1a --- /dev/null +++ b/tests/base_version/actual/03-scaling.actual.txt @@ -0,0 +1,3 @@ + 9|****** + 33|************************* +100|**************************************************************************** diff --git a/tests/base_version/actual/04-scaling.actual.txt b/tests/base_version/actual/04-scaling.actual.txt new file mode 100644 index 0000000..1aee645 --- /dev/null +++ b/tests/base_version/actual/04-scaling.actual.txt @@ -0,0 +1,2 @@ + 5|***** + 0| diff --git a/tests/base_version/expected/01-scaling.expected.txt b/tests/base_version/expected/01-scaling.expected.txt new file mode 100644 index 0000000..430e5ce --- /dev/null +++ b/tests/base_version/expected/01-scaling.expected.txt @@ -0,0 +1,5 @@ + 2|** + 2|** + 2|** + 2|** + 2|** diff --git a/tests/base_version/expected/02-scaling.expected.txt b/tests/base_version/expected/02-scaling.expected.txt new file mode 100644 index 0000000..b9a73a9 --- /dev/null +++ b/tests/base_version/expected/02-scaling.expected.txt @@ -0,0 +1,3 @@ + 3|*** + 2|** + 3|*** diff --git a/tests/base_version/expected/03-scaling.expected.txt b/tests/base_version/expected/03-scaling.expected.txt new file mode 100644 index 0000000..693ba1a --- /dev/null +++ b/tests/base_version/expected/03-scaling.expected.txt @@ -0,0 +1,3 @@ + 9|****** + 33|************************* +100|**************************************************************************** diff --git a/tests/base_version/expected/04-scaling.expected.txt b/tests/base_version/expected/04-scaling.expected.txt new file mode 100644 index 0000000..1aee645 --- /dev/null +++ b/tests/base_version/expected/04-scaling.expected.txt @@ -0,0 +1,2 @@ + 5|***** + 0| diff --git a/tests/base_version/input/01-scaling.input.txt b/tests/base_version/input/01-scaling.input.txt new file mode 100644 index 0000000..14abdfb --- /dev/null +++ b/tests/base_version/input/01-scaling.input.txt @@ -0,0 +1,3 @@ +10 +1 2 3 4 5 6 7 8 9 10 +5 \ No newline at end of file diff --git a/tests/base_version/input/02-scaling.input.txt b/tests/base_version/input/02-scaling.input.txt new file mode 100644 index 0000000..afa690a --- /dev/null +++ b/tests/base_version/input/02-scaling.input.txt @@ -0,0 +1,3 @@ +8 +2.5 2.7 3.1 3.9 4.2 4.8 5.1 5.9 +3 diff --git a/tests/base_version/input/03-scaling.input.txt b/tests/base_version/input/03-scaling.input.txt new file mode 100644 index 0000000..2539400 --- /dev/null +++ b/tests/base_version/input/03-scaling.input.txt @@ -0,0 +1,5 @@ +142 +1 1 1 1 1 1 1 1 1 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 +3 diff --git a/tests/base_version/input/04-scaling.input.txt b/tests/base_version/input/04-scaling.input.txt new file mode 100644 index 0000000..11eb90c --- /dev/null +++ b/tests/base_version/input/04-scaling.input.txt @@ -0,0 +1,3 @@ +5 +4 4 4 4 4 +2 diff --git a/tests/var12_version/actual/01-scaling.actual.txt b/tests/var12_version/actual/01-scaling.actual.txt new file mode 100644 index 0000000..398ca60 --- /dev/null +++ b/tests/var12_version/actual/01-scaling.actual.txt @@ -0,0 +1,9 @@ + 2|** +2.80 + 2|** +4.60 + 2|** +6.40 + 2|** +8.20 + 2|** diff --git a/tests/var12_version/actual/02-scaling.actual.txt b/tests/var12_version/actual/02-scaling.actual.txt new file mode 100644 index 0000000..579161f --- /dev/null +++ b/tests/var12_version/actual/02-scaling.actual.txt @@ -0,0 +1,5 @@ + 3|*** +3.63 + 2|** +4.77 + 3|*** diff --git a/tests/var12_version/actual/03-scaling.actual.txt b/tests/var12_version/actual/03-scaling.actual.txt new file mode 100644 index 0000000..c08e26c --- /dev/null +++ b/tests/var12_version/actual/03-scaling.actual.txt @@ -0,0 +1,5 @@ + 9|****** +1.67 + 33|************************ +2.33 + 100|************************************************************************** diff --git a/tests/var12_version/actual/04-scaling.actual.txt b/tests/var12_version/actual/04-scaling.actual.txt new file mode 100644 index 0000000..f45247a --- /dev/null +++ b/tests/var12_version/actual/04-scaling.actual.txt @@ -0,0 +1,3 @@ + 5|***** +4.00 + 0| diff --git a/tests/var12_version/expected/01-scaling.expected.txt b/tests/var12_version/expected/01-scaling.expected.txt new file mode 100644 index 0000000..88c9260 --- /dev/null +++ b/tests/var12_version/expected/01-scaling.expected.txt @@ -0,0 +1,9 @@ + 2|** +2.80 + 2|** +4.60 + 2|** +6.40 + 2|** +8.20 + 2|** \ No newline at end of file diff --git a/tests/var12_version/expected/02-scaling.expected.txt b/tests/var12_version/expected/02-scaling.expected.txt new file mode 100644 index 0000000..7f80ff1 --- /dev/null +++ b/tests/var12_version/expected/02-scaling.expected.txt @@ -0,0 +1,5 @@ + 3|*** +3.63 + 2|** +4.77 + 3|*** \ No newline at end of file diff --git a/tests/var12_version/expected/03-scaling.expected.txt b/tests/var12_version/expected/03-scaling.expected.txt new file mode 100644 index 0000000..c08e26c --- /dev/null +++ b/tests/var12_version/expected/03-scaling.expected.txt @@ -0,0 +1,5 @@ + 9|****** +1.67 + 33|************************ +2.33 + 100|************************************************************************** diff --git a/tests/var12_version/expected/04-scaling.expected.txt b/tests/var12_version/expected/04-scaling.expected.txt new file mode 100644 index 0000000..f45247a --- /dev/null +++ b/tests/var12_version/expected/04-scaling.expected.txt @@ -0,0 +1,3 @@ + 5|***** +4.00 + 0| diff --git a/tests/var12_version/input/01-scaling.input.txt b/tests/var12_version/input/01-scaling.input.txt new file mode 100644 index 0000000..14abdfb --- /dev/null +++ b/tests/var12_version/input/01-scaling.input.txt @@ -0,0 +1,3 @@ +10 +1 2 3 4 5 6 7 8 9 10 +5 \ No newline at end of file diff --git a/tests/var12_version/input/02-scaling.input.txt b/tests/var12_version/input/02-scaling.input.txt new file mode 100644 index 0000000..afa690a --- /dev/null +++ b/tests/var12_version/input/02-scaling.input.txt @@ -0,0 +1,3 @@ +8 +2.5 2.7 3.1 3.9 4.2 4.8 5.1 5.9 +3 diff --git a/tests/var12_version/input/03-scaling.input.txt b/tests/var12_version/input/03-scaling.input.txt new file mode 100644 index 0000000..2539400 --- /dev/null +++ b/tests/var12_version/input/03-scaling.input.txt @@ -0,0 +1,5 @@ +142 +1 1 1 1 1 1 1 1 1 +2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 +3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 +3 diff --git a/tests/var12_version/input/04-scaling.input.txt b/tests/var12_version/input/04-scaling.input.txt new file mode 100644 index 0000000..11eb90c --- /dev/null +++ b/tests/var12_version/input/04-scaling.input.txt @@ -0,0 +1,3 @@ +5 +4 4 4 4 4 +2