Ejercicios 4

1 Ejercicio

Escribir una función que indique si dos fichas de dominó encajan o no. Las fichas son recibidas en dos tuplas, por ejemplo: (1,3) y (5,3).


In [6]:
# Sol:
t1=(2,3)
t2=(5,2)
def encaja(t1, t2):
    if t1[0] == t2[0]:
        return True
    elif t1[0] == t2[1]:
        return True
    elif t1[1] == t2[0]:
        return True
    elif t1[1] == t2[1]:
        return True
    else:
        return False
encaja(t1,t2)


Out[6]:
True

2 Ejercicio

Define la función media para calcular la media aritmética de los elementos de una lista pasada como parámetro.

  1. Utiliza un bucle for para recorrer la lista y calcular la suma de los elementos y el número de elementos.
  2. Inicializa la suma a 0 antes del bucle.
  3. Inicializa el número de elementos a 0 antes del bucle.

(Otra forma: Usando las funciones sum y len).

Nota: Comprueba que se obtienen los siguientes resultados:

  • media(a) = 200.0
  • Si b = [], media(b) = 0

In [8]:
# Sol:
a = list(range(1, 400, 2))
b = []
def media(a):
    if a == []:
        print('La lista está vacía')
        return
    suma = 0
    nelementos = 0
    for elemento in a:
        suma = sum(a)
        nelementos = len(a)
    return suma / nelementos
media(a)


Out[8]:
200.0

3 Ejercicio

La función farenToCentig convierte grados Farenheit en grados centígrados.

  • Utiliza la función farenToCentig para generar la siguiente tabla de conversión:

0:º F = -18.0º C 10:º F = -13.0º C 20:º F = -7.0º C ... 100:º F = 37.0º C 110:º F = 43.0º C 120:º F = 48.0º C

Nota:

  • Genera la lista de valores $[0, ... , 120]$ con la función range.
  • Utiliza un bucle for para calcular los grados centígrados de cada elemento de la lista de valores.

In [101]:
# Sol :

4 Ejercicio

Los 15 primeros números triangulares son:

$$ [0, 1, 3, 6, 10, 15, 21, 28, 36, 45, 55, 66, 78, 91, 105] $$
  1. Define una función triang_1 que reciba un número entero positivo $n$ como parámetro y genere la lista de los $n$ primeros números triangulares. Resuelve el problema aplicando la fórmula $a_n = n * (n + 1) / 2$.

  2. Define una función triang_2 que reciba un número entero positivo $n$ como parámetro y genere la lista de los $n$ primeros números triangulares. Resuelve el problema aplicando la fórmula $a_n = a_{n-1} + n$.

  3. Utiliza la función %timeit para medir tiempos y evaluar qué función se comporta mejor.


In [102]:
# Sol: 
def triang_1(n):
    lista
    elemento_lista = n * (n+1)/2