indice:uba:ingenieria:uba-xxi:pensamiento-computacional:guias-y-resueltos:sesion-5

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anterior Revisión previa
Próxima revisión
Revisión previa
indice:uba:ingenieria:uba-xxi:pensamiento-computacional:guias-y-resueltos:sesion-5 [2025/04/20 11:34] – borrado - editor externo (Fecha desconocida) 127.0.0.1indice:uba:ingenieria:uba-xxi:pensamiento-computacional:guias-y-resueltos:sesion-5 [2025/04/20 11:35] (actual) upadmin
Línea 1: Línea 1:
 +====== Sesión 5 ======
  
 +===== Guías =====
 +
 +{{ indice:uba:ingenieria:uba-xxi:pensamiento-computacional:sesion-5:guia_de_ejercicios_n_4_-_parte_2.docx.pdf |Guía de Ejercicios Nro 4 - Parte 2}}
 +
 +===== Resueltos =====
 +
 +<file python resueltos_guia_4_2da_parte.py>
 +#ejercicio 1
 +""" Hacer una función que reciba un string y que imprima solamente los caracteres que sean vocales. """
 +
 +palabra="alejandro"
 +
 +def imprimir_vocales(string):
 +    vocal = ""
 +    for i in string:
 +        if i == "a" or i == "e" or i == "i" or i == "o" or i == "u":
 +            vocal += i
 +    print(vocal)
 +
 +imprimir_vocales(palabra)
 +
 +#ejercicio 2
 +""" Hacer una función que reciba un string y que lo invierta. """
 +
 +palabra="alejandro"
 +
 +#alternativa 1
 +def invertir_string(string):
 +    string_invertido = string[::-1]
 +    print(string_invertido)
 +
 +invertir_string(palabra)
 +
 +#alternativa 2
 +def invertir_string_1(string):
 +    lista_invertida = list(reversed(string))
 +    string_invertido_1 = "".join(lista_invertida)
 +    print(string_invertido_1)
 +
 +invertir_string_1(palabra)
 +
 +
 +#ejercicio 3
 +""" Hacer una función que reciba dos strings, un string y un substring, es decir, que el primero contiene al
 +segundo, se pide devolver el string habiendo eliminado el substring del mismo.
 +Ejemplo:
 +string: “Campeones del Mundo - 2022”
 +substring: “2022”
 +Una vez llamada a la función el string nos debería quedar “Campeones del Mundo - ”, notar que solo
 +borra el año, el espacio no. """
 +
 +frase = "Pensamiento Computacional 2023" #string
 +palabra = "Computacional " #substring
 +
 +#alternativa 1
 +def eliminar_substring(string,substring):
 +    # string = string.lower()
 +    # substring = substring.lower() #si hay problemas de comparacion de minusculas y mayusculas podriamos pasar todo a minusculas
 +    if string.count(substring) == 0:
 +        return string
 +    else:
 +        string = string.replace(substring,"")
 +        return string
 +
 +resultado_string = eliminar_substring(frase, palabra)
 +print(resultado_string)
 +
 +#alternativa 2
 +def eliminar_substring_1(string, substring):
 +    # string = string.lower()
 +    # substring = substring.lower() #si hay problemas de comparacion de minusculas y mayusculas podriamos pasar todo a minusculas
 +    if not substring in string:
 +        return string
 +    else:
 +        string = string.replace(substring,"")
 +        return string
 +
 +resultado_string_1 = eliminar_substring_1(frase, palabra)
 +print(resultado_string_1)
 +
 +
 +#ejercicio 4
 +""" Un chef está armando una lista de supermercado con todos los ingredientes que hay que comprar. Sólo
 +quiere agregar un ingrediente a la lista si no lo escribió antes, así no tiene repetidos.
 +Hacer un programa que inserte un nuevo elemento en una lista de strings, solamente si el elemento
 +que se desea insertar no se encuentra en la lista. La lista de ingredientes la podemos pensar como una
 +lista de strings. 
 +Ejemplo:
 +ingredientes: [“tomate”, “queso”, “cebolla”, “huevo”]
 +ingrediente a agregar: “orégano”
 +La lista de ingredientes debería quedar [“tomate”, “queso”, “cebolla”, “huevo”, “orégano”]
 +En cambio, si el ingrediente a agregar es “queso” la lista debería quedar igual. """
 +
 +lista_supermercado = ["huevos","leche","harina"]
 +print(lista_supermercado)
 +
 +def agregar_a_la_lista(producto_nuevo):
 +    if producto_nuevo not in lista_supermercado:
 +        lista_supermercado.append(producto_nuevo)
 +
 +agregar_a_la_lista("carne")
 +agregar_a_la_lista("huevos")
 +print(lista_supermercado)
 +
 +
 +#ejercicio 5
 +"""Agustina está jugando a las cartas con sus amigos. A ella le gusta tener las cartas de su mano bien
 +ordenadas. Esto significa que cada vez que tiene que agarrar una nueva carta, la quiere agregar a su
 +mano en el lugar indicado para no romper el orden.
 +Si se tiene una lista de enteros ordenadas de menor a mayor. Hacer una función que según esta lista
 +inserte un nuevo entero, manteniendo el orden.
 +Podemos pensar la lista de cartas como números enteros.
 +Ejemplo:
 +cartas: [1, 4, 6, 8]
 +carta nueva: 5
 +La lista de cartas debería quedar: [1, 4, 5, 6, 8]
 +Tratar de pensar una solución sin usar el método sort. (no es obligatorio)."""
 +
 +lista_cartas = [1, 4, 6, 8]
 +
 +def insertar_carta(carta, lista_de_cartas):
 +    for i in lista_de_cartas:
 +        if i > carta:
 +            posicion = lista_de_cartas.index(i)
 +            lista_de_cartas.insert(posicion, carta)
 +            break
 +    if carta > max(lista_cartas):     
 +        lista_de_cartas.append(carta)
 +    
 +
 +insertar_carta(5,lista_cartas)
 +
 +print(lista_cartas)
 +
 +
 +#ejercicio 6
 +""" Santiago armó una lista con el pedido de empanadas de su familia pero ahora quiere saber la cantidad
 +de gustos diferentes que tiene que pedir.
 +Podemos pensar la lista de empanadas como una lista de strings, entonces deberíamos devolver la
 +cantidad de strings diferentes que hay en una lista. """
 +
 +lista_empanadas = ["jyq", "qyc", "carne", "humita", "calabaza", "jyq", "jyq", "humita", "calabaza", "carne", "humita", "calabaza", "qyc", "qyc", "napolitana"]
 +
 +def cantidad_de_gustos(pedido):
 +    lista_de_gustos = []
 +    for i in pedido:
 +        if i not in lista_de_gustos:
 +            lista_de_gustos.append(i)
 +    cantidad_de_gustos = len(lista_de_gustos)
 +    print("La cantidad de gustos es:" , cantidad_de_gustos)
 +    print("Los gustos son:" , lista_de_gustos) 
 +
 +cantidad_de_gustos(lista_empanadas)
 +
 +#ejercicio 7
 +""" Manuel y su pareja armaron una lista numerada con las actividades de mantenimiento de la casa.
 +Decidieron dividirse las tareas, a Manuel le tocó hacer todas las actividades con número par, por eso
 +necesitamos hacer una función que reciba una lista de enteros, y devuelva otra lista que solamente
 +contenga números pares, que vienen a ser las tareas de Manuel. """
 +
 +#alternativa 1
 +lista_numeros = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,1,2,3]
 +
 +lista_pares = []
 +
 +def dejar_numeros_pares(lista):
 +    for i in lista:
 +        if i % 2 == 0 and not i in lista_pares:
 +            lista_pares.append(i)
 +            
 +dejar_numeros_pares(lista_numeros)
 +
 +print(lista_pares)
 +
 +#alternativa 2
 +lista_numeros_1 = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,1,2,3]
 +
 +lista_pares_1 = []
 +
 +def es_par(numero):
 +    if numero % 2 == 0:
 +        return True
 +    else:
 +        return False
 +    
 +def dejar_numeros_pares(lista):
 +    for i in lista:
 +        if es_par(i) and not i in lista_pares_1:
 +            lista_pares_1.append(i)
 +            
 +dejar_numeros_pares(lista_numeros_1)
 +
 +print(lista_pares_1)
 +
 +#alternativa 3
 +lista_numeros_2 = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]
 +
 +def es_par(numero):
 +    if numero % 2 == 0:
 +        return True
 +    else:
 +        return False
 +    
 +lista_pares_2 = list(filter(es_par,lista_numeros_2))
 +print(lista_pares_2)
 +
 +
 +#ejercicio 8 y 9
 +""" Un matrimonio está organizando una fiesta y tiene que armar una lista de invitados. Cada uno tiene su propia
 +tupla y guarda en ella a todos los que quiere invitar.
 +
 +8. Si alguien cancela tienen que sacarlo de la tupla.
 +Hacer una función que reciba la tupla y un nombre, y devuelva una nueva tupla sin el nombre pasado
 +por parámetro.
 +Las tuplas son inmutables, entonces ¿Cómo podemos hacer para “eliminar” un elemento de una tupla?
 +Recordemos que las tuplas tienen definido el operador +, pero no el operador -.
 +
 +9. Cuando ya tienen a todos los invitados tienen que juntar sus tuplas, para eso se necesita una función
 +que a partir de dos tuplas cree una sola que sea la combinación de ambas tuplas. """
 +
 +#ejercicio 8
 +
 +invitados_novia = ("juan" , "pedro", "maria")
 +invitados_novio = ("marcelo" , "sabrina", "agostina")
 +
 +def sacar_invitado(tupla, eliminado):
 +    lista_invitados_original = list(tupla)
 +    lista_invitados_nueva = []
 +    for i in lista_invitados_original:
 +        if i != eliminado:
 +            lista_invitados_nueva.append(i)
 +    tupla = tuple(lista_invitados_nueva)
 +    return tupla
 +
 +invitados_novia_nueva = sacar_invitado(invitados_novia,"pedro")
 +print(invitados_novia_nueva)
 +
 +invitados_novio_nueva = sacar_invitado(invitados_novio,"sabrina")
 +print(invitados_novio_nueva)
 +
 +#ejercicio 9
 +
 +def unir_tuplas_de_invitados(tupla_1, tupla_2):
 +    tupla = tupla_1 + tupla_2
 +    return tupla
 +
 +invitados_definitiva = unir_tuplas_de_invitados(invitados_novia_nueva, invitados_novio_nueva)
 +print(invitados_definitiva)
 +
 +</file>