Вы находитесь на странице: 1из 14

En Visual Basic. Versin 1.1.

EN REVISIN
La idea de dividir un problema complejo en pequeos problemas o
subproblemas se conoce como programacin modular y consiste en
resolver de forma independiente los subproblemas resultantes de la
descomposicin de un problema, donde cada una de las soluciones a los
subproblemas constituye un subprograma o procedimiento. Esto
implica que existe un proceso principal, denominado programa
principal, que transferir el control y la informacin a los distintos
subprogramas para que efecten la tarea solicitada cuando sean
llamados, los cuales una vez que terminen de efectuar su tarea o
instrucciones definidas para alcanzarla, transferirn de nuevo el control
a quien lo llam; sea este el programa principal u otro subprograma o
procedimiento. Un subprograma es entonces un bloque de instrucciones
o sentencias que llevan a cabo una tarea bien especfica o definida y
que puede utilizarse en un programa varias veces sin necesidad de
reescribir el cdigo. Como representa una seccin de cdigo que se
ejecutar y establecer comunicacin con quien lo invoca o llama, esta
comunicacin o intercambio de informacin se realizar a travs de
variables, que se denominarn parmetros. En este documento
encontrar la definicin de subprograma, tipos, creacin y usos.
Adicionalmente por ser un elemento imprescindible la definicin de
parmetros, tipos, declaracin y uso apropiado.
Prof. Lisbeth Pacheco
09/10/2013

2013

Definiendo Subprogramas o Procedimientos

