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

Informática

11

Prof. Gonzalo Müller


gmullerb@mail.com
Facultad de Ingeniería
Universidad Central de Venezuela
Clase Anterior
 Normalización de un programa:
 Notación.
 Documentación.
 Indentación.
 Errores de Programación:
 Error Algorítmico:
Error de Concepción. Error de Lógica.
 Error de Codificación o Sintaxis:
Error de Trascripción. Error de Omisión.
Error de Uso.

Informática – Prof. Gonzalo Müller – Clase 11 – GM - 2


Programación Modular
 Acoplamiento de datos Estándar → Parámetros:
Datos que permiten la comunicación con el módulo.
 Parámetros de Entrada: datos únicamente de
entrada al módulo. Parámetro1 Módulo
 Subrutinas. …
ParámetroK
 Funciones.
 Parámetros de Retorno o Salida: datos retornados
Parámetro1 … ParámetroN
por el módulo.
 Solo Subrutinas. Subrutina

Informática – Prof. Gonzalo Müller – Clase 11 – GM - 3


Programación Modular

Valores utilizados dentro del algoritmo

Parámetros de Retorno

Parámetros Módulo
Salidas
de Entrada Valor utilizado fuera
del algoritmo

Retorno
Valor utilizado dentro del algoritmo

Informática – Prof. Gonzalo Müller – Clase 11 – GM - 4


Programación Modular
Valores utilizados dentro del algoritmo

Varios Resultados

Parámetros Subrutina
Salidas
de Entrada Valor utilizado fuera del algoritmo

Parámetros Función
de Entrada

1 Resultado
Valor utilizado dentro del algoritmo

Informática – Prof. Gonzalo Müller – Clase 11 – GM - 5


Parámetros de Entrada
 Parámetros de entrada → Parámetro por valor
Los parámetros por valor constituyen valores de
entrada al módulo. El valor del argumento utilizado
en la llamada del módulo es asignado al parámetro
de éste, es decir el parámetro recibe una copia del
argumento.

Módulo

Informática – Prof. Gonzalo Müller – Clase 11 – GM - 6


Parámetros de Entrada
 Parámetros de entrada → Parámetro por valor
Los parámetros por valor constituyen valores de
entrada al módulo. El valor del argumento utilizado
en la llamada del módulo es asignado al parámetro
de éste, es decir el parámetro recibe una copia del
argumento.

Módulo

Copia
Informática – Prof. Gonzalo Müller – Clase 11 – GM - 7
Parámetros de Entrada
 Parámetros de entrada → Parámetro por valor
Los parámetros por valor constituyen valores de
entrada al módulo. El valor del argumento utilizado
en la llamada del módulo es asignado al parámetro
de éste, es decir el parámetro recibe una copia del
argumento.
A=2
Módulo
A A: argumento

Informática – Prof. Gonzalo Müller – Clase 11 – GM - 8


Parámetros de Entrada
 Parámetros de entrada → Parámetro por valor
Los parámetros por valor constituyen valores de
entrada al módulo. El valor del argumento utilizado
en la llamada del módulo es asignado al parámetro
de éste, es decir el parámetro recibe una copia del
argumento.
A=2
Módulo
A B: parámetro
B=2
Copia de Valor
Informática – Prof. Gonzalo Müller – Clase 11 – GM - 9
Parámetros de Entrada en VBScript
Utilizando la palabra clave byval se declara un
parámetro como parámetro por valor:
Declaración en una Subrutina:
sub nombre(byval parametro1,…)

end sub
Declaración en una Función:
function nombre(byval parametro1,…)

end function
Informática – Prof. Gonzalo Müller – Clase 11 – GM - 10
Parámetros de Entrada en VBScript
Ejemplo:
Parámetro por valor

function cubo(byval numero)


cubo = numero*numero*numero
end function
Parámetro por valor

sub escribeResultado(byval resultado)


document.write("Cubo:" & resultado)
end sub

Informática – Prof. Gonzalo Müller – Clase 11 – GM - 11


Parámetros de Entrada en VBScript
 Llamada de una Subrutina

call nombre(argumento1, argumento2, …)

Constante, variable o
expresión del tipo de
 Llamada de una Función parámetroX

…nombre(argumento1, argumento2, …)

Informática – Prof. Gonzalo Müller – Clase 11 – GM - 12


