Está en la página 1de 16

UNIVERSIDAD ESTATAL DE MILAGRO

FACULTAD CIENCIAS E INGENIERÍA


TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN TIC
CARRERA DE TECNOLOGÍAS DE LA INFORMACIÓN EN LÍNEA – C1
TRABAJO PRÁCTICO EXPERIMENTAL_2

INTEGRANTES: CHONGO YUMBO SANDI BETO (PPL)


DAMIAN CENTENO AIDA MARIBEL
MOLINA BAJAÑA MIGUEL ANGEL

PRADO RAMON YURI GABRIELA


TAPIA SACK MICHELLE ELIZABETH

ASIGNATURA: ESTRUCTURA DE DATOS

TEMA: CODIFICACIÓN EN LENGUAJE PYTHON DE EJERCICIOS


PROPUESTOS SOBRE LA UNIDAD 3

DOCENTE: ING. DIAZ ARRIETA RONALD HENRY, MSc.

PERIODO: ABRIL - AGOSTO

ENTREGA: 13 DE JULIO DEL 2023

MILAGRO – ECUADOR
CODIFICACIÓN EN LENGUAJE PYTHON DE EJERCICIOS PROPUESTOS SOBRE
LA UNIDAD 3

OBJETIVO GENERAL:

 Reafirmar conocimientos y Codificar en lenguaje Python ejercicios propuestos sobre


listas, pilas y colas.
OBJETIVOS ESPECIFICOS:

 Encontrar la estrategia adecuada para aplicar listas, pilas o colas en los problemas a
programar.
 Describir el funcionamiento de cada programa.
