Examen 2023 2T 1P
Tema 1 (15 PUNTOS)
Recuperado por Robespierre Triviño, inscríbete al 0967438977
Implemente la función actualizar_placa(placa) que recibe un string con una palabra de vehículo
ecuatoriana válida (letras-números) pero tiene tres (3) dígitos en lugar de cuatro (4). La función debe añadir
un cero (0) a la izquierda de los dígitos y retornar la nueva placa. Ejemplo:
actualizar_placa("ABC-110") => "ABC-0110"
Luego, en su programa principal, asuma que tiene una lista con placas válidas pero de 3 dígitos. Utilice la
función que creó para actualizar todas las placas de la lista.
Ejemplo de la lista original:
["ABC-110", "GRT-202", "XDW-343", "AAS-743"]
Ejemplo de la lista resultante
["ABC-0110", "GRT-0202", "XDW-0343", "AAS-0743"]
Tema 2 (20 PUNTOS)
Recuperado por Robespierre Triviño, inscríbete al 0967438977
Implemente la función reemplazar_palabras(mensaje, palabras) que recibe un mensaje y una lista de
strings donde cada string tiene el formato "palabra_vieja|palabra_nueva". Para cada string en la lista, la
función debe reemplazar todas las ocurrencias exactas de la palabra vieja por la palabra nueva. La función
retorna el nuevo mensaje.
Asuma que todas las palabras en el mensaje están en minúsculas, separadas por un espacio en blanco
y que el mensaje no contiene signos de puntuación.
Note que en el ejemplo, la palabra "lleno" en "relleno" no se reemplaza por "repleto" por no ser una
ocurrencia exacta. Ejemplo de entrada:
mensaje = "comer relleno me dejó muy lleno y cuando estoy lleno no me siento
bien"
palabras = ["lleno|repleto", "comer|cenar", "bien|alegre"]
Ejemplo de salida:
"cenar relleno me dejó muy repleto y cuando estoy repleto no me siento alegre"
Tema 3 (30 PUNTOS)
Recuperado por Robespierre Triviño, inscríbete al 0967438977
En su programa principal, implemente la siguiente variante del juego Nim. En el juego, existe un tazón con
181 piedras y participan dos personas que por turnos lanzan un dado de seis lados. Cada jugador retira del
tazón la cantidad de piedras que indica el dado en su turno. El juego termina cuando el tazón queda vacío. El
perdedor es quien vacía el tazón.
Los mensajes de la dinámica del juego deben ser mostrados según el ejemplo de ejecución.
Ejemplo de ejecución:
Ingrese jugador 1: Rodolfo
Ingrese jugador 2: Cometa
¡Ha comenzado el juego de Nim!
Número de piedras: 181
Dado de Rodolfo: 5
Número de piedras: 176
Dado de Cometa: 3
Número de piedras: 173
Dado de Rodolfo: 2
...
Número de piedras: 4
Dado de Rodolfo: 5
¡Juego terminado!
Ganador: Cometa
Tema 4 (35 PUNTOS)
Recuperado por Robespierre Triviño, inscríbete al 0967438977
Implemente la función verificar(cedula) que recibe un string con los 10 dígitos de un número de cédula
ecuatoriana. La función debe retornar True si la cédula es válida o False en caso contrario. Para verificar la
cédula, utilice el siguiente algoritmo:
1. Se agrupan los nuevos (9) primeros dígitos en dos partes: los que están en índices pares y los que están
en índices impares.
2. Cada dígito en índice par se multiplica por dos (2). Solo si el resultado de esa multiplicación es mayor a
nueve, se le resta nueve (9).
3. Los dígitos en índices impares se mantienen inalterados.
4. Se suman los dígitos del paso 2 y 3.
5. Se toma el dígito más a la derecha del resultado de la suma del paso 4.
6. Si el resultado obtenido en el paso 5 es cero, entonces el dígito verificador es cero. En caso contrario, el
dígito verificador será el número 10 menos el dígito del paso 5.
7. Si el dígito verificador es igual al último dígito de la cédula, la cédula es válida.
Ejemplo:
Cédula => 1713175071
Dígitos en índices pares => 1, 1, 1, 5, 7
Multiplicados por 2 => 2, 2, 2, 10, 14
Restados 9 => 2, 2, 2, 1, 5
Dígitos en índices impares => 7, 3, 7, 0
Suma de los nuevos dígitos => 29
Último dígito de la suma => 9
Dígito verificador => 10 - 9 = 1
El dígito verificado es igual al último dígito de la cédula, entonces la función retorna True.