1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
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;
}
|