Parámetros de Entrada en VBScript
Ejemplo:
<script>
dim numero, resultado
… Argumento Constante
resultado = cubo(3.0)

resultado = cubo(numero)
… Argumento Variable
resultado = cubo(numero + 3.0)

</script> Argumento Expresión
Reutilización del
módulo cubo

Informática – Prof. Gonzalo Müller – Clase 11 – GM - 13


Parámetros de Entrada en VBScript

Los parámetros de entrada es como


se ha venido trabajando hasta ahora
con los parámetros en los módulos

Informática – Prof. Gonzalo Müller – Clase 11 – GM - 14


Parámetros de Entrada en VBScript
Ejemplo:

resultado = cubo(3.0)
… 1 Llamada
Asigna el valor del argumento
numero = 3.0 (3.0) al parámetro (numero)
antes de continuar la ejecución
function cubo(byval numero)
cubo=numero*numero*numero
end function

Informática – Prof. Gonzalo Müller – Clase 11 – GM - 15


Parámetros de Entrada en VBScript
Ejemplo:

resultado = cubo(3.0)

numero = 3.0 2
Continua la ejecución el
módulo correspondiente
function cubo(byval numero)
cubo=numero*numero*numero
end function

Informática – Prof. Gonzalo Müller – Clase 11 – GM - 16


Parámetros de Entrada en VBScript
Ejemplo:

resultado = cubo(3.0)

numero = 3.0

function cubo(byval numero)


cubo=numero*numero*numero
end function
3.0*3.0*3.0 3 Operaciones
Se ejecutan todas las
sentencias del módulo

Informática – Prof. Gonzalo Müller – Clase 11 – GM - 17


Parámetros de Entrada en VBScript
Ejemplo:

resultado = cubo(3.0)

4 Retorno
27.0 Regresa y continua la numero = 3.0
ejecución del algoritmo
function cubo(byval numero)
cubo=numero*numero*numero
end function
3.0*3.0*3.0

Informática – Prof. Gonzalo Müller – Clase 11 – GM - 18


Parámetros de Entrada en VBScript
Ejemplo:

resultado = cubo(3.0) resultado = 27.0

4 Retorno
27.0 Regresa y continua la numero = 3.0
ejecución del algoritmo
function cubo(byval numero)
cubo=numero*numero*numero
end function
3.0*3.0*3.0

Informática – Prof. Gonzalo Müller – Clase 11 – GM - 19


Parámetros de Entrada en VBScript
Ejemplo:
numero = 4.0;

resultado = cubo(numero)
… 1 Llamada
Asigna el valor del argumento
numero = 4.0 (4.0) al parámetro (numero)
antes de continuar la ejecución
function cubo(byval numero)
cubo=numero*numero*numero
end function

Informática – Prof. Gonzalo Müller – Clase 11 – GM - 20


Parámetros de Entrada en VBScript
Ejemplo:
numero = 4.0;

resultado = cubo(numero)

numero = 4.0 2
Continua la ejecución el
módulo correspondiente
function cubo(byval numero)
cubo=numero*numero*numero
end function

Informática – Prof. Gonzalo Müller – Clase 11 – GM - 21


Parámetros de Entrada en VBScript
Ejemplo:
numero = 4.0;

resultado = cubo(numero)

numero = 4.0

function cubo(byval numero)


cubo=numero*numero*numero
end function
4.0*4.0*4.0 3 Operaciones
Se ejecutan todas las
sentencias del módulo

Informática – Prof. Gonzalo Müller – Clase 11 – GM - 22


Parámetros de Entrada en VBScript
Ejemplo:
numero = 4.0;

resultado = cubo(numero)

4 Retorno
64.0 Regresa y continua la numero = 4.0
ejecución del algoritmo
function cubo(byval numero)
cubo=numero*numero*numero
end function
4.0*4.0*4.0

Informática – Prof. Gonzalo Müller – Clase 11 – GM - 23


Parámetros de Entrada en VBScript
Ejemplo:
numero = 4.0;

resultado = cubo(numero) resultado = 64.0

4 Retorno
64.0 Regresa y continua la numero = 4.0
ejecución del algoritmo
function cubo(byval numero)
cubo=numero*numero*numero
end function
4.0*4.0*4.0

