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

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-3 [2025/04/20 11:34] – borrado - editor externo (Fecha desconocida) 127.0.0.1indice:uba:ingenieria:uba-xxi:pensamiento-computacional:guias-y-resueltos:sesion-3 [2025/04/20 11:35] (actual) upadmin
Línea 1: Línea 1:
 +====== Sesión 3 ======
  
 +===== Guías =====
 +
 +
 +{{ indice:uba:ingenieria:uba-xxi:pensamiento-computacional:sesion-3:guia_de_ejercicios_n_3.docx.pdf |Guía de Ejercicios Nro 3}}
 +
 +
 +===== Resueltos =====
 +<file python resueltos_guia_3.py>
 +#Ejercicio 1
 +""" Escribir la expresión para saber si un número es más grande que otro. Guardarla en una variable de tipo
 +bool e imprimirla por pantalla para ver su valor. """
 +
 +numero1 = 8
 +numero2 = 7
 +es_mayor = (numero1 > numero2)
 +print(es_mayor)
 +
 +
 +#Ejercicio 2
 +""" Repetir el punto anterior pero con la expresión que determina que una letra NO es vocal. """
 +
 +#Alternativa 1
 +letra = "a"
 +es_vocal = (letra == "a") or (letra == "e") or (letra == "i") or (letra == "o") or (letra == "u")
 +print(es_vocal)
 +
 +#Alternativa 2
 +letra="a"
 +es_vocal = letra in "aeiou"
 +print(es_vocal)
 +
 +#Ejercicio 3
 +""" Repetir pero para la expresión que permite saber si un número es par y menor a 10. """
 +
 +numero = 8
 +es_par_y_menor_que_10 = (numero % 2 == 0) and (numero < 10)
 +print(es_par_y_menor_que_10)
 +
 +
 +#Ejercicio 4
 +""" Crear una función que dado un número, devuelva su valor absoluto. El valor absoluto de un número es
 +el mismo número sin considerar el signo.
 +Por ejemplo, el absoluto de 2 es 2 (|2| = 2) y el absoluto de -4 es 4 (|-4|=4). """
 +
 +#Alternativa 1
 +def calcular_valor_absoluto(numero):
 +    if numero >= 0:
 +        print(numero)
 +    else:
 +        print(-numero)
 +calcular_valor_absoluto(-7)
 +
 +#Alternativa 2
 +def calcular_valor_absoluto(numero):
 +    return abs(numero)
 +
 +print(calcular_valor_absoluto(-7))
 +print(calcular_valor_absoluto(5))
 +
 +#Ejercicio 5
 +""" Crear el programa al que sea imposible ganarle en el juego de “Piedra, papel o tijera”. Cada elemento va
 +a ser representado con una letra: R para piedra, P para papel y T para tijera.
 +
 +a. Hacer una función que le haga al usuario ingresar alguna de esas letras, e imprima por pantalla
 +la jugada para ganarle. Por ejemplo:
 +    > ¡Juguemos! Ingresá piedra ( R), papel (P) o tijera (T)
 +    > P
 +    > Tijera. ¡Te gané!
 +ATENCIÓN: Observar cómo se usa una frase inicial para darle a entender al usuario lo que tiene
 +que hacer (en este caso ingresar alguna de las tres letras).
 +
 +b. Mostrar por pantalla el mensaje “NO vale” cuando el usuario ingresa una letra no válida
 +(distinta de R, P o T). """
 +
 +def jugar():
 +    eleccion = input("¡Juguemos! Ingresá piedra (R), papel (P) o tijera (T): ")
 +    if (eleccion == "R"):
 +        print("Papel. ¡Te gané!")
 +    elif (eleccion == "P"):
 +        print("Tijera. ¡Te gané!")
 +    elif (eleccion == "T"):
 +        print("Piedra. ¡Te gané!")
 +    else:
 +        print("NO vale. Tenes que elegir alguna opcion valida!!")
 +jugar()
 +
 +
 +#Ejercicio 6
 +""" Escribir código que dado dos enteros, determine si la suma de ambos da menos que 100. Si la suma de
 +ambos es menor a 100, calcular cuánto falta para llegar a 100 y mostrar por pantalla un mensaje con
 +ese valor. Si la suma es mayor a 100, mostrar un mensaje diciendo “Llega a 100”.
 +Extra: ¿Cómo harían para que el programa quede generalizado para cualquier límite, a elección del
 +usuario, y no solo para 100?. """
 +
 +entero1 = 500
 +entero2 = 9
 +limite = 100
 +suma = entero1 + entero2
 +
 +if suma < limite:
 +    print(f"Para llegar a {limite} a la suma le faltan {limite - suma} unidades")
 +else:
 +    print(f"Llega a {limite}")
 +
 +#Ejercicio 6 - Extra
 +limite_elegido = int(input("Por favor, ingrese un limite entero para saber si la suma supera dicho limite: "))
 +entero3 = 60
 +entero4 = 140
 +suma2 = entero3 + entero4
 +
 +if suma2 < limite_elegido:
 +    print(f"Para llegar a {limite_elegido} a la suma le faltan {limite_elegido - suma2} unidades")
 +else:
 +    print(f"Llega a {limite_elegido}")
 +
 +
 +#Ejercicio 7
 +""" Se tienen letras para representar las estaciones del año:
 +● V para verano
 +● O para otoño
 +● I para invierno
 +● P para primavera
 +Crear una función que dada una letra, imprima por pantalla la estación del año que representa (es
 +decir, si se ingresa V se mostrará por pantalla el mensaje “Verano”). En caso de no representar a
 +ninguna estación mostrar un mensaje que diga “error”. Probar la función creada llamándola con A, P, O,
 +B, V e I. """
 +
 +def estacion(letra):
 +    if letra == "V":
 +        print("Verano")
 +    elif letra == "O":
 +        print("Otoño")
 +    elif letra == "I":
 +        print("Invierno")
 +    elif letra == "P":
 +        print("Primavera")
 +    else:
 +        print("Error")
 +estacion("A")
 +estacion("P")
 +estacion("O")
 +estacion("B")
 +estacion("V")
 +estacion("I")
 +
 +
 +#Ejercicio 8
 +""" Se quiere hacer un programa para enseñar a unos niños a contar. Crear una función que reciba un
 +número entero e imprima por pantalla los números del 1 hasta ese número con la estructura de control
 +iterativa for. """
 +
 +def contar_numeros_hasta(numero_entero):
 +    for i in range(1 , numero_entero + 1):
 +        print(i)
 +contar_numeros_hasta(15)
 +
 +
 +#Ejercicio 9
 +""" Se quiere mejorar el programa para enseñar matemáticas pensado en el ejercicio anterior. Ahora se
 +necesita una funcionalidad que permita a los niños aprender las tablas. Crear una función que reciba un
 +número entero e imprima por pantalla la tabla de ese número del 1 al 10. """
 +
 +def calcular_tabla(numero):
 +    for i in range(1 , 11):
 +     print(f"{numero} * {i} = {i*numero}")
 +
 +numero_elegido = int(input("Ingrese un numero para averiguar su tabla de multiplicacion: "))
 +calcular_tabla(numero_elegido)
 +
 +
 +#Ejercicio 10
 +""" Crear una función que simule un cumpleaños: que dado un entero imprima “Que los cumplas feliz” esa
 +cantidad de veces. """
 +
 +#alternativa 1
 +def cantar_feliz_cumpleaños(numero_entero):
 +    for i in range(1, numero_entero + 1):
 +     print("Que los cumplas feliz")
 +cantar_feliz_cumpleaños(7)
 +
 +#alternativa 2
 +def cantar_feliz_cumpleaños_1(numero_entero):
 +    for i in range(numero_entero):
 +     print("Que los cumplas feliz")
 +cantar_feliz_cumpleaños_1(7)
 +
 +
 +#Ejercicio 11
 +""" En un almacén están buscando la forma de hacer los cobros más automáticamente. Para esto, se nos
 +pide crear una función que reciba un número entero que representa lo que hay que cobrar, le pida al
 +usuario ingresar un monto, y se vaya mostrando por pantalla cuánto falta para completar el pago.
 +Repetir este proceso hasta que la deuda sea 0 o menor. Por ejemplo, si se recibe el monto 30:
 +    > El importe a pagar es de 30 pesos. Por favor, ingrese un monto.
 +    > 10
 +    > El importe a pagar es de 20 pesos. Por favor, ingrese un monto.
 +    > 15
 +    > El importe a pagar es de 5 pesos. Por favor, ingrese un monto.
 +    > 5 """
 +
 +def cobrar(monto_a_cobrar):
 +    while monto_a_cobrar > 0:
 +        monto_ingresado = float(input(f"El importe a pagar es de {monto_a_cobrar} pesos. Por favor, ingrese un monto: "))
 +        monto_a_cobrar = monto_a_cobrar - monto_ingresado
 +    print(f"Gracias por su compra. Su vuelto es {abs(monto_a_cobrar)} pesos.")
 +cobrar(100)
 +
 +
 +#Ejercicio 12
 +""" Escribir código que recorra los números del 1 al 20 y determine para cada uno si es par o impar,
 +imprimiendo un mensaje por pantalla en cada caso. Es decir, el output esperado sería:
 +    > El número 1 es impar.
 +    > El número 2 es par.
 +    …
 +    > El número 20 es par. """
 +
 +def determinar_si_es_par_o_impar():
 +    for i in range(1,21):
 +        if i % 2 == 0:
 +            print(f"El numero {i} es par.")
 +        else:
 +            print(f"El numero {i} es impar.")
 +determinar_si_es_par_o_impar()
 +
 +
 +#Ejercicio 13
 +""" Se tiene una máquina de sacar juguetes que funciona cuando se ingresa una determinada cantidad de
 +fichas, y se quiere hacer una función que imite ese comportamiento.
 +
 +a. Hacer una función que reciba un número que represente el precio de la máquina, e imprima
 +por pantalla “Ingresá x fichas para comenzar” hasta que se hayan ingresado esa cantidad de
 +letras F (que representan una ficha), y luego “¡A jugar!” cuando se hayan ingresado todas las
 +fichas necesarias. Por ejemplo, si la función recibe 3, debería tener el siguiente
 +comportamiento:
 +    > Ingresá 3 fichas para comenzar
 +    > F
 +    > Ingresá 3 fichas para comenzar
 +    > F
 +    > Ingresá 3 fichas para comenzar
 +    > B
 +    > Ingresá 3 fichas para comenzar
 +    > F
 +    > ¡A jugar!
 +ATENCIÓN: notar cómo cuando se ingresa una letra distinta de F, esta se ignora a la hora de contar la
 +cantidad de fichas que fueron ingresadas.
 +
 +b. Ahora se quiere que se vaya mostrando por pantalla, cuántas fichas FALTAN ingresar para
 +empezar a jugar Es decir:
 +    > Ingresá 3 fichas (F) para comenzar
 +    > F
 +    > Ingresá 2 fichas (F) para comenzar
 +    > F
 +    > Ingresá 1 fichas (F) para comenzar
 +    > B
 +    > Ingresá 1 fichas (F) para comenzar
 +    > F
 +    > ¡A jugar! 
 +
 +c. Agregar a la función el mensaje de error “Por favor solamente ingrese fichas reales (F)” cuando
 +se recibe una letra distinta de F. """
 +
 +#Ejercicio 13 - a
 +def empezar_juego_a(cantidad_fichas_necesarias):
 +    fichas_ingresadas = 0
 +    while (fichas_ingresadas < cantidad_fichas_necesarias):
 +        print(f"Ingresa {cantidad_fichas_necesarias} fichas para comenzar:")
 +        letra = input()
 +        if(letra == "F"):
 +           fichas_ingresadas = fichas_ingresadas + 1
 +    print("¡A jugar!")
 +empezar_juego_a(2)
 +
 +#Ejercicio 13 - b
 +def empezar_juego_b(cantidad_fichas_necesarias):
 +    fichas_ingresadas = 0
 +    while (fichas_ingresadas < cantidad_fichas_necesarias):
 +        print(f"Ingresa {cantidad_fichas_necesarias - fichas_ingresadas} fichas para comenzar:")
 +        letra = input()
 +        if(letra == "F"):
 +           fichas_ingresadas = fichas_ingresadas + 1
 +    print("¡A jugar!")
 +empezar_juego_b(5)
 +
 +#Ejercicio 13 - c
 +def empezar_juego_c(cantidad_fichas_necesarias):
 +    fichas_ingresadas = 0
 +    while (fichas_ingresadas < cantidad_fichas_necesarias):
 +        print(f"Ingresa {cantidad_fichas_necesarias - fichas_ingresadas} fichas para comenzar:")
 +        letra = input()
 +        if(letra == "F"):
 +           fichas_ingresadas = fichas_ingresadas + 1
 +        else:
 +            print("Por favor solamente ingrese fichas reales (F)")
 +    print("¡A jugar!")
 +empezar_juego_c(5)
 +
 +
 +#Ejercicio 14
 +""" Crear una función que reciba un número entero e imprima los números primos entre 0 y el número
 +ingresado.
 +AYUDA: un número es primo cuando solamente es divisible por sí mismo y por 1, es decir que para ver
 +si es primo hay que ver que el módulo (%) de ese número con los anteriores hasta el 1 (sin incluirlo) sea
 +distinto de 0, o sea que no sea divisible. """
 +
 +#alternativa 1
 +def buscar_numeros_primos():
 +    numero_entero = int(input("Ingrese un numero entero para encontrar todos los numeros primos menores o iguales que el: "))
 +    divisores = 0
 +    for i in range(2, numero_entero + 1):
 +        for j in range(2, i + 1):
 +            if i % j == 0:
 +                divisores = divisores + 1
 +            if divisores > 1:
 +                break
 +        if divisores == 1:
 +            print(i)
 +        divisores = 0
 +buscar_numeros_primos()
 +
 +#alternativa 2
 +def es_primo(numero):
 +    divisores=0
 +    for i in range(1,numero+1):
 +        if numero % i == 0:
 +            divisores += 1
 +    return divisores == 2
 +
 +print(es_primo(19))
 +print(es_primo(50))
 +
 +def imprimir_primos_hasta(numero):
 +    for j in range(numero+1):
 +        if es_primo(j) == True:
 +            print(j)
 +imprimir_primos_hasta(20)
 +</file>