commit 28a8e4e07816ab04d77ea4e645fdcc9a2244f997
parent 88025411727ed619a9940775f09ddb7cbea5fe64
Author: Martin Kloeckner <mjkloeckner@gmail.com>
Date: Sat, 30 Mar 2024 18:35:59 -0300
Add solutions for problem 2 and 3
Diffstat:
2 files changed, 81 insertions(+), 0 deletions(-)
diff --git a/solutions/guia2/ej02.cpp b/solutions/guia2/ej02.cpp
@@ -0,0 +1,42 @@
+#include <iostream>
+
+int main(void) {
+ int a, b, *p, **pp;
+ char c, d, *q;
+
+ a = 1;
+ b = 2;
+ c = 'A';
+ d = 'E';
+
+ std::cout << " &a: " << &a << std::endl;
+ std::cout << " &b: " << &b << std::endl;
+ std::cout << " &c: " << &c << std::endl;
+ std::cout << " &d: " << &d << std::endl;
+
+ p = &a;
+ *p = 87;
+
+ q = &c;
+ *q = d;
+
+ std::cout << " p: " << p << std::endl;
+ std::cout << " &p: " << &p << std::endl;
+ std::cout << " *p: " << *p << std::endl;
+
+ std::cout << " q: " << q << std::endl;
+ std::cout << " &q: " << &q << std::endl;
+ std::cout << " *q: " << *q << std::endl;
+
+ q = (char *)p;
+ pp = &p;
+ *pp = &b;
+ std::cout << " p: " << p << std::endl;
+
+ std::cout << " pp: " << pp << std::endl;
+ std::cout << " &pp: " << &pp << std::endl;
+ std::cout << " *pp: " << *pp << std::endl;
+ std::cout << "**pp: " << **pp << std::endl;
+
+ return 0;
+}
diff --git a/solutions/guia2/ej03.cpp b/solutions/guia2/ej03.cpp
@@ -0,0 +1,39 @@
+#include <iostream>
+
+// by reference
+void numbers_swap_r(int &a, int &b) {
+ a += b;
+ b = a - b;
+ a -= b;
+}
+
+
+// by pointers
+void numbers_swap_p(int *a, int *b) {
+ *a += *b;
+ *b = *a - *b;
+ *a -= *b;
+}
+
+void numbers_print(int a, int b) {
+ std::cout << "a: " << a << std::endl;
+ std::cout << "b: " << b << std::endl;
+}
+
+int main (void) {
+ int a, b;
+
+ a = 1;
+ b = 2;
+
+ numbers_print(a, b);
+ std::cout << "// Swap by reference" << std::endl;
+ numbers_swap_r(a, b);
+ numbers_print(a, b);
+
+ std::cout << "// Swap by pointer" << std::endl;
+ numbers_swap_p(&a, &b);
+ numbers_print(a, b);
+
+ return 0;
+}