Está en la página 1de 0

UNIVERSIDAD MAYOR DE SAN ANDRES

FACULTAD TECNICA
CARRERA DE ELECTRICIDAD
22
CAPITULO 4

PROGRAMACION MODULAR

4.1 Introduccin

Uno de los mtodos ms eficaces para resolver un problema complejo es dividirlo en mdulos ms pequeos
con la finalidad de que sean ms fciles de resolver, siguiendo la filosofa divide y vencers. Esta frmula se
denomina diseo descendente y el mtodo se denomina programacin modular.

La programacin modular tiene varias ventajas, entre las cuales podemos mencionar:

1. Son fciles de escribir y depurar.
2. Permiten dividir un programa grande en pequeos mdulos.
3. Minimiza la probabilidad de errores, al tener cada funcin sus propios datos y ser independientes.
4. Los mdulos de un programa pueden ser reutilizados por otros programas, con poca o ninguna modificacin.

Los principales mdulos que soporta VB son:
Funciones
Procedimientos

4.2 Funciones

Se denomina funcin a un subprograma que recibe valores de uno o varios argumentos y devuelve un resultado
nico. Puede, adems, ser utilizada como una expresin.

4.2.1.- Creacin de funciones
La creacin de una funcin se realiza de la siguiente forma:
En el men herramientas de VB, seleccionamos la opcin Agregar procedimiento, para mostrar el cuadro de
dilogo que se ve en la figura siguiente:


En la caja de texto se introduce el nombre del procedimiento.
Elija procediendo o funcin. Las otras opciones Propiedad y Evento se usan cuando se crean objetos.
Con Alcance se hace que el procedimiento sea pblico o privado.
La ltima opcin, hace que todas las variables del procedimiento contengan sus valores.

Una funcin tiene la siguiente sintaxis:
[Public | Private ] Function nombre [(lista argumentos)] [As tipo]
[instrucciones]
[Exit Function]
[instrucciones]
[nombre=expresin]
End Function
Donde:
Duberty Silva
UNIVERSIDAD MAYOR DE SAN ANDRES
FACULTAD TECNICA
CARRERA DE ELECTRICIDAD
Duberty Silva
23
l programa tiene las siguientes sentencias:
Sqr(a ^2 +b ^2)
o_Click()
alse
ocus
hange()
As Single
=hipotenusa(a, b)
cii =vbKeyReturn Then txtb.SetFocus
cii =vbKeyReturn Then cmdNuevo.SetFocus
End Sub
dado al copiar el programa, note que programa principal se efecta en la caja de texto del
lculo nuevo y para salir, deben tener
es presionado. Recuerde que para utilizar esta funcin
La instruccin locked, bloquea la caja de texto txta, razone cual es el motivo.
io, paralelogramo, pentgono y hexgono. Utilice una
estaa del control SSTAB para cada figura geomtrica.
Public, Private: Opcional. Indica que el procedimiento Function es accesible para todos los dems
procedimientos de todos los mdulo o no.
Nombre: Es el nombre que se asigna a la funcin.
Lista argumentos: Opcional. Lista de variables que representan argumentos que se pasan al
procedimiento Function cuando se llama. La variables mltiples se separan por comas.
As tipo: Es el tipo de dato que devolver la funcin.
Nombre = expresin: Es el valor que se pasa desde la funcin, asignndola al nombre de la funcin.
(muy importante).

Para llamar a una funcin, se la invoca de igual forma que una funcin propia de VB, como: COS, SIN, etc. Se
tendr cuidado que el nombre de la funcin concuerde con el tipo de valor que devuelve.

Ejemplo 4.1: Realizar un programa que calcula la hipotenusa de un tringulo rectngulo.

E

