Sunteți pe pagina 1din 9

1.

Tipos de datos y expresiones


1.1. Declaracin de variables
Antes de utilizar un dato en nuestros programas, es necesario declararlo. Este dato puede ser
variable, con lo cual podr cambiar de valor a lo largo del programa, o constante, en cuyo caso su
valor ser el mismo a lo largo de todo el programa y no podr modificarse. La forma de declarar las
variables es la siguiente:
Dim| Public| Static nombre_variable As tipo
Dim: Al declarar una variable con esta palabra estamos diciendo que la variable ser local al mbito
en que se declara. Puede ser dentro de un procedimiento o dentro de un formulario; de esta forma no
ser accesible desde los dems procedimientos o formularios.
Public: Las variables declaradas sern publicas y podrn estar accesibles desde todos los
formularios de la aplicacin.
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 ejecucin de la aplicacin. De esta forma al entrar en algn
procedimiento las variables recuerdan el valor que tenan cuando se sali de l.
Los tipos de variables que se pueden utilizar en Visual Basic se muestrean en la tabla siguiente.
TIPOS DE VARIABLES
TIPO COMENTARIO
BOOLEAN Slo admite 2 valores: TRUE o FALSE
BYTE admite valores enteros entre 0 y 255
INTEGER admite valores enteros entre -32768 y 32767
LONG valores enteros entre 2.147.483.648 y 2.147.483.647
SINGLE admite valores decimales con precisin simple
DOUBLE admite valores decimales de doble precisin
CURRENCY vlido para valores de tipo moneda
STRING cadenas de caracteres
DATE fechas, permite operar con ellas

Al declarar una variable lo que estamos haciendo es decir al procesador que reserve una posicin de
memoria para guardar un dato. La cantidad de memoria reservada depender del tipo de variable que
hayamos indicado. Es importante tener en cuenta que siempre debemos utilizar el tipo de variable
ms pequea posible, pues de esta forma estaremos consumiendo la menor cantidad de memoria.
Por ejemplo, si queremos crear una variable en la que se guardar la edad de una persona, bastar
con que la variable creada al efecto sea de tipo byte.
1 1.2. Constantes
Una constante es aquel dato que tendr el mismo valor a lo largo de todo el programa. Para declarar
una constante, se procede de la forma siguiente:
Const nombre_constante As tipo = valor
donde nombre_constante es el nombre que queramos dar a la constante, tipo es uno de los tipos de
la tabla anterior y valor es el valor que tendr la constante. El siguiente ejemplo declara una constante
llamada PI a la que se asigna el valor 3,1416:
Const PI as Single = 3,1416
2 1.3. Declaracin de matrices
Una matriz es un conjunto de datos del mismo tipo. Supongamos que necesitamos almacenar 10
nmeros enteros; en lugar de crear 10 variables de tipo entero, podemos crear una matriz de 10
elementos. Para declarar matrices debemos colocar entre parntesis el nmero de elementos de los
que constar a continuacin del nombre de la variable; tambin habr que indicar el tipo de
elementos que va a almacenar la matriz. Todo ello se realiza con la siguiente expresin:
Dim nombre_matriz(dimensin) As tipo
Ejemplo: Dim medidas(9) as integer
De esta forma tenemos una matriz de 10 elementos identificados del 0 al 9, en la cual se
almacenarn nmeros enteros. Para referirnos al quinto elemento de nuestra matriz, habra que
escribir medidas(4). (Recuerda que el primer elemento es el de ndice 0, el segundo el de ndice 1,
). As por ejemplo, la expresin
medidas(7) = -5
almacenara el nmero 5 en el octavo elemento de la matriz.
Aunque no es lo habitual, podemos obligar a que el primer elemento de una matriz tenga el ndice con
valor 1. Esto lo haremos colocando la instruccin option base 1 en la seccin declarations de nuestro
formulario.
Tambin podemos indicar los lmites 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 pueden tener ms de una dimensin. Las matrices multidimensionales se declaran de la
siguiente forma:
Dim medidas(2, 9) as integer
sera una matriz bidimensional de 30 elementos, agrupados en tres filas y diez columnas. El primer
elemento sera el de ndice (0, 0) y el ltimo (2, 9). Imagina que queremos hacer el tpico juego de los
barcos con un tablero de 8 x 8 casillas. Crearamos una matriz en la que se almacenara que casilla
contiene un barco y cual no de la siguiente forma:
Dim tablero_de_barcos(7, 7) as boolean
Si te has fijado bien habrs podido observar que hemos separado con el smbolo _ las palabras
tablero de barcos; ello es debido a que el nombre de una variable no puede estar formado por
ms de una palabra, por lo que hay que unirlas de alguna forma para hacer creer al ordenador que se
trata de una sola palabra.
3 1.4. Expresiones y operadores
Una expresin es un conjunto de operandos y operadores que una vez evaluados devuelven un
resultado. En Visual Basic hay cuatro tipos de operadores: aritmticos, relacionales, lgicos y de
texto. Los operadores relacionales son aquellos que devuelven valores de tipo Bolean, es decir, su
resultado ser Verdadero o Falso.