menudo en la programacin es muy comn que un conjunto de instrucciones deban repetirse varias
veces dentro del mismo cdigo, esto ocurre cuando el mismo proceso tiene que realizarse varias veces
con diferentes variables, de manera que deben escribirse las mismas instrucciones varias veces solo
cambiando las variables. Un ejemplo de lo descrito anteriormente ocurre cuando se desea determinar el
nmero de combinaciones posibles para lo que debe utilizarse la siguiente frmula:
(

Si se desea realizar un programa que permita determinar el nmero de combinaciones C, usando dicha frmula,
el anlisis implica:
Cmo lo hago o cuales son las
Qu tengo o datos necesarios Qu me piden o cuales son las frmulas
o
expresiones,
para obtener C?
incgnitas?
restricciones y otros para obtener
las incognitas?
MyN

Como no existe ninguna funcin


predefinida en el lenguaje que permita
determinar el factorial, ste deber
determinarse por definicin.
Algoritmo bsico o pasos para resolver el problema:
1.
2.
3.
4.
5.
6.
7.
8.
9.

Inicio
Leer M
Leer N
Calcular el Factorial de N en la variable Fn
Calcular el Factorial de M en la variable Fm
Calcular el Factorial de M-N en la variable Fmn
Calcular C cmo Fn/(Fm * Fmn)
Escribir C
Fin
El factorial se determinar usando la definicin:
El factorial de n se define como el producto de todos los nmeros enteros positivos desde 1 hasta n.

Versin 1.1. En revisin


Prof. Lisbeth Pacheco

2013
El cdigo necesario para un programa en VB que permita determinar el nmero de combinaciones c, sera:
Module Module1
Sub Main()
'Entradas o datos

Dim M, N As Integer
'Salidas, resultados o incognitas

Dim C As Single
'Variables de Proceso o necesarias para el calculo

Dim fm, fn, fm_n As Integer


'Lectura de los datos

Console.Write("Valor de M=")
M = Console.ReadLine
Console.Write("Valor de N=")
N = Console.ReadLine
'Calcular Factorial de M
fm = 1 'Acumulador Productoria
'Generacin de los nmeros naturales entre 1 y M

For i = 1 To M
fm = fm * i 'Productoria de los nmeros naturales entre 1 y M
Next
'Calcular Factorial de N
fn = 1 'Acumulador para la Productoria
'Generacin de los nmeros naturales entre 1 y N

For i = 1 To N
fn = fn * i 'Productoria de los nmeros naturales entre 1 y N
Next
'Calcular Factorial de M -N
Fm_n = 1 'Acumulador para la Productoria
'Generacin de los nmeros naturales entre 1 y M -N

For i = 1 To M - N
Fm_n = fm_n * i
Next

'Productoria de los nmeros naturales entre 1 y M-N

'Calcular el nmero de Combinaciones posibles

Observe que el
cdigo de los tres
recuadros es
prcticamente el
mismo, slo
cambian las
variables que
representan el fin
del ciclo o la
cantidad de
nmeros naturales a
generar y el
acumulador que
permite determinar
el factorial

C = fm / (fm_n*fn)
'Imprimir combinaciones

Console.WriteLine("Combinaciones de {0} y {1} es de {2}", M, N, C)


Console.ReadKey()
End Sub
End Module

Para disminuir la cantidad de cdigo se puede generalizar la tarea de calcular el factorial escribindola como un
subprograma, esto permitira reutilizar el cdigo sin necesidad de escribirlo ms de una vez en el programa, de
tal manera que al llamar o usar el subprograma se suministrara el valor al cual se quiere determinar el factorial.
El cdigo para determinar el factorial de X, se transformar en una funcin para luego ser utilizada en el
programa como las funciones predefinidas que ud. ya utiliz en Computacin I.
'Calcular Factorial de X

f = 1 'Acumulador Productoria
'Generacin de los nmeros naturales entre 1 y X

For i = 1 To X
f = f * i
Next

'Productoria de los nmeros naturales entre 1 y X

El cdigo a continuacin permite visualizar cmo quedara el programa utilizando subprogramas.


Versin 1.1. En revisin
Prof. Lisbeth Pacheco

2013
Module Module1
'El cdigo repetido se convierte en tarea, una funcin que dado X determina el factorial de X

Function factorial(ByVal x As Integer) As Integer


Dim f As Integer
'Calcular Factorial de X
f = 1 'Acumulador Productoria
'Generacin de los nmeros naturales entre 1 y X

For i = 1 To x
f = f * i 'Productoria de los nmeros naturales entre
Next
factorial = f 'Valor que se desea devuelva la funcin
End Function

1 y X

Sub Main()
'Entradas o datos

Dim M, N As Integer
'Salidas, resultados o incognitas

Dim C As Single
'Variables de Proceso o necesarias para el calculo

Dim fm, fn, fm_n As Integer


'Lectura de los datos

Console.Write("Valor de M=")
M = Console.ReadLine
Console.Write("Valor de N=")
N = Console.ReadLine
'Calcular Factorial de M
'Asignamos a fm el resultado de evaluar la funcin Factorial para el valor de M
fm = factorial(M) 'a fin de obtener M!

Observe que el
cdigo para
determinar el
factorial se escribe
de manera genrica
en el procedimiento
o subprograma tipo
function diseado,
una pieza del
rompecabezas, un
subproblema.
En el programa
principal ahora

'Calcular Factorial de N
'Asignamos a fn el resultado de evaluar la funcin Factorial para el valor de N
fn = factorial(N) 'a fin de obtener N!

'Calcular Factorial de M N
'Asignamos a fm_n el resultado de la funcin Factorial para el valor de M-N
fm_n = factorial(M - N) 'a fin de obtener (M N)!

'Calcular el nmero de Combinaciones posibles

C = fm /(fm_n * fn)
'Imprimir combinaciones
Console.WriteLine("Las combinaciones de {0} y {1} es {2}", M, N, C)

Console.ReadKey()
End Sub
End Module

La idea de dividir un problema complejo en


pequeos problemas o subproblemas se conoce
como programacin modular y consiste en
resolver de forma independiente los subproblemas
resultantes de la descomposicin del problema
original,
cada una de las soluciones a los
subproblemas constituye un subprograma o
procedimiento. Trabajar de esta forma implica que
existe un proceso principal, denominado programa principal, que transferir el
control y la informacin o datos necesarios a los distintos subprogramas o
procedimientos para que efecten la tarea solicitada cuando sean invocados o
llamados, los cuales una vez que terminen de efectuar su tarea o instrucciones
Versin 1.1. En revisin
Prof. Lisbeth Pacheco

empleamos la
funcin, al igual que
usbamos las
funciones
predefinidas,
asignando a una
variable el resultado
de determinar el
factorial de la
variable que
representa lo
requerido o a quien
se quiere determinar
el factorial

2013
definidas para alcanzarla, transferirn de nuevo el control a quien lo invoc o llam; sea este el programa
principal u otro subprograma o procedimiento.
Los subprogramas o procedimientos deberan ser cortos y para desarrollarlos se seguirn todas las reglas de
programacin, as mismo se podrn emplear todas las estructuras y herramientas de programacin habituales,
centrndose en resolver nicamente la tarea que se desea.

Un subprograma es un bloque de instrucciones o


sentencias que llevan a cabo una tarea bien
especfica o definida y que puede utilizarse en un
programa varias veces sin necesidad de reescribir
el cdigo. Como representa una seccin de
cdigo que se ejecutar y establecer
comunicacin con quien lo invoca o llama, esta
comunicacin o intercambio de informacin se
realizar a travs de variables, que se
denominarn parmetros.

Desarrollar procedimientos o subprogramas proporciona las siguientes ventajas:


Permiten eliminar lneas repetidas en el cdigo. Slo se escribirn una vez,
aunque se requiera realizar varias veces la misma tarea para la solucin del
problema completo, pero se ejecutarn en el programa cada vez que se
necesite.
Permite que los programas sean ms legibles o fcilmente comprensibles. Un
programa dividido en varias partes ms pequeas es ms fcil de entender.
Simplifican el desarrollo del programa. Los programas separados en unidades
lgicas o subproblemas son ms fciles de disear, escribir y depurar.
Se pueden volver a utilizar en otros proyectos o soluciones, permitiendo el
ahorro de tiempo. Los procedimientos o subprogramas desarrollados pueden
incorporarse en un mdulo estndar en otros proyectos, permitiendo as poder
usarlos como los que estn predefinidos en el lenguaje.
Varios programadores pueden trabajar simultneamente, repartindose los
distintos subproblemas, ya que son mdulos independientes, que luego se
engranan.
Se podr modificar un mdulo o subproblema, sin afectar a los dems.

Versin 1.1. En revisin


Prof. Lisbeth Pacheco

2013

Subprogramas o Procedimientos en Visual


Basic
Visual Basic posee dos tipos de subprogramas
procedimientos principales: Procedimientos Function
Procedimientos Sub.

o
y

Procedimientos Function (Funcin) se utilizan generalmente


para clculos, pueden recibir datos a travs de parmetros y
siempre devuelven el resultado a travs del nombre de la
funcin.

Los procedimientos son un conjunto


de instrucciones
que permiten
realizar una tarea de manera
generalizada, que puede ser
utilizada varias veces en el programa
o subprograma que lo requiera, sin
reescribir el cdigo; establecen
comunicacin con quien lo llame o
requiera
a travs de variables
denominadas parmetros.

Procedimientos Sub, se utilizan para realizar una tarea, pueden


recibir datos a travs de parmetros y pueden devolver
resultados a travs de parmetros.

Definiendo que son Parmetros o


Argumentos
Una de las caractersticas importantes de los subprogramas es
la posibilidad de comunicarse con el programa principal u otros
subprogramas. Esta comunicacin se realiza a travs de
variables denominadas parmetros, dicho de otra manera
cuando un programa llama o usa un subprograma, la
informacin se transmite entre ambos a travs de variables que
se denominan parmetros, constituyndose en la manera de
pasar informacin o valores a variables, del programa principal
al subprograma y viceversa.
Un parmetro o argumento es una variable que representa un
dato que se pasa al subprograma y que es necesario para
ejecutar las instrucciones definidas en la tarea, o que se
devuelve del subprograma por ser lo que se desea determinar.
Un parmetro entonces, puede ser una variable cuyo valor
debe ser proporcionado al subprograma una vez invocado, o
una variable cuyo valor debe ser devuelto desde el
subprograma porque se genera o calcula mediante las
instrucciones definidas para la tarea.
Los parmetros segn su uso se clasifican en parmetros
formales o parmetros actuales.

Versin 1.1. En revisin


Prof. Lisbeth Pacheco

1.- Los datos necesarios se pasan al


subprograma (Cada dato una variable o
parmetro)

2.- El subprograma efecta la tarea,


siguiendo las instrucciones definidas

3.- El subprograma una vez ejecutada la


tarea regresa el resultado generado al
programa o subprograma que lo llam o
pidi su ejecucin (Cada dato una variable
o parmetro)

2013

Parmetros Formales
Cuando se crea el procedimiento o subprograma en la
definicin o cabecera, se incluyen la lista de parmetros o
variables que permiten la comunicacin, datos de entrada
(necesarios para efectuar las instrucciones) y datos de salida
del subprograma (resultantes de los clculos o
instrucciones), estos se denominan parmetros formales o
ficticios. Ellos sirven para guardar la informacin de los
valores de las variables que invocan o llaman al
subprograma. Para el subprograma tipo funcin definido
para determinar el clculo del factorial de X, se tiene que X,
es el dato necesario para poder efectuar la tarea o clculo,
siendo X el parmetro formal.
Function factorial(ByVal x As Integer) As Integer

Parmetros Actuales
Los parmetros actuales, lo constituyen las variables que se
utilizan cuando se emplea o llama al subprograma o
procedimiento. Deben coincidir en nmero, orden y tipo con
los parmetros formales o ficticios definidos en la
declaracin o cabecera del subprograma. Para el ejemplo
se usa o llama la funcin factorial en el programa principal
tres veces, los llamados o usos se presentan a continuacin:
'Calcular Factorial de M

fm = factorial(M)

'a fin de obtener el Factorial de M

'Calcular Factorial de N

fn = factorial(N)

'a fin de obtener el factorial de N

'Calcular Factorial de M N

fm_n = factorial(M - N)

'calcular factorial de (M N)

Observe que en cada llamada slo se coloca el nombre de la


funcin y la variable a la que se desea calcular el factorial,
esa variable es el parmetro actual, o valor que se asignar
a la variable X, parmetro formal del subprograma para
realizar las instrucciones del subprograma.

Ms acerca de los Parmetros Formales


Existen diferentes formas de transmisin o paso de parmetros a subprogramas, por lo que pueden ser
clasificados de acuerdo a ello, como:
Entradas:

Permiten nicamente la transmisin o paso de datos desde el programa o subprograma que


llama o solicita la ejecucin del subprograma.

Versin 1.1. En revisin


Prof. Lisbeth Pacheco

2013
Salidas:

Slo devuelven resultados desde el subprograma al programa o subprograma que llama o


solicita la ejecucin del subprograma.

Entradas/Salidas: Actan en los dos sentidos, tanto recibiendo datos del programa principal o subprograma
que llama o solicita la ejecucin del subprograma; como devolviendo resultados desde el
subprograma al programa o subprograma que llama o solicita la ejecucin del subprograma
Esta definicin puede ser til, pero no es suficiente para definir los parmetros formales, que tendr un
procedimiento o subprograma, por lo que debemos identificar los principales tipos de parmetros formales.

Tipos de Parmetros Formales


Visual Basic posee dos tipos de parmetros principales para la transmisin de datos entre un subprograma y el
programa o subprograma que lo utiliza o llama.
Parmetros por Valor (ByVal)
Para este tipo de parmetro, el parmetro formal recibe como valor inicial
una copia del parmetro actual y con ellos se ejecutan las instrucciones
descritas en el subprograma, por lo tanto los cambios que se produzcan en
ellos por las instrucciones del subprograma no podrn afectar a los
parmetros actuales porque no se devolver la informacin al programa o
subprograma llamador. Estos se corresponden con los parmetros
definidos como entradas.
El parmetro actual, puede ser una variable, constante o expresin, ya que
slo el valor resultante es el que se asigna al parmetro formal.

Un parmetro por valor no puede modificar los valores del parmetro actual, por lo que cualquier cambio del
valor del parmetro formal durante la ejecucin del subprograma se destruye cuando termina de ejecutarse el
subprograma, permaneciendo el valor original.
Para indicar que un parmetro es por Valor la sintaxis es: Byval
Versin 1.1. En revisin
Prof. Lisbeth Pacheco

Identificador as Tipo
8

2013
Parmetros por Referencia (ByRef)
En muchas ocasiones se requiere que los parmetros sirvan como salida, es decir
que devuelvan los resultados al programa o subprograma que lo llama. Para este
tipo de parmetro, el parmetro formal recibe la direccin de memoria del
parmetro actual. De esta forma una variable pasada como parmetro actual es
compartida; es decir, puede ser modificada directamente por el subprograma. Los
parmetros de este tipo corresponden con los entrada/salida o con los de salida si
hablamos de un subprograma tipo Sub.
El parmetro actual, debe ser una variable, ya que recibir el resultado del clculo
o de lo que se genere en las instrucciones definidas en la tarea.

Un parmetro por referencia puede modificar los valores del parmetro actual, por lo que cualquier cambio de
los parmetros formales durante la ejecucin del subprograma se refleja en los parmetros actuales cuando
termina de ejecutarse el subprograma.
Para indicar que un parmetro es por Valor la sintaxis es: ByRef

Identificador as Tipo

Cundo usar parmetros por valor o por referencia


Algunas reglas a seguir para utilizar uno u otro tipo de parmetro son:

Si la informacin que se pasa al subprograma no tiene que ser devuelta fuera del
subprograma, el parmetro que representa puede ser un parmetro por valor.
Si se tiene que devolver la informacin al subprograma o programa llamador, el
parmetro formal que representa la informacin debe ser un parmetro por
referencia.
Si la informacin que se pasa al subprograma puede ser modificada y se debe
devolver el nuevo valor, el parmetro formal que representa la informacin debe
ser un parmetro por referencia.

Versin 1.1. En revisin


Prof. Lisbeth Pacheco

2013

Procedimientos Function
Una funcin es un subprograma que recibe datos y devuelve un nico resultado a travs del nombre de la
funcin, el nombre de la funcin acta como una variable o direccin de memoria donde se almacenar el
resultado a devolver por la funcin.

Sintaxis de Procedimientos Function


La sintaxis bsica de una funcin es la siguiente:
Function FunctionName( Parmetros o argumentos) as Type

Cabecera o encabezado

Declaracin de Variables internas o auxiliares del calculo


Dim identificador as tipo
Instrucciones a ejecutar, cuerpo del subprograma

FunctionName = Valor a devolver Puede sustituirse por Return Valor a devolverr


End Function

Los siguientes elementos de la sintaxis son importantes:


FunctionName es el nombre de la funcin que est creando.
As Type permite especificar el tipo de resultado que devuelve la funcin, en otras palabras, que tipo de
dato se puede guardar o se guardar en FunctionName.
Parmetros o argumentos, lista de parmetros o datos que se pasarn a la funcin para que efecte
los clculos o instrucciones.
FunctionName = Valor a devolver, asigna el valor a regresar al nombre de la funcin; puede
abreviarse escribiendo Return Valor a devolver, con esto puede indicar que quiere devolver un valor
al subprograma o programa que llama y cul es ese valor, sin embargo debe cuidarse al utilizarla ya que
cuando se ejecuta la instruccin Return, la funcin termina su ejecucin, as que si hay instrucciones
despus de ella no se ejecutarn.

EJEMPLO
Function factorial(ByVal x As Integer) As Integer
'Variables internas del Subprograma
Dim f As Integer 'Acumulador para la productoria
'Calcular Factorial de M
f = 1 'Acumulador Productoria
'Generacin de los nmeros naturales entre 1 y X

For i = 1 To M
'Productoria de los nmeros naturales entre 1 y X

f = f * i
Next
factorial = f
End Function

'Valor que debe devolver la funcin

Las funciones siempre devuelven el valor al


programa, subprograma o procedimiento
que lo llama o solicita su ejecucin en el
nombre de la funcin. Por esta razn la
ltima instruccin en una funcin es
generalmente de asignacin que coloca el
resultado a del clculo final que de la
funcin en la variable FunctionName o
nombre de la funcin.
El nombre de la funcin no debe aparecer
del lado derecho de una instruccin de
asignacin en las instrucciones a ejecutar
dentro del subprograma o procedimiento.
Una
funcin debera
parmetros por valor

Versin 1.1. En revisin


Prof. Lisbeth Pacheco

tener

slo

10

2013

OTRO EJEMPLO DE FUNCIN


'Dadas las coordenadas de dos puntos determine la distancia entre ellos

Function distancia(ByVal x1 As single, ByVal y1 As single,


ByVal x2 As single, ByVal y2 As single)
As Single
'Valor que debe devolver la funcin

distancia = Math.sqrt((x2-x1)^2 - (y2-y1)^2)


End Function

Uso o llamada de un Procedimiento Function


Para ejecutar, invocar, llamar o solicitar la ejecucin de una
funcin se coloca el nombre de la funcin seguido de los
parmetros actuales o argumentos del lado derecho de una
asignacin o como parte de una expresin o formula.

Ejercicio: Determinar las de


combinaciones usando Funcin

Los parmetros actuales o argumentos deben estar entre


parntesis y si son varios, separados por comas.

EJEMPLO
'Calcular Factorial de M

fm = factorial(M)

'a fin de obtener el Factorial de M

'Calcular Factorial de N

fn = factorial(N)

'a fin de obtener el factorial de N

'Calcular Factorial de M N

fm_n = factorial(M - N)

'calcular factorial de (M N)

OTRO EJEMPLO
'Determinar la distancia entre punto p2 de coordenadas x2 y y2
'y el punto p3 de coordenadas x3,y3, usando la funcin distancia

D13=distancia(x2,y2,x3,y3)
'Cuando se ejecute la funcin distancia los parmetros actuales
pasarn a los formales
'el valor de x2 o parmetro actual, lo tomar el parmetro formal X1
'valor de y2 o parmetro actual, lo tomar el parmetro formal y1
'el valor de x3 o parmetro actual, lo tomar el parmetro formal X2
'valor de y3 o parmetro actual, lo tomar el parmetro formal y2

Versin 1.1. En revisin


Prof. Lisbeth Pacheco

11

2013

Procedimientos Sub
Los procedimientos sub se usan generalmente para conseguir el suministro de informacin o lectura de datos,
mostrar o imprimir informacin o procesar y actualizar las variables o parmetros recibidos. Pueden devolver
ningn valor, uno o ms valores, pero lo que devuelve lo devuelve en variables o parmetros definidos en la
cabecera del procedimiento.

Sintaxis de Procedimientos Sub


La sintaxis bsica de un procedimiento sub es el siguiente:
Sub ProcedureName( Parmetros o argumentos)
Cabecera o encabezado
Declaracin de Variables internas o auxiliares del calculo
Dim identificador as tipo
Instrucciones a ejecutar, cuerpo del subprograma

End Sub

Los siguientes elementos de la sintaxis son importantes:


ProcedureName es el nombre del procedimiento Sub que est creando.
Parmetros o argumentos, lista de parmetros o datos que se pasarn a la funcin para que efecte
los clculos o instrucciones.
S se modifican las variables o parmetros del procedimiento sub durante la ejecucin de las instrucciones del
procedimiento, los valores actualizados no se pasarn al programa o subprograma que pide su ejecucin a
menos que estos parmetros se definan como parmetro por referencia o utilizando la palabra clave ByRef.

EJEMPLO
'Desarrollaremos el subprograma de calcular el factorial de un
'Nmero como un Procedimiento Sub

Sub factorial(ByVal x As Integer 'Entrada o dato,


ByRef F As Integer 'Resultado o salida)
'Variables internas del Subprograma
'Calcular Factorial de M
f = 1 'Acumulador Productoria
'Generacin de los nmeros naturales entre 1 y X

For i = 1 To M
'Productoria de los nmeros naturales entre 1 y X

Observe que al cambiar el


procedimiento de Function a Sub,
se agrega un parmetro formal que
corresponde con el dato que se
desea regresar y que el mismo se
define como ByRef o parmetro por
referencia.

f = f * i
Next
End Sub

OTRO EJEMPLO
'Dadas las coordenadas de dos puntos determine la distancia entre ellos
'Cmo un Procedimiento Sub

Sub distancia2(ByVal x1 As single, ByVal y1 As single,


ByVal x2 As single, ByVal y2 As single,
ByRef distancia As single)
'Valor que debe devolver la funcin

distancia = Math.sqrt((x2-x1)^2 - (y2-y1)^2)


End Sub

Versin 1.1. En revisin


Prof. Lisbeth Pacheco

12

2013

Uso o llamada de un Procedimiento Sub


Para ejecutar, invocar, llamar o solicitar la ejecucin de un
procedimiento Sub se coloca el nombre del procedimiento
seguido de los parmetros actuales o argumentos cmo
una instruccin de cdigo.

Ejercicio: Determinar el nmero de


combinaciones usando Sub

Los parmetros actuales o argumentos deben estar entre


parntesis y si son varios, separados por comas.

EJEMPLO
'Calcular Factorial de M

factorial(M, fm)

'a fin de obtener el Factorial de M

'Calcular Factorial de N

factorial(N, fn)

'a fin de obtener el factorial de N

'Calcular Factorial de M N

factorial(M N, fm_n)

'calcular factorial de (M N)

OTRO EJEMPLO
'Determinar la distancia entre punto p2 de coordenadas x2 y y2
'y el punto p3 de coordenadas x3,y3, usando Sub distancia

distancia(x2,y2,x3,y3,D13)
'Cuando se ejecute el Sub distancia los parmetros actuales
'pasarn a los formales
'el valor de x2 o parmetro actual,lo tomar el parmetro formal X1
'valor de y2 o parmetro actual, lo tomar el parmetro formal y1
'el valor de x3 o parmetro actual, lo tomar el parmetro formal X2
'valor de y3 o parmetro actual, lo tomar el parmetro formal y2

NOTA IMPORTANTE:
No se puede colocar el llamado a un procedimiento
Sub del lado derecho de una instruccin de asignacin,
ni como parte de una expresin o frmula.

Cuando usar un parmetro por valor ByVal o por referencia ByRef en un


Procedimiento Sub
Utilice Byval cuando no quiera que el procedimiento modifique una variable que est pasando al
procedimiento
Utilice ByRef cuando quiera que un procedimiento modifique una variable que est pasando
procedimiento
Utilice ByRef cuando la variable o parmetro se determine dentro del subprograma.
Utilice ByRef cuando la variable o parmetro se lean dentro del subprograma.
Cuando tenga dudas use ByVal, ya que no se modificar el contenido de la variable
Versin 1.1. En revisin
Prof. Lisbeth Pacheco

al

13

2013

Cmo enfrentar un problema?


Disee cada subprograma considerando exclusivamente la tarea solicitada, los datos que se necesitan, si
no pueden generarse, deben entrar al subprograma y sern por tanto parmetros en primera instancia
por valor o ByVal. Lo que necesita calcular, determinar o devolver ser parmetro ByRef, a menos que
sea una funcin en cuyo caso se devolver en el nombre de la funcin
Cuando disee un subprograma, s alguna tarea a realizar en el mismo se encuentra previamente creada
en un subprograma, use el subprograma de acuerdo al tipo, especificando los parmetros o variables
que representan los datos o informacin que se suministrar al subprograma y las variables o
parmetros donde devolver los resultados en caso de ser un procedimiento Sub.
Si el subprograma a disear es de lectura o impresin, debera ser Procedimiento Sub.
En los subprogramas de lectura, todo lo que se lea y se desee devolver debe ser parmetro ByRef
En los subprogramas de impresin, los valores de las variables generalmente no se alteran por lo que
debern ser parmetros ByVal
Diseados los subprogramas solicitados, desarrolle el programa principal, leyendo el problema a
resolver, identifique las entradas o datos y las salidas o resultados, cada uno representar una variable,
seleccione el nombre apropiado.
Establezca la estructura que le permitir leer la informacin y de manera general los pasos para resolver
el problema, para cada paso revise si tiene un subprograma que haga el clculo o tarea, de ser as use el
subprograma apropiadamente, especificando los parmetros o variables que representan los datos o
informacin que se suministrar al subprograma y las variables o parmetros donde devolver los
resultados en caso de ser un procedimiento Sub.
Recuerde el Programa principal es el que
indicar que tarea o subprograma se
debe ejecutar y con qu valores. Ud. es el
que dirige las acciones as que el xito de
la tarea es suya

Versin 1.1. En revisin


Prof. Lisbeth Pacheco

14

Вам также может понравиться