Informática – Prof. Gonzalo Müller – Clase 11 – GM - 24


Parámetros de Entrada en VBScript
Ejemplo:
numero = 4.0;

resultado = cubo(numero + 3)
… 1 Llamada
Asigna el valor del argumento
numero = 7.0 (7.0) al parámetro (numero)
antes de continuar la ejecución
function cubo(byval numero)
cubo=numero*numero*numero
end function

Informática – Prof. Gonzalo Müller – Clase 11 – GM - 25


Parámetros de Entrada en VBScript
Ejemplo:
numero = 4.0;

resultado = cubo(numero + 3)

numero = 7.0 2
Continua la ejecución el
módulo correspondiente
function cubo(byval numero)
cubo=numero*numero*numero
end function

Informática – Prof. Gonzalo Müller – Clase 11 – GM - 26


Parámetros de Entrada en VBScript
Ejemplo:
numero = 4.0;

resultado = cubo(numero + 3)

numero = 7.0

function cubo(byval numero)


cubo=numero*numero*numero
end function
7.0*7.0*7.0 3 Operaciones
Se ejecutan todas las
sentencias del módulo

Informática – Prof. Gonzalo Müller – Clase 11 – GM - 27


Parámetros de Entrada en VBScript
Ejemplo:
numero = 4.0;

resultado = cubo(numero + 3)

4 Retorno
343.0 Regresa y continua la numero = 7.0
ejecución del algoritmo
function cubo(byval numero)
cubo=numero*numero*numero
end function
7.0*7.0*7.0

Informática – Prof. Gonzalo Müller – Clase 11 – GM - 28


Parámetros de Entrada en VBScript
Ejemplo:
numero = 4.0;

resultado = cubo(numero + 3) resultado = 343.0

4 Retorno
343.0 Regresa y continua la numero = 7.0
ejecución del algoritmo
function cubo(byval numero)
cubo=numero*numero*numero
end function
7.0*7.0*7.0

Los parámetros por valor pueden verse


como variables locales con un valor inicial
Informática – Prof. Gonzalo Müller – Clase 11 – GM - 29
Parámetros de Retorno
 Parámetros de salida → Parámetro por referencia
El parámetro por referencia constituye una variable
que entra al módulo. La variable del argumento
utilizada en la llamada pasa al módulo con el nombre
del parámetro de éste, es decir el parámetro y la
variable son la misma, no es una copia.

Módulo

Informática – Prof. Gonzalo Müller – Clase 11 – GM - 30


Parámetros de Retorno
 Parámetros de salida → Parámetro por referencia
El parámetro por referencia constituye una variable
que entra al módulo. La variable del argumento
utilizada en la llamada pasa al módulo con el nombre
del parámetro de éste, es decir el parámetro y la
variable son la misma, no es una copia.

Módulo

Informática – Prof. Gonzalo Müller – Clase 11 – GM - 31


Parámetros de Retorno
 Parámetros de salida → Parámetro por referencia
El parámetro por referencia constituye una variable
que entra al módulo. La variable del argumento
utilizada en la llamada pasa al módulo con el nombre
del parámetro de éste, es decir el parámetro y la
variable son la misma, no es una copia.

Módulo

Informática – Prof. Gonzalo Müller – Clase 11 – GM - 32


Parámetros de Retorno
 Parámetros de salida → Parámetro por referencia
El parámetro por referencia constituye una variable
que entra al módulo. La variable del argumento
utilizada en la llamada pasa al módulo con el nombre
del parámetro de éste, es decir el parámetro y la
variable son la misma, no es una copia.

Módulo

Informática – Prof. Gonzalo Müller – Clase 11 – GM - 33


Parámetros de Retorno
 Parámetros de salida → Parámetro por referencia
El parámetro por referencia constituye una variable
que entra al módulo. La variable del argumento
utilizada en la llamada pasa al módulo con el nombre
del parámetro de éste, es decir el parámetro y la
variable son la misma, no es una copia.

Módulo

Informática – Prof. Gonzalo Müller – Clase 11 – GM - 34


Parámetros de Retorno
 Parámetros de salida → Parámetro por referencia
El parámetro por referencia constituye una variable
que entra al módulo. La variable del argumento
utilizada en la llamada pasa al módulo con el nombre
del parámetro de éste, es decir el parámetro y la
variable son la misma, no es una copia.