TIPOS DE OPERADORES
Aritmticos Relacionales Lgicos De texto
Potenciacin ^ Igual que = Not &
Negacin - Distinto a <> And
Suma y resta +, - Menor que < Or
Multiplicacin y divisin *, / Menor o igual que <=
Divisin entera \ Mayor que >
Resto de la divisin Mod Mayor o igual que >=

Los operadores aritmticos y los relacionales no necesitan mayor aclaracin. La funcin de los
operadores lgicos y de texto es la siguiente:
Not (expresin) si el resultado de expresin es FALSO lo convierte en VERDADERO,
y viceversa.
(expresin_1) And (expresin_2) devuelve VERDADERO si el resultado de las
dos expresiones es VERDADERO, y FALSO en caso contrario.
(expresin_1) Or (expresin_2) devuelve VERDADERO si el resultado de alguna de
las dos expresiones es VERDADERO, y FALSO en caso contrario.
Unos ejemplos ayudarn a comprender mejor algunos de los distintos operadores:
Expresin Resultado Expresin Resultado
4 ^ 3 64 2 + 7 <> 5 VERDADERO
7 / 3 2,33333333 2 + 7 > 9 FALSO
7 \ 3 2 2 + 7 >= 9 VERDADERO
7 mod 3 1 Not (3 < 5) FALSO
(2 + 3 < 8) And (3 < 5) VERDADERO
buen & da buenda (2 + 3 < 8) Or (3 < 5) VERDADERO

2. Estructuras de seleccin
Hay ocasiones en las que un programa debe realizar distintas acciones dependiendo del valor de una
condicin. En estos casos, disponemos de 2 tipos de sentencias para realizar selecciones
dependiendo del valor de una expresin o de una variable:
2.1. Sentencia IF THEN ELSE
La estructura general de esta sentencia es la siguiente:
If condicin then
bloque de sentencias a realizar si la condicin es cierta
Else
bloque de sentencias a realizar si la condicin es falsa
End If
Supongamos que queremos crear un programa que nos diga si somos mayores o menores de edad.
El cdigo de dicho programa sera el siguiente:
If edad < 18 Then
print menor de edad
Else
print mayor de edad
End If
Se pueden colocar todas las sentencias de cdigo que queramos en cada uno de los bloques de
sentencias, siempre que cada sentencia vaya en una lnea distinta. Si los bloques de sentencias
estn formados por una sola instruccin podemos utilizar la versin reducida que ocupa una sola
lnea:
If condicin then sentencia else sentencia
Ejemplo: If IsNumeric(nmero) then a = nmero else print Error
En el ejemplo anterior, si la variable nmero contiene un valor numrico, este es almacenado en la
variable a; en caso contrario el programa imprimir en pantalla el mensaje Error.
Tambin 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 condicin:
If edad < 18 Then
print menor de edad
Else
If edad < 65 Then
print adulto
Else
print tercera edad
End If
End If
Este ltimo ejemplo podra haberse escrito de otra forma utilizando la clusula ElseIf:
If edad < 18 Then
print menor de edad
ElseIf edad < 65 Then
print adulto
Else
print tercera edad
End If
Podemos introducir tantas lneas ElseIf como queramos siempre antes del ltimo Else, si es que lo
necesitamos.
Para mltiples decisiones, normalmente ms de 3, en las que dependiendo del valor de una variable
queremos que se realice una accin distinta, no conviene utilizar la estructura If Then, sino que el
cdigo queda ms claro y resulta ms fcil de modificar utilizando la sentencia Select