DESARROLLO:
Programa a: El siguiente programa se ingresa una secuencia de caracteres, para
obtener en su salida la secuencia invertida, se utilizó programación orientada a
objetos creando la clase Secuencia_invertida; mediante un método de invertir () se
invirtió la secuencia de entrada.
Código:
print("\t\t\t\t\t UNIVERSIDAD ESTATAL DE MILAGRO (UNEMI)")
print("\t\t\t\t\t\programación Orientada a Objetos")
print("\t\t\t\t\t\t\tListas, pilas y colas")
print("Programa A: Crea un programa que lea una secuencia de caracteres (uno a la vez),
guarde")
print("cada carácter en una posición de una lista y finalmente muestre la secuencia
invertida.\n")
#Se crea la clase Secuencia_invertida, atributos: lista; métodos: invertir
class Secuencia_invertida:
def __init__(self):
self.lista = []

def invertir(self):
while True:
caracter = input('Ingresa un carácter (o un espacio para terminar): ')
if caracter == ' ':
break
self.lista.append(caracter)
return self.lista[::-1]
#Se instancia la clase Secuencia_invertida en el objeto inversion
inversion = Secuencia_invertida()
#Llama desde el objeto creado al método invertir
secuencia_invertida = inversion.invertir()
#Mostrar por pantalla la secuencia invertida
print("Secuencia invertida: ",secuencia_invertida)
Ejecución del Programa a:

Imagen 1

LINK DEL CÓDIGO:


https://drive.google.com/file/d/1tyCzjWlCQtNvZS5dEi1nNK0Mtk4IapW9/view?
usp=sharing

Programa b: Se ingresó dos strings de la misma longitud utilizando manejo de


excepciones, para que mediante la clase Intercalando se intercale las letras de los
dos strings y posteriormente mediante el método mostrar se imprima el resultado.
Código:
print("\t\t\t\t\t UNIVERSIDAD ESTATAL DE MILAGRO (UNEMI)")
print("\t\t\t\t\t\programación Orientada a Objetos")
print("\t\t\t\t\t\t\tListas, pilas y colas")
print("Programa B: Crea un programa que lea dos strings de la misma longitud, los guarde
intercalados")
print("en una lista. Por último, mostrar el contenido de la lista. Por ejemplo, si introducimos
chola")
print("y adios, debería mostrarse cahdoiloas.\n")

#Creación de la clase Intercalando, atributos:str1,str2; con métodos:intercalado_str y


mostrar
class Intercalando:
def __init__(self, str1, str2):

self.str1 = str1
self.str2 = str2
def intercalado_str(self):
intercalado_lista = []
stack1 = list(self.str1)
stack2 = list(self.str2)

queue = []

while stack1 and stack2:


intercalado_lista.append(stack1.pop(0))
intercalado_lista.append(stack2.pop(0))

intercalado_lista =intercalado_lista+ stack1 + stack2

return intercalado_lista

def mostrar(self):
intercalado_lista = self.intercalado_str()
print("Lista creada: "+''.join(intercalado_lista))

# Entrada de los strings, comparación si son de la misma longitud


while True:

str1 = input("String 1: ")


str2 = input("String 2: ")
try:
if (len(str1)!=len(str2)):
raise ValueError("Las longitudes de los caracteres no son iguales.")
break
except ValueError as e:
print(e)
# Crear una instancia de la clase Intercalando
caracteres_intercalados = Intercalando(str1, str2)

# Mostrar por pantalla el contenido de la lista intercalada


caracteres_intercalados.mostrar()

Ejecución del Programa b:

Imagen 2
Imagen 3

LINK DEL CÓDIGO:


https://drive.google.com/file/d/1f3K4wJ6nT0e3lwLJFG3zA3MGa_q327qk/view?
usp=sharing

Programa c: El programa permite ingresar un string mediante la clase Consonantes


extrae las consonantes y por el método imprimir_cons imprime solo consonantes en
una lista.
Código:
print("\t\t\t\t\t UNIVERSIDAD ESTATAL DE MILAGRO (UNEMI)")
print("\t\t\t\t\t\tProgramacion Orientada a Objetos")
print("\t\t\t\t\t\t\tListas, pilas y colas")
print("Programa c: Crea un programa que lea un string y guarde en una lista todas las
consonantes\n")

#Creación de la clase Consonantes, con atributos: cadena y consonantes; con métodos:


extraer_cons e imprimir_cons
class Consonantes:
def __init__(self, cadena):
self.cadena = cadena
self.consonantes = []

def extraer_cons(self):
for letra in self.cadena:
if letra.lower() not in 'aeiou' and letra.isalpha():
self.consonantes.append(letra)

def imprimir_cons(self):
print("Lista de consonantes: ",self.consonantes)
##Ingresa el string
caracteres = input('Introduce un string: ')
#Instancia consonantes de la clase Consonantes
consonantes = Consonantes(caracteres)
#Extrae consonantes del string
consonantes.extraer_cons()
#Imprime por pantalla las consonantes del string
consonantes.imprimir_cons()

Ejecución del Programa c:

Imagen 4

LINK DEL CÓDIGO:


https://drive.google.com/file/d/1-RhUZwddvyUTovKucWvF0wx0ymdTE48Y/view?
usp=sharing

Programa d: El programa permite ingresar solo números enteros a una pila hasta
digitar “0”, se creó la clase Numero_Pila la cual permite mediante sus métodos
mostrar los elementos guardados en la pila e imprimirlos por pantalla.
Código:
print("\t\t\t\t\t UNIVERSIDAD ESTATAL DE MILAGRO (UNEMI)")
print("\t\t\t\t\t\tProgramacion Orientada a Objetos")
print("\t\t\t\t\t\t\tListas, pilas y colas")
print("Programa d: Crear un programa para ingresar números enteros a una pila,")
print("se ingresarán los números hasta que el valor que se ingrese sea cero, en")
print("ese momento debe presentar los elementos que se han ingresado a la pila y el
promedio.\n")
#Creación de la clase Numero_Pila, con métodos: push, pop,is_empty y get_elementos
class Numero_Pila:
def __init__(self):
self.pila = []

def push(self, num):


self.pila.append(num)
def pop(self):
if not self.is_empty():
return self.pila.pop()
else:
return None

def is_empty(self):
return len(self.pila) == 0

def get_elementos(self):
return self.pila

# Crear una instancia de la clase Numero_Pila, el objeto se llama num_pila


num_pila = Numero_Pila()

# Leer los números y agregarlos a la pila; manejo de excepciones de solo números enteros
while True:
try:
number = int(input("Ingrese un número entero (0 para terminar): "))
if number == 0:
break
num_pila.push(number)
except ValueError:
print("Ingrese solo números enteros para calcular el promedio.")

# Mostrar los elementos de la pila


elementos = num_pila.get_elementos()
print("Elementos ingresados en la pila:", elementos)

# Calcular el promedio
total = sum(elementos)
contador = len(elementos)
promedio = total / contador

print("Promedio:",promedio)
Ejecución del Programa d:

Imagen 5

Imagen 6

LINK DEL CÓDIGO:


https://drive.google.com/file/d/1tOWxvWDWRnmE4vLPsU5EdDe9Jwm0xg5e/view?
usp=sharing
Programa e: El programa permite el ingreso de solo letras mediante el manejo de
excepciones, y el mismo se detiene digitando cualquier número, muestra los
elementos ingresados mediante la creación de la clase LetraPila la cual por sus
métodos obtiene los elementos de la pila y se puede conocer tanto el número de
vocales como consonantes.
Código:
print("\t\t\t\t\t UNIVERSIDAD ESTATAL DE MILAGRO (UNEMI)")
print("\t\t\t\t\t\tProgramacion Orientada a Objetos")
print("\t\t\t\t\t\t\tListas, pilas y colas")
print("Programa e: Crear un programa para ingresar solo letras en una pila, el ingreso se")
print("detendrá cuando se ingrese un número. Después de que finalice el ingreso deberá")
print("mostrar los elementos ingresados, además deberá presentar cuantas vocales y
cuantas")
print("consonantes se ingresaron en la pila.\n")
#Creación de la clase LetraPila, con métodos: push, pop, is_empty, get_elementos,
get_contar_vocales, get_contar_consonantes
class LetraPila:
def __init__(self):
self.pila = []
self.vocales = 0
self.consonantes = 0

def push(self, letra):


self.pila.append(letra)
if letra.lower() in 'aeiou':
self.vocales += 1
else:
self.consonantes += 1

def pop(self):
if not self.is_empty():
return self.pila.pop()
else:
return None

def is_empty(self):
return len(self.pila) == 0

def get_elementos(self):
return self.pila

def get_contar_vocales(self):
return self.vocales

def get_contar_consonantes(self):
return self.consonantes

# Crear una instancia de la clase LetraPila


letra_pila = LetraPila()
# Leer las letras y agregarlas a la pila, manejo de excepciones solo letras

while True:
letra = input("Digite una letra (ingrese un número para terminar): ")
if letra.isdigit():
break
if letra.isalpha():
letra_pila.push(letra)
else:
print("Solo se permiten letras.")
# Mostrar por pantalla los elementos de la pila
elementos = letra_pila.get_elementos()
print("Elementos ingresados a la pila:", elementos)

# Obtener la cantidad de vocales y consonantes


contador_vocales = letra_pila.get_contar_vocales()
contador_consonantes = letra_pila.get_contar_consonantes()

print("Cantidad de vocales:", contador_vocales)


print("Cantidad de consonantes:", contador_consonantes)
Ejecución del Programa e:

Imagen 7
Imagen 8

LINK DEL CÓDIGO:


https://drive.google.com/file/d/10fEt6fcAO13QzGJG5VcSGSaOfaj1F6Mt/view?
usp=sharing

Programa f: El programa permite almacenar solo números enteros en una cola,


imprimirlos y calcular el promedio de los mismos. Se creó la clase NumeroCola la
cual permite mediante sus métodos mostrar los elementos de la cola y el cálculo del
promedio.
Código:
from collections import deque
print("\t\t\t\t\t UNIVERSIDAD ESTATAL DE MILAGRO (UNEMI)")
print("\t\t\t\t\t\tProgramacion Orientada a Objetos")
print("\t\t\t\t\t\t\tListas, pilas y colas")
print("Programa f: Crear un programa para ingresar números enteros a una cola, se
ingresarán")
print("los números hasta que el valor que se ingrese sea cero, en ese momento debe
presentar")
print("los elementos que se han ingresado a la cola y el promedio.\n")
#Creación de la clase NumeroCola, con métodos:encolar, desencolar, is_empty,
get_elementos
class NumeroCola:
def __init__(self):
self.cola = deque()

def encolar(self, numero):


self.cola.append(numero)

def desencolar(self):
if not self.is_empty():
return self.cola.popleft()
else:
return None

def is_empty(self):
return len(self.cola) == 0

def get_elementos(self):
return self.cola

# Crear una instancia de la clase NumeroCola


num_cola = NumeroCola()

# Leer los números y agregarlos a la cola, manejo de excepciones solo números enteros
while True:
try:
numero = int(input("Ingrese un número entero (0 para terminar): "))
if numero == 0:
break
num_cola.encolar(numero)
except ValueError:
print("Ingrese solo números enteros para calcular el promedio de la cola.")

# Mostrar los elementos de la cola ingresados


elementos = num_cola.get_elementos()
print("Elementos ingresados a la cola:", list(elementos))

# Calcular el promedio
total = sum(elementos)
contador = len(elementos)
promedio = total / contador
#Mostrar por pantalla el promedio de los elementos
print("Promedio de la cola:",promedio)
Ejecución del Programa f:

Imagen 9

LINK DEL CÓDIGO:


https://drive.google.com/file/d/1UhL6N9nLa02L5y8VL6djnKVKaFJqgN-L/view?usp=sharing

Programa g: El programa permite solo el ingreso de letras para ser almacenadas en


una cola y posteriormente contar cuantas vocales y consonantes existen en la cola.
Se creó la clase LetraCola ya que mediante sus métodos permitió mostrar los
elementos de la cola y el conteo de vocales junto con las consonantes.

Código:
from collections import deque
print("\t\t\t\t\t UNIVERSIDAD ESTATAL DE MILAGRO (UNEMI)")
print("\t\t\t\t\t\tProgramacion Orientada a Objetos")
print("\t\t\t\t\t\t\tListas, pilas y colas")
print("Programa g: Crear un programa para ingresar solo letras en una cola, el ingreso se ")
print("detendrá cuando se ingrese un número. Después de que finalice el ingreso deberá")
print("mostrar los elementos ingresados, además deberá presentar cuantas vocales y
cuantas")
print("consonantes se ingresaron en la cola.\n")
#Creacion de la clase LetraCola, con métodos: encolar, desencolar, is_empty,
get_elementos, get_contar_vocales, get_contar_consonantes
class LetraCola:
def __init__(self):
self.cola = deque()
self.vocales = 0
self.consonantes = 0

def encolar(self, letra):


self.cola.append(letra)
if letra.lower() in 'aeiou':
self.vocales += 1
else:
self.consonantes += 1

def desencolar(self):
if not self.is_empty():
return self.cola.popleft()
else:
return None

def is_empty(self):
return len(self.cola) == 0

def get_elementos(self):
return self.cola

def get_contar_vocales(self):
return self.vocales

def get_contar_consonantes(self):
return self.consonantes

# Crear una instancia de la clase LetraCola


letra_cola = LetraCola()

# Leer las letras y seguido agregarlas a la cola,manejo de excepciones solo letras

while True:
letra = input("Digite una letra (ingrese un número para terminar): ")
if letra.isdigit():
break
if letra.isalpha():
letra_cola.encolar(letra)
else:
print("Solo se permiten letras.")

# Mostrar por pantalla los elementos de la cola ingresados


elementos = letra_cola.get_elementos()
print("Elementos ingresados a la cola:", list(elementos))

# Obteniendo el valor de cuantas vocales y consonantes existen


contar_vocales = letra_cola.get_contar_vocales()
contar_consonantes = letra_cola.get_contar_consonantes()

print("Cantidad de vocales:", contar_vocales)


print("Cantidad de consonantes:", contar_consonantes)

Ejecución del Programa g:

Imagen 10

LINK DEL CÓDIGO:


https://drive.google.com/file/d/1rpDy0xnO3nCqIYWTvbXwWSrxu9RKxvNI/view?usp=sharing
Referencias Bibliográficas:

 Luis, J. A. (2003). Fundamentos de programación. México DC: Graw Hill.

 Luis, J. A. (2008). Fundamentos de programación algoritmos, estructura de datos y


objetivos. México DC: Mc Graw Hill.

 uniwebsidad. (2023). uniwebsidad. Obtenido de


https://uniwebsidad.com/libros/algoritmos-python/capitulo-12/excepciones

 uniwebsidad. (2023). uniwebsidad. Obtenido de


https://uniwebsidad.com/libros/algoritmos-python/capitulo-17/colas

 uniwebsidad. (2023). uniwebsidad. Obtenido de


https://uniwebsidad.com/libros/algoritmos-python/capitulo-17/pilas

También podría gustarte