2 TIPOS, DECLARACIONES Y ALCANCES DE LAS VARIABLES
En cualquier programa necesitamos hacer cálculos, usar información, procesarla y mostrarla. En la mayoría de los casos, necesitamos un lugar temporal en el cual guardar parte de esa información, incluso toda.
Es aquí donde entran en juego las variables, las que nos permite guardar datos en memoria, para que cuando los necesitemos, podamos tomarlos, modificarlos y volverlos a guardar para usar mas tarde.
La memoria es el lugar
donde el ordenador almacena de forma temporal los programas y parte de
la información que necesita o utiliza. Esas posiciones o lugares
de la memoria donde los programas pueden almacenar información son
las variables.
Es una ubicación
de almacenamiento temporal con nombre que se encuentra en memoria, siendo
capaz de contener cierto tipo de datos que pueden modificarse durante la
ejecución del programa.
En VB los nombres de las variables deben limitarse a 255 caracteres, empezar con un carácter alfabético y no pueden obtener un punto
Utilización
temporal de almacenamiento de datos dentro de un programa. Permiten asignar
nombres cortos y fácil de recordar. Son para manejar cualquier tipo
de información.
Dim: Al declarar una variable con esta palabra estamos diciendo que la variable sea local al ámbito en que se declara. Puede ser dentro de un procedimiento o dentro de un formulario, de esta forma no sería accesible desde los demás procedimientos o formularios.
Ej: Dim suma
Public: Las variables declaradas serán publicas y podrán estar accesibles desde todos los formularios de la aplicación. Para conseguirlo tendremos que declararlas en un módulo de código, no en la sección declarations de cualquier formulario de los que conste la aplicación.
Ej: Public suma
Static: Con esta forma de
declarar variables conseguiremos que las variables locales no se creen
y se destruyan al entrar y salir de los procedimientos donde fueron declaradas
sino que se mantenga su valor durante todo el periodo de ejecución
de la aplicación. De esta forma a entrar en algún procedimiento
las variables recuerdan el valor que tenían cuando se salió
de él.
Ej: Static suma
TIPOS DE VARIABLES
| TIPO | COMENTARIO |
| BOOLEAN | Sólo admite 2 valores TRUE o FALSE |
| BYTE | admite valores entre 0 y 255 |
| INTEGER | admite valores entre -32768 y 32767 |
| LONG | admite valores entre -2.147.483.648 y 2.147.483.647 |
| SINGLE | admite valores decimales con precisión simple |
| DOUBLE | admite valores decimales de doble precisión |
| CURRENCY | válido para valores de tipo moneda |
| STRING | cadenas de caracteres |
| Variant | Admite cualquier tipo de datos |
| DATE | fechas, permite operar con ellas |
2.2 Declaracion de las variables
DIM: Es la abreviatura de Dimensión, esto reserva espacio en memoria para la variable cuando se ejecute el programa y permitirá a VB que tipo de datos deberá guardar en dicha variable.
EJ : Dim nombre
Declaración Implícita: Declarar variables sin uso del Dim. No obliga a organizar y listar las variables de antemano.
Si se va a herramientas,
opciones y en editor se elige “Requerir Declaración de Variables”.
Con esto VB genera un mensaje de error siempre que encuentre una variable
mal escrita o declarada.
Pero hay otra forma que sólo es utilizable para 6 tipos. Esta forma de identificar a una variable nos permite ahorrar tiempo a la hora de escribir código, además de tratar de hacer compatible las primeras formas de asignar variables en Visual Basic (desde Visual Basic 1.0).
Estas formas son extensibles para las variables tipo Integer, Long, Single, Double, String y Currency.
Integer %
Long &
Single !
Double #
String $
Currency @
De esta forma, podemos escribir el siguiente código:
Private Sub Command1_Click()
Sum%
= 3 + 4
Num#
= 32 / Sum%
Label1
= Num#
End Sub
En este ejemplo, puede utilizarse,
pero es preciso tener un ligero conocimiento de este tipo de variables
para no confundir una variable de tipo Long por otra de tipo Integer por
ejemplo.
2.3 Establecimiento del alcance de la variable
El alcance de las variables
se refiere al área del programa en las cuales es visible la variable.
Hay cuatro niveles diferentes de alcances:
Nivel de Procedimiento:
Para declarar variables, ya sea implícitas o con el enunciado DIM,
es en el nivel de procedimiento. En VB, existen dos tipos de procedimientos:
los procedimientos SUB y los FUCNTION. Las variables declaradas en los
procedimientos son locales para ese procedimiento. Siendo accesibles solamente
por los procedimientos en los cuales están declaradas, las variables
locales tienen la visibilidad mas baja y el alcance mas estrecho. Las variables
locales de un procedimiento son reinicializada cada vez que llama el procedimiento.
También se pueden declarar variables Estáticas: es decir que las variables locales sean permanentes: EJ static nombre.
Nivel de Formulario: Si se declara una variable a nivel de forma esta disponible en cada procedimiento en esta forma.
Nivel de Modulo: Se
crean mediante la selección de la opción Agregar Modulo del
menú Proyecto de VB. Los módulos de códigos se utilizan
para conservar los subprocedimientos y funciones generales que no están
relacionados con eventos, así como sus variables locales(publicas)
y sus constantes. Variables Publicas: para identificar una variable global,
se declara con
la palabra Public. Ej:
Public
nompreapellido As String
Para declarar matrices debemos colocar entre paréntesis el número de elementos de los que constará a continuación del nombre de la variable:
Dim medidas(9) as integer
De esta forma tenemos una
matriz de 10 elementos identificados del 0 al 9
Podemos obligar a que el
primer elemento de una matriz tenga el índice con valor 1.
Esto se hace colocando la instrucción option base 1 en la sección declarations de nuestro formulario. También podemos indicar los límites inferior y superior de la matriz:
Dim medidas(5 to 14) as integer
Es una matriz de 10 elementos cuyos índices van del 5 al 14. Las matrices multidimensionales se declaran de la siguiente forma:
Dim medidas(1 to 10, 1 to
10) as integer
2.5 Tipos de Datos Definidos por el Usuario
El usuario puede definir los datos en VB en la sección General de Declaraciones de un modulo de código, usando la palabra clave Type y End Type. Ej:
Type tipoempleado ‘
Crear tipo definido por el usuario.
ID As Long
Nombre As String
*15
Salario As Currency
End Type
2.6 Por que son Indispensables las Variables
El poder y la flexibilidad añadidos a sus programas de computadoras por un uso juicioso y bien informado de variables están más allá de cualquier discusión y no pude sobre estimarse. De hecho, cualesquiera programas, a excepción d los más triviales harán un uso cuidadoso de una amplia diversidad de variables, abarcando todo el expectro de tipos disponibles. Los tipos de datos personalizados son útiles en los programas de Bases de Datos, donde ayuda a considerar varios elementos diferentes de datos como una sola entidad, tal como un registro de un empleado por ejemplo, o una factura de un cliente.
Por lo general el establecimiento
de variables del tipo y alcance adecuado asegurara el uso más eficiente
de la memoria en sus programas.
Como su palabra lo dice es Información que no varía hace más fácil la comprensión del código y permite modificar un valor en un solo lugar no ocupa espacio extra, Ejemplo:
Const Mínimo = 1, Máximo = 10
3 ENTRADAS Y SALIDAS
SENCILLAS CON MSGBOX() E INPUTBOX()
3.1
Que son Inputbox(), Msgbox()
InputBox() Despliega un Mensaje en un cuadro de dialogo, espera que el usuario introduzca el texto o seleccione un botón y luego devuelve el contenido del cuadro de texto. Sintaxis:
ValRe = InputBox(Mensaje,
titulo, Posx, Posy, ArchAyuda, Context)
‘ Devuelve
Variant
RetVal$ = InputBox$(Mensaje,
titulo, Posx, Posy, ArchAyuda, Context)
‘ Devuelve
una Cadena.
q Mensaje: consiste de más de una línea, asegúrese de incluir un retorno del carro chr(13) y un avance de línea, chr(10) entre cada línea. Puede usar la constante pre definida Vbcrlf para lograr el mismo efecto.
q Titulo: Es una cadena que se despliega en la barra de titulo el cuadro de dialogo. Si se omite no aparecerá nada.
q Posx, Posy: Expresiones numéricas que especifican el tamaño de la caja. Si se omite aparecerá en el centro.
q ArchAyuda, Context:
Se usan para proporcionar ayuda sensible al contexto.
MsgBox() y MsgBox Despliega un mensaje en un cuadro de dialogo y espera que el usuario seleccione un botón. Sintaxis:
ValRe% = MsgBox(Mensaje, tipo, titulo, ArchAyuda, Context)
q Mensaje: Es una expresión de cadena que se despliega como el mensaje en un cuadro de dialogo.
q Titulo: Expresión de cadena que aparece en la barra de titulo del cuadro.
q Tipo: Expresión
numérica que es la suma de valores que especifican la cantidad y
el tipo de botones por desplegar.
| Valor | Botón | Constante |
| 0 | Ok(Aceptar) | VbOKOnly |
| 1 | Ok(Cancelar) | VbOKCancel |
| 2 | Abortar, Reiterar e Ignorar | VbAbortRetryIgnore |
| 3 | Si, No y Cancelar | VbYesNoCancel |
| 4 | Si o No | VbYesNo |
| 5 | Reiterar y Cancelar | VbRetryCancel |
| 16 | Icono Parada Critica | VbCritical |
| 32 | Signo de Interrogación | VbQuestion |
| 48 | Signo de Exclamación | VbExclamation |
| 64 | Icono de Información | VbInformation |
3.2 Por qué usar InputBox() y MsgBox()
Proporcionan una manera
de manejar tareas sencillas de Entrada y Salida. Son muy útiles
para manejar tareas tales como el despliegue de mensajes de error
y de ayuda, así como los cuadros de Acerca De que se presentan en
los Sistemas.
Crear un formulario con tres botones, un botón dirá Captura de Nombre, el otro Mostrar Nombre y el ultimo Salir.
Digitar el Siguiente Código en las declaraciones generales de la forma:
Private Nombre As String
Private Const TituloInput
= “Demostración de InputBox”
Private Const
TituloNombre = “ Valor Actual del Nombre”
En el Botón Captura de Nombre Digitar el siguiente Código:
Dim Petición
As String
Petición =
“Teclee su Nombre: “
Nombre = InputBox$(Peticion,
Tituloinput)
If Nombre = “ “ Then
MsgBox “ No escribio
Nada”, vbCritical, “Error”
End If
En el Botón Mostrar Nombre Digitar el siguiente Código:
Dim men As String
Dim Tipo As integer,
valRe As Integer
Tipo = vbYesNoCancel
+ vbQuestion
ValRe = MsgBox(“Digito”
& Nombre, Tipo, TituloNombre)
If ValRe = VbYes Then
Men = “ Ha presionado
Si”
ElseIf valRe = vbNo
Then
Men = “Ha presionado
No”
ElseIf valre = vbCancel
Then
Men = “ Ha Precionado
Cancelar”
End If
MsgBox Men, vbInformation,
“Procedimiento MsgBox”
4 ESTRUCTURAS DE DECISIONES: RAMIFICACIONES Y CICLOS
4.1 Que son las estructuras de Decisiones?
Estas estructura caen en dos amplias categorías: Ramificaciones y Ciclos. Los dispositivos como If..Then y Select Case hacen que el programa continúe en una dirección cuando se encuentra una condición particular, sin mirar nunca atrás.
Las construcciones en ciclos
como Do.. Loop y While..Wend, se usan para repetir un cierto bloque limitado
de instrucciones hasta que las condiciones especificadas son True(cierta)
o False(Falsa).
La primera es la sentencia If Then Else que no debe tener secretos puesto que es muy similar en todos los lenguajes. La estructura general es la siguiente:
If condición then
bloque de sentencias
Else
bloque de sentencias
End If
Se pueden colocar todas las sentencias de código que queramos en cada uno de los bloques de sentencias, siempre que cada sentencia vaya en una línea distinta. Si los bloques de sentencias están formados por una sola instrucción podemos utilizar la versión reducida que ocupa una sola línea:
If condición then sentencia else sentencia
Ejemplo:
If isnumeric(numero) then la variable numero es numérica else no es numerica.
También podemos anidar varias sentencias If then Else cuando una de las 2 opciones iniciales contiene a su vez 2 bifurcaciones dependiendo del estado de otra condición:
if dato<10 then
la variable dato contiene
un solo dígito
Else
If dato<100 then
la variable dato contiene
2 dígitos
Else
la variable dato contiene
más de 2 dígitos
end If
End If
En el ejemplo anterior se quiere saber si la variable dato contiene uno, dos o más dígitos. Para calcularlo no es suficiente con una sola sentencia If Then Else, por tanto se recurre a anidar 2 sentencias de este tipo. La segunda sentencia If se ejecutará si la condición de la primera sentencia If no se cumple, es decir, si dato>=10. Una vez que se ha llegado a este punto sabemos que la variable dato contiene 2 o más dígitos, mediante una nueva sentencia If sabremos exactamente el número de dígitos de la variable dato.
Este último ejemplo podría haberse escrito de otra forma utilizando la cláusula ElseIf:
If dato<10 then
la variable dato contiene
un dígito
ElseIf dato<100 then
la variable dato contiene
dos digitos
Else
la variable dato contiene
más de 2 digitos
End If
Esta segunda opción
es perfectamente válida cuando queremos evaluar varias condiciones,
aunque tiene más limitaciones que la estructura anterior ya que
enlaza directamente el Else con el If siguiente, sin dejarnos introducir
sentencias entre medias que algunas veces podríamos necesitar.
Podemos introducir tantas
líneas ElseIF como queramos siempre antes del último Else,
si es que lo necesitamos.
Para múltiples decisiones en los que dependiendo del valor de una variable queremos que se realice una acción distinta, parecido a los menús de los programas de MS DOS, no conviene utilizar la estructura IF Then, sino que el código queda más claro y resulta más fácil de modificar utilizando la sentencia Select
Algunas veces se puede condensar la construcción If..Then..Else..Endif dentro de una línea de código. Esto se logra con la función IIF(Si inmediato). Ej:
Color = IIF(elcolor <
15, elcolor, 1)
Esta sentencia permite realizar operaciones diferentes dependiendo del valor de una variable:
Estructura General:
Select Case dato
Case valor1
bloque de sentencias
case valor2
bloque de sentencias
Case valor3
bloque de sentencias
case else
bloque de sentencias, se
ejecutan si no se cumple ninguno de los valores anteriores
End Select
En esta construcción, dependiendo del valor de la variable dato se ejecutará un bloque de sentencias diferente. Los valores que podemos colocar en lugar de valor1, valor2, valor3 no sólo se limitan a valores constantes como números y cadenas de texto, sino que podemos comparar con un número como podemos ver en el siguiente ejemplo:
Select Case NotaFinal
Case Is < 5
Suspendido
Case 5 to 6.99
Aprobado
Case 7 to 8.99
Notable
Case Else
Sobresaliente
End Select
Como se puede observar si
utilizamos los operadores lógicos como >, <, =, <=, >= debemos
anteponer el operador Is. Si lo que hacemos es comparar con un intervalo
de valores colocaremos el operador to entre los limites del intervalo.
También podemos realizar comparaciones con un conjunto de valores
separados por comas:
Case 1, 3, 5. El numero
es impar. Para terminar con el tema de las sentencias de selección
vamos a ver un ejemplo completo en el que probaremos el uso de este tipo
de instrucciones. Se trata del típico ejemplo de resolución
de una ecuación de 2º grado. Sabemos que la estructura de una
ecuación de este tipo es la siguiente:
ax2+ bx + c = 0
La fórmula que resuelve el valor de x es:
Esta fórmula tiene 2 soluciones, una o ninguna dependiendo del contenido de la raíz, de modo que esa es la comparación que realizaremos:
Trabajaremos con variables de tipo double que permiten decimales con la mayor precisión:
También podría
haberse utilizado la estructura If then Else, aunque de esta forma no hay
que repetir tantas veces la condición a evaluar. El código
anterior es sólo una muestra de como llegar a la solución
de un problema utilizando sentencias de Visual Basic, no hemos entrado
todavía en como introducir este codigo en el entorno de desarrollo
de VB para crear una aplicación. Eso lo veremos en el capítulo
siguiente, donde hablaremos de controles que son los elementos necesarios
para construir el interfaz de usuario y poder asociar el código
necesario para realizar nuestras aplicaciones
4.4 Sentencia de Control While Wend
Ejecuta repetidamente una o mas instrucciones mientras una condición dada es cierta.
Sintaxis:
While
condición
[ instrucciones]
Wend
4.5 Sentencia de Control Do Until
proporciona una forma mas estructurada y flexible para ejecutar ciclos. Esta repite un bloque de codigo mientras una condicion es True o a partir de que la condicion sea True.
Sintaxis:
Do Unitil
cliente.EOF
Print
cliente(“nombre”)
Cliente.movenext
Loop
Exit Do transfiere
el control a la instrucción que sigue inmediatamente al ciclo.
4.6 Sentencia de Control For Next
Esta sentencia repite un grupo de instrucciones, un numero especificado de veces. Sintaxis:
For
contador = 1 To 10
Print cliente(“nombre”)
Cliente.Movenext
Next contador
Se puede especificar también el intervalo Step, la cantidad que cambiar el contador cada vez que se ejecuta el ciclo. Si no se especifica, el incremento toma un valor por omisión de 1. Ej:
For porcentaje = 0
To 100 Step 5
Print porcentaje
& “%”
Next porcentaje
Exit For se usa frecuentemente
con la evaluación de algunas condicionantes If..Then y transfiere
el control a la instrucción que se encuentra a continuación
de Next.
Los lenguajes de computación
al igual que la vida real deben ser capaces de realizar diferentes juegos
de acciones, algunas veces repetidas, indicadas por circunstancias internas
o externas. Por ejemplo, en un sistema de administración de personal,
si un empleado ha estado en la compañía por espacio de una
año, este empleado obtiene un aumento. Si el empleado entra
en la edad de la jubilación, hay que jubilarlo.