2.2. Estructura SELECT CASE
Esta sentencia permite realizar operaciones diferentes dependiendo del valor de una variable. Su
estructura general es la siguiente:
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 construccin, 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 slo se limitan a
valores constantes como nmeros y cadenas de texto, sino que podemos comparar con un nmero
como podemos ver en el siguiente ejemplo, en el que tenemos una variable de tipo single llamada
NotaFinal en la que est guardada la nota de un alumno:
Select Case NotaFinal
Case Is < 5
print Suspenso
Case Is < 6
print Suficiente
Case Is < 7
print Bien
Case Is < 9
print Notable
Case Else
print Sobresaliente
End Select
Como podemos observar si utilizamos los operadores lgicos 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.
Case 5 to 5.99
print suficiente
Tambin podemos realizar comparaciones con un conjunto de valores separados por comas:
Case 1, 3, 5
print el numero es impar

4 3. Estructuras iterativas
5 3.1. Instruccin FOR TO NEXT
Sirve para ejecutar un bloque de sentencias un nmero conocido de veces. La sintaxis de esta
instruccin es
For contador = inicio To fin [Step incremento]
bloque de sentencias
Next [contador]
Contador es la variable numrica que se incrementa cada vez que se ejecuta el bucle. Este se
realizar un nmero determinado de veces que vendr determinado por los valores de inicio y de fin.
Los argumentos entre corchetes son opcionales. Si no se indica incremento, ste se presupone que
vale 1. En cualquier momento podemos abandonar la ejecucin en mitad del bucle si dentro del
bloque de sentencias colocamos la instruccin Exit For.
Unos cuantos ejemplos ayudarn a comprender mejor esta instruccin:
For i = 1 to 5
Print i
Next i
Imprime en pantalla los nmeros 1 a 5
For i = 0 to 10 step 2
Print i
Next i
Imprime en pantalla los nmeros 0, 2, 4, 6, 8 y 10
For i = 10 to 2 step -2
Print i
Next i
Imprime en pantalla los nmeros 10, 8, 6, 4 y 2
Hay que tener cuidado con no crear un bucle que no se acabe nunca. Por el ejemplo, el siguiente
bucle For no se terminara nunca, pues si comenzamos en el nmero 10 y aumentamos una unidad
cada vez que el bucle se repita, nunca llegaremos al nmero 5.

For i = 10 to 5
Print i
Next i
6 3.2. Instruccin DO LOOP
En las estructuras anteriores, conocamos de antemano el nmero de veces que iba a repetirse el
bucle; en algunas ocasiones no podemos conocer cuantas veces debemos repetir una determinada
instruccin (por ejemplo al pedir una clave secreta; habr que repetir la peticin de la misma hasta
que la clave introducida sea correcta). En estos casos utilizaremos la instruccin Do Loop. Se
ejecutar un bloque de cdigo mientras o hasta que la condicin evaluada sea verdadera. Depender
de la forma en la que escribamos la instruccin. Por lo tanto la sintaxis de esta estructura puede
adoptar alguna de las siguientes formas:


Estructura Explicacin
Do While condicin
bloque de sentencias
Loop
El bloque de sentencias se ejecuta mientras
se cumpla la condicin. Puede ocurrir que
dicho bloque no se ejecute ninguna vez.
Do
bloque de sentencias
Loop While condicin
El bloque de sentencias se ejecuta mientras
se cumpla la condicin. Dicho bloque se
ejecutar al menos una vez.
Do Until condicin
bloque de sentencias
Loop
El bloque de sentencias se ejecuta hasta que
se cumpla la condicin. Puede ocurrir que
dicho bloque no se ejecute ninguna vez.
Do
bloque de sentencias
Loop Until condicin
El bloque de sentencias se ejecuta hasta que
se cumpla la condicin. Dicho bloque se
ejecutar al menos una vez.