Módulo

Si se pone rojo adentro,


sale afuera rojo también
Informática – Prof. Gonzalo Müller – Clase 11 – GM - 35
Parámetros de Retorno
 Parámetros de salida → Parámetro por referencia
El parámetro por referencia constituye una variable
que entra al módulo. La variable del argumento
utilizada en la llamada pasa al módulo con el nombre
del parámetro de éste, es decir el parámetro y la
variable son la misma, no es una copia.

Módulo

Si se pone rojo adentro,


sale afuera rojo también
Informática – Prof. Gonzalo Müller – Clase 11 – GM - 36
Parámetros de Retorno
 Parámetros de salida → Parámetro por referencia
El parámetro por referencia constituye una variable
que entra al módulo. La variable del argumento
utilizada en la llamada pasa al módulo con el nombre
del parámetro de éste, es decir el parámetro y la
variable son la misma, no es una copia.
A=2
Módulo
A

Informática – Prof. Gonzalo Müller – Clase 11 – GM - 37


Parámetros de Retorno
 Parámetros de salida → Parámetro por referencia
El parámetro por referencia constituye una variable
que entra al módulo. La variable del argumento
utilizada en la llamada pasa al módulo con el nombre
del parámetro de éste, es decir el parámetro y la
variable son la misma, no es una copia.
A=2
Módulo
A
B es A
Informática – Prof. Gonzalo Müller – Clase 11 – GM - 38
Parámetros de Retorno
 Parámetros de salida → Parámetro por referencia
El parámetro por referencia constituye una variable
que entra al módulo. La variable del argumento
utilizada en la llamada pasa al módulo con el nombre
del parámetro de éste, es decir el parámetro y la
variable son la misma, no es una copia.
A=2
Módulo
A
B es A
Si B se le asigna 5,
Informática – Prof. Gonzalo Müller – Clase 11 – GM - 39
entonces A valdrá 5
Parámetros de Retorno
 Parámetros de salida → Parámetro por referencia
El parámetro por referencia constituye una variable
que entra al módulo. La variable del argumento
utilizada en la llamada pasa al módulo con el nombre
del parámetro de éste, es decir el parámetro y la
variable son la misma, no es una copia.
A=2
Módulo
A
B es A B = 5
Si B se le asigna 5,
Informática – Prof. Gonzalo Müller – Clase 11 – GM - 40
entonces A valdrá 5
Parámetros de Retorno
 Parámetros de salida → Parámetro por referencia
El parámetro por referencia constituye una variable
que entra al módulo. La variable del argumento
utilizada en la llamada pasa al módulo con el nombre
del parámetro de éste, es decir el parámetro y la
variable son la misma, no es una copia.
A=2
Módulo
A
B es A B = 5
Si B se le asigna 5,
A=5 Informática – Prof. Gonzalo Müller – Clase 11 – GM - 41
entonces A valdrá 5
Parámetros de Retorno
 Parámetros de salida → Parámetro por referencia
 Los parámetros de salida se utilizan cuando se
requiere:
 Obtener más de un resultado.
 “Solo en Subrutinas”.

Informática – Prof. Gonzalo Müller – Clase 11 – GM - 42


Parámetros de Retorno en VBScript
Utilizando la palabra clave byref se declara un
parámetro como parámetro por referencia:

Declaración de parámetro por referencia:


sub nombre(byref parametro1,…)

end sub

Informática – Prof. Gonzalo Müller – Clase 11 – GM - 43


Parámetros de Retorno en VBScript
Ejemplo: Construir un módulo que devuelva el mayor
y menor de un conjunto de datos.

Informática – Prof. Gonzalo Müller – Clase 11 – GM - 44


Parámetros de Retorno en VBScript
Ejemplo: Construir un módulo que devuelva el mayor
y menor de un conjunto de datos.
2 valores de retorno → Subrutina con parámetros
de retorno

Informática – Prof. Gonzalo Müller – Clase 11 – GM - 45


