CB100

Notas, resueltos y tps de la materia Algoritmos y Estructuras de Datos
Index Commits Files Refs README
commit 7a2292de87ef24f7d16cddab452f1514090572b7
parent 07df03454713c29780278fcf79dd08915b22008c
Author: Martin Kloeckner <mjkloeckner@gmail.com>
Date:   Tue, 21 May 2024 00:28:14 -0300

add `parciales/1p1C2021/`

Diffstat:
Aparciales/1p1C2021/enunciado.pdf | 0
Aparciales/1p1C2021/main.cpp | 65+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 65 insertions(+), 0 deletions(-)
diff --git a/parciales/1p1C2021/enunciado.pdf b/parciales/1p1C2021/enunciado.pdf
Binary files differ.
diff --git a/parciales/1p1C2021/main.cpp b/parciales/1p1C2021/main.cpp
@@ -0,0 +1,65 @@
+#include <iostream>
+
+int main(){
+    int *A, *C, *F, **B, H;
+    char *D, *E, G;
+
+    H = 65;
+    G = 'C';
+    F = new int[3]; // arreglo de 3 enteros
+
+    for (int i = 0; i < 3; i++) {
+        F[i] = H + i; // asigna a cada valor de F (65 + `i`)
+    }
+
+    H++;   // incrementa la variable H
+    A = F; // el puntero A apunte al primer elemento de F
+           //
+    C = new int; // se crea un nuevo entero el cual es apuntado por C
+
+    (*C) = A[1]; // se asigna el valor del primer elemento de A,
+                 // el cual apunta al primer elemento de F, a la variable que
+                 // apunta C
+
+    A = F + 2; // es equivalente a A = F[2];
+
+    // imprime el primer valor de F, el primer valor de C y A
+    std::cout << (*F) << (*C) << A[0] << std::endl;
+
+    B = &C; // *B apunta al primer elemento de C
+    A = C;  // A apunta al primer elemento de C
+
+    C = F + 1; // equivalente a C = F[1];
+
+    (**B) = H + 2;  // lo que apunta *B (primer elemento de C) ahora vale `H+2`
+
+    std::cout <<  (*C) <<  (**B) << (*A) << std::endl; 
+
+    // `cast` de la variable apuntada por A a tipo char
+    D = (char*) A;
+    E = (char*) *B;
+
+    // el primer elemento de F ahora vale `70`;
+    F[1] = 70; 
+
+    std::cout << (*D) << (*E) << (*A) << std::endl; 
+
+    E = &G; // `E` ahora apunta a la direccion de memoria de `G`
+    H++;    // se incrementa el contenido de la variable `H`
+
+    G = (char) H; // `G` ahora contiene el valor de `H` "casteado" a `char`
+
+    H++; // se incrementa el contenido de la variable `H`,
+         // esto no afecta a `G` ya que `G` no es puntero
+
+    (*A) = H; // el contenido de la variable apuntada por `A` ahora 
+              // es igual a `H`
+
+    E = D; // ahora el puntero `E` apunta a la misma direccion que `D`
+
+    std::cout << (*E)++ << (*D)++ << G << std::endl; 
+
+    delete A;
+    delete[] F;
+    return 0;
+}