Funciones de algoritmos

La utilizacion de funciones Antes de analizar como crear una funcion veamos como se utilizan las diversas funciones predeterminadas que vienen incorporadas en cualquier lenguaje de programacion (conocidas en general como bibliotecas). Ya hemos utilizado varias funciones y hemos listado otras en la seccion dedicada a los operadores. Ahora veremos que tienen en comun todas ellas y como podemos utilizarlas en nuestros programas. La estructura basica de una funcion es la siguiente: Valor = algunaFuncion(unArgumento, otroArgumento, etc… )

Esto significa que la variable Valor obtiene su valor al llamar a la funcion. Una funcion puede aceptar varios, uno o ningun argumento. La funcion utiliza estos argumentos como variables internas e incluso puede llamar a otras funciones. Veamos algunos ejemplos utilizando nuestros lenguajes: BASIC: MID$(cad$,n,m) Esta funcion devuelve m caracteres de la cadena cad$ contados a partir del n°. (Recordemos que el signo ‘$’ implica una cadena en BASIC). tiempo$ = “TARDES NOCHES DIAS” PRINT “Buenas”;MID$(tiempo$,7,6) Este programa imprimira entonces “Buenas NOCHES”.

BASIC: ENVIRON$(cad$) Esta funcion devuelve la Variable del Entorno especificada en cad$. PRINT ENVIRON$(“PATH”) Imprime la ruta actual definida en el DOS (usualmente en el archivo autoexec. bat). Tcl: llength L Devuelve el tamano de la lista L. set a {“primero” “segundo” “tercero”} # una lista de tres elementos puts [llength $a] # devuelve el valor ‘3’ Nota: En Tcl practicamente todo es una funcion (o un comando como prefiere llamarlo Tcl). Esto produce una sintaxis un tanto extrana para el usuario pero muy sencilla para la computadora.

Recordemos que Tcl es la abreviatura de Tool Control Language (Lenguaje de Control de Herramientas) y fue disenado para servir como un lenguaje de Macros a la manera del Visual Basic for Applications (VBA) utilizado en los productos de Microsoft. Python puede funcionar de esta misma manera, pero la diferencia es que Tcl fue creado principalmente con ese objetivo. Python: pow(a,n) a = 2 # usamos 2 como numero base for n in range(0,11): print pow(a,n) # elevamos 2 a la potencia n, es decir entre 0 y 10

Aqui primero generamos los valores de n entre 0 y 10 y llamamos a la funcion predeterminada pow() a la cual le pasamos dos argumentos: a y n. En cada llamada los nuevos valores de a y n son sustituidos y un nuevo resultado se imprime en la pantalla. Nota: El operador exponencial ** es equivalente a la funcion pow(). Python: dir(m) Otra funcion muy util predeterminada en Python es dir, la cual devuelve una lista de nombres validos (en general de funciones) dentro del modulo m. Veamos un ejemplo con funciones predeterminadas: print dir(__builtin__)

Antes de avanzar mas con este tema, veamos con mayor detalle el funcionamiento de los modulos en Python. La utilizacion de modulos Python es un lenguaje extremadamente extensible (igual que Tcl) en tanto uno puede agregarle nuevas ‘habilidades’ al importar los modulos. En seguida veremos como se crean dichos modulos, pero primero probemos algunos de los modulos estandar que se incluyen en la distribucion de Python. sys Ya hemos utilizado el modulo sys para cerrar Python. Este modulo presenta otras muchas funciones de gran utilidad.

Para acceder a estas debemos importar el modulo mediante la instruccion import sys: import sys # ponemos las funciones a disposicion del programa sys. exit() # prefijamos con ‘sys’ Si sabemos de antemano que usaremos con gran frecuencia estas funciones en nuestro programa y que dichas funciones no llevan el mismo nombre que otras que ya hayamos importado o creado, entonces podemos utilizar otra variante: from sys import * # importamos todos los nombres en sys exit() # ahora no es necesario usar el prefijo ‘sys’ Los otros modulos y sus contenidos

Podemos importar y utilizar cualquiera de los modulos de la misma manera que lo hicimos con sys, tanto los originales de Python como otros que puedas haber creado vos mismo o bajado de Internet. En un momento veremos como hacer esto. Aqui incluyo una breve lista de los modulos mas importantes que ofrece Python: Nombre del modulo Descripcion sys Interactua con el sistema de Python: • exit() – salida! • argv – acceso a los argumentos de la linea de comando • path – acceso a la ruta del sistema • ps1 – cambia el prompt ‘;;;’ de Python s Interactua con el sistema operativo: • open – abre un archivo • system – ejecuta un comando del sistema • mkdir – crea un directorio • getcwd – busca el directorio de trabajo actual string Manipulacion de cadenas • atoi/f/l – convierte una cadena a integer/float/long • find – busca una subcadena • split – separa en ‘palabras’ • upper/lower – convierte a mayusculas/minusculas re Manipulacion de cadenas como expresiones regulares de Unix • search – busca un patron en cualquier lugar de la cadena • match – busca solo al comienzo de la cadena split – separa una cadena en campos segun un delimitador • sub,subn – sustitucion de cadenas math Acceso a diversas funciones matematicas: • sin,cos etc – funciones trigonometricas • log,log10 – logaritmos naturales y decimales • ceil,floor – redondeo hacia arriba y hacia abajo • pi, e – constantes naturales time Funciones de hora y fecha • time – hora actual (expresada en segundos) • gmtime – convertir hora en segundos a UTC (GMT) • localtime – convertir a hora local • mktime – inverso de localtime • sleep – detener el programa por n segundos

Esto es solo la punta del iceberg. Hay docenas de modulos incluidos en la distribucion de Python, y muchos otros que podes conseguir en Internet. Revisa la documentacion para averiguar acerca de la programacion en Internet, graficos, bases de datos, etc. Lo mas importante de todo esto es darse cuenta que la mayor parte de los lenguajes de programacion incluyen estas funciones basicas, ya como predeterminadas, ya como parte de una biblioteca. Siempre hay que revisar la documentacion antes de crear una nueva funcion, ya que es posible que la funcion exista de antemano.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *