Laboratorio 3: Implementando Funciones
Post date: Feb 1, 2013 5:14:41 PM
El objetivo de este laboratorio es repasar algunas de las técnicas iterativas y recurrentes vistas en clase, y su implementación en el lenguaje de programación Python usando funciones. Con este propósito en mente, cada estudiante deberá escoger entre 5 problemas propuetos y 3 formas diferentes de resolverlos. Dependiendo de la forma de solución, cada solución tendrá un puntaje.
Dados un número natural N > 0
y un arreglo X[0..N)
de números enteros, los problemas son los siguientes:
- Calcular el máximo valor en
X
(nombre de funciónmaximo(X,N,...)
) ... si quieren, pueden suponer queX
no es vacio y que no contiene valores negativos! - Determinar si en
X
ningún par de celdas vecias tienen el mismo valor (nombre de funciónvecinas(X,N,...)
) - Determinar si el número de elementos pares es igual al de impares en
X
(nombre de funciónparidad(X,N,...)
) - Determinar si
X
es ascendente (nombre de funciónascendente(X,N,...)
) - Calcular la longitud del segmento ascendente más largo de
X
(nombre de funciónmas_largo(X,N,...)
)
Cada problema se puede resolver (a lo sumo) de una de tres formas posibles, con los siguientes puntajes:
- Iterativa (puntos: 1)
- Recursiva (sin iteraciones) y sin parámetro de acumulación (puntos: 2)
- Recursiva (sin iteraciones) y con parámetro de acumulación (puntos: 3)
Se aceptará a lo sumo una solución por problema y el objetivo del laboratorio es sumar al menos 10 puntos. Cualquier puntaje extra sobre 10 puntos, será utilizado como bono en los demás laboratorios del primer tercio.
El laboratorio es individual y cada estudiante debe entregar:
- El código impreso del laboratorio en un archivo llamado 'funciones.py'
- El archivo debe ser compatible con Python 3
- El encabezado del archivo debe indicar, usando comentarios de Python,
- Su nombre en la primera línea
- Su código de estudiante en la segunda línea
- Suministrar, junto con el código impreso, un vínculo al archivo 'funciones.py' para que el código pueda ser consultado y ejecutado
NOTA: pueden utilizar el siguiente código para leer de la entrada estandar el valor de N
y el valor de X
:
N = int(input(""))
X = [ int(x) for x in input("").split()]