Summary Files Commits Branches @commit @diff @stats
path: root / Year 1 / Object-oriented Programming / Solutions Sem. 01 / exercise02.cpp
diff options
context:
space:
mode:
1 files changed, 36 insertions, 0 deletions
-rw-r--r--Year 1/Object-oriented Programming/Solutions Sem. 01/exercise02.cpp36
diff --git a/Year 1/Object-oriented Programming/Solutions Sem. 01/exercise02.cpp b/Year 1/Object-oriented Programming/Solutions Sem. 01/exercise02.cpp
new file mode 100644
index 0000000..78b7616
--- /dev/null
+++ b/Year 1/Object-oriented Programming/Solutions Sem. 01/exercise02.cpp
@@ -0,0 +1,36 @@
+#include <iostream>
+
+struct Rational {
+ int m;
+ int n;
+};
+
+Rational sum(Rational a, Rational b) {
+ int divisor = a.n * b.n;
+ return { a.m * divisor + b.m * divisor, divisor };
+}
+
+Rational sub(Rational a, Rational b) {
+ b.m *= -1;
+ return sum(a, b);
+}
+
+Rational mult(Rational a, Rational b) {
+ return { a.m * b.m, a.n * b.n };
+}
+
+Rational div(Rational a, Rational b) {
+ int temp = b.m;
+ b.m = b.n;
+ b.n = temp;
+
+ return mult(a, b);
+}
+
+bool isValid(Rational a) {
+ return a.n != 0;
+}
+
+bool isWholeNumber(Rational a) {
+ return a.n % a.m == 0;
+}