Visual Basic

9
4. Funciones y procedimientos

description

Visual Basic

Transcript of Visual Basic

4. Funciones y procedimientos

Funciones (function)

La sintaxis correspondiente a una función es la siguiente:[Static] [Private] Function nombre ([ parámetros]) [As tipo]

[ sentencias][ nombre = expresion][Exit Function][ sentencias][ nombre = expresion]

End Function

La llamada a una función se hace de la siguiente forma:

variable = nombre([argumentos])

donde argumentos son un lista de constantes, variables o expresiones separadas por comas que son pasadas a la función. En principio, el número de argumentos debe ser igual al número de parámetros de la función.

Ejercicio: Implementar una función que devuelva como resultado la raíz cuadrada de un número N

Procedimientos Sub

La sintaxis que define un procedimiento Sub es la siguiente:[Static] [Private] Sub nombre [( parámetros)]

[ sentencias][Exit Sub][ sentencias]

End SubLa llamada a un procedimiento Sub puede ser de alguna de las dos formas siguientes: Call nombre[(argumentos)]o bien, sin pasar los argumentos entre paréntesis, sino poniéndolos a continuación del nombre simplemente separados por comas: nombre [argumentos]

Ejercicio: Implementar un procedimiento Sub que devuelva como resultado la raíz cuadrada de un número N.

Argumentos por referencia y por valor

Pasar un argumento por referencia implica que en realidad se pasa a la función la variable original, de modo que la función puede modificar su valor. Pasar por valor implica crear una nueva variable dentro de la función y pasarle una copia del valor de la variable externa.

Un argumento entre paréntesis en la llamada es un argumentopasado por valor. Por ejemplo,

Raiz ((Num)) ' En el caso de la funciónRaiz (Num), F ' En el caso del procedimiento

Otra forma de especificar que un argumento será siempre pasado por valor es anteponiendo la palabra ByVal a la declaración del parámetro en la cabecera del procedimiento (Sub o Function).Por ejemplo,

Function Raiz (ByVal N As Double)Sub Raiz (ByVal N As Double, F As Double)

Pasar argumentos por valor evita modificaciones accidentales, pero tiene un coste en tiempo y memoria que puede ser significativo cuando se pasan grandes volúmenes de información, comosucede con vectores, matrices y estructuras.

Ejercicios adicionales

4.1 Implementar una función y un procedimiento que permita evaluar la expresión

Dados los argumentos x y n, donde n es el número de términos que se evalúan en la serie

4.2 Implementar una función y un procedimiento que permita evaluar la expresión

Dados los argumentos x y n, donde n es el número de términos que se evalúan en la serie

...3

x2

xxS32

−+−=

...x82·4·6

1·3·5·7x2·4·61·3·5x

2·41·3x

21S 753 +−+−=

·

4.3 Implementar una función y un procedimiento que permitaevaluar la expresión

Dados los argumentos x y n, donde n es el número de términosque se evalúan en la serie.

( )( )

( )( )

( )( )

( )...

x1x

2·4·6·87531

x1x

2·4·6531

x1x

2·431

x1x

21xS 75

3

3

2

1

1

−+

−+−+

++−

−+

−+

+−=

4

4.4 Implementar una función y un procedimiento que calcule las raíces de laecuación:

a·x2 + b·x + c = 0

Teniendo en cuenta los siguientes casos:Si a=0 y b=0, imprimiremos un mensaje diciendo la ecuación es degenerada.Si a=0 y b≠0, existe una raíz única con valor –c / b.En los demás casos utilizaremos la fórmula siguiente:

La expresión d=b2-4ac se denomina discriminante.Si d≥0 entonces hay dos raíces realesSi d<0 entonces hay dos raíces complejas de la forma

x + yi, x - yiIndicar con literales adecuados los datos a introducir, así como losresultados obtenidos.

a2c·a·4bbx

2

i−±−

=