MANUALES

Programación Visual Basic

13. Las Funciones

Las funciones y subrutinas son esactamente iguales, salvo en el aspecto de que mientras las funcione devuelven valores, las subrutinas no lo hacen.

Una funcion es un trozo de programa que puede ser reutilizado, supongamos:

dim a,b,c
a=10
b=12
c=0
c=a+b
print c
c=a-b
print c
c=a*b
print c
c=a/b
print c

y supongamos que el trozo de codigo que tiene los print y las operaciones las tenemos que repetirlo muchas veces a lo largo del programa, para ello podemos usar una funcion, seria entonces asi:

dim a,b,opera
opera 1,10,12
opera 2,10,12
opera 3,10,12
opera 4,10,12

private function opera(modo as integer,a as integer, b as integer) as single
	dim c
	if modo=1 then c=a+b
	if modo=2 then c=a-b
	if modo=3 then c=a*b
	if modo=4 then c=a/b
	print c
end function

como vemos el codigo es mucho mas pequeño y sencillo.

Lo que hace es lo siguiente:

Tenemos una funcion que se llama opera, a la cual le pasamos tres parametros, el modo que identifica que queremos hacer, si pone1 es sumar, 2 es restar, 3 es multiplicar y 4 es dividir, despues le ponemos el valor de a y el valor de b, y la funcion hace la operacion por nosotros y la muestra, aunque esto tambien lo puede hacer una subrutina, a las funciones le podemos poner que devuelvan el valor, osea asi:

dim a,b,opera
opera 1,10,12
print opera
opera 2,10,12
print opera
opera 3,10,12
print opera
opera 4,10,12
print opera

private function opera(modo as integer,a as integer, b as integer) as single
	if modo=1 then opera=a+b
	if modo=2 then opera=a-b
	if modo=3 then opera=a*b
	if modo=4 then opera=a/b
end function

Esto lo que hace es cargar en la propia funcion opera el valor resultado de la operacion que se ha efectuado, luego nosotros despues de llamar a la funcion tendremos que imprimir el valor de la operacion, esto de devolver valores de una operacion solo lo pueden hacer las funciones, las subrutinas hacen los mismo pero no pueden devolver valores de un resultado, aunque se pueden poner en variables globales y despues leerlas no es esactamente devolver valores, aunque algunos piensan que si , no lo es.

El coste de las funciones

Cuando nos referimos al coste de las funciones, es haciendo referencia al consumo de memoria y cpu que realiza dicha funcion, osea que a mayor consumo de dichos recursos mayor sera el coste de dicha funcion.

Para verlo mas claro y practico es:

Si ponemos la misma funcion de antes

dim a,b,opera
opera 1,10,12
print opera
opera 2,10,12
print opera
opera 3,10,12
print opera
opera 4,10,12
print opera

private function opera(modo as integer,a as integer, b as integer) as single
	if modo=1 then opera=a+b
	if modo=2 then opera=a-b
	if modo=3 then opera=a*b
	if modo=4 then opera=a/b
end function

Sabemos que podemos poner las variables a y b sin declarar, osea, sin el dim, aunque en principio pensamos que no importa por que el programa funciona bien, en realidad importa y mucho, el por que es el siguiente:

Cuando declaramos el tipo valor de una variable, osea, integer, long, string, etc.. el programa le asigna su tamaño especifico y si no lo hacemos el programa la pone como desconocida y le asigna mayor tamaño del que en realidad vaya a usar, ademas de que cuando se realizan operaciones con dichas variables el programa debe decirle al microprocesador que tipo de variable es y esto gasta tiempo de uso del microprocesador, osea que aunque pongamos dim , si no declaramos el tipo de variable es como si no lo hicieramos bien, en el ejemplo anterior, se deberia de poner asi:

dim a as integer
dim b as integer

o si fueran long pues as long o cualquier otro tipo de variable.

Todo esto esta relacionado con la pila(Stack) del sistema operativo y del microprocesador, esto es un tema complejo y no es necesario que sepacomo funciona, aunque si tiene interes en especial puede verlo mas detalladamente en los cursos de sistemas operativos y en el de ensamblador, pero como digo no es necesario.

Hasta ahora hemos hecho referencia a funciones y subrutinas, pero en realidad no se les llama normalmente subrutinas, aunque lo sean, sino que se les llama procedimientos.

En la programacion estructurada , osea por bloques, se utilizan mucho los procedimientos y funciones, ello es debido a que se optimiza mejor el programa, se lee mas rapido y se encuentran los errores antes, ademas de lo mas importante que es la reutilizacion , osea lo que hemos visto antes, no tengo que escribir tres o mas veces un trozo de codigo, lo pongo en un procedimiento o funcion segun lo que necesite y cuando me haga falta, lo llamo con su nombre y ya esta.

Páginas:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22