Public Functio
hipotenusa =
n hipotenusa(a As Single, b As Single)as Single Dim b As Single
a =Val(txta.Text)
xtb.Text) End Function b =Val(t
txtC.Text
Private Sub cmdNuev End Sub
txta.Text =""
ub txta_KeyPress(KeyAscii As Integer) txta.Locked =F Private S
If KeyAs txtb.Text =""
=""

txtC.Text
txta.SetF
End Sub

End Sub Private Sub txtb_KeyPress(KeyAscii As Integer)
ed =True
rivate Sub txtb_C
txta.Lock
If KeyAs P
Dim a

Nota:
La codificacin del botn salir lo har el estudiante.
La creacin de la funcin hipotenusa se la realiza de forma indicada en prrafos anteriores.
Tenga cui
lado b.
Los dos botones comando son respectivamente, para realizar un c
activada las propiedades tooltiptext con el mensaje explicativo.
El botn salir debe mostrar otra imagen cuando
debe configurarse la propiedad DownPicture.

Ejercicio 4.1: Utilizando funciones, realice un programa que determine el rea de las siguientes figuras
geomtricas: rectngulo, crculo, tringulo, rombo, trapec
p
UNIVERSIDAD MAYOR DE SAN ANDRES
FACULTAD TECNICA
CARRERA DE ELECTRICIDAD
24

Ejercicio 4.2: Complemente el anterior programa adicionando el clculo de vol
la frmula general es: factorial de n =n! =1*2*3*.....*(n-2)*(n-1)*n
menes de un cubo, prisma,
rmide, cono, cilindro y esfera.
cin. Recuerde
ue el factorial de 0 es 1 y

l cdigo del programa es el siguiente:
)
ultado, "#.####E+00")
.Text =resultado
ext ="No existe factorial"
o_Click()
""
txtFac.Text =""
o.SetFocus
b cmdSalir_Click()
mero As Integer) As Double
n
al =factorial * i
End Function
.2.1 Funcin recursiva
sma, sin embargo, el uso incorrecto de esta caracterstica, puede producir resultados inesperados
el programa.
jemplo 4.3: Modificar el programa del ejemplo 4.2, utilizando una funcin recursiva.
ero As Integer) As Double
hen
mero * factorial(numero - 1)
nd Function
.3 Procedimientos
os de programas para cualquier control de Visual Basic, vistos en anteriores captulos son
procedimientos.
pi

Ejemplo 4.2: Realizar un programa que determine el factorial de un nmero utilizando una fun
q

E

Private Sub cmdFac_Click(
Dim numero As Integer
ble Dim resultado As Dou
numero =CInt(txtNumero.Text)
If numero >=0 Then
resultado =factorial(numero)
ultado >999999 Then If res
txtFac.Text =Format(res
Else
Fac txt
End If
Else
txtFac.T
End If
End Sub

uev Private Sub cmdN
txtNumero.Text =

txtNumer
End Sub

Private Su
End
End Sub

Function factorial(nu
r Dim i As Intege
mero=0 the If nu
factorial =1
else
factorial =1
1 To numero For i =
tori fac
Next I
End if

4

Una de las caractersticas ms importantes de una funcin es su recursividad, es decir que una funcin puede
llamarse a si mi
d

E

Function factorial(num
er Dim i As Integ
ero =0 T If num
factorial =1
Else
factorial =nu
End If
E


4

Todos los cdig
Duberty Silva
UNIVERSIDAD MAYOR DE SAN ANDRES
FACULTAD TECNICA
CARRERA DE ELECTRICIDAD
25
Un procedimiento ejecuta las lneas de su cdigo de bloque, pero no devuelve un valor directamente, como lo
hace una funcin.
La sintaxis de un procedimiento es la siguiente:
[Public | Private ] Sub nombre [(lista argumentos)]
[instrucciones]
End Sub
La llamada a un procedimiento tiene dos alternativas:
a) Call nombre [(argumentos)]
b) nombre [argumentos]

Existen procedimientos que no estn asociados a ningn botn comando.

Ejemplo 4.4: Realizar el mismo programa del ejemplo 4.2, reemplazando la funcin factorial por un
procedimiento.
El procedimiento factorial se muestra lneas abajo. El resto del programa es el mismo, salvo la llamada al
procedimiento.

Sub factorial ( numero As Integer, factorial as double)
Dim i As Integer
If numero =0 Then
factorial =1
Else
factorial =1
For i =1 To numero
factorial =factorial * i
Next i
End If
End sub

La llamada a este procedimiento en el programa principal, se har con una de las siguientes formas:
a) Factorial nmero, resultado
b) Call factorial (nmero, resultado)

