From 79bcc8abbb3429c0c8743752bbbca1ce9149f56f Mon Sep 17 00:00:00 2001 From: "Nikita (PodolskyNK)" Date: Wed, 8 May 2024 15:17:02 +0300 Subject: [PATCH] =?UTF-8?q?code:=20=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8?= =?UTF-8?q?=D0=BB=20=D0=B2=D0=BE=D0=B7=D0=BC=D0=BE=D0=B6=D0=BD=D0=BE=D1=81?= =?UTF-8?q?=D1=82=D1=8C=20=D0=B2=D0=B2=D0=BE=D0=B4=D0=B0=20=D1=88=D0=B8?= =?UTF-8?q?=D1=80=D0=B8=D0=BD=D1=8B=20=D0=B3=D0=B8=D1=81=D1=82=D0=BE=D0=B3?= =?UTF-8?q?=D1=80=D0=B0=D0=BC=D0=BC=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cs-lab34.cbp | 11 +++++++++++ svg.cpp | 53 +++++++++++++++++++++++++++++++--------------------- unittest.cbp | 6 ++++++ 3 files changed, 49 insertions(+), 21 deletions(-) diff --git a/cs-lab34.cbp b/cs-lab34.cbp index 00fdc54..d794df6 100644 --- a/cs-lab34.cbp +++ b/cs-lab34.cbp @@ -36,7 +36,18 @@ + + + + + + + + diff --git a/svg.cpp b/svg.cpp index f0b699d..1b344d8 100644 --- a/svg.cpp +++ b/svg.cpp @@ -4,27 +4,31 @@ #include "svg.h" using namespace std; -const auto IMAGE_WIDTH = 400; const auto IMAGE_HEIGHT = 300; const auto TEXT_LEFT = 20; const auto TEXT_BASELINE = 20; const auto TEXT_WIDTH = 50; const auto BIN_HEIGHT = 30; const auto BLOCK_WIDTH = 10; -const auto MAX_WIDTH = IMAGE_WIDTH - TEXT_WIDTH; -void -svg_text(double left, double baseline, string text) { - cout << "" << text << ""; -} - -void -svg_rect(double x, double y, double width, double height, string stroke = "black", string fill = "aaaaaa") { - cout << "\n"; +double ask_width(size_t numbers_count) { + while (true) { + double width; + cout << "Enter width "; + cin >> width; + if (width < 70) { + cout << "Try again. It's too low.\n"; + } else if (width > 800) { + cout << "Try again. It's too high.\n"; + } else if (width < numbers_count * BLOCK_WIDTH / 3) { + cout << "Try again.\n"; + } else { + return width; + } + } } -void -svg_begin(double width, double height) { +void svg_begin(double width, double height) { cout << "\n"; cout << "\n"; } -void -svg_end() { +void svg_end() { cout << "\n"; } -void -show_histogram_svg(const vector& bins) { +void svg_text(double left, double baseline, string text) { + cout << "" << text << "\n"; +} + +void svg_rect(double x, double y, double width, double height, string stroke = "black", string fill = "aaaaaa") { + cout << "\n"; +} + +void show_histogram_svg(const vector& bins) { + const auto IMAGE_WIDTH = ask_width(bins.size()); const auto MAX_WIDTH = IMAGE_WIDTH - TEXT_WIDTH; size_t max_count = 0; - for (size_t x : bins) { - if (x > max_count) { - max_count = x; + for (size_t count : bins) { + if (count > max_count) { + max_count = count; } } if (max_count == 0) { @@ -54,7 +65,8 @@ show_histogram_svg(const vector& bins) { if (scale_factor > 1) { scale_factor = 1; } - svg_begin(400, 300); + + svg_begin(IMAGE_WIDTH, IMAGE_HEIGHT); double top = 0; for (size_t bin : bins) { double bin_width = BLOCK_WIDTH * bin * scale_factor; @@ -64,4 +76,3 @@ show_histogram_svg(const vector& bins) { } svg_end(); } - diff --git a/unittest.cbp b/unittest.cbp index 7f9621b..bffa065 100644 --- a/unittest.cbp +++ b/unittest.cbp @@ -31,6 +31,12 @@ + + + + +