Documente Academic
Documente Profesional
Documente Cultură
Programacin estructurada
La divisin de un programa en unidades funcionales ms pequeas presenta, entre otras, las ventajas siguientes: Modularidad: Cada unidad tiene una funcionalidad concreta con un tamao y complejidad manejable. Puede ser individualmente depurada, utilizada muchas veces en un mismo programa o en otros programas. Menor tiempo de desarrollo: Al ser reutilizada, se reduce el tamao de los programas y se minimizan los errores. Independencia de datos y encapsulacin de informacin: Una funcin es capaz de mantener una gran independencia con el resto del programa. Tiene sus propios datos aislados del resto y define la interfaz o comunicacin con el resto del programa.
Fundamentos de Informtica. Departamento de Ingeniera de Sistemas y Automtica. Actualizacin Septiembre 2005 2
Programacin estructurada
Utilizaremos los siguientes tipos de mdulos: Mdulos de cdigo: los utilizamos para escribir las instrucciones y sentencias de nuestro programa. No tienen interfaz grfica. Tienen la extensin .bas. Mdulos de formulario: los utilizamos para escribir las instrucciones y sentencias asociadas a un formulario. Tienen interfaz grfica. Tienen la extensin .frm. Utilizaremos los siguientes tipos de unidades funcionales: Funciones Function que devuelven un valor. Procedimientos Sub que no devuelven ningn valor.
Fundamentos de Informtica. Departamento de Ingeniera de Sistemas y Automtica. Actualizacin Septiembre 2005 3
Funciones
La sintaxis relativa a la declaracin de funciones definidas por el usuario en Visual Basic es la siguiente:
Function nombre ([parmetros])[As tipo] [sentencias] [nombre = expresion] [Exit Function] [sentencias] [nombre = expresion] End Function
donde: nombre es el nombre que identifica la funcin; parmetros son los argumentos que son pasados cuando se llama a la funcin; tipo es el tipo de datos que devuelve la funcin (Integer, String, etc.).
Fundamentos de Informtica. Departamento de Ingeniera de Sistemas y Automtica. Actualizacin Septiembre 2005 4
Funciones
El nombre de la funcin acta como una variable dentro del cuerpo de la funcin. El valor de expresin que se le asigne es almacenado en el propio nombre de la funcin. Si no se efecta esta asignacin, se devuelve 0 en valores numricos y cadena vaca () en cadenas. Exit Function permite abandonar la funcin antes de que sta finalice normalmente y devolver as el control del programa a la sentencia inmediatamente a continuacin de la que efectu la llamada a la funcin. La sentencia End Function marca el final del cdigo de la funcin y, al igual que la anterior, devuelve el control del mismo modo. Es la forma normal de finalizar una funcin.
Funciones
La llamada a una funcin puede hacerse de diversas formas, pero la ms usual es la siguiente:
variable = nombre ([argumentos])
donde argumentos es una lista de constantes, variables o expresiones, separadas por ,, que son pasadas a la funcin como parmetros para su ejecucin y variable recibe el dato retornado. El nmero de argumentos pasados debe ser igual al nmero de parmetros declarados en la funcin. Los tipos de los argumentos deben coincidir con los de los parmetros.
Ejemplo de Funciones
El siguiente ejemplo corresponde a una funcin que devuelve como resultado la raz cuadrada de un nmero:
Function RaizCuadrada (numero As Double) As Double If numero < 0 Then Exit Function End If RaizCuadrada = Sqr(numero) End Function
Procedimientos
La sintaxis relativa a la declaracin de un procedimiento definido por el usuario en Visual Basic es la siguiente:
Sub nombre ([parmetros]) [sentencias] [Exit Sub] [sentencias] End Sub
donde: nombre es el nombre que identifica al procedimiento y parmetros son los argumentos que son pasados cuando se llama al procedimiento.
Procedimientos
A diferencia de una funcin, un procedimiento no puede ser utilizado en una expresin pues no devuelve ningn valor en si mismo. Exit Sub permite abandonar el procedimiento antes de que finalice normalmente y devolver as el control del programa a la sentencia inmediatamente a continuacin de la que efectu la llamada al mismo. La sentencia End Sub marca el final de su cdigo y, al igual que la anterior, devuelve el control del mismo modo. Es la forma normal de finalizar un procedimiento
Procedimientos
Llamaremos a un procedimiento del siguiente modo:
Call nombre ([argumentos])
donde argumentos es una lista de constantes, variables o expresiones, separadas por comas (,), que son pasados a la funcin como parmetros para llevar a cabo su ejecucin. El nmero de argumentos pasados debe ser igual al nmero de parmetros declarados en la funcin. Los tipos de los argumentos tienen que coincidir con los de los parmetros.
10
Ejemplo de procedimientos
Procedimiento:
Sub muestralaraizcuadrada(numero As Double) If numero < 0 Then MsgBox ("No calculo raz cuadrada. " & numero & " es negativo.") Else MsgBox ("La raz cuadrada de " & numero & " es " & Sqr(numero)) End If End Sub
Llamada al procedimiento:
Dim numero As Double numero = InputBox("Introduce nmero para calcular la raz cuadrada") Call muestralaraizcuadrada(numero)
11
Ejemplo de Procedimientos
El siguiente ejemplo corresponde a un procedimiento que devuelve en un parmetro la raz cuadrada de un nmero:
Sub RaizCuadrada (ByVal numero As Double, resultado As Double) If numero < 0 Then resultado = -1 End If resultado = Sqr(numero) End Sub
Funcin 2
Procedimiento 1
14
16
17
18
19
Funcin Asc Devuelve el cdigo de carcter correspondiente al primer carcter de la cadena especificada.
cdigo_carcter = Asc(expresion_de_cadena)
20
Esta funcin devuelve un valor de tipo Date que se corresponde con una cadena de caracteres de la forma:
dd/mm/aa HH:MM:SS(da/mes/ao hora:minuto:segundo)
Para visualizar esta fecha y hora segn diversos patrones, utilizar la funcin Format con los smbolos especiales d, m, y, h, m y s. (consultar la ayuda de esta funcin en la MSDN).
21
Funcin Time Devuelve la hora actual del sistema en una cadena de caracteres.
cadena = Time
24
Funcin Int Devuelve el mayor nmero entero que sea menor o igual que el valor de expresin_numrica.
variable = Int(expresin_numrica)
La diferencia entre Int y Fix es que si el nmero es negativo, Int devuelve el primer entero negativo menor o igual a nmero, mientras que Fix devuelve el primer entero negativo mayor o igual a nmero. Por ejemplo, Int convierte -8.4 en -9 y Fix convierte -8.4 a -8.
Fundamentos de Informtica. Departamento de Ingeniera de Sistemas y Automtica. Actualizacin Septiembre 2005 26
Funcin Sgn Da como resultado un entero (1, -1 0) indicando el signo del valor de una expresin numrica.
variable = Sgn(expresin_numrica)
Si: expresin < 0 devuelve siempre el mismo nmero. expresin > 0 (defecto) devuelve el siguiente n aleatorio. expresin = 0 devuelve el ltimo n generado. Sentencia Randomize Activa el generador de nmeros aleatorios a partir de un nmero determinado (llamado semilla).
Randomize[n]
donde n es una expresin entera que se utiliza para activar una secuencia aleatoria.
Fundamentos de Informtica. Departamento de Ingeniera de Sistemas y Automtica. Actualizacin Septiembre 2005 28
FUNDAMENTOS DE INFORMTICA
Tema 4 Programacin estructurada: Funciones y procedimientos
Departamento de Ingeniera de Sistemas y Automtica Universidad de Vigo
29