Está en la página 1de 13

Análisis de algoritmos y estrategias de programación – Sesión 1

LABORATORIO 1: Introducción a Python

1. Escribe una función para imprimir los elementos de una lista.


def funcion_para_imprimir_lista2(listavocales2):
for elementos in listavocales2:
print(elementos)
listavocales2= ["a", "e", "i", "o", "u"]
funcion_para_imprimir_lista2(listavocales2)

2. Escribe una función para eliminar todos los elementos de una lista.

def funcion_para_eliminar_elementos(listaeliminar):
listaeliminar.clear()
listaeliminar= ["a", "b", "c", "d", "f"]
funcion_para_eliminar_elementos(listaeliminar)
print(listaeliminar)
3. Escribe una función para imprimir una lista al revés.

def imprimir_lista_al_reves2(listaalreves2):
for elemento in reversed(listaalreves2):
print(elemento)
listaalreves2 = ["a", "b", "c", "d", "f"]
imprimir_lista_al_reves2(listaalreves2)

4. Escribe una función para sumar los elementos de una lista.

lista=[1,2,3,4,5,6,7]

def SumarElementos(Lista):
suma=0
for i in lista:
suma+=i
return suma

print (SumarElementos(lista))
5. Crea una función que devuelva la cantidad de elementos de una lista.

def contar_elementos(lista):
return len(lista)

mi_lista = [1, 2, 3, 4, 5]
cantidad_elementos = contar_elementos(mi_lista)
print("La lista tiene", cantidad_elementos, "elementos.")

6. Dada una lista, muestra los m últimos elementos.

# Supongamos que tienes una lista llamada 'mi_lista'


mi_lista = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

# Número de elementos finales que deseas mostrar


m=3

# Mostrar los últimos m elementos de la lista


print(mi_lista[-m:])
7. Dada una lista, verifica si esta se encuentra ordenada ascendentemente.

def esta_ordenada_ascendente(lista):
for i in range(len(lista) - 1):
if lista[i] > lista[i + 1]:
return False
return True

mi_lista = [1, 2, 3, 4, 5]
if esta_ordenada_ascendente(mi_lista):
print("La lista está ordenada ascendentemente.")
else:
print("La lista no está ordenada ascendentemente.")

8. Dada 2 listas, verifica si estas dos listas son iguales.

def comparación (a1, a2):


if len(a1) != len(a2):
return False

return True

# Ejemplo
a1 = [1, 2, 3, 5]
a2 = [1, 2, 3, 5]
print(comparación (a1, a2))
9. Escribe un programa que dada una lista que contiene números, la divida en dos
listas independientes, una formada por los números positivos y otra por los
números negativos.

lista_numeros = [1, -2, 3, -4, 5, -6, 7, -8, 9]

# Inicializar listas para números positivos y negativos


positivos = []
negativos = []

# Iterar a través de la lista de números y dividirlos


for numero in lista_numeros:
if numero >= 0:
positivos.append(numero)
else:
negativos.append(numero)

# Imprimir las listas resultantes


print("Números positivos:", positivos)
print("Números negativos:", negativos)
Análisis de algoritmos y estrategias de programación – Sesión 2

LABORATORIO 2: Tipos estructurados,


registros, Cadena de caracteres en Python

1. Escribe una función para imprimir los elementos de un registro.


def imprimir_registro(dicccionario):
for clave in dicccionario:
valor = dicccionario[clave]
print(f"{clave}: {valor}")

Usuario = {
"nombre": "David",
"edad": 20,
"email": "Davis.465@gmail.com",
"telefono": "966970845"
}

imprimir_registro(Usuario)
2. Escribe una función para eliminar todos los elementos de un registro.

#importamos la libreria random