En cualquier momento podemos abandonar la ejecucin en mitad del bucle si dentro del bloque de
sentencias colocamos la instruccin Exit Do.
Veamos algunos ejemplos del uso de estas sentencias:
i = 2
Do While i < 8
Print i
i = 2 + i
Loop
Imprime en pantalla los nmeros 2, 4 y 6
i = 3
Do
Print i
i = 2 * i
Loop While i <= 12
Imprime en pantalla los nmeros 3, 6 y 12
i = 2
Do Until i >= 16
Print i
i = i ^ 2
Loop
Imprime en pantalla los nmeros 2 y 4
i = 10
Do
Print i
i = i - 1
Loop Until i < 7
Imprime en pantalla los nmeros 10, 9, 8 y 7

Hay que tener cuidado con no crear un bucle infinito, es decir, un bucle que no termine nunca, como
por ejemplo los siguientes:
i = 2
Do While i > 0
Print i
i = i + 2
Loop
Como i siempre es mayor que 0, el bucle no terminar nunca y el programa imprimir en pantalla
todos los nmeros pares, hasta el infinito.
Tambin puede ocurrir lo contrario, es decir, que creemos un bucle que no se ejecute nunca:
i = 2
Do While i < 0
Print i
i = i + 2
Loop
Como i no es menor que 0, el bucle nunca se ejecutar.

7 6. 8. Las f unci ones I nput Box y Ms gBox
La funcin InputBox se utilizar cuando queramos que el usuario introduzca algn dato. Esta funcin
presenta la siguiente sintaxis:
variable = InputBox (mensaje, [titulo], [valor por defecto])
donde variable es una variable de tipo String en la que se almacenar el dato introducido por el
usuario, y mensaje es el mensaje que se mostrar en la ventana de entrada de datos. Los valores
que aparecen entre corchetes es porque su inclusin en la funcin InputBox es opcional, por lo que
pueden omitirse. Ttulo representa el texto que aparecer como cabecera en la ventana, y Valor por
defecto es el valor que tomar la variable si el usuario no introduce ningn valor en la casilla
correspondiente.
El siguiente ejemplo
nombre = InputBox (escriba su nombre,AVISO)
mostrara la ventana de entrada de datos de la figura, y
almacenara el valor introducido por el usuario en la
variable nombre (que debe ser de tipo String).




La funcin MsgBox permite mostrar un mensaje. La sintaxis de esta funcin es como en el siguiente
ejemplo:
MsgBox No se puede calcular el factorial de un nmero negativo, _ vbCritical + vbOKOnly, Error
El resultado del ejemplo anterior sera una ventana como la que aparece a continuacin. Como puede
verse la funcin MsgBox lleva tres
argumentos separados por comas; el
primero de ellos es el cuerpo del
mensaje, en el segundo se hace
referencia tanto al dibujo que se mostrar
como al botn o botones que aparecern
y en el ltimo se indica el ttulo de la
ventana en la que aparece el mensaje.
La funcin MsgBox nos permite conocer que botn ha pulsado el usuario como respuesta al mensaje.
Por ejemplo, una funcin MsgBox en la que aparecieran un botn SI junto a un botn NO (vbYesNo),
tendra el valor vbYes si pulsamos el botn SI o el valor vbNo si el botn pulsado es NO. Vemoslo
ms claramente en el siguiente ejemplo
If MsgBox ("Realmente desea salir?", vbYesNo + vbExclamation, _ "ATENCION") = vbYes Then End
Esta lnea de cdigo hace que aparezca una ventana preguntndonos si deseamos salir del
programa, en la que aparecern los botones <Si> o <No>. Si pulsamos el botn <Si>, el programa
finalizar (comando End).
Nota importante: conviene resaltar aqu que cuando una sentencia de Visual Basic es demasiado
larga y no cabe en una lnea, antes de comenzar a escribir la continuacin de dicha sentencia en la
lnea inferior es necesario escribir el carcter de subrayado ( _ ) al finalizar la lnea anterior como
puede observarse en el ltimo ejemplo.
Las distintas combinaciones de dibujos y botones que pueden mostrarse en un MsgBox se
encuentran en el apartado 6.1. , aunque los repetiremos aqu:
vbCritical seal de error
vbExclamation seal de advertencia
vbInformation seal de informacin
vbQuestion seal de interrogacin
vbOkOnly botn de aceptar
vbOkCancel botones aceptar y cancelar
vbYesNo botones S y No
vbYesNoCancel botones S, No y Cancelar
vbAbortRetryIgnore botones Anular, Reintentar y Omitir

S-ar putea să vă placă și