teaching‎ > ‎TPRO - Teoría de la Programación‎ > ‎2013-1‎ > ‎Anuncios‎ > ‎

Implementación de soluciones en Python3

posted Jan 24, 2013, 2:41 PM by Camilo Rocha   [ updated Jan 24, 2013, 2:42 PM ]
En las últimas sesiones de clase hemos estudiado y repasado cómo utilizar cuantificadores para especificar problemas algorítmicos. Una de las principales ventajas de definir formalmente un problema es que en muchas ocasiones, el paso es muy pequeño entre la especificación formal de un problema y la implementación de una solución en un lenguaje de programación. En este pequeño ejercicio, se implementarán en el lenguaje de programación Python3 algunas soluciones a problemas que se han especificado en tareas o en clase.

A continuación encuentran una implementación en Python (versión 3) de una función que dado un arreglo de enteros y su longitud, determina si el arreglo es ascendente (este es ejercicio 1.1.0.c del texto guia [2]).


Note que la implementación viene acompañada de la especificación del problema. Además, como vimos en clase, es posible obtener una implementación más eficiente del mismo algoritmo de tal modo que no se hagan más comparaciones de las que son necesarias, como se ve a continuación.


Note que aparentemente las dos soluciones son equivalentes (aunque en este momento no tenemos las herramientas que necesitamos para demostrarlo). Pero lo que podemos hacer es probar con algunos valores. Por ejemplo, los siguientes comandos que usan las funciones que aparecen anteriormente


producen la siguiente salida:

True
True

True
True

False
False

La idea es entonces que se ejerciten en la escritura de soluciones en Python3:
  1. Para familiarizarse con Python3, visite el sitio de Python y revise su documentación. Aspectos a tener en cuenta:
    • Identar es importante
    • No se definen tipos explícitamente
  2. Usando el código de la función ascendente como una plantilla, implemente en Python3 soluciones para los problemas
    • 1.1.0.(e)
    • 1.1.0.(l)
    • 1.1.0.(o)
    • 1.1.1.(d)
    • 1.1.1.(g)
Las implementaciones que obtenga solo pueden utilizar un 'ciclo', es decir, deben ser de orden O(N) en donde N es la longitud del arreglo.

A continuación encuentran un progrma que incluye las dos versiones de ascendente vistas antes y el código con las pruebas.



Si ascendente.py es el nombre del archivo que contiene el código del programa completo, entonces puede ejecutarse en Python3 de la siguiente manera:

python3 ascendente.py


NOTA: los laboratorios de Sistemas tienen Python3 instalado.
Comments