Programación 1 - Tercer parcial - Junio 2024
Ejercicio 1 (40 puntos):
Dado el siguiente diccionario:
figuras = { 3: 'Triángulo', 4: 'Cuadrilátero', 5: 'Pentágono', 6: 'Hexágono'}
Implemente la función perimetro que reciba por parámetro una lista de tuplas con las coordenadas X
y Y de los puntos de la figura. La función deberá el texto “El perímetro del figura es: perimetro”
Donde figura y perimetro serán determinados en base a la lista recibida
La cantidad de elementos de la lista determinará el tipo de figura, así por ejemplo si la cantidad de
elementos es 3 entonces la figura será un triángulo, si es 4 un cuadrilátero y así sucesivamente.
Si la cantidad de elementos no se encuentra en el diccionario figuras entonces se devolverá “No se
ha podido determinar el tipo de figura”
El perímetro se calculará con las coordenadas de la figura, recordar que el perímetro es la suma de
cada lado de la figura y que la distancia entre 2 puntos (x1,y1) y (x2,y2) viene dado por la fórmula
2 2
(𝑥2 − 𝑥1) + (𝑦2 − 𝑦1)
2 2
Por ejemplo los puntos (1,2) y (2,1) tienen una distancia (2 − 1) + (1 − 2) = 1.41
Recordar que cada punto de la lista forma una línea con el siguiente punto y que el último punto
forma una línea con el primero.
Ejemplos:
lista = [(0, 0), (3, 0), (0, 4)]
perimetro(lista) Debería devolver “El perímetro del Triángulo es: 12.0 “
lista = [(0, 0), (4, 0), (6, 3), (3, 6), (0, 4)]
perimetro(lista) Debería devolver “El perímetro del Pentágono es: 19.21”
No es relevante la cantidad de decimales del perímetro.
lista= [(0, 0), (1, 1)]
perimetro(lista_otra) Debería devolver “No se ha podido determinar el tipo de figura”
Debe incluir en el código los ejemplos anteriores y uno más a su elección, imprimiendo el
resultado por pantalla.
Ejercicio 2 (35 puntos):
Decimos que una matriz de n x n es “DIAGONAL POSITIVA” cuando la suma de su diagonal es
mayor a la suma del resto de celdas. Si la suma es igual entonces decimos que es “DIAGONAL
NEUTRA” y “DIAGONAL NEGATIVA” en caso contrario.
Por ejemplo
positiva = [
[3, 0, 2],
[0, 4, 0],
[0, 0, 5]
]
es “DIAGONAL POSITIVA” ya que 3 + 4 + 5 > 2
neutra = [
[2, 0, 0],
[0, 3, 0],
[0, 5, 0]
]
es “DIAGONAL NEUTRA” ya que 2 + 3 = 5
negativa = [
[1, 1, 0],
[2, 0, 0],
[0, 0, 1]
]
es “DIAGONAL NEGATIVA” ya que 1 + 1 < 3
Implementar la función diagonal que reciba por parámetro una matriz y devuelva el tipo de
DIAGONAL que es.
Se asume que la matriz será de n x n por lo que no es necesario realizar la validación.
Debe incluir en el código los ejemplos anteriores y uno más a su elección, imprimiendo el
resultado por pantalla.
Ejercicio 3 (25 puntos):
Dada la siguiente clase
class Auto:
def __init__(self,velocidad_maxima):
self.velocidad_maxima = velocidad_maxima
self.velocidad_actual = 0
self.distancia_recorrida = 0
self.piloto = ""
def avanzar(self,velocidad,tiempo):
self.distancia_recorrida += velocidad
def asignar_piloto(self,piloto):
self.piloto = piloto
- Corrija el método avanzar de la clase Auto para que tenga en cuenta la velocidad máxima
(no es posible avanzar a más velocidad que la máxima !) y que ajuste la distancia recorrida
correctamente ( velocidad x tiempo )
- Cree 3 autos diferentes con velocidades máximas 10,20 y 30 respectivamente
- Asigne los pilotos "P1","P2" y "P3" respectivamente a los autos
- Avance los autos en 15, 10 y 5 respectivamente