From cc2fb01ec94bf2a7c4cd4d808f7e03a69a5fe771 Mon Sep 17 00:00:00 2001
From: "lab03(SokolovMI)" <sokolov.mouse@yandex.ru>
Date: Wed, 30 Aug 2023 20:41:15 +0300
Subject: [PATCH] =?UTF-8?q?code:=20=D0=B8=D1=82=D0=BE=D0=B3=D0=BE=D0=B2?=
 =?UTF-8?q?=D1=8B=D0=B9=20=D0=B2=D0=B0=D1=80=D0=B8=D0=B0=D0=BD=D1=82=20?=
 =?UTF-8?q?=D0=BA=D0=BE=D0=B4=D0=B0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 lab01.cpp | 101 ++++--------------------------------------------------
 1 file changed, 6 insertions(+), 95 deletions(-)

diff --git a/lab01.cpp b/lab01.cpp
index 6c34053..5a62543 100644
--- a/lab01.cpp
+++ b/lab01.cpp
@@ -2,6 +2,10 @@
 #include <iostream>
 #include <conio.h>
 #include <vector>
+#include "histogram.h"
+#include "text.h"
+#include "svg.h"
+
 using namespace std;
 
 
@@ -16,99 +20,6 @@ input_numbers(size_t count) {
 }
 
 
-
-void
-find_minmax(const vector<double>& numbers, double& min, double& max) {
-	min = numbers[0];
-    max = numbers[0];
-	for (double number : numbers)
-	{
-		if (number < min)
-		{
-			min = number;
-		}
-
-		if (number > max)
-		{
-			max = number;
-		}
-	}
-	return;
-}
-
-vector<size_t> make_histogram(const vector<double>& numbers, const size_t bin_count)
-{
-	double min, max;
-	find_minmax(numbers, min, max);
-	double bin_size = (max - min) / bin_count;
-	vector<size_t> bins(bin_count, 0);
-	for (size_t i = 0; i < numbers.size(); 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]++;
-		}
-	}
-	return bins;
-}
-
-void show_histogram_text(const vector<size_t>& bins)
-{
-	const size_t SCREEN_WIDTH = 80;
-	const size_t MAX_ASTERISK = SCREEN_WIDTH - 3 - 1;
-
-	size_t max_bin = bins[0];
-	for (double bin : bins)
-	{
-		if (bin > max_bin)
-		{
-			max_bin = bin;
-		}
-	}
-
-	for (size_t bin : bins)
-	{
-		size_t height = bin;
-		// проверить масштабирование(пересчитать height)
-
-		if (max_bin > MAX_ASTERISK)
-		{
-			height = MAX_ASTERISK * (static_cast<double> (bin) / max_bin);
-		}
-
-
-		if (bin < 100) {
-			cout << " ";
-		}
-
-		if (bin < 10) {
-			cout << " ";
-		}
-
-		cout << bin << "|";
-
-
-		for (size_t i = 0; i < height; i++)
-		{
-			cout << "*";
-		}
-		cout << endl;
-
-	}
-}
-
 int main()
 {
 
@@ -122,11 +33,11 @@ int main()
 	size_t bin_count;
 	cerr << "Enter bin count: ";
 	cin >> bin_count;
-	//расчет данных
 
 	const auto bins = make_histogram(numbers, bin_count);
 
-	show_histogram_text(bins);
+	//show_histogram_text(bins,bin_count);//
+	show_histogram_svg(bins, number_count, bin_count);
 
 	return 0;
 }