diff options
Diffstat (limited to 'week03')
| -rw-r--r-- | week03/exercise01.cpp | 11 | ||||
| -rw-r--r-- | week03/exercise02-bonus.cpp | 15 | ||||
| -rw-r--r-- | week03/exercise02.cpp | 12 | ||||
| -rw-r--r-- | week03/exercise03.cpp | 19 | ||||
| -rw-r--r-- | week03/exercise04.cpp | 13 | ||||
| -rw-r--r-- | week03/exercise05.cpp | 24 | ||||
| -rw-r--r-- | week03/exercise06.cpp | 23 | ||||
| -rw-r--r-- | week03/exercise07.cpp | 15 | ||||
| -rw-r--r-- | week03/exercise08.cpp | 43 | ||||
| -rw-r--r-- | week03/exercise09.cpp | 13 | ||||
| -rw-r--r-- | week03/exercise10.cpp | 32 | ||||
| -rw-r--r-- | week03/exercise11.cpp | 29 |
12 files changed, 249 insertions, 0 deletions
diff --git a/week03/exercise01.cpp b/week03/exercise01.cpp new file mode 100644 index 0000000..1bfe5f5 --- /dev/null +++ b/week03/exercise01.cpp @@ -0,0 +1,11 @@ +#include <iostream> + +int main() { + unsigned int x, n; + std::cin >> x >> n; + unsigned int xToPowerOfN = 1; + for (int i = 0; i < n; i++) { + xToPowerOfN *= x; + } + std::cout << xToPowerOfN << std::endl; +} diff --git a/week03/exercise02-bonus.cpp b/week03/exercise02-bonus.cpp new file mode 100644 index 0000000..6b553ad --- /dev/null +++ b/week03/exercise02-bonus.cpp @@ -0,0 +1,15 @@ +#include <iostream> + +int main() { + int x; + std::cin >> x; + double step = 10.0 / x; + double length = step; + while (length <= 10) { + for (int col = 0; col < length; col++) { + std::cout << '#'; + } + std::cout << std::endl; + length += step; + } +} diff --git a/week03/exercise02.cpp b/week03/exercise02.cpp new file mode 100644 index 0000000..dd301e8 --- /dev/null +++ b/week03/exercise02.cpp @@ -0,0 +1,12 @@ +#include <iostream> + +int main() { + int x; + std::cin >> x; + for (int row = 0; row < x; row++) { + for (int col = 0; col <= row; col++) { + std::cout << '#'; + } + std::cout << std::endl; + } +} diff --git a/week03/exercise03.cpp b/week03/exercise03.cpp new file mode 100644 index 0000000..bc7879b --- /dev/null +++ b/week03/exercise03.cpp @@ -0,0 +1,19 @@ +#include <iostream> + +int main() { + char input; + std::cin >> input; + while (input != '^') { + if (('A' <= input && input <= 'Z') || + ('a' <= input && input <= 'z')) { + std::cout << "letter" << std::endl; + } + else if ('0' <= input && input <= '9') { + std::cout << "digit" << std::endl; + } + else { + std::cout << "other" << std::endl; + } + std::cin >> input; + } +} diff --git a/week03/exercise04.cpp b/week03/exercise04.cpp new file mode 100644 index 0000000..fb37716 --- /dev/null +++ b/week03/exercise04.cpp @@ -0,0 +1,13 @@ +#include <iostream> + +int main() { + int num = 65536; + int input; + for (int i = 0; i < 10; i++) { + std::cin >> input; + if (input == 0) break; + + num /= input; + } + std::cout << num << std::endl; +} diff --git a/week03/exercise05.cpp b/week03/exercise05.cpp new file mode 100644 index 0000000..0facfdb --- /dev/null +++ b/week03/exercise05.cpp @@ -0,0 +1,24 @@ +#include <iostream> + +int main() { + int countLower = 0, countUpper = 0, countDigit = 0; + char input; + std::cin >> input; + while (input != '$') { + if (input == '@') { + return 0; + } + // Грешка ли е, че тук има "if" вместо "else if"? + if ('a' <= input && input <= 'z') { + countLower++; + } + else if ('A' <= input && input <= 'Z') { + countUpper++; + } + else if ('0' <= input && input <= '9') { + countDigit++; + } + std::cin >> input; + } + std::cout << "Lowercase: " << countLower << " Uppercase: " << countUpper << " Digit: " << countDigit << std::endl; +} diff --git a/week03/exercise06.cpp b/week03/exercise06.cpp new file mode 100644 index 0000000..d257e29 --- /dev/null +++ b/week03/exercise06.cpp @@ -0,0 +1,23 @@ +#include <iostream> + +int main() { + int num = 15; + char command = '\0'; + while (true) { + std::cin >> command; + switch (command) { + case 's': std::cin >> num; break; + case 'l': num <<= 1; break; + case 'r': num >>= 1; break; + case 'q': num *= num; break; + case 'c': num *= num * num; break; + case 'm': num -= 351; break; + case 'p': num += 94; break; + case '&': return 0; + default: + std::cout << "Invalid command!" << std::endl; + continue; + } + std::cout << num << std::endl; + } +} diff --git a/week03/exercise07.cpp b/week03/exercise07.cpp new file mode 100644 index 0000000..00fd65b --- /dev/null +++ b/week03/exercise07.cpp @@ -0,0 +1,15 @@ +#include <iostream> + +int main() { + double num = 3.14159; + do { + if (num > 0) { + std::cout << "Positive" << std::endl; + } + else { + std::cout << "Negative" << std::endl; + } + + std::cin >> num; + } while (num != 0); +} diff --git a/week03/exercise08.cpp b/week03/exercise08.cpp new file mode 100644 index 0000000..736ed31 --- /dev/null +++ b/week03/exercise08.cpp @@ -0,0 +1,43 @@ +#include <iostream> + +int main() { + unsigned int time = 0; + char input; + unsigned int mode = 0; + bool twelveHour = false; + while (true) { + std::cin >> input; + switch (input) { + case 'c': + if (mode == 0) { + unsigned newHour; + std::cin >> newHour; + time = 60 * newHour + time % 60; + } + else if (mode == 1) { + unsigned newMinutes; + std::cin >> newMinutes; + time = (time - time % 60) + newMinutes; + } + mode = (mode + 1) % 3; + twelveHour = !twelveHour; + case 'f': + twelveHour = !twelveHour; + if (mode == 0) { + time -= 1; + } + case 't': + if (mode == 0) { + time = (time + 1) % 1440; // 60 minutes * 24 hours + } + if (twelveHour) { + bool pm = (time / 60) > 12; + std::cout << (time / 60) - 12 * pm << ":" << (time % 60) << " " << (pm ? "PM" : "AM") << std::endl; + } + else { + std::cout << (time / 60) << ":" << (time % 60) << std::endl; + } + break; + } + } +} diff --git a/week03/exercise09.cpp b/week03/exercise09.cpp new file mode 100644 index 0000000..a4a5008 --- /dev/null +++ b/week03/exercise09.cpp @@ -0,0 +1,13 @@ +#include <iostream> +#include <stdlib.h> +#include <ctime> + +int main() { + srand(time(NULL)); + for (int row = 0; row < 20; row++) { + for (int col = 0; col < 20; col++) { + std::cout << ((rand() % 2) ? '/' : '\\'); + } + std::cout << std::endl; + } +} diff --git a/week03/exercise10.cpp b/week03/exercise10.cpp new file mode 100644 index 0000000..0b7ef87 --- /dev/null +++ b/week03/exercise10.cpp @@ -0,0 +1,32 @@ +#include <iostream> + +int main() { + int current = 0, memory = 0, temp = 0; + std::cin >> current; + char buff; + bool printMem = false; + while (true) { + std::cin >> buff; + switch (buff) { + case 'a': memory += current; printMem = true; break; + case 's': memory -= current; printMem = true; break; + case 'm': memory = 0; printMem = true; break; + + case 'c': current = 0; std::cout << current << std::endl; continue; + } + if (printMem) { + std::cout << memory << std::endl; + printMem = false; + continue; + } + + std::cin >> temp; + switch (buff) { + case '+': current += temp; break; + case '-': current -= temp; break; + case '*': current *= temp; break; + case '/': current /= temp; break; + } + std::cout << current << std::endl; + } +} diff --git a/week03/exercise11.cpp b/week03/exercise11.cpp new file mode 100644 index 0000000..c4bf464 --- /dev/null +++ b/week03/exercise11.cpp @@ -0,0 +1,29 @@ +#include <iostream> +#include <cassert> + +int parseSensor(int s) { return ((((s=(s>>1)&(~0xF617A100))<0x54)?s|0xF01:s&0xCBFF)>>2)-21; } + +int main() { + int rawValue; + std::cin >> rawValue; + + int temp = parseSensor(rawValue); + assert(-20 <= temp); + assert(temp <= 40); + + if (30 <= temp && temp <= 40) { + std::cout << "Hot" << std::endl; + } + else if (20 <= temp && temp <= 29) { + std::cout << "Warm" << std::endl; + } + else if (11 <= temp && temp <= 19) { + std::cout << "Temperate" << std::endl; + } + else if (0 <= temp && temp <= 10) { + std::cout << "Cold" << std::endl; + } + else if (-20 <= temp && temp <= -1) { + std::cout << "Freezing" << std::endl; + } +} |
