diff options
| author | Carlos Maiolino <[email protected]> | 2025-07-10 22:24:20 +0200 |
|---|---|---|
| committer | Carlos Maiolino <[email protected]> | 2025-07-10 22:24:20 +0200 |
| commit | 869e68986aa8f69af6e7842260a68d1e5c6f796f (patch) | |
| tree | 63b6b5ffc3d19414233d4629a533c0d9bf3cbf72 /CPP/Basics/flow.cpp | |
| parent | 20834dcc57537cd95260a4a22f5d91a027adfd35 (diff) | |
Add a bunch of code
Signed-off-by: Carlos Maiolino <[email protected]>
Diffstat (limited to 'CPP/Basics/flow.cpp')
| -rw-r--r-- | CPP/Basics/flow.cpp | 117 |
1 files changed, 117 insertions, 0 deletions
diff --git a/CPP/Basics/flow.cpp b/CPP/Basics/flow.cpp new file mode 100644 index 0000000..82b7062 --- /dev/null +++ b/CPP/Basics/flow.cpp @@ -0,0 +1,117 @@ +#include <iostream> +#include <vector> + +void ifs(void) { + int a = 1024; + bool flag = false; + char letter = 'E'; + + if (a > 1000) + std::cout << "Warning: over 1k" << std::endl; + + if (a % 2) + std::cout << "a is odd" << std::endl; + else + std::cout << "a is even" << std::endl; + + std::cout << "The letter " << letter << " is "; + + if (letter != 'a' && letter != 'e' && letter != 'i' && + letter != 'o' && letter != 'u' && + letter != 'A' && letter != 'E' && letter != 'I' && + letter != 'O' && letter != 'U') + std::cout << "not "; + std::cout << "a vowel" << std::endl; + + if (flag) + std::cout << "The flag is true." << std::endl; +} + +void switches() { + + float num1, num2, result; + char op; + + std::cout << "Enter operand 1: " << std::endl; + std::cin >> num1; + std::cout << "Enter operand 2: " << std::endl; + std::cin >> num2; + std::cout << "Choose operation: + - * /: " << std::endl; + std::cin >> op; + + switch (op) { + case '+': + result = num1 + num2; + break; + case '-': + result = num1 - num2; + break; + case '*': + result = num1 * num2; + break; + case '/': + result = num1 / num2; + break; + default: + std::cout << "Invalid Operation." << std::endl; + return; + } + std::cout << "The result is: " << result << std::endl; +} + +void LWhile() { + + + // Declare and initialize a vector and an iterator + // in this case iterator is a type inside vector class + std::vector<int> numbers = {12, 25, 31, 55, 24, 32, 99}; + std::vector<int>::iterator ptr = numbers.begin(); + + // We can use auto type to avoid the mess up above: + auto ptr_auto = numbers.begin(); + int i = 0; + + while (ptr != numbers.end()) { + std::cout << *ptr << " "; + ptr = std::next(ptr, 1); + } + std::cout << std::endl; + do { + std::cout << numbers[i] << ":" << *ptr_auto << " "; + i++; + ptr_auto = std::next(ptr_auto, 1); + }while(i < numbers.size()); + std::cout << std::endl; +} + +void LFor() { + std::vector<int> numbers = {12, 25, 31, 55, 24, 32, 99}; + std::vector<int>::iterator ptr = numbers.begin(); + float avg = 0; + + for(int i = 0; i < numbers.size() ; i++) + avg += numbers[i]; + + avg /= numbers.size(); + std::cout << "The average is: " << avg << std::endl; + + // C++11 Iterator based for + avg = 0; + + // The iterator will copy the data from each element within the vector, + // to the iterator variable (iter) here. We may want to access by + // reference instead of copying it + // READ AS: for each iter in numbers + for(int iter : numbers) + avg += iter; + avg /= numbers.size(); + std::cout << "The average is: " << avg << std::endl; +} + +int main(void) { + ifs(); + switches(); + LWhile(); + LFor(); + return 0; +} |
