Está en la página 1de 7

Tema 1 [20 PUNTOS]

Implemente la función consecutivos(lista) que reciba una lista de cualquier longitud compuesta
únicamente de ceros (0) y unos (1) en un orden aleatorio. Recorriendo la lista UNA SOLA VEZ, la
función debe retornar el tamaño de la mayor secuencia de unos (1) consecutivos detectados en la
lista.

Ejemplo:

Si lista = [0, 1, 1, 0, 1, 1, 1, 0, 0, 1] entonces el tamaño de la mayor secuencia es 3.

Si lista = [1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1] entonces el tamaño de la mayor secuencia es 5.

Ayuda: Para resolver este problema utilice un contador y recuerde que SOLO DEBE recorrer la lista
UNA vez. No hay for o while anidados.

Tema 2 [40 PUNTOS]


Implemente un programa que determine el porcentaje de efectividad de la función random.shuffle.
Para esto:

1. Genere una lista de 51 números aleatorios únicos (sin repetidos) entre <<1 y 700>>.
2. Repita los siguientes pasos 100 veces:
2.1 Desordene la lista original usando random.shuffle
2.2 Contar cuántos elementos han cambiado de posición entre la lista original y la lista resultante
(después de mezclarla). Llamemos a este valor X.
2.3 Calcular el porcentaje de efectividad de la iteración actual. % efectividad iteracion = X * 100 / len(lista)
3. Calcule y muestre por pantalla el porcentaje de efectividad final. El porcentaje de efectividad final
es el promedio de los porcentajes de efectividad de las 100 repeticiones, en otras palabras,
debe dividir la suma de todos los porcentajes de efectividad de las repeticiones para 100.
Tema 3 [40 PUNTOS] (2 literales)
1. Implemente la función extraer_temp(tuits, ciudad) que recibe una lista de tweets y el nombre de una
ciudad. La función retorna tres listas paralelas. La primera con las fechas, la segunda con las
temperaturas mínimas y la tercera con las temperaturas máximas para la ciudad especificada.

Ejemplo (Recuerde que los datos del ejemplo son solo demostrativos y pueden cambiar para las
pruebas finales cuando revisemos su solución)

Si tenemos la siguiente lista de tweets:

tweets = ['El DIA 2021-05-17 en la CIUDAD Guayaquil se registró una TEMP_MIN 18.3 grados centígrados y una TE
MP_MAX 27.7 grados centígrados.',
...,
'El DIA 2018-01-11 en la CIUDAD Guayaquil se registró una TEMP_MIN 21.2 grados centígrados y una TEMP_MAX
32.3 grados centígrados.',
...,
'El DIA 2018-01-11 en la CIUDAD Salinas se registró una TEMP_MIN 20.3 grados centígrados y una TEMP_MAX 26.
5 grados centígrados.',
...,
'El DIA 2020-04-09 en la CIUDAD Guayaquil se registró una TEMP_MIN 17.5 grados centígrados y una TEMP_MAX
24.2 grados centígrados.',
...
]
Las palabras DIA, CIUDAD, TEMP_MIN y TEMP_MAX siempre estarán presentes indicando los datos
que debe extraer.

Si invocamos a la función para la ciudad Guayaquil, obtenemos las siguientes tres listas:

['2021-05-17', '2018-01-11', '2020-04-09', ...] <-- Lista de fechas


[18.3, 21.2, 17.5, ...] <-- Lista de temperaturas mínimas
[27.7, 32.3, 24.2, ...] <-- Lista de temperaturas máximas
Todas las fechas tienen siempre el mismo formato AAAA-MM-DD.

2. Finalmente, escriba un programa que:


2.1. Llame a la función extraer_temp para generar las tres listas paralelas con la información para la
ciudad de Machala . Para el resto de este tema trabaje solo con estas temperaturas y fechas que
acaba de extraer.
2.2. Genere una cuarta lista paralela con la temperatura promedio para cada fecha. promedio =
(temp_min + temp_max) / 2
2.3. Pida al usuario que ingrese un número de mes. Validar que el número esté entre 1 y 12, sino,
volver a pedirlo hasta que ingrese uno correcto. Luego, considere las temperaturas promedios
(calculadas en el punto anterior) solo para fechas que correspondan a ese mes (sin importar el día o
año) y muestre por pantalla la menor temperatura promedio.
TEMA 1. (40 PUNTOS)
El juego de mesa Scrabble es un juego donde se forman palabras en un tablero, a las cuales se les
asigna un puntaje. Las palabras pueden crearse cruzándolas con palabras ya existentes en el tablero. El
ganador es quien más puntos haya obtenido:

A su equipo se le ha encargado la implementación de este juego. En particular, tiene que implementar un


programa que asigne puntaje a las palabras. Cada letra tiene una puntuación, mostrada abajo:
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
1 3 3 2 1 4 2 4 1 9 5 1 3 1 1 3 10 1 1 1 1 4 4 9 4 10

Las letras compartidas entre palabras reciben el doble de puntos. Su programa recibirá una secuencia
de palabras, separadas por comas, ingresada por el usuario por teclado y determinará el puntaje de
cada una. Para denotar una letra compartida, la misma será sucedida por el símbolo “*”. Asuma que
todas las palabras terminan con una letra compartida. Todas las letras ingresadas deben ser
mayúsculas. Si se ingresa un letra minúscula, esta es ignorada (puntuación de 0 para dicha letra).
Finalmente, se debe determinar la palabra con mayor puntaje.

Una corrida ejemplo del programa sería:


Ingrese las palabras a calificar: CAS*A*,S*ASTR*E*,R*EY*,A*ZOTE*
Las calificaciones de las palabras son:
casa: 8
sastre: 9
rey: 11
azote: 16
La palabra con mayor puntaje es AZOTE (16 puntos).

Detalle de cómo se obtuvieron los puntajes de cada palabra:


String ingresado: CAS*A*,S*ASTR*E*,R*EY*,A*ZOTE*
casa: 8 -> 3 + 1 + (2 * 1) + (2 * 1)
sastre: 9 -> (2 * 1) + 1 + 1 + 1 + (2 * 1) + (2 * 1)
rey: 11 -> (2 * 1) + 1 + (2 * 4)
azote: 16 -> (2 * 1) + 10 + 1 + 1 + (2 * 1)

También podría gustarte