Está en la página 1de 31

Programación Modular

Diseño Descendente
Problema Principal Algoritmo Principal

Subproblema 1 Subproblema 2 Subproblema 3 Subalgoritmo 1 Subalgoritmo 2 Subalgoritmo 3

Subproblema 1.1 Subproblema 1.2


Subalgoritmo 1 Subalgoritmo 1
Diseño Descendente
Subalgoritmo 1 Subalgoritmo 2

Algoritmo Principal

Subalgoritmo 3
Subprogramas

Funciones.

Procedimientos o subrutinas.
Declaración de funciones
<tipo_de_resultado> función <nombre_función> (<lista_parámetros>)
[declaraciones_locales]
Inicio
<instrucciones>


Devolver <expresión>
fin_función
Declaración de funciones
<lista_parámetros>: ({E|S|E/S} <tipo_dato>:parámetro_1 [, parámetro_N];…
{E|S|E/S} <tipo_dato>:parámetro_N+1 [, parámetro_N+M]…)

E: parámetro de entrada.
S: parámetro de salida.
E/S: parámetro de entrada/salida.
Invocación (llamada) a
funciones.
nombre_función(<lista_parámetros_actuales>

La lista de parámetros actuales puede estar


constituida por constantes, variables, expresiones
o llamada a funciones.
Procedimientos
Procedimiento division(E entero: dividendo, divisor; S entero: cociente, resto)
Inicio
Cociente ←dividendo div divisor
Resto ← dividendo – cociente * divisor
fin_procedimiento

'Algoritmo principal'
inicio
Var M,N,P,Q,S,T : entero
Leer (M,N)
llamar_a division(M,N,P,Q)
Escribir (P,Q)
llamar_a division(M*N-4,N+1,S,T)
escribir(S,T)
fin
Ámbito de las variables
Ámbito de las variables
En visual Basic for Applications
Sintaxis de la declaración:

La sintaxis para declarar un procedimiento Sub es la


siguiente:

[ modificadores ] Sub subNombre [( listaDeParámetros )]


<instrucciones>
End Sub
Parámetros
La sintaxis de los parámetros de una lista de parámetros
es la siguiente:
[Optional] [ByVal | ByRef] [ParamArray]
nombreDeParámetro As tipoDeDatos
Si el parámetro es opcional, debe proporcionar también un
valor predeterminado como parte de su declaración. La
sintaxis para especificar un valor predeterminado es la
siguiente:
Optional [ByVal | ByRef] nombreDeParámetro As
tipoDeDatos = valorPredeterminado
Llamada a un procedimiento.
La sintaxis para llamar a un procedimiento
Sub es la siguiente:

[Call] subNombre [( listaDeArgumentos )]


Procedimientos en VBA
Sub TestSub()
MsgBox “Código en TestSub()"
End Sub

Private Sub main()


MsgBox “Código en Form_Load()"
TestSub
MsgBox “ Código en Form_Load()“
End Sub
Parámetros
Private Sub DisplayAdd(x As Integer, y As Integer)
MsgBox x + y
End

Sub Private Sub main()


DisplayAdd 5, 2
End Sub
Parámetros.
Private Sub DisplayAdd(x As Integer, y As Integer)
MsgBox x + y
End

Sub Private Sub main()


Dim a As Integer
Dim b As Integer
a=5
b=2
DisplayAdd a, b
End Sub
Funciones en VBA
Private Function Add(ByVal x As Integer, ByVal y As Integer) As Integer
Dim Res as integer
Res = x + y
Add = Res
End Function

Private Sub main()


Dim a As Integer
Dim b As Integer
Dim c As Integer
a = 32
b = 64
c = Add(a, b)
MsgBox (“La suma es : " & c)
End Sub
Comunicación entre
subprogramas:Paso de Parámetros
Cuando un subprograma llama a otro, la
información fluye a través de la lista de
parámetros y se establece una
correspondencia automática entre los
parámetros formales y actuales.
Métodos de correspondencia de
parámetros

Correspondencia posicional.

Correspondencia por el nombre explícito:

Sub(Y=> B,X=>30)
Tipos de Parámetros
E: son valores iniciales proporcionados con la llamada al
subprograma. Estos valores pueden cambiar en el
interior del subprograma, pero son destruidos, una vez
que termina la ejecución del subprograma.
S: Son valores que se generan en el interior del
subprograma y son comunicados al exterior del
mismo.
E/S: son valores que son entregados al subprograma
invocado y pueden cambiar como producto de las
acciones internas del mismo, para luego ser
comunicados de vuelta.
Tipos de pasos de parámetros.
Por valor (E): solo se comunica el valor del parámetro
actual al parámetro formal. Este último puede cambiar,
pero dicho cambio no se comunica al exterior del
subprograma invocado. (ByVal)
Por referencia (E/S): se comunica la posición de memoria,
dirección o referencia, de manera que si en el interior del
subprograma invocado, los parámetros cambian, tales
cambios se comunican al exterior del subprograma.
(ByRef)
Gracias.

También podría gustarte