-
Notifications
You must be signed in to change notification settings - Fork 4.1k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #1895 from santyjL/main
#7 - arduino
- Loading branch information
Showing
2 changed files
with
279 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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") |