diff --git a/lab001.cbp b/lab001.cbp
index 6bf1e86..2d4f1da 100644
--- a/lab001.cbp
+++ b/lab001.cbp
@@ -32,6 +32,10 @@
+
+
+
+
diff --git a/lab001.layout b/lab001.layout
index d0af9ce..cf1236a 100644
--- a/lab001.layout
+++ b/lab001.layout
@@ -2,9 +2,19 @@
-
+
-
+
+
+
+
+
+
+
+
+
+
+
diff --git a/main.cpp b/main.cpp
index f9d40e3..cd9b02f 100644
--- a/main.cpp
+++ b/main.cpp
@@ -1,6 +1,6 @@
#include
#include
-#include // Для std::min и std::max (если вы еще не включили)
+#include "histogram.h"
using namespace std;
@@ -28,73 +28,14 @@ input_data() {
return in;
}
-void
-find_minmax(const vector& numbers, double& min, double& max) {
- min = numbers[0];
- max = numbers[0];
- for (double x : numbers) {
- if (x < min) {
- min = x;
- }
- if (x > max) {
- max = x;
- }
- }
-}
-
-vector
-make_histogram(const vector& numbers, size_t bin_count) {
- double min, max;
- find_minmax(numbers, min, max);
-
- vector bins(bin_count);
- double bin_size = (max - min) / bin_count;
-
- 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& bins, size_t max_count, size_t MAX_ASTERISK) { // Убрали bin_count т.к. есть bins.size()
- for (size_t i = 0; i < bins.size(); i++) {
- if (bins[i] < 10) {
- cout << " " << bins[i] << "|";
- } else if (bins[i] < 100) {
- cout << " " << bins[i] << "|";
- } else if (bins[i] < 1000) {
- cout << bins[i] << "|";
- }
+}
- size_t height;
- if (max_count <= MAX_ASTERISK) {
- height = bins[i];
- } else {
- height = MAX_ASTERISK * (static_cast(bins[i]) / max_count);
- }
- for (size_t j = 0; j < height; j++) {
- cout << "*";
- }
- cout << endl;
- }
-}
-int
-main() {
+int main()
+{
const size_t SCREEN_WIDTH = 80;
const size_t MAX_ASTERISK = SCREEN_WIDTH - 3 - 1;
@@ -102,12 +43,12 @@ main() {
auto bins = make_histogram(in.numbers, in.bin_count);
size_t max_count = bins[0];
- for (size_t i = 0; i < bins.size(); i++) { // Исправили цикл на bins.size()
+ for (size_t i = 0; i < bins.size(); i++) {
if (bins[i] > max_count) {
max_count = bins[i];
}
}
- show_histogram_text(bins, max_count, MAX_ASTERISK);
+ show_histogram_text(bins, max_count, MAX_ASTERISK, in.bin_count);
return 0;
}