Skip to content

Commit

Permalink
Merge pull request #1895 from santyjL/main
Browse files Browse the repository at this point in the history
#7 - arduino
  • Loading branch information
Roswell468 authored Feb 21, 2024
2 parents 16316fb + bea4d55 commit 3d89954
Show file tree
Hide file tree
Showing 2 changed files with 279 additions and 0 deletions.
107 changes: 107 additions & 0 deletions Roadmap/07 - PILAS Y COLAS/arduino/santyjL.ino
Original file line number Diff line number Diff line change
@@ -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;
}
172 changes: 172 additions & 0 deletions Roadmap/08 - CLASES/python/santyjL.py
Original file line number Diff line number Diff line change
@@ -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")

0 comments on commit 3d89954

Please sign in to comment.