Cuando los programas son grandes, se sugiere utilizar varios procedimientos, puesto que esta labor facilita la
depuracin y puesta a punto de los programas.

4.4 Creacin de mens

Un men es una forma de proveer al usuario de un conjunto de rdenes agrupadas bajo un mismo ttulo. El
conjunto de todos los ttulos correspondientes a los mens diseados aparecern en la barra de mens situada
debajo del ttulo del formulario.

El editor de mens le permite crear una barra de mens o modificar mens ya creados. Los pasos a seguir son
los siguientes:

1. Crear un formulario nuevo.
2. Abra el editor de mens de la barra de herramientas.
3. El cuadro de dilogo del Editor de mens, escriba &Archivo en el cuadro de texto Caption y
mnuArchivo en el cuadro de texto name. Pulse siguiente.
4. Pulse el botn que tiene la flecha sealando hacia la derecha. Este es el botn de sangrado.
5. Escriba &Salir en el cuadro de texto Caption e itmSalir en el cuadro de texto Name. Su men deber
ser similar a la siguiente figura.
Duberty Silva
UNIVERSIDAD MAYOR DE SAN ANDRES
FACULTAD TECNICA
CARRERA DE ELECTRICIDAD
26


6. Pulse aceptar.
7. Observe que el men se ha creado debajo del ttulo del formulario. Despliegue el men archivo, que
acabamos de crear y pulse salir. Aparece la ventana del cdigo de procedimiento del evento itmSalir,
escriba end.
8. Ejecute el programa comprobando el men que se ha creado.

Propiedades de men

El men es un control que tiene su propio conjunto de propiedades.
Caption: El texto que aparece en la barra de mens.
Name: El nombre del objeto.
Index: Posicin del men en una matriz de controles.
Shortcut: Le permite seleccionar una tecla de mtodo abreviado para cada comando.
HelpContextId: Le permite asignar un valor numrico nico para el Id. de contexto. Este valor se utiliza para
encontrar el tema de Ayuda apropiado en el archivo de Ayuda identificado mediante la propiedad HelpFile.
NegotiatePosition: Esta propiedad determina si el men aparece o no en un formulario contenedor y cmo
aparece.
Checked: Coloca una casilla de verificacin antes de la cadena Caption de un elemento de men.
Enabled: Cuando la casilla esta sin seleccionar, atena la cadena Caption.
Visible: Le permite hacer que un elemento aparezca en el men
WindowList: Determina si el control del men contiene una lista de formularios secundarios.

Agregar teclas de acceso directo (shortcut) a los elementos de men

Las teclas de acceso directo funcionan desde cualquier parte del programa, est o no visible el elemento men.
nicamente se puede asignar una tecla o combinacin de teclas de acceso directo a un slo elemento de men.

Ejercicio 4.3: Realizar un programa utilizando mens como se observa en la siguiente figura. Note que existen
submens. Las lneas de divisin se crean con un - (guin) y el nombre ser sepUno (separador uno).
Adicionar en el men Autor, el formulario estndar que tiene Visual Basic.

Duberty Silva
UNIVERSIDAD MAYOR DE SAN ANDRES
FACULTAD TECNICA
CARRERA DE ELECTRICIDAD
Duberty Silva
27


Creacin de mens desplegables

Un men desplegable se abre desde cualquier parte del formulario cuando se pulsa el botn derecho del mouse.
La funcin en VB para realizar esta accin es PopupMenu.

Ejercicio 4.4: Al anterior ejemplo adicionar el siguiente cdigo para crear un men desplegable. Pruebe
ejecutando el programa.

Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button =2 Then
PopupMenu mnuArchivo
End If
End Sub

Ejercicio 4.5: Utilizando mens, realizar un programa similar al ejercicio 4.2, calculando reas y volmenes de
diferentes figuras geomtricas.

También podría gustarte