Parámetros de Retorno en VBScript
Ejemplo: Construir un módulo que devuelva el mayor
y menor de un conjunto de datos.
2 valores de retorno → Subrutina con parámetros
de retorno
sub maymen(byref mayor, byref menor)
dim N, k, x
N = cint(prompt("Cantidad de Numeros"))
x = cdbl(prompt("Numero 1:"))
mayor = x
menor = x
k = 1
do while(k < N)
… Informática – Prof. Gonzalo Müller – Clase 11 – GM - 46
Parámetros de Retorno en VBScript
Ejemplo: Construir un módulo que devuelva el mayor
y menor de un conjunto de datos.
2 valores de retorno → Subrutina con parámetros
de retorno
sub maymen(byref mayor, byref menor)
dim N, k, x Parámetro por referencia
N = cint(prompt("Cantidad de Numeros"))
x = cdbl(prompt("Numero 1:"))
mayor = x
menor = x
k = 1
do while(k < N)
… Informática – Prof. Gonzalo Müller – Clase 11 – GM - 47
Parámetros de Retorno
 Llamada: Cuando se realiza una llamada con
parámetros de referencia SIEMPRE se debe utilizar
como argumento una VARIABLE, ya que ésta es la
encargada de almacenar el valor correspondiente al
resultado.

… nombre(Variable1, Variable2, …)

Variable Variable

Informática – Prof. Gonzalo Müller – Clase 11 – GM - 48


Parámetros de Retorno en VBScript
 Llamada de una Subrutina con parámetros de retorno

call nombre(argumento1, argumento2, …)

Variable Variable

Informática – Prof. Gonzalo Müller – Clase 11 – GM - 49


Parámetros de Retorno en VBScript
 Llamada de una Subrutina con parámetros de retorno

call nombre(argumento1, argumento2, …)

Variable Variable
Ejemplo:
<script>
dim mayor1, menor1

call maymen(mayor1, menor1)
document.write("["&menor1&","&mayor1&"]")

Informática – Prof. Gonzalo Müller – Clase 11 – GM - 50
Parámetros de Retorno en VBScript
 Llamada de una Subrutina con parámetros de retorno

call nombre(argumento1, argumento2, …)

Variable Variable
Ejemplo:
<script>
dim mayor1, menor1 Argumento Variable

call maymen(mayor1, menor1)
document.write("["&menor1&","&mayor1&"]")

Informática – Prof. Gonzalo Müller – Clase 11 – GM - 51
Parámetros de Retorno en VBScript
Ejemplo:

call maymen(mayor1, menor1) 1 Llamada
document.write("["&menor1&","&mayor1&"]")

mayor es mayor1,
menor es menor1
sub maymen(byref mayor, byref menor)
dim N, k, x
N = cint(prompt("Cantidad de Numeros"))
x = cdbl(prompt("Numero 1:"))
mayor = x Se establece la correspondencia de los
argumentos (mayor1, menor1) con los
menor = x parámetros (mayor, menor) antes de
… continuar la ejecución
Informática – Prof. Gonzalo Müller – Clase 11 – GM - 52
Parámetros de Retorno en VBScript
Ejemplo:

call maymen(mayor1, menor1)
document.write("["&menor1&","&mayor1&"]")

mayor es mayor1,
menor es menor1
sub maymen(byref mayor, byref menor)Continua la ejecución
dim N, k, x 2 el módulo
correspondiente
N = cint(prompt("Cantidad de Numeros"))
x = cdbl(prompt("Numero 1:"))
mayor = x
menor = x

Informática – Prof. Gonzalo Müller – Clase 11 – GM - 53
Parámetros de Retorno en VBScript
Ejemplo:

call maymen(mayor1, menor1)
document.write("["&menor1&","&mayor1&"]")

mayor es mayor1,
menor es menor1
sub maymen(byref mayor, byref menor)
dim N, k, x
N = cint(prompt("Cantidad de Numeros"))
x = cdbl(prompt("Numero 1:")) lectura de N y x’s
mayor = x N=3 x1=4, x2=6, x3=0
3 Operaciones
menor = x Se ejecutan todas las

sentencias del módulo mayor =6
… menor=0
Informática – Prof. Gonzalo Müller – Clase 11 – GM - 54
Parámetros de Retorno en VBScript
Ejemplo:

call maymen(mayor1, menor1)
document.write("["&menor1&","&mayor1&"]")

mayor es mayor1,
menor es menor1
sub maymen(byref mayor, byref menor)
dim N, k, x
N = cint(prompt("Cantidad de Numeros"))
x = cdbl(prompt("Numero 1:")) lectura de N y x’s
mayor = x N=3 x1=4, x2=6, x3=0
3 Operaciones
menor = x Se ejecutan todas las

