From 52b429b53503a69e14ab309777863e04d4075737 Mon Sep 17 00:00:00 2001 From: "Alice (KanishchevYA)" Date: Fri, 9 Jun 2023 10:19:17 +0300 Subject: [PATCH] koko --- .gitignore | 7 +-- histogram.cpp | 31 ++++++++---- histogram.h | 8 +--- histogram.h.save-failed | 15 ------ histogram_internal.h | 9 ++-- main.cpp | 103 +++++++++++++++++++++++----------------- unittest.cpp | 1 - 7 files changed, 91 insertions(+), 83 deletions(-) delete mode 100644 histogram.h.save-failed diff --git a/.gitignore b/.gitignore index 4292d39..76f7fbb 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ -\bin -\obj -\*.layout +/bin +/Obj +/*.layout +/curl diff --git a/histogram.cpp b/histogram.cpp index 32cae6e..d85f6ed 100644 --- a/histogram.cpp +++ b/histogram.cpp @@ -3,17 +3,28 @@ using namespace std; +void find_minmax(const vector& numbers, double& min, double& max) +{ +min = numbers[0]; +for (auto i = 0; i < numbers.size(); i++) +{ +if (numbers[i] < min) +{ +min = numbers[i]; +} +} + +max = numbers[0]; +for (auto i = 0; i < numbers.size(); i++) +{ +if (numbers[i] > max) +{ +max = numbers[i]; +} +} + +} -void -static find_minmax(const vector& numbers, double& min, double& max) { - min = numbers[0]; - max = numbers[0]; - for(size_t i=0; i< numbers.size(); i++){ - if(min > numbers[i]) - min = numbers[i]; - if(max < numbers[i]) - max = numbers[i]; -}} vector make_histogram(vector& numbers, size_t bin_count) { diff --git a/histogram.h b/histogram.h index 5838a07..4a65227 100644 --- a/histogram.h +++ b/histogram.h @@ -1,13 +1,9 @@ #ifndef HISTOGRAM_H_INCLUDED #define HISTOGRAM_H_INCLUDED -#include - -std::vector - -make_histogram(const std::vector& numbers, size_t bin_count); - +#include +std::vector make_histogram(std::vector& numbers, size_t bin_count); #endif // HISTOGRAM_H_INCLUDED diff --git a/histogram.h.save-failed b/histogram.h.save-failed deleted file mode 100644 index 182036d..0000000 --- a/histogram.h.save-failed +++ /dev/null @@ -1,15 +0,0 @@ -#ifndef HISTOGRAM_H_INCLUDED -#define HISTOGRAM_H_INCLUDED -#include - -std::vector - -make_histogram(const std::vector& numbers, size_t bin_count): - - -find_minmax(const std::vector& numbers, double& min, double& max): - - - -#endif // HISTOGRAM_H_INCLUDED - diff --git a/histogram_internal.h b/histogram_internal.h index 4a65227..430454e 100644 --- a/histogram_internal.h +++ b/histogram_internal.h @@ -1,9 +1,8 @@ -#ifndef HISTOGRAM_H_INCLUDED -#define HISTOGRAM_H_INCLUDED +#ifndef HISTOGRAM_INTERNAL_H_INCLUDED +#define HISTOGRAM_INTERNAL_H_INCLUDED #include -std::vector make_histogram(std::vector& numbers, size_t bin_count); - -#endif // HISTOGRAM_H_INCLUDED +void find_minmax(const std::vector& numbers, double& min, double& max); +#endif // HISTOGRAM_INTERNAL_H_INCLUDED diff --git a/main.cpp b/main.cpp index 4f0b6ac..e634cf4 100644 --- a/main.cpp +++ b/main.cpp @@ -1,66 +1,83 @@ #include #include +#inclide +#invlude +#include "histogram.h" +#include "text.h" #include - -using namespace std; +#include "histogram_internal.h" +#include +#include +#include "svg.h" +using namespace std; +struct Input +{ +vector numbers; +size_t bin_count{}; +}; -int main() +Input +input_data(istream &tin, bool promt) { +Input in; size_t number_count; -cerr << "Enter number count: "; //количество чисел -cin >> number_count; - -vector numbers(number_count); //векток с числами +if (promt) +{ + cerr << "enter number count"; +} +tin>> number_count; -for(size_t i=0; i < number_count; i++) //заполнение вектора - cin >> numbers[i]; -size_t bin_count; //количество корзин -cerr << "Enter bin count: "; -cin >> bin_count; -vector bins(bin_count); +in.numbers.resize(number_count); +for (size_t i = 0; i < number_count; i++) +{ +in>> in.numbers[i]; +} -double min; -min = numbers[0]; -for (size_t i = 1; i < numbers.size(); i++) - if (numbers[i] < min) - min = numbers[i]; +if (promt) +{ + cerr<<"enter bin count:"; +} +in >>in.bin_count; +return in; +} -double max; -max = numbers[0]; -for (size_t i = 1; i < numbers.size(); i++) - if (numbers[i] > max) - max = numbers[i]; -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; +int main(int arg, char* argv[]) +{ + if (arg > 1) + { + CURL* curl = curl_easy_init(); + if(curl) + { + CURLcode res; + curl_easy_setopt(curl,CURLOPT_URL,argv[1]); + res = curl_easy_perform(curl); + curl_easy_cleanup(curl); + if (res != CURE_OK) + { + cout<>arr[i]; } - - return 0; +auto bins = make_histogram(in.numbers, in.bin_count); +show_histogram_svg(bins); +return 0; } diff --git a/unittest.cpp b/unittest.cpp index 07bb4c2..f414b72 100644 --- a/unittest.cpp +++ b/unittest.cpp @@ -26,4 +26,3 @@ find_minmax({-2, -1}, min, max); CHECK(min == -2); CHECK(max == -1); } -