• No se han encontrado resultados

Introducción a la programación

N/A
N/A
Protected

Academic year: 2021

Share "Introducción a la programación"

Copied!
5
0
0

Texto completo

(1)

Introducción a la programación

Examen III

Prof. Aurelio Sanabria 11 de noviembre, 2016

Indicaciones generales

El examen es de desarrollo. Se deben escribir las funciones solicitadas en cada enunciado. Si requiere implementar otras funciones para poder responder de forma adecuada a lo que se le solicita puede hacerlo (recomendado), pero asegúrese de cumplir con lo solicitado en el enunciado de cada ejercicio. Solo se pueden utilizar las funciones aritméticas, lógicasy las de validación utilizadas en las clases. Todas las soluciones deben incluir validaciónde restricciones y deben estar implementadas de forma eficiente.

Escriba con letra clara y evite manchones o tachones, a la hora de la revisión del examen las palabras u oraciones que resulten ilegibles no serán tomadas en cuenta para la calificación. Utilice lapicero para responder las preguntas, no se aceptarán reclamos para respuestas escritas con lápiz.

Mantenga suteléfono celular apagadodurante el transcurso del examen. En caso contrario se asignará la nota mínima a la prueba.

Cada función a resolver debe implementarse utilizando iteracióny seguir la sintaxis que se indique en el enunciado del ejercicio, esto aplica para el nombre que se le debe asignar a la función, losargumentos que recibe, eltipo que tendrá el valorretornado (ej: boolean, int) y el texto a retornar en caso de haber mensajes de error. La sintaxis de cada función será:

nombre_función(param1, param2 ... paramn) → salida

Donde: se indicará el tipo de cada parámetro además de sus restricciones y entre paréntesis el mensaje de error que debe retornarse si no se cumpliera. Ej: param1 es número entero (‘Error01’), es mayor que cero (‘Error02.’) y es un número par (‘Error03.’). param2 debe ser

(2)

No se debe incluir ninguna funcionalidad para solicitar datos de entrada (input) ni se deben imprimir los resultado de la función (print).

¡Mucha suerte!

Ejercicios a resolver

Ejercicio 1: Eliminar emoticones

Se desean eliminar los emoticones de los textos que se reciben.

caput_emoticones(emoticones, texto) → salida

Donde: emoticones es una lista (‘Error01’), con al menos un elemento (‘Error02.’) y sus elementos son únicamente textos (‘Error03’). texto debe ser de tipo texto (‘Error04.’). La

salida debe ser un texto. Ejemplos:

>>> caput_emoticones(":D", "Hola XD, ya pasamos el curso? :) ") 'Error01'

>>> caput_emoticones([], "Hola XD, ya pasamos el curso? :) ") 'Error02'

>>> caput_emoticones([30, ":D"], "Hola XD, ya pasamos el curso? :) ") 'Error03'

>>> caput_emoticones(["XD", ":D"], ["Hola XD, ya pasamos el curso? :) "]) 'Error04'

>>> caput_emoticones(["XD", ":D"], "Hola XD, ya pasamos el curso? :) ") "Hola , ya pasamos el curso? :) "

>>> caput_emoticones(["XD", ":)"], "Hola XD, ya pasamos el curso? :) ") "Hola , ya pasamos el curso? "

Ejercicio 2: Triangular superior o triangular inferior

En álgebra lineal, una matriz triangular es un tipo especial de matriz cuadrada cuyos elementos por encima o por debajo de su diagonal principal son cero.

Por otro lado una matriz triangular es invertible si y solo si todos los elementos de la diagonal son no nulos.

(3)

Figure 1: Ejemplo de matrices triangular superior y triangular inferior

es_triangular_invertible(matriz) → salida

Donde: matriz es una matriz válida(‘Error01’), cuadrada (‘Error02.’) y es invertible (‘Error03’). La salida debe ser un valor numérico: - 0: La matriz es invertible, pero no triangular - 1: si es triangular superior invertible - 2: si es triangular inferior invertible

Ejemplos: >>> es_triangular_invertible([]) 'Error01' >>> es_triangular_invertible([[3,5,8],[2,4],[1,4,7]]) 'Error01' >>> es_triangular_invertible([[3,5],[2,4],[4,7]]) 'Error02' >>> es_triangular_invertible([[3, 5, 6], [11, 2, 4], [4, 4, 0]]) 'Error03' >>> es_triangular_invertible([[ 3, 0, 0, 7], [11, 2, 0, 0], [ 4, 4, 2, 0], [14, 4, 9, 5]]) 0

(4)

>>> es_triangular_invertible([[ 3, 0, 0, 0], [11, 2, 0, 0], [ 4, 4, 2, 0], [14, 4, 9, 5]]) 1 >>> es_triangular_invertible([[ 3, 25, 40, 19], [ 0, 98, 12, 39], [ 0, 0, 2, 9], [ 0, 0, 0, 5]]) 2

Ejercicio 3: Conjetura de Collatzs

Había una vez, en un muy, muy lejano reino, una pequeña cabaña en el bosque con un señor vagazo que no iba a cortar leña ni a sembrar el huerto, el solo se dedicaba a la matemática, números iban y venían sin cesar desde y hacia su cabeza. . . y un cierto día nublado, sin mucho color. . . de esos días que dan ganas de quedarse a dormir en la camita, se inventó una conjetura. . . la conjetura de Collatz. . .

[Música de suspenso]

La conjetura de Collatz genera una sucesión de números basado en la siguiente fórmula: 1. Inicia con cualquier número positivo 2. Si el número es par, se divide entre 2, si es impar se multiplica por 3 y se le suma 1 3. Se repite el paso anterior sucesivamente obteniendo enteros hasta llegar a obtener el 1

Desarrolle una función Collatz que reciba un número, que va a ser el inicial, y obtenga una lista con la sucesión de Collatz.

collatz(numero) → salida

Donde: numero es es entero (‘Error01’) y es positivo (‘Error02.’). La salida debe ser una lista: Ejemplos: >>> collatz("¿En serio?") 'Error01' >>> collatz(-18) 'Error02' >>> collatz(5) [5, 16, 8, 4, 2, 1] >>> collatz(23) [23, 70, 35, 106, 53, 160, 80, 40, 20, 10, 5, 16, 8, 4, 2, 1]

(5)

Entrega del examen

Una vez resuelto el examen deben sacarle una fotocopia o una fotografía, entregar el original al profesor y transcribir las respuestas en digital para enviarlo por correo electrónico al profesor a más tardar el día siguiente al exámen.

Todas las soluciones a los ejercicios deben estar en un solo archivo con código Python3. La siguiente será la sintaxis a seguir para el nombre del archivo:

<Carné del estudiante>_Examen03.py

Ejemplo: “201516627_Examen03.py”

Para el campo “asunto” del correo electrónico en el cual se enviará la solución:

<NOMBRE Estudiante> - Examen03

Ejemplo: “Randall ‘el chiqui’ Brenes - Examen03”

El programa a enviar por correo debe incluir documentación que incluya el nombre del estudiante y número de carné. Además debe incluir documentación interna para cada función en la que se incluya al menos: descripción (¿qué resuelve la función?), entradas, salidas y restricciones.

Referencias

Documento similar