sentencias del módulo mayor =6 mayor1=6
… menor=0 menor1=0
Informática – Prof. Gonzalo Müller – Clase 11 – GM - 55
Parámetros de Retorno en VBScript
Ejemplo:

call maymen(mayor1, menor1)
document.write("["&menor1&","&mayor1&"]")

mayor1 = 6 mayor es mayor1,
menor1 = 0 menor es menor1
sub maymen(byref mayor, byref menor)
dim N, k, x
N = cint(prompt("Cantidad de Numeros"))
x = cdbl(prompt("Numero 1:")) lectura de N y x’s
mayor = x N=3 x1=4, x2=6, x3=0
menor = x …
mayor =6 mayor1=6
… 4 Regresa y continua la menor=0 menor1=0
ejecución el algoritmo
Informática – Prof. Gonzalo Müller – Clase 11 – GM - 56
Parámetros de Retorno en VBScript
Ejemplo:

call maymen(mayor1, menor1)
document.write("["&menor1&","&mayor1&"]") [6,0]

mayor1 = 6 mayor es mayor1,
menor1 = 0 menor es menor1
sub maymen(byref mayor, byref menor)
dim N, k, x
N = cint(prompt("Cantidad de Numeros"))
x = cdbl(prompt("Numero 1:")) lectura de N y x’s
mayor = x N=3 x1=4, x2=6, x3=0
menor = x …
mayor =6 mayor1=6
… 4 Regresa y continua la menor=0 menor1=0
ejecución el algoritmo
Informática – Prof. Gonzalo Müller – Clase 11 – GM - 57
Representación de Algoritmos Modulares
 Definición de una subrutina con parámetros de
referencia
DF
Nombre(&parámetro1, &parámetro2, …)

Fin

DRE
Nombre(&parámetro1, &parámetro2, …)

Fin
Informática – Prof. Gonzalo Müller – Clase 11 – GM - 58
Metodología de la Programación Modular
 Tabla de Módulos: Una vez desarrollados los
algoritmos de todos los módulos es de utilidad para la
posterior implementación en el lenguaje construir una
tabla donde se listen todos los módulos, sus tipos y
parámetros.

Modulo Parámetros Parámetros Retorno Tipo


de Entrada de Retorno
Nombre Lista de Lista de Valor Subrutina
del módulo parámetros parámetros retornado o Función

Informática – Prof. Gonzalo Müller – Clase 11 – GM - 59


Programación Modular en VBScript
Ejemplo: Construir una pagina web con VBScript con
acoplamiento de datos estándar para obtener el mayor
y menor de N conjunto de datos.

Informática – Prof. Gonzalo Müller – Clase 11 – GM - 60


Parámetros de Retorno

Es recomendable utilizar los módulos de la siguiente manera:


# Retornos Usar
0 Subrutina
1 Función
2 ó más Subrutina con parámetros de salida

Informática – Prof. Gonzalo Müller – Clase 11 – GM - 61


Combinación de Parámetros en VBScript
 Es posible utilizar en un módulo una combinación de
parámetros por valor y parámetros por referencia:

Declaración de parámetros por valor y referencia:


sub nombre(byval param1, byref param2,…)

end sub

Informática – Prof. Gonzalo Müller – Clase 11 – GM - 62


Combinación de Parámetros en VBScript
Ejemplo: Construir un módulo que devuelva las raíces
reales de una ecuación cuadrática.

Informática – Prof. Gonzalo Müller – Clase 11 – GM - 63


Combinación de Parámetros en VBScript
Ejemplo: Construir un módulo que devuelva las raíces
reales de una ecuación cuadrática.
2 valores de retorno → Subrutina con parámetros
de retorno

Informática – Prof. Gonzalo Müller – Clase 11 – GM - 64


Combinación de Parámetros en VBScript
Ejemplo: Construir un módulo que devuelva las raíces
reales de una ecuación cuadrática.
2 valores de retorno → Subrutina con parámetros
x y
de retorno
a
b real
c

Informática – Prof. Gonzalo Müller – Clase 11 – GM - 65


