diff --git a/Roadmap/07 - PILAS Y COLAS/arduino/santyjL.ino b/Roadmap/07 - PILAS Y COLAS/arduino/santyjL.ino new file mode 100644 index 0000000000..5caceb051d --- /dev/null +++ b/Roadmap/07 - PILAS Y COLAS/arduino/santyjL.ino @@ -0,0 +1,107 @@ +int cola[5]; // Declara una cola de enteros +int pila[5]; // Declara una pila de tamaño 5 +int frente = -1; // Inicializa el índice del frente de la cola +int final = -1; // Inicializa el índice del final de la cola +int top = -1; // Inicializa el índice superior de la pila + +void setup() { + Serial.begin(9600); + + // Simula la adición de datos a la pila + for (int i = 1; i <= 5; i++) { + if (!pilaLlena()) { + push(i * 10); // Agrega valores multiplicados por 10 a la pila + Serial.println("Añadido a la pila: " + String(i * 10)); + } else { + Serial.println("La pila está llena. No se puede añadir más."); + } + } + + Serial.println("------------------"); + + // Simula la adición de datos a la cola + for (int i = 1; i <= 5; i++) { + if (!colaLlena()) { + encolar(i * 5); // Agrega valores multiplicados por 5 a la cola + Serial.println("Añadido a la cola: " + String(i * 5)); + } else { + Serial.println("La cola está llena. No se puede añadir más."); + } + } + + Serial.println("------------------"); + + // Simula la eliminación de elementos de la pila + while (!pilaVacia()) { + int valor = pop(); + Serial.println("Eliminado de la pila: " + String(valor)); + } + + Serial.println("------------------"); + + // Simula la eliminación de elementos de la cola + while (!colaVacia()) { + int valor = desencolar(); + Serial.println("Eliminado de la cola: " + String(valor)); + } +} + +void loop() { + // El loop está vacío ya que la lógica principal se ejecutó en el setup +} + +void push(int dato) { + if (!pilaLlena()) { + top++; + pila[top] = dato; + } +} + +int pop() { + if (!pilaVacia()) { + int valor = pila[top]; + top--; + return valor; + } + return -1; // Valor de error (pila vacía) +} + +bool pilaLlena() { + return top == 4; // Tamaño de la pila - 1 +} + +bool pilaVacia() { + return top == -1; +} + +void encolar(int dato) { + if (!colaLlena()) { + if (frente == -1) { + frente = 0; + } + final = (final + 1) % 5; + cola[final] = dato; + } +} + +int desencolar() { + if (!colaVacia()) { + int valor = cola[frente]; + if (frente == final) { + frente = -1; + final = -1; + } else { + frente = (frente + 1) % 5; + } + return valor; + } + return -1; // Valor de error (cola vacía) +} + +bool colaLlena() { + return (frente == 0 && final == 4) || (frente == final + 1); +} + +bool colaVacia() { + return frente == -1; +} diff --git a/Roadmap/08 - CLASES/python/santyjL.py b/Roadmap/08 - CLASES/python/santyjL.py new file mode 100644 index 0000000000..8f5a6949c1 --- /dev/null +++ b/Roadmap/08 - CLASES/python/santyjL.py @@ -0,0 +1,172 @@ +#08 CLASES +""" +/* + * EJERCICIO: + * Explora el concepto de clase y crea un ejemplo que implemente un inicializador, + * atributos y una función que los imprima (teniendo en cuenta las posibilidades + * de tu lenguaje). + * Una vez implementada, créala, establece sus parámetros, modifícalos e imprímelos + * utilizando su función. + * + * DIFICULTAD EXTRA (opcional): + * Implementa dos clases que representen las estructuras de Pila y Cola (estudiadas + * en el ejercicio número 7 de la ruta de estudio) + * - Deben poder inicializarse y disponer de operaciones para añadir, eliminar, + * retornar el número de elementos e imprimir todo su contenido. + */ +""" + + +class Iphone: + def __init__(self) : + self.nombre = "iPhone15" + self.camara = "12MP" + self.almacenamiento = "265GB" + self.ram = "8GB" + + def presentacion(self): + return f""" + Nombre: {self.nombre} + Camara: {self.camara} + Almacenamiento: {self.almacenamiento} + Ram: {self.ram} + """ + +class Telefono: + def __init__(self , nombre :str , camara : str , almacenamiento : str , ram : str ) -> str: + self.nombre = nombre + self.camara = camara + self.almacenamiento = almacenamiento + self.ram = ram + + def presentacion(self): + return f""" + Nombre: {self.nombre} + Camara: {self.camara} + Almacenamiento: {self.almacenamiento} + Ram: {self.ram} + """ + +iphone15 = Iphone() +print(iphone15.presentacion()) + +Sansung_S23 = Telefono("Sansung S23", "200MP" ,"256GB" , "8GB" ) +print(Sansung_S23.presentacion()) + +### Extra +class Pila: + def __init__(self): + self.pila : list = [] + + def añadir (self , elemento_a_añadir): + self.pila.append(elemento_a_añadir) + + def eliminar(self): + del self.pila[-1] + + def ultimo_elemento(self): + print(self.pila[-1]) + + def pila_actual(self): + print(self.pila) + + +class Cola: + def __init__(self) : + self.cola : list = [] + + def añadir(self , elemento_a_añadir): + self.cola.append(elemento_a_añadir) + print("se añadio el elemento") + + def eliminar(self): + del self.cola[0] + print("se elimino el elemento") + + def primer_elemento(self): + print(self.cola[0]) + + def cola_actual(self): + print(self.cola) + +cola = Cola() +pila = Pila() + +while True : + pila_cola = int(input("que vas a usar? , colas(1) , pilas(2) o salir(3) : ")) + + if pila_cola == 1 : + + while True : + print(""" + 1.añadir + 2.eliminar + 3.primer_elemento + 4.cola_actual + 5.salir + """) + try: + decicion = int(input("eliga segun el indice : ")) + except Exception as error: + print(" ha habido un error que es : " , error) + + + if decicion == 1: + elemento = input("elemento a añadir : ") + cola.añadir(elemento) + + elif decicion == 2: + cola.eliminar() + + elif decicion == 3: + cola.primer_elemento() + + elif decicion == 4: + cola.cola_actual() + + elif decicion == 5 : + break + + else : + print("opcion no existente") + + + elif pila_cola == 2: + while True: + print(""" + 1.añadir + 2.eliminar + 3.ultimo_elemento + 4.pila_actual + 5.salir + """) + try: + decicion = int(input("eliga segun el indice : ")) + except Exception as error: + print("ha habido un error el cual es : " , error) + + + if decicion == 1: + elemento = input("elemento a añadir : ") + pila.añadir(elemento) + + elif decicion == 2: + pila.eliminar() + + elif decicion == 3: + pila.ultimo_elemento() + + elif decicion == 4: + pila.pila_actual() + + elif decicion == 5 : + break + + else : + print("opcion no existente") + + elif pila_cola == 3: + break + + else : + print("opcion no correcta") \ No newline at end of file