Saltar a contenido

5. Funciones I#

(★☆☆, ★★☆, ★★★) Esta notación indica la dificultad de cada ejercicio, de menor a mayor.

  1. ★☆☆ ¿Cuál es la razón por la cual se escriben funciones?

  2. ★☆☆ Escriba una función que devuelva el cuadrado de un número (sin utilizar el operador de potencia del lenguaje de programación).

    def square(x):
        # complete me
    
  3. ★☆☆ Escriba una función llamada sumador que recibe dos argumentos y devuelva su suma. Luego, ejecute pruebas con distintos tipos de datos (dos strings, dos en punto flotante, un int y un str, etc.).

    def adder(a, b):
        # complete me
    
  4. ★☆☆ Corrija la siguiente función defectuosa para que devuelva la multiplicación entre dos números:

    def multiply(a, b):
        answer = a * b
    
  5. ★☆☆ Implemente una función que solicite un número por la consola, que represente el radio de una circunferencia, y muestre en pantalla el perímetro de dicha circunferencia. En la consola se debe ver lo siguiente:

    Ingrese un valor que representa el radio de una circunferencia: [ENTRADA]
    El perímetro resultante es [RESULTADO]
    

    Tip

    Puede utilizar el número \(\pi\) (pi) como 3.141592653589793.

  6. ★☆☆ Para la función definida en el siguiente código, encuentre una implementación alternativa que permita implementar la misma función pero reduciendo las 7 líneas del cuerpo de su definición a un cuerpo de sólo 3 líneas.

    def some_function(first_word, second_word, third_word, fourth_word):
        name = first_word
        last_name = second_word
        age = third_word
        profession = fourth_word
        print('Name: ', name, last_name)
        print('Age: ', age, 'years')
        print('Profession:', profession)
    
  7. ★☆☆ Escriba una función que redondee un número de tipo flotante al entero más cercano y devuelva este número entero. Luego escriba un programa principal que le solicite el número al usuario y muestre el resultado por la terminal.

  8. ★★☆ La ecuación para el interés simple es:

    \[ C_{n + k} = C_n (1 + k \cdot i) \]

    donde:

    • \(C_n\) es el capital al inicio del período,
    • \(k\) es la cantidad de períodos,
    • \(C_{n + k}\) es el capital pasados los \(k\) períodos,
    • \(i\) es la tasa de interés nominal por período.

    Escriba:

    • Una función que dada una tasa de interés anual, una cantidad de años y un capital inicial, retorne el capital al finalizar el período.
    • Un programa que pida al usuario los datos necesarios y muestre en la terminal el resultado de ejecutar la función desarrollada.
  9. ★★☆ La ecuación para el interés compuesto es:

    \[ C_{n + k} = C_n (1 + i)^k \]

    donde:

    • \(C_n\) es el capital al inicio del período,
    • \(k\) es la cantidad de períodos,
    • \(C_{n + k}\) es el capital pasados los \(k\) períodos,
    • \(i\) es la tasa de interés nominal por período.

    Escriba:

    • una función que dada una tasa de interés anual, una cantidad de años y un capital inicial, retorne el capital al finalizar el período.
    • un programa que pida al usuario los datos necesarios y muestre en la consola interactiva el resultado de ejecutar la función desarrollada.
  10. ★★☆ La ecuación para el cálculo de la tasa de interés efectiva es:

    \[ r = \left(1 + \frac i n\right)^n - 1 \]

    donde:

    • \(i\) es la tasa de interés nominal,
    • \(n\) es la cantidad de períodos de composición (o frecuencia),
    • \(r\) es la tasa de interés efectiva.

    Escriba:

    • Una función que dada una tasa de interés nominal anual y períodos de composiciones mensuales calcule la tasa efectiva anual para todo el año.
    • Un programa que pida al usuario los datos necesarios y muestre en la consola interactiva el resultado de ejecutar la función desarrollada.
  11. ★★☆ La ecuación para calcular el valor futuro a partir de un monto de capital con inversiones mensuales (interés compuesto) es:

    \[ FV = C \frac{(1 + i)^k - 1}{i} \]

    donde:

    • \(C\) es el capital invertido en cada período,
    • \(k\) es la cantidad de períodos,
    • \(i\) es la tasa de interés nominal por período.
    • \(FV\) es el capital pasados los \(k\) períodos,

    Escriba:

    • Una función que dados los tres primeros items del listado anterior, obtenga el monto final (\(FV\)).
    • Un programa que pida al usuario los datos necesarios y muestre en la consola interactiva el resultado de ejecutar la función desarrollada.
  12. ★☆☆ Escriba una función que dadas la hora, minutos y segundos devuelva el tiempo en segundos. Luego, escriba un programa que pida la hora al usuario y muestre el tiempo en segundos.

  13. ★☆☆ Escriba una función que dado un tiempo en segundos, retorne el tiempo en horas, minutos y segundos (similar al ejercicio anterior). Por ejemplo, para 3745 debe devolver 1, 2, 25.

  14. ★☆☆ Escriba una función que dado un número devuelva el primer número múltiplo de 10 inferior o igual a él. Por ejemplo, para 153 debe devolver 150.

  15. ★☆☆ Escribir una función que dada una lista de números y un entero n, retorne una nueva lista donde cada elemento de la nueva lista es el promedio de n elementos consecutivos de la lista original. Por ejemplo, para [7.0, 9, 3.0, 6, 6, 2] y n = 4, retorna [6.25, 6.0, 4.25]. Donde 6.25 es el promedio de 7, 9, 3, y 6, mientras que 4.25 es el promedio de 3, 6, 6, y 2.

  16. ★☆☆ Escribir una función que dado un día del año (un número del 1 a 366) retorne el día de la semana que le corresponde. Debe suponer que el año comenzó un domingo. Por ejemplo: si se ingresa ‘5’, retorna ‘jueves’, si se ingresa ‘10’ retorna ‘martes’, si se ingresa ‘294’ retorna ‘sabado’.

    • Escribir un programa que le pida al usuario un número y, usando la función desarrollada, imprima el día correspondiente.