Combinación de Parámetros en VBScript
Ejemplo: Construir un módulo que devuelva las raíces
reales de una ecuación cuadrática.
2 valores de retorno → Subrutina con parámetros
x y
de retorno
a
b real
c
sub real(byval a,byval b,byval c,byref x,byref y)
dim D
D = sqr(b^2-4*a*c)
x = (D - b) / (2*a)
y = -(D + b) / (2*a)
end sub
Informática – Prof. Gonzalo Müller – Clase 11 – GM - 66
Combinación de Parámetros en VBScript
Ejemplo: Construir un módulo que devuelva las raíces
reales de una ecuación cuadrática.
2 valores de retorno → Subrutina con parámetros
x y
de retorno
a
b real Parámetros Parámetros
c Entrada Salida

sub real(byval a,byval b,byval c,byref x,byref y)


dim D
Es recomendable colocar primero los
D = sqr(b^2-4*a*c)
parámetros de entrada y luego los
x = (D - b) / (2*a) parámetros de salida al definir un
y = -(D + b) / (2*a) módulo que posee ambos tipos de
end sub parámetros
Informática – Prof. Gonzalo Müller – Clase 11 – GM - 67
Combinación de Parámetros en VBScript
Ejemplo:
… coefA = 1, coefB = 5, coefC = 6 1 Llamada
call real(coefA, coefB, coefC, raiz1, raiz2)
document.write("1:" & raiz1 & "<br/>2:" & raiz2)

a = 1, b = 5, c = 6, x es raiz1, y es raiz2
sub real(byval a,byval b,byval c,byref x,byref y)
dim D
D = sqr(b^2-4*a*c)
x = (D - b) / (2*a)
y = -(D + b) / (2*a)
end sub
Informática – Prof. Gonzalo Müller – Clase 11 – GM - 68
Combinación de Parámetros en VBScript
Ejemplo:
… coefA = 1, coefB = 5, coefC = 6
call real(coefA, coefB, coefC, raiz1, raiz2)
document.write("1:" & raiz1 & "<br/>2:" & raiz2)

a = 1, b = 5, c = 6, x es raiz1, y es raiz2
sub real(byval a,byval b,byval c,byref x,byref y)
dim D Continua la ejecución
2 el módulo
D = sqr(b^2-4*a*c) correspondiente

x = (D - b) / (2*a)
y = -(D + b) / (2*a)
end sub
Informática – Prof. Gonzalo Müller – Clase 11 – GM - 69
Combinación de Parámetros en VBScript
Ejemplo:
… coefA = 1, coefB = 5, coefC = 6
call real(coefA, coefB, coefC, raiz1, raiz2)
document.write("1:" & raiz1 & "<br/>2:" & raiz2)

a = 1, b = 5, c = 6, x es raiz1, y es raiz2
sub real(byval a,byval b,byval c,byref x,byref y)
dim D
D = sqr(b^2-4*a*c)
x = (D - b) / (2*a) D=1
x = –2
y = -(D + b) / (2*a) 3 Operaciones y = –3
end sub Se ejecutan todas las
sentencias del módulo
Informática – Prof. Gonzalo Müller – Clase 11 – GM - 70
Combinación de Parámetros en VBScript
Ejemplo:
… coefA = 1, coefB = 5, coefC = 6
call real(coefA, coefB, coefC, raiz1, raiz2)
document.write("1:" & raiz1 & "<br/>2:" & raiz2)

