From 13be537d1cc394b70ed5736db358053fb359edee Mon Sep 17 00:00:00 2001 From: LeottaAlberto Date: Tue, 4 Nov 2025 17:16:43 +0100 Subject: [PATCH 1/3] feat: git commit -m feat: I use maps to simplify use --- exercises/ex4.cpp | 95 +++++++++++++++++++++++------------------------ 1 file changed, 47 insertions(+), 48 deletions(-) diff --git a/exercises/ex4.cpp b/exercises/ex4.cpp index 9d93d8ac..95d3b672 100644 --- a/exercises/ex4.cpp +++ b/exercises/ex4.cpp @@ -1,56 +1,55 @@ /* Surprise me. */ -#include +#include +#include +#include -int main() -{ - int month; +const int ZERO = 48; +const int NINE = 57; +const int MAX_NUMBER = 10; +const int MINUS = 45; - /* Input month number from user */ - printf("Enter month number(1-12): "); - scanf("%d", &month); +const std::string ERROR_COLOR = "\033[31m"; +const std::string NORMAL_COLOR = "\033[0m"; - switch (month) - { - case 1: - printf("31 days"); - break; - case 2: - printf("28/29 days"); - break; - case 3: - printf("31 days"); - break; - case 4: - printf("30 days"); - break; - case 5: - printf("31 days"); - break; - case 6: - printf("30 days"); - break; - case 7: - printf("31 days"); - break; - case 8: - printf("31 days"); - break; - case 9: - printf("30 days"); - break; - case 10: - printf("31 days"); - break; - case 11: - printf("30 days"); - break; - case 12: - printf("31 days"); - break; - default: - printf("Invalid input! Please enter month number between 1-12"); - } +int insertNumber(); +bool checkStringIsNumber(std::string in); +int main(){ + int month = insertNumber(); + std::map calendary = { + {1, "31"}, + {2, "28/29"}, + {3, "31"}, + {4, "30"}, + {5, "31"}, + {6, "30"}, + {7, "31"}, + {8, "31"}, + {9, "30"}, + {10, "31"}, + {11, "30"}, + {12, "31"}, + }; + std::cout << calendary[month] << " days"; return 0; +} + +int insertNumber(){ + std::string insert; + bool isCorrect = true; + do { + if(!isCorrect) std::cout << ERROR_COLOR+("[Insert a valid input] ")+NORMAL_COLOR; + std::cout << "Insert Mounth: "; + getline(std::cin, insert); + } while(!(isCorrect = checkStringIsNumber(insert))); + return std::stoi(insert); +} + +bool checkStringIsNumber(std::string in){ + if(in.empty()) return false; + for(int i = 0; i < in.size(); i++) + if((in.at(i) < ZERO || in.at(i) > NINE) && in.at(i) != MINUS) return false; + if(stoi(in) > MAX_NUMBER) return false; + return true; } \ No newline at end of file From 04e4e68a96ec4d6c5dac813dbfeb64f55d2db548 Mon Sep 17 00:00:00 2001 From: LeottaAlberto Date: Tue, 4 Nov 2025 17:18:11 +0100 Subject: [PATCH 2/3] refactor: load old code --- exercises/ex4.cpp | 95 ++++++++++++++++++++++++----------------------- 1 file changed, 48 insertions(+), 47 deletions(-) diff --git a/exercises/ex4.cpp b/exercises/ex4.cpp index 95d3b672..9d93d8ac 100644 --- a/exercises/ex4.cpp +++ b/exercises/ex4.cpp @@ -1,55 +1,56 @@ /* Surprise me. */ -#include -#include -#include +#include -const int ZERO = 48; -const int NINE = 57; -const int MAX_NUMBER = 10; -const int MINUS = 45; +int main() +{ + int month; -const std::string ERROR_COLOR = "\033[31m"; -const std::string NORMAL_COLOR = "\033[0m"; + /* Input month number from user */ + printf("Enter month number(1-12): "); + scanf("%d", &month); -int insertNumber(); -bool checkStringIsNumber(std::string in); + switch (month) + { + case 1: + printf("31 days"); + break; + case 2: + printf("28/29 days"); + break; + case 3: + printf("31 days"); + break; + case 4: + printf("30 days"); + break; + case 5: + printf("31 days"); + break; + case 6: + printf("30 days"); + break; + case 7: + printf("31 days"); + break; + case 8: + printf("31 days"); + break; + case 9: + printf("30 days"); + break; + case 10: + printf("31 days"); + break; + case 11: + printf("30 days"); + break; + case 12: + printf("31 days"); + break; + default: + printf("Invalid input! Please enter month number between 1-12"); + } -int main(){ - int month = insertNumber(); - std::map calendary = { - {1, "31"}, - {2, "28/29"}, - {3, "31"}, - {4, "30"}, - {5, "31"}, - {6, "30"}, - {7, "31"}, - {8, "31"}, - {9, "30"}, - {10, "31"}, - {11, "30"}, - {12, "31"}, - }; - std::cout << calendary[month] << " days"; return 0; -} - -int insertNumber(){ - std::string insert; - bool isCorrect = true; - do { - if(!isCorrect) std::cout << ERROR_COLOR+("[Insert a valid input] ")+NORMAL_COLOR; - std::cout << "Insert Mounth: "; - getline(std::cin, insert); - } while(!(isCorrect = checkStringIsNumber(insert))); - return std::stoi(insert); -} - -bool checkStringIsNumber(std::string in){ - if(in.empty()) return false; - for(int i = 0; i < in.size(); i++) - if((in.at(i) < ZERO || in.at(i) > NINE) && in.at(i) != MINUS) return false; - if(stoi(in) > MAX_NUMBER) return false; - return true; } \ No newline at end of file From 0983a72a4bdc39ebbdfed3e5bf932b1c6ce2cac3 Mon Sep 17 00:00:00 2001 From: LeottaAlberto Date: Tue, 4 Nov 2025 17:32:55 +0100 Subject: [PATCH 3/3] feat: implement a random number generator --- exercises/random_number.cpp | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/exercises/random_number.cpp b/exercises/random_number.cpp index 2376baec..0bc19e3b 100644 --- a/exercises/random_number.cpp +++ b/exercises/random_number.cpp @@ -4,3 +4,23 @@ Output: The random number is: 4 */ + + +#include +#include +#include + +int randomNumber(); + +int main() { + unsigned int seed = static_cast( + std::chrono::steady_clock::now().time_since_epoch().count() + ); + std::srand(seed); + std::cout << "The random number is: " << randomNumber(); + return 0; +} + +int randomNumber() { + return std::rand() % 100; +} \ No newline at end of file