From 72c1e547fe7c6d7d8dbae3d2ca73f07602bfc52d Mon Sep 17 00:00:00 2001 From: KalenskovaDA Date: Mon, 2 Jun 2025 02:44:58 +0300 Subject: [PATCH 1/4] =?UTF-8?q?code:=20=D0=B2=D0=B2=D0=BE=D0=B4=20=D0=B8?= =?UTF-8?q?=D0=B7=20=D0=BF=D1=80=D0=BE=D0=B8=D0=B7=D0=B2=D0=BE=D0=BB=D1=8C?= =?UTF-8?q?=D0=BD=D0=BE=D0=B3=D0=BE=20=D0=BF=D0=BE=D1=82=D0=BE=D0=BA=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 7112 | 8 -------- 7112.pub | 1 - laba1.depend | 2 +- main.cpp | 39 +++++++++++++++++---------------------- 4 files changed, 18 insertions(+), 32 deletions(-) delete mode 100644 7112 delete mode 100644 7112.pub diff --git a/7112 b/7112 deleted file mode 100644 index fce8b58..0000000 --- a/7112 +++ /dev/null @@ -1,8 +0,0 @@ ------BEGIN OPENSSH PRIVATE KEY----- -b3BlbnNzaC1rZXktdjEAAAAACmFlczI1Ni1jdHIAAAAGYmNyeXB0AAAAGAAAABAqjR8VKL -iXqwsebTTkYzLtAAAAGAAAAAEAAAAzAAAAC3NzaC1lZDI1NTE5AAAAIAMVcWMSwkHQ796Q -v12uM1/L9QSqCC1guyCtw8nZgqYaAAAAoAX6y1g+sl014TmIQ7zX/gv2ngRTEKBcujJq8O -UqkMywAQC10aGheZuBego39vP3S84Tf+kKNzxIUWu+kRpbgi4x2bIc5/kYbYh76DGK+o9z -zCGU6ju3j1fNVHknGYkR0aw2SSu9/Q8GjU+xMd5Rdqj567rbHY/w7Qt8ZYImEKVvYoO/6G -BenNIJk2c3S/lY26lh51GG9DF9PKMrnWNhZIY= ------END OPENSSH PRIVATE KEY----- diff --git a/7112.pub b/7112.pub deleted file mode 100644 index 2db8a5b..0000000 --- a/7112.pub +++ /dev/null @@ -1 +0,0 @@ -ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAMVcWMSwkHQ796Qv12uM1/L9QSqCC1guyCtw8nZgqYa aleks@DESKTOP-3A8L66V diff --git a/laba1.depend b/laba1.depend index c01c32e..80f48da 100644 --- a/laba1.depend +++ b/laba1.depend @@ -1,5 +1,5 @@ # depslib dependency file v1.0 -1748812442 source:c:\users\aleks\onedrive\Рабочий стол\laba1\main.cpp +1748821392 source:c:\users\aleks\onedrive\Рабочий стол\laba1\main.cpp "histogram.h" diff --git a/main.cpp b/main.cpp index 1eabfad..edbcf55 100644 --- a/main.cpp +++ b/main.cpp @@ -13,38 +13,33 @@ struct Input { }; // Ввод данных -Input input_data() { - Input in; + + +Input input_data(istream& in) { // Убран параметр prompt + Input data; size_t number_count; - cerr << "Enter number count: "; - cin >> number_count; - in.numbers.resize(number_count); + cerr << "Enter the number of elements: "; + in >> number_count; + + data.numbers.resize(number_count); - cerr << "Enter numbers: "; + cerr << "\nEnter " << number_count << " elements:" << endl; for (size_t i = 0; i < number_count; i++) { - cin >> in.numbers[i]; + in >> data.numbers[i]; } - cerr << "Enter bin count: "; - cin >> in.bin_count; + cerr << "Enter the number of bins: "; + in >> data.bin_count; - return in; + return data; } -// Поиск минимума и максимума - - -// Расчёт гистограммы - - -// Вывод гистограммы - - -// Основная функция int main() { - auto in = input_data(); - auto bins = make_histogram(in.numbers, in.bin_count); + Input data = input_data(cin); // Теперь вызывается без параметра prompt + + auto bins = make_histogram(data.numbers, data.bin_count); show_histogram_svg(bins); + return 0; } From 82a8d9f469faf1f1cedc579f9ad25bd949964e2d Mon Sep 17 00:00:00 2001 From: KalenskovaDA Date: Mon, 2 Jun 2025 02:52:02 +0300 Subject: [PATCH 2/4] =?UTF-8?q?code:=20=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BF=D0=B0=D1=80=D0=B0=D0=BC?= =?UTF-8?q?=D0=B5=D1=82=D1=80=D0=B0=20prompt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.cpp | 29 ++++++++++++----------------- 1 file changed, 12 insertions(+), 17 deletions(-) diff --git a/main.cpp b/main.cpp index edbcf55..1d91b56 100644 --- a/main.cpp +++ b/main.cpp @@ -14,31 +14,26 @@ struct Input { // Ввод данных - -Input input_data(istream& in) { // Убран параметр prompt - Input data; +Input input_data(istream& in, bool prompt = false) { + Input in_data; size_t number_count; - - cerr << "Enter the number of elements: "; + if (prompt) cerr << "Enter number count: "; in >> number_count; - - data.numbers.resize(number_count); - - cerr << "\nEnter " << number_count << " elements:" << endl; + in_data.numbers.resize(number_count); + if (prompt && number_count > 0) cerr << "Enter numbers: "; for (size_t i = 0; i < number_count; i++) { - in >> data.numbers[i]; + in >> in_data.numbers[i]; } - - cerr << "Enter the number of bins: "; - in >> data.bin_count; - - return data; + if (prompt) cerr << "Enter bin count: "; + in >> in_data.bin_count; + return in_data; } int main() { - Input data = input_data(cin); // Теперь вызывается без параметра prompt + // Читаем данные с консоли с выводом подсказок + Input in_data = input_data(cin, true); // true - подсказки выводятся - auto bins = make_histogram(data.numbers, data.bin_count); + auto bins = make_histogram(in_data.numbers, in_data.bin_count); show_histogram_svg(bins); return 0; From 8296a5cc4eb11ba22892834beba99b4e26af7dd4 Mon Sep 17 00:00:00 2001 From: KalenskovaDA Date: Mon, 2 Jun 2025 11:09:54 +0300 Subject: [PATCH 3/4] =?UTF-8?q?code:=20=D1=83=D1=81=D1=82=D0=B0=D0=BD?= =?UTF-8?q?=D0=BE=D0=B2=D0=BA=D0=B0=20=D0=B4=D0=B8=D0=BD=D0=B0=D0=BC=D0=B8?= =?UTF-8?q?=D1=87=D0=B5=D1=81=D0=BA=D0=B8=D1=85=20=D0=B1=D0=B8=D0=B1=D0=BB?= =?UTF-8?q?=D0=B8=D0=BE=D1=82=D0=B5=D0=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 + laba1.depend | 56 ++++++++++++++++++++++++++++++++++++++++++++++++- main.cpp | 6 ++++++ unittest.depend | 7 ++++--- 4 files changed, 66 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index 4c7473d..0a4fc6b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ /bin /obj +/curl diff --git a/laba1.depend b/laba1.depend index 80f48da..3ff45ec 100644 --- a/laba1.depend +++ b/laba1.depend @@ -1,10 +1,11 @@ # depslib dependency file v1.0 -1748821392 source:c:\users\aleks\onedrive\Рабочий стол\laba1\main.cpp +1748850108 source:c:\users\aleks\onedrive\Рабочий стол\laba1\main.cpp "histogram.h" "text.h" "svg.h" + 1748386910 c:\users\aleks\onedrive\Рабочий стол\laba1\histogram.h @@ -78,3 +79,56 @@ "histogram_internal.h" +1748849797 c:\users\aleks\onedrive\Рабочий стол\laba1\curl\include\curl\curl.h + "curlver.h" + "system.h" + + + + + + + + + + + "easy.h" + "multi.h" + "urlapi.h" + "options.h" + "header.h" + "websockets.h" + "mprintf.h" + "typecheck-gcc.h" + +1748849797 c:\users\aleks\onedrive\Рабочий стол\laba1\curl\include\curl\curlver.h + +1748849797 c:\users\aleks\onedrive\Рабочий стол\laba1\curl\include\curl\system.h + + + + + + + +1748849797 c:\users\aleks\onedrive\Рабочий стол\laba1\curl\include\curl\easy.h + +1748849797 c:\users\aleks\onedrive\Рабочий стол\laba1\curl\include\curl\multi.h + "curl.h" + +1748849797 c:\users\aleks\onedrive\Рабочий стол\laba1\curl\include\curl\urlapi.h + "curl.h" + +1748849797 c:\users\aleks\onedrive\Рабочий стол\laba1\curl\include\curl\options.h + +1748849797 c:\users\aleks\onedrive\Рабочий стол\laba1\curl\include\curl\header.h + +1748849797 c:\users\aleks\onedrive\Рабочий стол\laba1\curl\include\curl\websockets.h + +1748849797 c:\users\aleks\onedrive\Рабочий стол\laba1\curl\include\curl\mprintf.h + + + "curl.h" + +1748849797 c:\users\aleks\onedrive\Рабочий стол\laba1\curl\include\curl\typecheck-gcc.h + diff --git a/main.cpp b/main.cpp index 1d91b56..9ccb94a 100644 --- a/main.cpp +++ b/main.cpp @@ -3,6 +3,9 @@ #include "histogram.h" #include "text.h" #include "svg.h" +#include + + using namespace std; @@ -30,6 +33,9 @@ Input input_data(istream& in, bool prompt = false) { } int main() { +curl_global_init(CURL_GLOBAL_ALL); + + // Читаем данные с консоли с выводом подсказок Input in_data = input_data(cin, true); // true - подсказки выводятся diff --git a/unittest.depend b/unittest.depend index f345164..60830e1 100644 --- a/unittest.depend +++ b/unittest.depend @@ -1,6 +1,7 @@ # depslib dependency file v1.0 -1748392121 source:c:\users\aleks\onedrive\Рабочий стол\laba1\histogram.cpp +1748808114 source:c:\users\aleks\onedrive\Рабочий стол\laba1\histogram.cpp "histogram.h" + "histogram_internal.h" 1748386910 c:\users\aleks\onedrive\Рабочий стол\laba1\histogram.h @@ -58,11 +59,11 @@ 1748392232 c:\users\aleks\onedrive\Рабочий стол\laba1\histogram_internal.h -1748802937 source:c:\users\aleks\onedrive\Рабочий стол\laba1\svg.cpp +1748811805 source:c:\users\aleks\onedrive\Рабочий стол\laba1\svg.cpp "svg.h" -1748730522 c:\users\aleks\onedrive\Рабочий стол\laba1\svg.h +1748810901 c:\users\aleks\onedrive\Рабочий стол\laba1\svg.h From 40cc4f7fe14afe3358e7b9d7bc3578a9c995ebd7 Mon Sep 17 00:00:00 2001 From: KalenskovaDA Date: Mon, 2 Jun 2025 13:40:07 +0300 Subject: [PATCH 4/4] =?UTF-8?q?code:=20=D0=B8=D1=82=D0=BE=D0=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.cpp | 75 +++++++++++++++++++++++++++++++++++++++----------------- 1 file changed, 53 insertions(+), 22 deletions(-) diff --git a/main.cpp b/main.cpp index 9ccb94a..6e34731 100644 --- a/main.cpp +++ b/main.cpp @@ -4,43 +4,74 @@ #include "text.h" #include "svg.h" #include - - +#include +#include using namespace std; - - struct Input { - std::vector numbers; + vector numbers; size_t bin_count; }; -// Ввод данных - -Input input_data(istream& in, bool prompt = false) { - Input in_data; +Input input_data(istream& in, bool prompt) { + Input inp; size_t number_count; - if (prompt) cerr << "Enter number count: "; + if (prompt){ + cerr << "Enter number count: "; + } in >> number_count; - in_data.numbers.resize(number_count); - if (prompt && number_count > 0) cerr << "Enter numbers: "; + inp.numbers.resize(number_count); + if (prompt){ + cerr << "Enter numbers: "; + } for (size_t i = 0; i < number_count; i++) { - in >> in_data.numbers[i]; + in >> inp.numbers[i]; + } + + if (prompt) { + cerr << "Enter bin count: "; } - if (prompt) cerr << "Enter bin count: "; - in >> in_data.bin_count; - return in_data; + in >> inp.bin_count; + return inp; } -int main() { -curl_global_init(CURL_GLOBAL_ALL); +size_t +write_data(void* items, size_t item_size, size_t item_count, void* ctx) { + stringstream* buffer = reinterpret_cast(ctx); + size_t data_size = item_size * item_count; + (*buffer).write(reinterpret_cast(items), data_size); + return data_size; +} +Input +download(const string& adress){ + stringstream buffer; + CURL* curl = curl_easy_init(); + if(curl) { - // Читаем данные с консоли с выводом подсказок - Input in_data = input_data(cin, true); // true - подсказки выводятся + CURLcode res; + curl_easy_setopt(curl, CURLOPT_URL, adress.c_str()); + curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_data); + curl_easy_setopt(curl, CURLOPT_WRITEDATA, &buffer); + res = curl_easy_perform(curl); + if (res != CURLE_OK){ + cerr << curl_easy_strerror(res); + exit(1); + } + curl_easy_cleanup(curl); + } - auto bins = make_histogram(in_data.numbers, in_data.bin_count); - show_histogram_svg(bins); + return input_data(buffer, false); +} +int main(int argc, char* argv[]) { + Input input; + if (argc > 1) { + input = download(argv[1]); + } else { + input = input_data(cin, true); + } + auto bins = make_histogram(input.numbers, input.bin_count); + show_histogram_svg(bins); return 0; }