a = 1, b = 5, c = 6, x es raiz1, y es raiz2
sub real(byval a,byval b,byval c,byref x,byref y)
dim D
D = sqr(b^2-4*a*c)
x = (D - b) / (2*a) D=1
x = –2 raiz1= –2
y = -(D + b) / (2*a) 3 Operaciones y = –3 raiz2= –3
end sub Se ejecutan todas las
sentencias del módulo
Informática – Prof. Gonzalo Müller – Clase 11 – GM - 71
Combinación de Parámetros en VBScript
Ejemplo:
… coefA = 1, coefB = 5, coefC = 6
call real(coefA, coefB, coefC, raiz1, raiz2)
document.write("1:" & raiz1 & "<br/>2:" & raiz2)
… raiz1 = –2
raiz2 = –3 a = 1, b = 5, c = 6, x es raiz1, y es raiz2
sub real(byval a,byval b,byval c,byref x,byref y)
dim D
D = sqr(b^2-4*a*c)
x = (D - b) / (2*a) D=1
x = –2 raiz1= –2
y = -(D + b) / (2*a) y = –3 raiz2= –3
end sub
Regresa y continua la
4 ejecución del algoritmo
Informática – Prof. Gonzalo Müller – Clase 11 – GM - 72
Combinación de Parámetros en VBScript
Ejemplo:
… coefA = 1, coefB = 5, coefC = 6
call real(coefA, coefB, coefC, raiz1, raiz2)
document.write("1:" & raiz1 & "<br/>2:" & raiz2)
… raiz1 = –2 1: –2
a = 1, b = 5, c = 6, x es raiz1, y es raiz2 2: –3
raiz2 = –3
sub real(byval a,byval b,byval c,byref x,byref y)
dim D
D = sqr(b^2-4*a*c)
x = (D - b) / (2*a) D=1
x = –2 raiz1= –2
y = -(D + b) / (2*a) y = –3 raiz2= –3
end sub
Regresa y continua la
4 ejecución del algoritmo
Informática – Prof. Gonzalo Müller – Clase 11 – GM - 73
Acoplamiento de datos Estándar
El algoritmo se construye utilizando todos los bloques
del diagrama Top-Down.

Programa

Inicialización Entrada Proceso Salida

Lectura Validación Tarea 1 Tarea 2

Informática – Prof. Gonzalo Müller – Clase 11 – GM - 74


Acoplamiento de datos Estándar
 Subrutinas:
 Pueden tener Parámetros de Entrada.
 Se utilizan cuando:
 No se necesita resultado. …
 Se necesitan 2 ó más resultados, se utiliza …

parámetros de retorno.
 Funciones:
 Pueden tener Parámetros de Entrada.
 Se utilizan cuando:

 Se retorna 1 resultado. 1
Informática – Prof. Gonzalo Müller – Clase 11 – GM - 75
Programación Modular en VBScript
Ejemplo: Construir una pagina web con VBScript con
acoplamiento de datos estándar para obtener todas las
raíces de una ecuación cuadrática.

Informática – Prof. Gonzalo Müller – Clase 11 – GM - 76


Parámetros por Valor
 Una vez tomado su valor pueden ser empleados como
variables locales, sin afectar las variables externas.
Ejemplo:

resultado = cubo(3.0)
resultado = cubo(x)

function cubo(numero)
dim res
res = numero*numero*numero
numero = 8 Cambio en parámetro por valor que no afecta
cubo = res variables externas, ejemplo: x no se ve afectada.
end function Recordar que lo que recibe numero es un valor
Informática – Prof. Gonzalo Müller – Clase 11 – GM - 77
Parámetros de Retorno en VBScript

Si no se indica el tipo de parámetro VBScript lo asume por


referencia, es decir:
sub nombre(byref parametro1) …
y
sub nombre(parametro1) …
Son equivalentes

Informática – Prof. Gonzalo Müller – Clase 11 – GM - 78


Ejercicio

Construir una pagina web con VBScript con


acoplamiento de datos estándar para calcular el
máximo, mínimo y promedio de N cuartetos.
Fase 1: Diseño y Análisis: DTD
DES, DRE ó DF y LV de Módulos y TM.
DES, DRE ó DF, LV y CF de Bloque Principal.
Fase 2: Codificación: pagina Web con VBScript.

Informática – Prof. Gonzalo Müller – Clase 11 – GM - 79


Resumen
 Acoplamiento de datos estándar
 Parámetros de entrada → Parámetro por valor
 En VBScript: byval
 Parámetros de retorno o salida → Parámetro por
referencia
 Obtener más de un resultado
 En VBScript: byref
 Llamada: SIEMPRE se debe utilizar como
argumento una VARIABLE
 Combinación de Parámetros.
Informática – Prof. Gonzalo Müller – Clase 11 – GM - 80
Resumen
 Acoplamiento de datos estándar
 Subrutinas
 No se necesita resultado.
 Se necesitan 2 ó más resultados
 Funciones
 Se retorna 1 resultado
 Representación de Algoritmos Modulares:
 Parámetros de Retorno: &
 Tabla de Módulos: Parámetros → Parámetros de
Entrada y Parámetros de Retorno
Informática – Prof. Gonzalo Müller – Clase 11 – GM - 81