CB100

Notas, resueltos y tps de la materia Algoritmos y Estructuras de Datos
Index Commits Files Refs README
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:
Asolutions/guia2/ej02.cpp | 42++++++++++++++++++++++++++++++++++++++++++
Asolutions/guia2/ej03.cpp | 39+++++++++++++++++++++++++++++++++++++++
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;
+}