import random
# Creamos un array para llenar el registro
elementos_quimicos = [ "Hidrógeno", "Helio", "Litio", "Berilio", "Boro", "Carbono",
"Nitrógeno",
"Oxígeno", "Flúor", "Neón", "Sodio", "Magnesio", "Aluminio", "Silicio"]
registro_de_elementos_quimicos = []
def agregar_elementoquimico(elementoquimico):
if len(registro_de_elementos_quimicos) < 7:
registro_de_elementos_quimicos.append(elementoquimico)
print(f"Elemento químico '{elementoquimico}' agregado al registro de elementos
químicos.")
else:
print("El registro está lleno. No se puede agregar más elementos.")
#Imprime los elementos del registro
def imprimir_elementos():
if registro_de_elementos_quimicos:
print("Elementos químicos en el registro de elementos químicos:")
for i, elementoquimico in enumerate(registro_de_elementos_quimicos, start=1):
print(f"Elementos {i}: {elementoquimico}")
else:
print("El registro de elementos químicos se vacío.")
def eliminar_elementosquimicos():
registro_de_elementos_quimicos.clear()
print("Todos los elementos eliminados del registro de elementos químicos.")
# Agregar elementos aleatoriamente
def elementos_aleatoriamente():
random.shuffle(elementos_quimicos)
for elemento in elementos_quimicos[:7]:
agregar_elementoquimico(elemento)
elementos_aleatoriamente()
eliminar_elementosquimicos()
imprimir_elementos()
3. Escribe una función para sumar los elementos de un registro.

def sumar_elementos(lista):
suma = sum(lista)
return suma

# Ejemplo de uso
mi_lista = [6, 8, 2, 10, 25]
resultado = sumar_elementos(mi_lista)

print("La suma de los elementos es:", resultado)


4. Escribe una función para imprimir una cadena al revés.

def inmprimir_al_reves(cadena):
cadena_al_reves = cadena[::-1]
print(cadena_al_reves)

#Ejemplo de uso

cadena_original = "1,2,3,4,5,6!"
inmprimir_al_reves(cadena_original)

5. Crea una función que devuelva la cantidad de elementos de una cadena de caracteres.

def contar_caracteres(cadena):
return len(cadena)

cadena = "ejercicio 5"


cantidad_caracteres = contar_caracteres(cadena)

print("La cadena tiene", cantidad_caracteres, "caracteres.")


6. Dada una cadena, muestra los m últimos elementos.
palabra="Laboratorio"
cadena=list(palabra)

def MostrarUltimosElementos(cadena, m):


UltimosElementos = cadena[-m:]
return UltimosElementos

m=6

UltimosElementos = MostrarUltimosElementos(cadena, m)

print(UltimosElementos)
7. Dada 2 cadenas, verifica si estas dos son iguales
def Comparacion_de_cadenas(cadena1, cadena2):
num1 = len(cadena1)
num2 = len(cadena2)

if (num1 == num2):
print("Las 2 cadenas tienen la misma cantidad de caracteres.")
else:
print("Las 2 cadenas no tienen la misma cantidad de caracteres.")

cadena1 = "Computadora"
cadena2 = "Maquinola"

Comparacion_de_cadenas (cadena1, cadena2)


Análisis de algoritmos y estrategias de programación – Sesión 3

LABORATORIO 3: Algoritmos de fuerza bruta

1. Dado un vector aleatorio con 8 enteros diferentes, buscar todas aquellas combinaciones
crecientes de 3 o más elementos.

Ejemplo: [3,1,6,7,2,8,10,9]
------------------>
3,6,7
3,6,8
3,6,9

from itertools import combinations

def encontrar_combinaciones_crecientes(vector):
return [combo for r in range(3, len(vector) + 1) for combo in combinations(vector, r) if
list(combo) == sorted(combo)]

# Ejemplo: Vector aleatorio con 8 enteros diferentes


vector_aleatorio = [5, 2, 8, 3, 1, 7, 4, 6]

combinaciones_crecientes = encontrar_combinaciones_crecientes(vector_aleatorio)

# Mostrar las combinaciones encontradas


for combo in combinaciones_crecientes:
print(combo)
2. Cargar un archivo con diferentes palabras, ingresar una palabra errónea y corregirla de
acuerdo a la que más se parezca a la lista (como un auto corrector)

import difflib

# Lista de palabras predefinidas


lista_palabras = ["hola", "buenos", "días", "adiós", "gracias",] # Agrega tus palabras aquí

# Ingresar y corregir la palabra


palabra_incorrecta = input("Ingrese una palabra incorrecta: ")
correccion = difflib.get_close_matches(palabra_incorrecta, lista_palabras, n=1)
print(f"Palabra corregida: {correccion[0] if correccion else 'No se encontraron sugerencias'}")

También podría gustarte