Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Trabajo Práctico 5 (TP5)
Trabajo Práctico 5 (TP5)
Pregunta 1
Sin cambios desde el último intento
Puntúa como 1
Defina una función de nombre leer_palabra que no acepta ningún argumento y devuelve una palabra leída por teclado. La función debe
solicitar se ingrese por teclado una palabra, en caso de que la cadena ingresada no sea una única palabra debe volver a solicitar hasta que se
ingrese una cadena correcta. Una vez ingresada la palabra, la función debe devolverla como valor de retorno. Debe considerar palabra toda
cadena que contenga únicamente, y al menos una, letras mayúsculas y/o minúsculas (No debe contener números, símbolos o espacios).
Por ejemplo:
print yu23 Ingrese una palabra: Ingrese una palabra: Ingrese una palabra: Ingrese una palabra: Ingrese una
leer_palabra() tou rou palabra: Ingrese una palabra: yupi
_asd
_s dd
tuy 4
yupi
Reiniciar respuesta
1 import re
2 ▼ def leer_palabra():
3 ▼ while True:
4 palabra = raw_input("Ingrese una palabra: ")
5 ▼ if re.match("^[A-Za-z]+$", palabra):
6 return palabra
7
Comprobar
print yu23 Ingrese una palabra: Ingrese una palabra: Ingrese una palabra: Ingrese una palabra:
leer_palabra() tou rou Ingrese una palabra: Ingrese una palabra: Ingrese una palabra: Ingrese una palabra:
_asd Ingrese una palabra: Ingrese una palabra: Ingrese una palabra: Ingrese una palabra:
_s dd yupi yupi
tuy 4
yupi
print arbol Ingrese una palabra: arbol Ingrese una palabra: arbol
leer_palabra()
https://fcefyn.aulavirtual.unc.edu.ar/mod/quiz/attempt.php?attempt=1820570&cmid=231660 1/51
1/6/23, 22:58 Trabajo práctico 5 (TP5)
Pregunta 2
Sin cambios desde el último intento
Puntúa como 1
Defina una función de nombre leer_valor que no acepta ningún argumento y devuelve un número flotante leído por teclado. La función debe
solicitar se ingrese por teclado un número flotante mayor o igual a 0 y menor o igual a 100, en caso de que el valor ingresado esté fuera de
rango se debe volver a solicitar hasta que se ingrese un valor correcto. Una vez ingresado el valor, la función debe devolverlo como valor de
retorno.
Por ejemplo:
print -3.12 Ingrese un valor en el rango [0.0,100.0]: Ingrese un valor en el rango [0.0,100.0]: Ingrese un valor en
leer_valor() -0.12 el rango [0.0,100.0]: Ingrese un valor en el rango [0.0,100.0]: 56.432
100.12
56.432
Reiniciar respuesta
1 ▼ def leer_valor():
2 ▼ while True:
3 ▼ try:
4 valor = float(raw_input("Ingrese un valor en el rango [0.
5 ▼ if 0 <= valor <= 100:
6 return valor
7 ▼ else:
8 print
9 ▼ except ValueError:
10 print
Comprobar
print -3.12 Ingrese un valor en el rango [0.0,100.0]: Ingrese un valor en el Ingrese un valor
leer_valor() -0.12 rango [0.0,100.0]: Ingrese un valor en el rango [0.0,100.0]: Ingrese en el rango
100.12 un valor en el rango [0.0,100.0]: 56.432 [0.0,100.0]:
56.432 Ingrese un valor
en el rango
[0.0,100.0]:
Ingrese un valor
en el rango
[0.0,100.0]:
Ingrese un valor
en el rango
[0.0,100.0]:56.432
https://fcefyn.aulavirtual.unc.edu.ar/mod/quiz/attempt.php?attempt=1820570&cmid=231660 2/51
1/6/23, 22:58 Trabajo práctico 5 (TP5)
https://fcefyn.aulavirtual.unc.edu.ar/mod/quiz/attempt.php?attempt=1820570&cmid=231660 3/51
1/6/23, 22:58 Trabajo práctico 5 (TP5)
https://fcefyn.aulavirtual.unc.edu.ar/mod/quiz/attempt.php?attempt=1820570&cmid=231660 4/51
1/6/23, 22:58 Trabajo práctico 5 (TP5)
https://fcefyn.aulavirtual.unc.edu.ar/mod/quiz/attempt.php?attempt=1820570&cmid=231660 5/51
1/6/23, 22:58 Trabajo práctico 5 (TP5)
print -12 Ingrese un valor en el rango [0.0,100.0]: Ingrese un valor en el Ingrese un valor
leer_valor() -0.1 rango [0.0,100.0]: Ingrese un valor en el rango [0.0,100.0]: Ingrese en el rango
-9.12 un valor en el rango [0.0,100.0]: Ingrese un valor en el rango [0.0,100.0]:
-12 [0.0,100.0]: Ingrese un valor en el rango [0.0,100.0]: Ingrese un Ingrese un valor
-0.1 valor en el rango [0.0,100.0]: Ingrese un valor en el rango en el rango
-9.12 [0.0,100.0]: Ingrese un valor en el rango [0.0,100.0]: Ingrese un [0.0,100.0]:
-12 valor en el rango [0.0,100.0]: Ingrese un valor en el rango Ingrese un valor
-0.1 [0.0,100.0]: Ingrese un valor en el rango [0.0,100.0]: Ingrese un en el rango
-9.12 valor en el rango [0.0,100.0]: Ingrese un valor en el rango [0.0,100.0]:
-12 [0.0,100.0]: Ingrese un valor en el rango [0.0,100.0]: Ingrese un Ingrese un valor
-0.1 valor en el rango [0.0,100.0]: Ingrese un valor en el rango en el rango
-9.12 [0.0,100.0]: Ingrese un valor en el rango [0.0,100.0]: Ingrese un [0.0,100.0]:
-12 valor en el rango [0.0,100.0]: Ingrese un valor en el rango Ingrese un valor
-0.1 [0.0,100.0]: Ingrese un valor en el rango [0.0,100.0]: Ingrese un en el rango
-9.12 valor en el rango [0.0,100.0]: Ingrese un valor en el rango [0.0,100.0]:
-12 [0.0,100.0]: Ingrese un valor en el rango [0.0,100.0]: Ingrese un Ingrese un valor
-0.1 valor en el rango [0.0,100.0]: Ingrese un valor en el rango en el rango
-9.12 [0.0,100.0]: Ingrese un valor en el rango [0.0,100.0]: Ingrese un [0.0,100.0]:
-12 valor en el rango [0.0,100.0]: Ingrese un valor en el rango Ingrese un valor
-0.1 [0.0,100.0]: Ingrese un valor en el rango [0.0,100.0]: Ingrese un en el rango
-9.12 valor en el rango [0.0,100.0]: Ingrese un valor en el rango [0.0,100.0]:
-12 [0.0,100.0]: 100.0 Ingrese un valor
-0.1 en el rango
-9.12 [0.0,100.0]:
-12 Ingrese un valor
-0.1 en el rango
-9.12 [0.0,100.0]:
-12 Ingrese un valor
-0.1 en el rango
-9.12 [0.0,100.0]:
100.1 Ingrese un valor
100 en el rango
[0.0,100.0]:
Ingrese un valor
en el rango
[0.0,100.0]:
Ingrese un valor
en el rango
[0.0,100.0]:
Ingrese un valor
en el rango
[0.0,100.0]:
Ingrese un valor
en el rango
[0.0,100.0]:
Ingrese un valor
en el rango
[0.0,100.0]:
Ingrese un valor
en el rango
[0.0,100.0]:
Ingrese un valor
en el rango
[0.0,100.0]:
Ingrese un valor
en el rango
[0.0,100.0]:
Ingrese un valor
en el rango
[0.0,100.0]:
Ingrese un valor
en el rango
[0.0,100.0]:
Ingrese un valor
en el rango
[0.0,100.0]:
Ingrese un valor
en el rango
[0.0,100.0]:
Ingrese un valor
en el rango
[0.0,100.0]:
https://fcefyn.aulavirtual.unc.edu.ar/mod/quiz/attempt.php?attempt=1820570&cmid=231660 6/51
1/6/23, 22:58 Trabajo práctico 5 (TP5)
https://fcefyn.aulavirtual.unc.edu.ar/mod/quiz/attempt.php?attempt=1820570&cmid=231660 7/51
1/6/23, 22:58 Trabajo práctico 5 (TP5)
print -12 Ingrese un valor en el rango [0.0,100.0]: Ingrese un valor en el Ingrese un valor
leer_valor() -0.1 rango [0.0,100.0]: Ingrese un valor en el rango [0.0,100.0]: Ingrese en el rango
-9.12 un valor en el rango [0.0,100.0]: Ingrese un valor en el rango [0.0,100.0]:
-12 [0.0,100.0]: Ingrese un valor en el rango [0.0,100.0]: Ingrese un Ingrese un valor
-0.1 valor en el rango [0.0,100.0]: Ingrese un valor en el rango en el rango
-9.12 [0.0,100.0]: Ingrese un valor en el rango [0.0,100.0]: Ingrese un [0.0,100.0]:
-12 valor en el rango [0.0,100.0]: Ingrese un valor en el rango Ingrese un valor
-0.1 [0.0,100.0]: Ingrese un valor en el rango [0.0,100.0]: Ingrese un en el rango
-9.12 valor en el rango [0.0,100.0]: Ingrese un valor en el rango [0.0,100.0]:
-12 [0.0,100.0]: Ingrese un valor en el rango [0.0,100.0]: Ingrese un Ingrese un valor
-0.1 valor en el rango [0.0,100.0]: Ingrese un valor en el rango en el rango
-9.12 [0.0,100.0]: Ingrese un valor en el rango [0.0,100.0]: Ingrese un [0.0,100.0]:
-12 valor en el rango [0.0,100.0]: Ingrese un valor en el rango Ingrese un valor
-0.1 [0.0,100.0]: Ingrese un valor en el rango [0.0,100.0]: Ingrese un en el rango
-9.12 valor en el rango [0.0,100.0]: Ingrese un valor en el rango [0.0,100.0]:
-12 [0.0,100.0]: Ingrese un valor en el rango [0.0,100.0]: Ingrese un Ingrese un valor
-0.1 valor en el rango [0.0,100.0]: Ingrese un valor en el rango en el rango
-9.12 [0.0,100.0]: Ingrese un valor en el rango [0.0,100.0]: Ingrese un [0.0,100.0]:
-12 valor en el rango [0.0,100.0]: Ingrese un valor en el rango Ingrese un valor
-0.1 [0.0,100.0]: Ingrese un valor en el rango [0.0,100.0]: Ingrese un en el rango
-9.12 valor en el rango [0.0,100.0]: Ingrese un valor en el rango [0.0,100.0]:
-12 [0.0,100.0]: 0.0 Ingrese un valor
-0.1 en el rango
-9.12 [0.0,100.0]:
-12 Ingrese un valor
-0.1 en el rango
-9.12 [0.0,100.0]:
-12 Ingrese un valor
-0.1 en el rango
-9.12 [0.0,100.0]:
100.1 Ingrese un valor
0.0 en el rango
[0.0,100.0]:
Ingrese un valor
en el rango
[0.0,100.0]:
Ingrese un valor
en el rango
[0.0,100.0]:
Ingrese un valor
en el rango
[0.0,100.0]:
Ingrese un valor
en el rango
[0.0,100.0]:
Ingrese un valor
en el rango
[0.0,100.0]:
Ingrese un valor
en el rango
[0.0,100.0]:
Ingrese un valor
en el rango
[0.0,100.0]:
Ingrese un valor
en el rango
[0.0,100.0]:
Ingrese un valor
en el rango
[0.0,100.0]:
Ingrese un valor
en el rango
[0.0,100.0]:
Ingrese un valor
en el rango
[0.0,100.0]:
Ingrese un valor
en el rango
[0.0,100.0]:
Ingrese un valor
en el rango
[0.0,100.0]:
https://fcefyn.aulavirtual.unc.edu.ar/mod/quiz/attempt.php?attempt=1820570&cmid=231660 8/51
1/6/23, 22:58 Trabajo práctico 5 (TP5)
Your code must pass all tests to earn any marks. Try again.
Mostrar diferencias
https://fcefyn.aulavirtual.unc.edu.ar/mod/quiz/attempt.php?attempt=1820570&cmid=231660 9/51
1/6/23, 22:58 Trabajo práctico 5 (TP5)
Pregunta 3
Sin cambios desde el último intento
Puntúa como 1
Defina una función de nombre entero_positivo que no acepta ningún argumento y devuelve un número entero positivo leído por teclado. La
función debe solicitar se ingrese por teclado un número entero positivo, en caso de que el valor ingresado sea negativo o cero se debe volver a
solicitar hasta que se ingrese un valor positivo. Una vez ingresado el valor positivo, la función debe devolverlo como valor de retorno.
Por ejemplo:
print -1 Ingrese un entero positivo: Ingrese un entero positivo: Ingrese un entero positivo: Ingrese un
entero_positivo() -12 entero positivo: Ingrese un entero positivo: Ingrese un entero positivo: Ingrese un entero
-3 positivo: Ingrese un entero positivo: 1
0
0
0
0
1
Reiniciar respuesta
1 ▼ def entero_positivo():
2 ▼ while True:
3 numero = int(raw_input("Ingrese un entero positivo: "))
4 ▼ if numero > 0:
5 return numero
6
7
Comprobar
https://fcefyn.aulavirtual.unc.edu.ar/mod/quiz/attempt.php?attempt=1820570&cmid=231660 10/51
1/6/23, 22:58 Trabajo práctico 5 (TP5)
Pregunta 4
Sin cambios desde el último intento
Puntúa como 1
Defina una función de nombre area_circunferencia que, dado un valor decimal r recibido como argumento de la función , devuelva el área de
la circunferencia con radio r. Nota: se debe usar el valor de pi provisto por la biblioteca matemática (math).
Por ejemplo:
Test Resultado
Reiniciar respuesta
Comprobar
https://fcefyn.aulavirtual.unc.edu.ar/mod/quiz/attempt.php?attempt=1820570&cmid=231660 11/51
1/6/23, 22:58 Trabajo práctico 5 (TP5)
Pregunta 5
Sin cambios desde el último intento
Puntúa como 1
Realice una función de nombre contar_palabras_cortas() que reciba como argumento una cadena cualquiera y devuelva la cantidad de palabras
presentes en la cadena con longitudes de hasta 5 caracteres.
Por ejemplo:
Test Resultado
Reiniciar respuesta
1 ▼ def contar_palabras_cortas(cadena):
2 palabras = cadena.split()
3 contador = 0
4 ▼ for palabra in palabras:
5 ▼ if len(palabra) <= 5:
6 contador += 1
7 return contador
Comprobar
https://fcefyn.aulavirtual.unc.edu.ar/mod/quiz/attempt.php?attempt=1820570&cmid=231660 12/51
1/6/23, 22:58 Trabajo práctico 5 (TP5)
Pregunta 6
Sin cambios desde el último intento
Puntúa como 1
Realice una función de nombre palabra_mas_repetida() que reciba como argumento una cadena cualquiera que representa un texto y devuelva
la primera palabra que más veces aparece en el mismo (no debe diferenciar mayúsculas de minúsculas). La palabra debe devolverse siempre en
minúscula.
Por ejemplo:
Test Resultado
Reiniciar respuesta
Comprobar
https://fcefyn.aulavirtual.unc.edu.ar/mod/quiz/attempt.php?attempt=1820570&cmid=231660 13/51
1/6/23, 22:58 Trabajo práctico 5 (TP5)
Pregunta 7
Sin cambios desde el último intento
Puntúa como 1
Realice una función de nombre verificar_clave() que reciba como argumento una cadena cualquiera que representa una contraseña y devuelva
True si dicha cadena cumple con todas las medidas de seguridad que se detallan a continuación, y False si la cadena no cumple con al menos
una de estas medidas.
Medidas de seguridad:
Por ejemplo:
Test Resultado
Comprobar
https://fcefyn.aulavirtual.unc.edu.ar/mod/quiz/attempt.php?attempt=1820570&cmid=231660 14/51
1/6/23, 22:58 Trabajo práctico 5 (TP5)
https://fcefyn.aulavirtual.unc.edu.ar/mod/quiz/attempt.php?attempt=1820570&cmid=231660 15/51
1/6/23, 22:58 Trabajo práctico 5 (TP5)
Pregunta 8
Sin cambios desde el último intento
Puntúa como 1
Defina una función de nombre son_amigos que, dado dos valores entero a y b recibidos como argumentos de la función, devuelva el valor
lógico (booleano) True si a y b son números amigos, o el valor False si no lo son. Dos números amigos son dos números enteros positivos a y b
tales que la suma de los divisores propios de uno es igual al otro número y viceversa. Por ejemplo, 220 y 284 son números amigos ya que los
divisores propios de:
220 son 1, 2, 4, 5, 10, 11, 20, 22, 44, 55 y 110, que suman 284
284 son 1, 2, 4, 71 y 142, que suman 220.
Por ejemplo:
Test Resultado
Reiniciar respuesta
Comprobar
https://fcefyn.aulavirtual.unc.edu.ar/mod/quiz/attempt.php?attempt=1820570&cmid=231660 16/51
1/6/23, 22:58 Trabajo práctico 5 (TP5)
Pregunta 9
Sin cambios desde el último intento
Puntúa como 1
Defina una función de nombre tipo_triangulo que, dado 3 valores decimales a, b y c recibidos como argumentos de la función, devuelva una
cadena con el tipo de triángulo. a, b y c corresponden a la longitud de sus lados. En el caso que todos sus lados sean iguales, se debe devolver
la cadena 'equilatero' (sin acento). Si dos de sus lados son iguales pero el otro no lo es, se debe devolver la cadena 'isosceles' (sin acento). Si
todos sus lados son diferentes, entonces debe devolver la cadena 'escaleno'.
Por ejemplo:
Test Resultado
Reiniciar respuesta
Comprobar
https://fcefyn.aulavirtual.unc.edu.ar/mod/quiz/attempt.php?attempt=1820570&cmid=231660 17/51
1/6/23, 22:58 Trabajo práctico 5 (TP5)
Pregunta 10
Sin cambios desde el último intento
Puntúa como 1
Defina una función de nombre tipo_triangulo que, dado 3 valores decimales a, b y c recibidos como argumentos de la función, devuelva una
cadena con el tipo de triángulo. a, b y c corresponden a la amplitud de sus ángulos internos (expresados en grados). En el caso que uno de sus
ángulos sea recto (igual a 90), se debe devolver la cadena 'rectangulo' (sin acento). Si en cambio todos sus ángulos son menores que 90
grados, se debe devolver la cadena 'acutangulo' (sin acento). Si uno de sus ángulos es mayor que 90 grados, entonces debe devolver la cadena
'obtusangulo' (sin acento).
Por ejemplo:
Test Resultado
Reiniciar respuesta
Comprobar
https://fcefyn.aulavirtual.unc.edu.ar/mod/quiz/attempt.php?attempt=1820570&cmid=231660 18/51
1/6/23, 22:58 Trabajo práctico 5 (TP5)
Pregunta 11
Sin cambios desde el último intento
Puntúa como 1
Implemente una función recursiva que calcule el máximo común divisor entre dos números enteros mediante el algoritmo de Euclides. Deberá
definir la función mcd (a,b) tal que cumpla con la siguiente definición.
Función :
Si entonces:
El resultado es
En otro caso:
El resultado es
Por ejemplo:
Test Resultado
print mcd(16,4) 4
Comprobar
print mcd(16,4) 4 4
print mcd(2366,273) 91 91
print mcd(450,360) 90 90
print mcd(180,150) 30 30
print mcd(48,36) 12 12
https://fcefyn.aulavirtual.unc.edu.ar/mod/quiz/attempt.php?attempt=1820570&cmid=231660 19/51
1/6/23, 22:58 Trabajo práctico 5 (TP5)
Pregunta 12
Sin cambios desde el último intento
Puntúa como 1
Defina una función de nombre promedio_lista que calcule el promedio de una lista de números recibida como argumento de la función, y
devuelva su valor. En el caso que la lista esté vacía el valor devuelto debe ser 0.
Por ejemplo:
Test Resultado
print promedio_lista([]) 0
Reiniciar respuesta
1 ▼ def promedio_lista(lista):
2 ▼ if len(lista) == 0:
3 return 0
4 ▼ else:
5 return float(sum(lista)) / len(lista)
6
7
Comprobar
print promedio_lista([]) 0 0
https://fcefyn.aulavirtual.unc.edu.ar/mod/quiz/attempt.php?attempt=1820570&cmid=231660 20/51
1/6/23, 22:58 Trabajo práctico 5 (TP5)
Pregunta 13
Sin cambios desde el último intento
Puntúa como 1
Defina una función de nombre mas_repetido que devuelva el elemento que más se repite de una lista de números recibida como argumento de
la función.
Por ejemplo:
Test Resultado
Reiniciar respuesta
Comprobar
https://fcefyn.aulavirtual.unc.edu.ar/mod/quiz/attempt.php?attempt=1820570&cmid=231660 21/51
1/6/23, 22:58 Trabajo práctico 5 (TP5)
Pregunta 14
Sin cambios desde el último intento
Puntúa como 1
Defina una función de nombre producto_lista que calcule la productoria de una lista de números recibida como argumento de la función, y
devuelva su valor. En el caso que la lista esté vacía el valor devuelto debe ser 1. Recordar que la productoria implica hacer el producto de todos
los elementos de la lista.
Por ejemplo:
Test Resultado
print producto_lista([]) 1
Reiniciar respuesta
1 ▼ def producto_lista(lista):
2 ▼ if len(lista) == 0:
3 return 1
4
5 resultado = 1
6 ▼ for num in lista:
7 resultado *= num
8
9 return resultado
Comprobar
print producto_lista([]) 1 1
https://fcefyn.aulavirtual.unc.edu.ar/mod/quiz/attempt.php?attempt=1820570&cmid=231660 22/51
1/6/23, 22:58 Trabajo práctico 5 (TP5)
Pregunta 15
Sin cambios desde el último intento
Puntúa como 1
Realice una función de nombre contar_primos() que reciba como argumento una lista de números enteros y devuelva la cantidad de números
primos que hay en la lista.
Por ejemplo:
Test Resultado
print contar_primos([1,2,3]) 2
print contar_primos([1,4,4,6]) 0
Reiniciar respuesta
1 ▼ def contar_primos(lista):
2 cantidad_primos = 0
3
4 ▼ for num in lista:
5 ▼ if es_primo(num):
6 cantidad_primos += 1
7
8 return cantidad_primos
9
10 ▼ def es_primo(num):
11 ▼ if num < 2:
12 return False
13
14 ▼ for i in range(2, int(num ** 0.5) + 1):
15 ▼ if num % i == 0:
16 return False
17
18 return True
19
Comprobar
print contar_primos([1,2,3]) 2 2
print contar_primos([1,4,4,6]) 0 0
print contar_primos([1,7,9,11]) 2 2
print contar_primos([1,7,9,11,13]) 3 3
print contar_primos([1,7,9,11,31,37]) 4 4
print contar_primos([1,7,9,11,15,31,37,43]) 5 5
https://fcefyn.aulavirtual.unc.edu.ar/mod/quiz/attempt.php?attempt=1820570&cmid=231660 23/51
1/6/23, 22:58 Trabajo práctico 5 (TP5)
Pregunta 16
Sin cambios desde el último intento
Puntúa como 1
La función retornará una lista que contendrá la intersección de A con B. Dicha lista deberá estar ordenada de menor a mayor. Tanto A como B
pueden tener elementos repetidos, la lista, que retorna la función, no debe tener elementos repetidos, de haberlos quedará solo uno.
Por ejemplo:
Test Resultado
Reiniciar respuesta
Comprobar
print AinterseccionB([],[1,2,3]) [] []
print AinterseccionB([5,2,3],[]) [] []
print AinterseccionB([],[]) [] []
https://fcefyn.aulavirtual.unc.edu.ar/mod/quiz/attempt.php?attempt=1820570&cmid=231660 24/51
1/6/23, 22:58 Trabajo práctico 5 (TP5)
Pregunta 17
Sin cambios desde el último intento
Puntúa como 1
Defina una función de nombre listas_iguales que, dado dos listas a y b recibidas como argumentos de la función, devuelva el valor lógico
(booleano) True si las listas son iguales (tienen los mismos valores y en la misma posición) , o el valor False si no lo son.
Por ejemplo:
Test Resultado
Reiniciar respuesta
Comprobar
https://fcefyn.aulavirtual.unc.edu.ar/mod/quiz/attempt.php?attempt=1820570&cmid=231660 25/51
1/6/23, 22:58 Trabajo práctico 5 (TP5)
Pregunta 18
Sin cambios desde el último intento
Puntúa como 1
Defina una función de nombre sumar_columnas que, dado una lista de listas (una matriz) recibida como argumento de la función, devuelva una
nueva lista con la suma de cada columna de la matriz.
Por ejemplo:
Test Resultado
Reiniciar respuesta
1 ▼ def sumar_columnas(matriz):
2 num_columnas = len(matriz[0])
3 suma_columnas = [0] * num_columnas
4
5 ▼ for fila in matriz:
6 ▼ for i, valor in enumerate(fila):
7 suma_columnas[i] += valor
8
9 return suma_columnas
Comprobar
https://fcefyn.aulavirtual.unc.edu.ar/mod/quiz/attempt.php?attempt=1820570&cmid=231660 26/51
1/6/23, 22:58 Trabajo práctico 5 (TP5)
Pregunta 19
Sin cambios desde el último intento
Puntúa como 1
Defina una función de nombre mezclar_listas que, dado dos listas a y b recibidas como argumentos de la función, devuelva una nueva lista que
contenga en forma alternada un elemento de la lista a y otro de la lista b. Si las listas tienen diferentes cantidad de elementos, la función debe
devolver una lista vacía.
Por ejemplo:
Test Resultado
Reiniciar respuesta
Comprobar
https://fcefyn.aulavirtual.unc.edu.ar/mod/quiz/attempt.php?attempt=1820570&cmid=231660 27/51
1/6/23, 22:58 Trabajo práctico 5 (TP5)
Pregunta 20
Sin cambios desde el último intento
Puntúa como 1
Genere una función llamada acumular_filas(matriz) que reciba una matriz de enteros y devuelva una nueva con las siguientes características:
La nueva matriz debe modificar cada elemento de una fila por la suma acumulada de ese elemento y de todos los elementos anteriores en la
misma fila.
Por ejemplo : para la fila 1,2,3,4 la fila correspondiente en la nueva matriz será 1,3,6,10
Para la matriz
Por ejemplo:
Test Resultado
print acumular_filas([[0, 1, 2, 3], [4, 5, 6, 7], [1, 1, 0, 3]]) [[0, 1, 3, 6], [4, 9, 15, 22], [1, 2, 2, 5]]
Comprobar
print acumular_filas([[0, 1, 2, 3], [4, 5, 6, 7], [[0, 1, 3, 6], [4, 9, 15, 22], [[0, 1, 3, 6], [4, 9, 15, 22],
[1, 1, 0, 3]]) [1, 2, 2, 5]] [1, 2, 2, 5]]
print acumular_filas([[0,10,2,3],[0,10,2,3], [[0, 10, 12, 15], [0, 10, 12, [[0, 10, 12, 15], [0, 10, 12,
[0,10,2,3]]) 15], [0, 10, 12, 15]] 15], [0, 10, 12, 15]]
print acumular_filas([[10, 100, 200, 3], [0, 1, 60, [[10, 110, 310, 313], [0, 1, [[10, 110, 310, 313], [0, 1,
150], [0, 100, 10, 3]]) 61, 211], [0, 100, 110, 113]] 61, 211], [0, 100, 110, 113]]
print acumular_filas([[0,0,0,0],[0,0,0,0], [[0, 0, 0, 0], [0, 0, 0, 0], [[0, 0, 0, 0], [0, 0, 0, 0],
[0,0,0,0]]) [0, 0, 0, 0]] [0, 0, 0, 0]]
print acumular_filas([[0,10,-20,10],[0,-10,20,-10], [[0, 10, -10, 0], [0, -10, 10, [[0, 10, -10, 0], [0, -10, 10,
[20,-100,80,-10]]) 0], [20, -80, 0, -10]] 0], [20, -80, 0, -10]]
https://fcefyn.aulavirtual.unc.edu.ar/mod/quiz/attempt.php?attempt=1820570&cmid=231660 28/51
1/6/23, 22:58 Trabajo práctico 5 (TP5)
https://fcefyn.aulavirtual.unc.edu.ar/mod/quiz/attempt.php?attempt=1820570&cmid=231660 29/51
1/6/23, 22:58 Trabajo práctico 5 (TP5)
Pregunta 21
Sin cambios desde el último intento
Puntúa como 1
Genere una función llamada marcar_pares(matriz) que reciba una matriz de enteros y devuelva una nueva matriz con las siguientes
características:
Para la matriz
[[1, 2], [2, 3], [0, 10]]
Por ejemplo:
Test Resultado
print marcar_pares([[1, 2], [2, 3], [0, 10]]) [[0, 1], [1, 0], [1, 1]]
Comprobar
print marcar_pares([[1, 2], [2, 3], [0, 10]]) [[0, 1], [1, 0], [1, 1]] [[0, 1], [1, 0], [1, 1]]
print marcar_pares([[1,2,3,4],[0,10,2,3],[0,10,2,3]]) [[0, 1, 0, 1], [1, 1, 1, 0], [[0, 1, 0, 1], [1, 1, 1, 0],
[1, 1, 1, 0]] [1, 1, 1, 0]]
print marcar_pares([[-100,2,-300,4],[-1000,0,-2,100], [[1, 1, 1, 1], [1, 1, 1, 1], [[1, 1, 1, 1], [1, 1, 1, 1],
[-10,0,-200,300]]) [1, 1, 1, 1]] [1, 1, 1, 1]]
print marcar_pares([[0,0,0,0],[0,0,0,0],[0,0,0,0]]) [[1, 1, 1, 1], [1, 1, 1, 1], [[1, 1, 1, 1], [1, 1, 1, 1],
[1, 1, 1, 1]] [1, 1, 1, 1]]
print marcar_pares([[0,10,-20,10],[0,-10,20,-10], [[1, 1, 1, 1], [1, 1, 1, 1], [[1, 1, 1, 1], [1, 1, 1, 1],
[20,-100,80,-10]]) [1, 1, 1, 1]] [1, 1, 1, 1]]
https://fcefyn.aulavirtual.unc.edu.ar/mod/quiz/attempt.php?attempt=1820570&cmid=231660 30/51
1/6/23, 22:58 Trabajo práctico 5 (TP5)
https://fcefyn.aulavirtual.unc.edu.ar/mod/quiz/attempt.php?attempt=1820570&cmid=231660 31/51
1/6/23, 22:58 Trabajo práctico 5 (TP5)
Pregunta 22
Sin cambios desde el último intento
Puntúa como 1
Genere una función llamada marcar_mayores(matriz) que reciba una matriz de enteros y devuelva una nueva matriz con las siguientes
características:
Para la matriz
[[10, 21], [15, 3], [0, 20]]
Por ejemplo:
Test Resultado
print marcar_mayores([[10, 21], [15, 3], [0, 20]]) [[-1, 0], [1, -1], [-1, 0]]
Comprobar
print marcar_mayores([[10, 21], [15, 3], [0, 20]]) [[-1, 0], [1, -1], [-1, 0]] [[-1, 0], [1, -1], [-1, 0]]
print marcar_mayores([[11,20,13,24],[0,10,20,31], [[1, 0, 1, 0], [-1, -1, 0, 0], [[1, 0, 1, 0], [-1, -1, 0, 0],
[10,10,12,13]]) [-1, -1, 1, 1]] [-1, -1, 1, 1]]
print marcar_mayores([[-100,2,-300,4], [[-1, -1, -1, -1], [-1, -1, -1, [[-1, -1, -1, -1], [-1, -1,
[-1000,0,-2,100],[-10,0,-200,300]]) 0], [-1, -1, -1, 0]] -1, 0], [-1, -1, -1, 0]]
print marcar_mayores([[0,0,0,0],[0,0,0,0], [[-1, -1, -1, -1], [-1, -1, -1, [[-1, -1, -1, -1], [-1, -1,
[0,0,0,0]]) -1], [-1, -1, -1, -1]] -1, -1], [-1, -1, -1, -1]]
print marcar_mayores([[0,10,-20,10],[0,-10,20,-10], [[-1, -1, -1, -1], [-1, -1, 0, [[-1, -1, -1, -1], [-1, -1, 0,
[20,-100,80,-10]]) -1], [0, -1, 0, -1]] -1], [0, -1, 0, -1]]
https://fcefyn.aulavirtual.unc.edu.ar/mod/quiz/attempt.php?attempt=1820570&cmid=231660 32/51
1/6/23, 22:58 Trabajo práctico 5 (TP5)
https://fcefyn.aulavirtual.unc.edu.ar/mod/quiz/attempt.php?attempt=1820570&cmid=231660 33/51
1/6/23, 22:58 Trabajo práctico 5 (TP5)
Pregunta 23
Sin cambios desde el último intento
Puntúa como 1
Genere una función llamada promediar_filas(matriz) que reciba una matriz de enteros y devuelva una nueva de flotantes con las siguientes
características:
La nueva matriz debe modificar cada elemento de una fila por el promedio del resto de los elementos de la fila matriz original.
Por ejemplo : para la fila 1,2,3,4 la misma fila en la nueva matriz será 3.00,2.66,2.33,2.00
Para la matriz
[[1, 2], [2, 3], [0, 10]]
Por ejemplo:
Test Resultado
Comprobar
print promediar_filas([[1,2],[2,3], [[2.0, 1.0], [3.0, 2.0], [10.0, 0.0]] [[1, 1], [2, 2],
[0,10]]) [5, 5]]
https://fcefyn.aulavirtual.unc.edu.ar/mod/quiz/attempt.php?attempt=1820570&cmid=231660 34/51
1/6/23, 22:58 Trabajo práctico 5 (TP5)
print promediar_filas([[0,0,0,0], [[0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0], [0.0, [[0, 0, 0, 0], [0,
[0,0,0,0],[0,0,0,0]]) 0.0, 0.0, 0.0]] 0, 0, 0], [0, 0, 0,
0]]
Your code must pass all tests to earn any marks. Try again.
Mostrar diferencias
https://fcefyn.aulavirtual.unc.edu.ar/mod/quiz/attempt.php?attempt=1820570&cmid=231660 35/51
1/6/23, 22:58 Trabajo práctico 5 (TP5)
Pregunta 24
Sin cambios desde el último intento
Puntúa como 1
Genere una función llamada multiplicar_matrices(m1, m2) que reciba como argumentos dos matrices de números flotantes y devuelva una
nueva matriz, cuyo resultado sea el producto matricial entre m1 y m2. Si la operación no puede ser realizada, deberá devolver una lista vacía.
Por ejemplo:
Test Resultado
Reiniciar respuesta
Comprobar
print multiplicar_matrices([[1,1], [0,1]], [[1,0], [[2.0, 1.0], [1.0, 1.0]] [[2.0, 1.0], [1.0, 1.0]]
[1,1]])
print multiplicar_matrices([[1,0],[1,1]], [[1,1], [[1.0, 1.0], [1.0, 2.0]] [[1.0, 1.0], [1.0, 2.0]]
[0,1]])
print multiplicar_matrices([[1,4,7], [2,5,8], [[30.0, -26.0, 10.0], [36.0, [[30.0, -26.0, 10.0], [36.0,
[3,6,9]], [[1,-1,2], [2,-1,2], [3,-3,0]]) -31.0, 14.0], [42.0, -36.0, -31.0, 14.0], [42.0, -36.0,
18.0]] 18.0]]
https://fcefyn.aulavirtual.unc.edu.ar/mod/quiz/attempt.php?attempt=1820570&cmid=231660 36/51
1/6/23, 22:58 Trabajo práctico 5 (TP5)
print multiplicar_matrices([[1,3,-1], [0, 2,-5], [1, [[-4.0, -7.0], [-25.0, -19.0], [[-4.0, -7.0], [-25.0,
2, 3]], [[1,2],[0,-2],[5,3]]) [16.0, 7.0]] -19.0], [16.0, 7.0]]
https://fcefyn.aulavirtual.unc.edu.ar/mod/quiz/attempt.php?attempt=1820570&cmid=231660 37/51
1/6/23, 22:58 Trabajo práctico 5 (TP5)
Pregunta 25
Sin cambios desde el último intento
Puntúa como 1
Genere una función llamada sumar_matrices(m1, m2) que reciba como argumentos dos matrices de números flotantes y devuelva una nueva
matriz, cuyo resultado sea la suma de las dos matrices (elemento a elemento).
Por ejemplo:
Test Resultado
print sumar_matrices([[1.1,0.3,2.56],[1.1,1.32,2.65]], [[1.1,9.1,1], [0,0,1.1]]) [[2.2, 9.4, 3.56], [1.1, 1.32, 3.75]]
Reiniciar respuesta
Comprobar
print sumar_matrices([[1,1], [0,1]], [[1,0],[1,1]]) [[2, 1], [1, 2]] [[2, 1], [1, 2]]
print sumar_matrices([[1,0],[1,1]], [[1,1], [0,1]]) [[2, 1], [1, 2]] [[2, 1], [1, 2]]
print sumar_matrices([[1,4,7], [2,5,8], [3,6,9]], [[1,-1,2], [[2, 3, 9], [4, 4, 10], [[2, 3, 9], [4, 4, 10],
[2,-1,2], [3,-3,0]]) [6, 3, 9]] [6, 3, 9]]
https://fcefyn.aulavirtual.unc.edu.ar/mod/quiz/attempt.php?attempt=1820570&cmid=231660 38/51
1/6/23, 22:58 Trabajo práctico 5 (TP5)
Pregunta 26
Sin cambios desde el último intento
Puntúa como 1
Genere una función llamada son_iguales(m1, m2) que recibe dos matrices m1 y m2 con valores flotantes y devuelve True si las dos matrices
son iguales y False en caso contrario. Debe comprobar que las matrices tengan igual número de filas e igual número e columnas y luego se
debe comprobar que todos los elementos sean iguales. Se debe considerar que dos elementos son iguales si la diferencia entre ellos es menor
a 0.000001.
Por ejemplo:
Test Resultado
Reiniciar respuesta
Comprobar
Se
Test Esperado
obtuvo
https://fcefyn.aulavirtual.unc.edu.ar/mod/quiz/attempt.php?attempt=1820570&cmid=231660 39/51
1/6/23, 22:58 Trabajo práctico 5 (TP5)
https://fcefyn.aulavirtual.unc.edu.ar/mod/quiz/attempt.php?attempt=1820570&cmid=231660 40/51
1/6/23, 22:58 Trabajo práctico 5 (TP5)
Pregunta 27
Sin cambios desde el último intento
Puntúa como 1
Genere una función llamada mostrar_enmascarada(mat, mascara) que recibe dos matrices de igual tamaño. La primera (mat) es una matriz
de valores flotantes y la segunda (mascara) es una matriz de elementos booleanod (True o False). La función debe mostrar por pantalla los
valores de la matriz mat en formato de matriz con dos decimales y 7 espacios en total para todas aquellas posiciones en las que en la matriz
mascara el valor sea True y debe mostrar una "x" en las posiciones donde mascara contenga un False.
Por ejemplo:
si mat es [[1.1233, 5.123, 9.0], [8.12, 7.12345, -1.5]] y mascara es [[True, False, False], [True, True, False]], se debe mostrar por pantalla:
1.12 x x
8.12 5.12 x
Por ejemplo:
Test Resultado
Reiniciar respuesta
Comprobar
https://fcefyn.aulavirtual.unc.edu.ar/mod/quiz/attempt.php?attempt=1820570&cmid=231660 41/51
1/6/23, 22:58 Trabajo práctico 5 (TP5)
https://fcefyn.aulavirtual.unc.edu.ar/mod/quiz/attempt.php?attempt=1820570&cmid=231660 42/51
1/6/23, 22:58 Trabajo práctico 5 (TP5)
Pregunta 28
Sin cambios desde el último intento
Puntúa como 1
Defina la función encontrar_en_filas que recibe como argumento una matriz de caracteres (sopa_letras), y una cadena de caracteres (palabra).
La función deberá buscar la ocurrencia de palabra en las filas de la matriz, tanto escrita de izquierda a derecha como de derecha a izquierda. Al
finalizar deberá retornar una matriz dónde cada fila almacenará el indice de fila, columna de inicio y columna de final de cada ocurrencia de la
palabra en la matriz. En caso de que no se encuentre la palabra en la matriz deberá retornar una lista vacía.
Ejemplo
Dada la sopa de letras que se muestra en el dibujo y si la palabra a buscar fuera "PAPA", usted debería encontrar 3 ocurrencias de la palabra en
filas de izquierda a derecha (las cuáles están resaltadas en amarillo) y 1 ocurrencia de derecha a izquierda (resaltada en verde).
Si usted resolvió el problema(*), es decir obtiene las mismas casos de ocurrencia de la palabra pero en distinto orden, considere lo siguiente:
1) Los casos están ordenados por el número de fila. Es decir, casos de índice de fila menor aparecen primero.
2) Entre dos casos de una misma fila, primero aparecen los de izquierda a derecha y luego los de derecha a izquierda.
3) Los casos de izquierda a derecha, como así también de derecha a izquierda, están ordenados de acuerdo a su ocurrencia siguiendo el
orden de lectura indicado. Es decir, un casos de izquierda a derecha deberá aparecer primero cuando el índice de inicio es menor y un caso
de derecha a izquierda deberá aparecer primero cuando el índice de inicio es mayor.
Estas consideraciones no implican la implementación de un algoritmo de ordenamiento, sino mas bien el orden en el que usted deberá ir
insertando los resultados a la matriz resultante.
(*) Si NO resolvió el problema, la aclaración que viene pueda que lo confunda.
Por ejemplo:
Test Resultado
sopa = [ []
['A','S','U','S','A','N','A','B'],
['B','U','S','U','S','A','N','A'],
['C','S','P','E','R','R','O','S'],
['D','A','G','A','T','O','S','S'],
['E','N','P','A','P','A','P','A'],
['F','A','A','R','B','O','L','S'],
['L','M','P','I','N','T','A','S'],
['L','M','A','V','P','A','P','A']
]
print encontrar_en_filas(sopa, 'SUSANO')
https://fcefyn.aulavirtual.unc.edu.ar/mod/quiz/attempt.php?attempt=1820570&cmid=231660 43/51
1/6/23, 22:58 Trabajo práctico 5 (TP5)
Test Resultado
Reiniciar respuesta
Comprobar
sopa = [ [[4, 2, 5], [4, 4, 7], [4, 6, 3], [7, 4, 7]] None
['A','S','U','S','A','N','A','B'],
['B','U','S','U','S','A','N','A'],
['C','S','P','E','R','R','O','S'],
['D','A','G','A','T','O','S','S'],
['E','N','P','A','P','A','P','A'],
['F','A','A','R','B','O','L','S'],
['L','M','P','I','N','T','A','S'],
['L','M','A','V','P','A','P','A']
]
print encontrar_en_filas(sopa, 'PAPA')
https://fcefyn.aulavirtual.unc.edu.ar/mod/quiz/attempt.php?attempt=1820570&cmid=231660 44/51
1/6/23, 22:58 Trabajo práctico 5 (TP5)
sopa = [ [[0, 1, 2], [0, 3, 2], [1, 2, 3], [1, 4, 3], [1, 2, 1]] None
['A','S','U','S','A','N','A','B'],
['B','U','S','U','S','A','N','A'],
['C','S','P','E','R','R','O','S'],
['D','A','G','A','T','O','S','S'],
['E','N','P','A','P','A','P','A'],
['F','A','A','R','B','O','L','S'],
['L','M','P','I','N','T','A','S'],
['L','M','A','V','P','A','P','A']
]
print encontrar_en_filas(sopa, 'SU')
https://fcefyn.aulavirtual.unc.edu.ar/mod/quiz/attempt.php?attempt=1820570&cmid=231660 45/51
1/6/23, 22:58 Trabajo práctico 5 (TP5)
sopa = [ [] None
['A','S','U','S','A','N','A','B'],
['B','U','S','U','S','A','N','A'],
['C','S','P','E','R','R','O','S'],
['D','A','G','A','T','O','S','S'],
['E','N','P','A','P','A','P','A'],
['F','A','A','R','B','O','L','S'],
['L','M','P','I','N','T','A','S'],
['L','M','A','V','P','A','P','A']
]
print encontrar_en_filas(sopa, 'SUSANO')
https://fcefyn.aulavirtual.unc.edu.ar/mod/quiz/attempt.php?attempt=1820570&cmid=231660 46/51
1/6/23, 22:58 Trabajo práctico 5 (TP5)
https://fcefyn.aulavirtual.unc.edu.ar/mod/quiz/attempt.php?attempt=1820570&cmid=231660 47/51
1/6/23, 22:58 Trabajo práctico 5 (TP5)
Pregunta 29
Sin cambios desde el último intento
Puntúa como 1
El método Bífido es un cifrado fraccionario. Es decir que cada letra viene representada por una o más letras o símbolos. El método comienza
utiliza un alfabeto ordenado o desordenado en una matriz 5×5.
Aclaración : como la matriz es de 5x5 debemos unir los caracteres i y j en una sola posición. El contexto nos permitirá distinguir cual de las dos
letras se pretendía cifrar.
Las primeras posiciones son ocupadas por los valores de la clave y el resto se completan con las letras faltantes del alfabeto ingles (en orden
alfabético).
Para cifrar el texto en claro se escriben los equivalentes numéricos de cada letra, utilizando sus "coordenadas". Si por ejemplo el texto es:
informatica
34 43 31 44 14 42 22 15 34 24 22
es decir la i está en la fila 3 columna 4 de la matriz , la n en la fila 4 columna 3 , y así sucesivamente.
34433144144
22215342422
32 42 42 31 35 13 44 42 14 42 42
gmmfkeomrmm
Implemente una función cifrar (matriz,cadena) que reciba la matriz 5x5 (se probará con varias matrices para diferentes claves) y una cadena.
La función debe devolver la cadena con el mensaje cifrado. La cadena debe convertirse a minúsculas.
Por ejemplo:
Test Resultado
Reiniciar respuesta
https://fcefyn.aulavirtual.unc.edu.ar/mod/quiz/attempt.php?attempt=1820570&cmid=231660 48/51
1/6/23, 22:58 Trabajo práctico 5 (TP5)
Comprobar
Your code must pass all tests to earn any marks. Try again.
Mostrar diferencias
https://fcefyn.aulavirtual.unc.edu.ar/mod/quiz/attempt.php?attempt=1820570&cmid=231660 49/51
1/6/23, 22:58 Trabajo práctico 5 (TP5)
Pregunta 30
Sin cambios desde el último intento
Puntúa como 1
Ejercicio Integrador
1. Implemente la función mostrar_matriz que recibe como parámetro una matriz y la muestra en forma matricial (una fila debajo de la otra)
escribiendo cada valor en 5 lugares.
2. Implemente la función máximo_matriz que recibe como parámetros una matriz de valores numéricos y debe retornar el valor mas grande
de la matriz.
3. Implemente una función extraer_columna que dada una matriz y un entero i, devuelva una lista con todos los valores de la columna i-
esima de la matriz.
4. Escriba una función, que no reciba parámetros, con nombre main que haga los siguientes pasos:
ii) Cree una matriz de N filas y M columnas y solicite al usuario valores para cada posición de la matriz.
iii) Imprima el mensaje "La matriz ingresada es: " y luego invoque a la función mostrar_matriz para imprimir por pantalla la matriz
Por ejemplo:
Reiniciar respuesta
1 ▼ def mostrar_matriz(matriz):
2▼ for fila in matriz:
3▼ for valor in fila:
4 print("{:5}".format(valor), end="")
5 print()
6
7 ▼ def maximo_matriz(matriz):
8 max_valor = float('-inf')
9▼ for fila in matriz:
10 max_fila = max(fila)
11 ▼ if max_fila > max_valor:
12 max_valor = max_fila
13 return max_valor
14
15 ▼ def extraer_columna(matriz, i):
16 columna = []
17 ▼ for fila in matriz:
18 columna.append(fila[i])
19 return columna
20
21 ▼ def main():
22 N = int(input("Ingrese el numero de filas: "))
23 M = int(input("Ingrese el numero de columnas: "))
24
25 matriz = []
26 ▼ for _ in range(N):
27 fila = []
28 ▼ for _ in range(M):
29 valor = float(input("Ingrese un valor para la matriz: "))
30 fila.append(valor)
31 matriz.append(fila)
32
https://fcefyn.aulavirtual.unc.edu.ar/mod/quiz/attempt.php?attempt=1820570&cmid=231660 50/51
1/6/23, 22:58 Trabajo práctico 5 (TP5)
3
33 print("La matriz ingresada es:")
34 mostrar_matriz(matriz)
35
36 max_valor = maximo_matriz(matriz)
37 print("El valor maximo de la matriz es:", max_valor)
38
39 ▼ for i in range(M):
40 columna = extraer_columna(matriz, i)
41 ▼ if max_valor in columna:
42 print("El valor maximo esta en la columna", i+1)
43 ▼ else:
44 print("El valor maximo no esta en la columna", i+1)
Comprobar
https://fcefyn.aulavirtual.unc.edu.ar/mod/quiz/attempt.php?attempt=1820570&cmid=231660 51/51