From ec03ec4b46ded7f67011f37a745ff400d057fbfd Mon Sep 17 00:00:00 2001 From: arzaaam Date: Sat, 10 Dec 2022 13:11:20 +0300 Subject: [PATCH 1/4] homework --- homework_01/task_01/src/main.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/homework_01/task_01/src/main.cpp b/homework_01/task_01/src/main.cpp index 0b3dcb2..db5ba7c 100644 --- a/homework_01/task_01/src/main.cpp +++ b/homework_01/task_01/src/main.cpp @@ -3,7 +3,9 @@ #include int main() { - for (const auto& word : SplitString("asdas das das fgag (adasd 1fas)")) { + for (const auto& word : SplitString( + "asdas das das fgag (adasd 1fas)") + ) { std::cout << word << "\n"; } return 0; From dfde1af3877a24d1f6072fb0e3c48ee02e64f13f Mon Sep 17 00:00:00 2001 From: arzaaam Date: Sat, 10 Dec 2022 13:13:25 +0300 Subject: [PATCH 2/4] broke compilation --- homework_01/task_01/src/main.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/homework_01/task_01/src/main.cpp b/homework_01/task_01/src/main.cpp index db5ba7c..7b89eff 100644 --- a/homework_01/task_01/src/main.cpp +++ b/homework_01/task_01/src/main.cpp @@ -6,7 +6,7 @@ int main() { for (const auto& word : SplitString( "asdas das das fgag (adasd 1fas)") ) { - std::cout << word << "\n"; + sstd::cout << word<< "\n"; } return 0; } From 66c9adc07b5c3c9035a3ecdcade6c90bf82912f3 Mon Sep 17 00:00:00 2001 From: arzaaam Date: Sat, 10 Dec 2022 13:18:24 +0300 Subject: [PATCH 3/4] some --- homework_01/task_01/src/utils.cpp | 50 ++++++++++++++++++++++++++++--- 1 file changed, 46 insertions(+), 4 deletions(-) diff --git a/homework_01/task_01/src/utils.cpp b/homework_01/task_01/src/utils.cpp index a6989bd..555b5af 100644 --- a/homework_01/task_01/src/utils.cpp +++ b/homework_01/task_01/src/utils.cpp @@ -1,7 +1,49 @@ #include "utils.hpp" -#include +#include +#include -std::vector SplitString(const std::string& data) { - return {}; -} +std::vector SplitString(const std::string& data, const char& del) { + std::vector allstrings; + std::string onestring = ""; + std::string brackets = { '(', ')' }; + bool in_brackets = 0; + for (const char& symbol : data) + { + if (symbol != del && symbol != brackets[in_brackets] && symbol != '\t') + onestring.push_back(symbol); + else + { + if (in_brackets) + { + if (symbol == brackets[in_brackets]) + { + onestring.push_back(symbol); + allstrings.push_back(onestring); + onestring = ""; + in_brackets = 0; + } + else + onestring.push_back(symbol); + } + else + { + if (symbol == brackets[in_brackets]) + { + if (onestring != "") + allstrings.push_back(onestring); + onestring = ""; + onestring.push_back(symbol); + in_brackets = 1; + } + else + { + if (onestring != "") + allstrings.push_back(onestring); + onestring = ""; + } + } + } + } + return allstrings; +} \ No newline at end of file From 4ae0ad5721cbc750a9aa1dad1ea978ab4906c9aa Mon Sep 17 00:00:00 2001 From: arzaaam Date: Fri, 16 Dec 2022 23:48:39 +0300 Subject: [PATCH 4/4] Actual_homework --- homework_01/task_01/src/main.cpp | 2 +- homework_01/task_01/src/utils.cpp | 2 ++ homework_01/task_01/src/utils.hpp | 2 +- homework_01/task_02/src/utils.cpp | 39 +++++++++++++++++++++++++++---- homework_01/task_02/src/utils.hpp | 1 + 5 files changed, 39 insertions(+), 7 deletions(-) diff --git a/homework_01/task_01/src/main.cpp b/homework_01/task_01/src/main.cpp index 7b89eff..e0bc778 100644 --- a/homework_01/task_01/src/main.cpp +++ b/homework_01/task_01/src/main.cpp @@ -6,7 +6,7 @@ int main() { for (const auto& word : SplitString( "asdas das das fgag (adasd 1fas)") ) { - sstd::cout << word<< "\n"; + std::cout << word<< "\n"; } return 0; } diff --git a/homework_01/task_01/src/utils.cpp b/homework_01/task_01/src/utils.cpp index 555b5af..993cf3e 100644 --- a/homework_01/task_01/src/utils.cpp +++ b/homework_01/task_01/src/utils.cpp @@ -45,5 +45,7 @@ std::vector SplitString(const std::string& data, const char& del) { } } } + if (onestring != "") + allstrings.push_back(onestring); return allstrings; } \ No newline at end of file diff --git a/homework_01/task_01/src/utils.hpp b/homework_01/task_01/src/utils.hpp index 539ba98..c815da5 100644 --- a/homework_01/task_01/src/utils.hpp +++ b/homework_01/task_01/src/utils.hpp @@ -4,4 +4,4 @@ #include #include -std::vector SplitString(const std::string& data); +std::vector SplitString(const std::string& data, const char& del = ' '); diff --git a/homework_01/task_02/src/utils.cpp b/homework_01/task_02/src/utils.cpp index ebc7ffc..714ce95 100644 --- a/homework_01/task_02/src/utils.cpp +++ b/homework_01/task_02/src/utils.cpp @@ -1,7 +1,36 @@ #include "utils.hpp" -#include - -int Calculate(const std::string& data) { - return 0; -} +int Calculate(const std::string& data) +{ + int i = 0; + int a = 0; + while (isdigit(data[i])&& i < data.length()) + { + a *= 10; + a += int(data[i]) - 48; + i++; + } + std::string operation = ""; + while (!isdigit(data[i]) && i < data.length()) + { + operation += data[i]; + i++; + } + int b = 0; + while (isdigit(data[i]) && i < data.length()) + { + b *= 10; + b += int(data[i]) - 48; + i++; + } + if (operation == "+") + return a + b; + else if (operation == "-") + return a - b; + else if (operation == "*") + return a * b; + else if (operation == "/") + return a / b; + else + return 36606; +} \ No newline at end of file diff --git a/homework_01/task_02/src/utils.hpp b/homework_01/task_02/src/utils.hpp index f1bceeb..c5ece52 100644 --- a/homework_01/task_02/src/utils.hpp +++ b/homework_01/task_02/src/utils.hpp @@ -5,3 +5,4 @@ #include int Calculate(const std::string& data); +