lunes, 14 de octubre de 2013

pl02 - funciones y sus parámetros

Buenas a todos, hoy en esta segunda clase avanzaremos mas en el mundo de la programación.
En la clase anterior instalamos el autoit y realizamos nuestra primera aventura escribiendo:
 
msgbox(0, "mi soft", "hola mundo")
 
Como dijimos en la introducción, autoit es un lenguaje de programación, cada lenguaje tiene una estructura (una forma de escribirlo), a esas estructura se le llama sintacsis. si no se respeta la sintacsis de cada lenguaje, no veremos el resultado, si no un error. para ejemplificar eso, tomemos la anterior línea de código y borrale alguna coma (,) o alguna comilla (") y verás un error en tu script.
 
¿cual es la diferencia entre script y soft?.
 
El script es un guión, un conjunto de comandos que ejecutado continuamente realizan una función. El soft es un programa compilado (archivo.exe) en windows, que realiza una tarea. para entenderlo mejor: cuando escribimos un código y lo guardamos como file.au3, es un script. cuando lo compilamos y queda como file.exe, es un soft. Esta definición tiene un fundamento mucho mas técnico, pero que lo iremos perfeccionando mas adelante, con quedarse inicialmente con esta idea es mas que suficiente.
 
introducción a las funciones:
 
  Antiguamente en los lenguajes de programación se tenía que escribir todo el código, imaginate si para cocinar tuvieras que forjar tu propio cuchillo, armar tu propia cocina, crear tu propia bandeja, etc etc, para cocinar un simple pollo tardarías meses. Para eso se dieron cuenta que podían armar pequeñas porciones de código en funciones que se pueden reutilizar. Si quieres comer, no te pongas a crear tu plato como todo un artesano, comprate uno y a comer. De eso se trata los lenguajes de programación modernos, no inventemos la rueda, ya está creada, fabriquemos el auto.
 
vamos a ver el ejemplo con código de programación, veamos la siguiente sintacsis:
 
msgbox(0, "mi soft", "hola mundo")
 
Ya sabemos que esa sintacsis crea una ventana en pantalla, con un botón aceptar, con un título "mi soft", y un texto en pantalla: "hola mundo".
como decíamos en la primera clase, siempre ahi que preguntarse: ¿porqué?, ¿como crea esa ventana con tan poco código?.
la respuesta está en autoit: si analizamos bien la linea vemos que tiene una palabra inicial: "MsgBox", y luego valores entre paréntesis, exactamente esa es la estructura de una función.
 
Si estás en lo correcto, MsgBox, es una función. y para los que saben inglés pudieron deducir lo que significa:
* msg: mensaje
* box: caja
* MsgBox: caja de mensaje
 
Siempre al crear una función ahi que darle un nombre relativo a lo que realiza, esta función MsgBox, crea una caja de mensaje )(o una ventana con un mensaje) en pantalla, por eso se llama así.
 
¿cual es la sintacsis de una función?
 
Como dijimos, la sintacsis es una estructura a seguir siempre, y una función se expresa de esta forma:
NombreDeLaFunción(valor1, valor2, valor3)
 
el nombre de la función al inicio, y entre paréntesis los valores que le pasas a esa función para que realice su tarea, cada valor debe ir separado por una coma (,). esos valores se denominan parámetros, osea que cada función para que realiza su tarea necesita parámetros.
 
Para entenderlo, vamos a llevarlo a un caso de la vida real:
imaginemos que programamos la función cocinar en el microondas, y la llamamos "CocinarMicroondas", a esta función le ponemos 2 parámetros:
valor1: que deseamos cocinar
valor 2: cuanto lo deseamos cocinar, indicado en minutos.
 
entonces si ponemos esta sintacsis:
 
CocinarMicroondas("pollo", 15)
 
Con esa función estaríamos indicando que al pollo queremos cocinarlo 15 minutos.
con esta otra:
 
CocinarMicroondas("pan", 10)
 
con esta otra estamos indicando que queremos cocinar el pan 10 minutos.
 
Bien, ahora que entendemos que es una función y que son los parámetros de la función veamos mas a fondo la sintacsis de la función MsgBox:
 
