Laboratorio 3: Implementando Funciones

posted Feb 1, 2013, 9:14 AM by Camilo Rocha   [ updated Feb 1, 2013, 11:26 AM ]
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:
  1. Calcular el máximo valor en X (nombre de función maximo(X,N,...)) ... si quieren, pueden suponer que X no es vacio y que no contiene valores negativos!
  2. Determinar si en X ningún par de celdas vecias tienen el mismo valor (nombre de función vecinas(X,N,...))
  3. Determinar si el número de elementos pares es igual al de impares en X (nombre de función paridad(X,N,...))
  4. Determinar si X es ascendente (nombre de función ascendente(X,N,...))
  5. Calcular la longitud del segmento ascendente más largo de X (nombre de función mas_largo(X,N,...))
Cada problema se puede resolver (a lo sumo) de una de tres formas posibles, con los siguientes puntajes:
  1. Iterativa (puntos: 1)
  2. Recursiva (sin iteraciones) y sin parámetro de acumulación (puntos: 2)
  3. 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()]