msgbox(0, "mi soft", "hola mundo")
 
La función MsgBox vimos que tiene 3 parámetros:
1. El tipo de ventana: que vimos si cambiamos el número nuestra diferente ventanas con diferentes imagenes y botones.
2. el título de ventana
y 3. el texto de la ventana.
 
toda función puede tener valores obligatorios y opcionales.
En este caso, estos 3 valores son obligatorios. Pero la función MsgBox tiene un cuarto parámetro que es opcional:
4. valor que desees que la ventana se mantenga en pantalla, indicado en segundos.
 
ejemplo:
 
msgbox(0, "mi soft", "hola mundo", 10)
 
si guardamos este código en un archivo y lo ejecutamos veremos que luego de 10 segundos, sin tocar nada, la ventana se cierra.
 
veamos ahora este otro ejemplo:
 
msgbox(0, "mi soft", "hola mundo 1", 5)
msgbox(0, "mi soft", "hola mundo 2", 5)
msgbox(0, "mi soft", "hola mundo 3", 5)
 
copiemos las 3 líneas de código y lo ejecutamos. cuando aparezca la ventana no toquen ningún botón y verán que las ventanas se cambian sola y se cierra luego solo.
 
le puse un periodo de 5 segundos a la ventana, entonces:
1. muestra hola mundo 1, espera 5 segundos
2. muestra hola mundo 2, espera 5 segundos
3. muestra hola mundo 3, espera 5 segundos, y se cierra el script.
 
Entonces, con esto no tenemos que saber como programar una ventana en windows, ni tanto código para una simple tarea, solo con una línea de código autoit te ahorra el trabajo de crear una ventana con todas esas funciones.
 
Autoit tiene ciento de funciones para todas las tareas que te puedas imaginar, y si no la tienes puedes crear vos tus propias funciones, mas adelante veremos como hacerlo.
 
Y creo que ya fue mucho para una clase, para no seguir mareándolos mas. vamos a terminar como a todos nos gusta: programando.
 
hoy vamos a aprender una nueva función, una función que seguro a mas de uno nos parecerá interesante.
 
La función SoundPlay:
 
Si, como su nombre lo dice: es para darle play a un sonido. Reproduce un sonido indicado.
Vamos a probar el siguiente código solo en modo ejemplo:
 
SoundPlay(@WindowsDir & "\media\tada.wav",1)
msgbox(0, "mi soft", "hola mundo")
 
si copiamos estas 2 lineas y lo ejecutamos podremos escuchar un sonido antes que salga el "hola mundo".
 
Vamos a entenderla:
como ya dijimos, el nombre de la función va primero, y entre paréntesis sus parámetros separado por coma (,).
En este caso tiene 2 parámetros:
1. el nombre del archivo wav o mp3.
2. un valor que indica el tipo de reproducción.
 
si queremos reproducir el archivo: sonido.wav, ponemos así la sintacsis:
 
SoundPlay("sonido.wav", 0)
 
nota: tener en consideración lo siguiente:
1. el nombre del archivo va siempre entre comillas ("")
y 2. para las pruebas, si el script no tiene nada mas que hacer que un sonido no suele escucharse, así que si vas a probar esta función siempre agregarle un MsgBox (al final), así mientras muestra una ventana reproduce el sonido, porque si el script finaliza corta el sonido.
 
El segundo parámetro puede tomar 2 valores: 1 o 0.
 
si es 0: reproduce el sonido y continúa con el script. osea si se pone un MsgBox luego: reproduce el sonido y muestra la ventana, todo a la vez.
si es 1: primero reproduce el sonido, y luego continúa con el script, osea: primero reproduce el sonido, cuando el sonido termina recién muestra la ventana.
 
si el sonido está en la misma carpeta donde guardaste el script, solo pones el nombre del archivo (es lo recomendado).
si está en otra carpeta, pones la ruta, ejemplo: c:\sonidos\sonido.mp3.
 
tarea:
modificar el script realizado en la anterior clase (o crear uno nuevo original) agregando sonidos para que quede mas divertido, comprimir la carpeta con el script y los sonidos y enviarla por e-mail.
 
Espero que se diviertan!.

No hay comentarios: