Vous êtes sur la page 1sur 12

INGENIERIA DE MINAS 2015-1

INTRODUCCION A LA PROGRAMACION

GUIA BASICA DE PROGRAMACION EN VISUAL BASIC

1. LINEAS DE PROGRAMACION
El Interprete de Basic est orientado a la ejecucin de lneas y esto es una diferencia primaria
entre Basic y otros lenguajes de programacin. Mientras la posicin de puntos de interrupcin
en el cdigo fuente de Java, C++ o Delphi es irrelevante, cada lnea de cdigo en un programa
Basic es una unidad auto-contenida. Las llamadas a funciones, expresiones matemticas, u
otros elementos lingisticos, como las funciones y encabezados de ciclos, pueden ser
completados en la misma lnea en la que empezaron.
Si no hay suficiente espacio, o resulta en lneas muy largas, entonces varias lneas pueden ser
unidas al agregar guion bajo ( _ ). El siguiente ejemplo muestra cmo cuatro lneas de una
expresin matemtica pueden ser unidas:
SumaExpresion = (expresion1 + expresion2 ) + _
(expresion3 + expresion4 ) + _
(expresion5 + expresion5 ) + _
(expresion6 + expresion7 )
El guion bajo debe ser siempre el ltimo carcter de la lnea unida y no debe ir seguida de un
espacio o tabulacin, de lo contrario el cdigo generar un error.
Adicionalmente a unir lneas individuales, Visual Basic, puede usar dos puntos (:) para dividir
una lnea en cada seccin si hay espacio suficiente para cada expresin. Las asignaciones:
a=1
a=a+1
a=a+1
Puede ser escrita como sigue:
a=1:a=a+1:a=a+1
2. COMENTARIOS
Adicionalmente al cdigo del programa que puede ser ejecutado, la programacin en Visual
Basic puede contener comentarios que expliquen partes individuales del programa y proveer
ms informacin que puede ser de ayuda para puntos posteriores.
Visual Basic provee dos mtodos para insertar comentarios en el cdigo del programa:
- Todas las letras que sigan a un apstrofe (') son tratadas como comentarios:
Dim A 'Este es un comentarios para la variable A
- La palabra clave rem, seguida por el comentario:
Rem Este comentario est dentro de la palabra clave Rem
3. VARIABLES
En su forma ms simple, el comando para una declaracin explcita de una variable es:
Dim MiVariable
1

INGENIERIA DE MINAS 2015-1

INTRODUCCION A LA PROGRAMACION

Este ejemplo declara una variable con el nombre de MiVariable y del tipo Variant. Un tipo
Variant en una variable universal que puede grabar todos los valores posibles, incluyndo
cadenas (string), nmeros, figuras de punto flotante, y valores boleanos (boolean). Aqu hay
algunos ejemplos de variables Variant:
MiVar = "Hola Mundo!" ' Asigna una cadena.
MiVar = 1 ' Asigna un nmero.
MiVar = 1.0 ' Asigna un nmero de punto flotante.
MiVar = True ' Asigna un valor boleano.
Use el siguiente estilo cuando desee hacer una declaracin de una variable de un tipo
especfico:
Dim MiVar As Integer ' Declara una variable del tipo entero.
La variable es declarada como un entero y no puede registrar cualquier tipo de nmeros.
Tambin puede usar el siguiente estilo para declarar una variable del tipo entero:
Dim MiVar% 'Declara una variable del tipo entero.
La instruccin Dim puede tener varias declaraciones de variables:
Dim MiVar1, MiVar2
Si desea asignar a las variables un tipo permanente, debe separar las definiciones para cada
variable:
Dim MiVar1 As Integer, MiVar2 As Integer
Si no desea declarar el tipo para cada variable, Visula Basic asigna el tipo Variant a cada
variable. Por ejemplo, en la siguiente declaracin de de variables, MiVar1 llegar a ser Variant
y MiVar2 llegar a ser Integer (Entero).
Dim MiVar1, MiVar2 As Integer
Ampliamos la forma de declarar variables:
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.

INGENIERIA DE MINAS 2015-1

INTRODUCCION A LA PROGRAMACION

4. TIPOS DE VARIABLES
TIPO
BOOLEAN

COMENTARIO
Slo admite 2 valores: TRUE o FALSE

DECLARACION
Dim Variable As Boolean

BYTE

admite valores enteros entre 0 y 255

Dim Variable As Byte

INTEGER

STRING

admite valores enteros entre -32768 y


32767
valores enteros entre 2.147.483.648 y
2.147.483.647
admite valores decimales con precisin
simple
admite valores decimales de doble
precisin
cadenas de caracteres

DATE

fechas, permite operar con ellas

Dim Variable As Integer


Dim Variable%
Dim Variable As Long
Dim Variable&
Dim Variable As Single
Dim Variable!
Dim Variable As Double
Dim Variable#
Dim Variable As String
Dim Variable$
Dim Variable As Date

LONG
SINGLE
DOUBLE

Tips
Para incluir una comilla doble () dentro de una cadena, ingresela doble en el punto en que
desea que aparezca:
Dim MiCadena As String
MiCadena = "una ""- comilla doble" ' produce una "- comilla doble
5. MATRICES
Matriz unidimensional La declaracin de una matriz es similar a la declaracin de una variable
simple. Sin embargo, a diferencia de la declaracin de la variable, el nombre de la matriz est
seguido de parntesis que contiene la especificacin del nmero de elementos. La expresin:
Dim MiMatriz(3)
Declara una matriz con cuatro variables del tipo Variant, llamadas MiMatriz(0), MiMatriz(1),
MiMatriz(2), MiMatriz(3).
Tambin se pueden declarar variables de un tipo especfico para una matriz. Por ejemplo, la
siguiente lnea declara una matriz con cuatro elementos enteros:
Dim MiMatriz(3) As Integer
Matriz bidimensional Adems de las matrices de una sola dimensin, Visula Basic tambin
soporta trabajar con campos de datos multidimensionales. Las dimensiones correspondientes
estn separadas unas de otras por medio de comas. El ejemplo:
Dim MiMatrizInt(5, 5)
Define una matriz del tipo entero con dos dimensiones, cada una con 6 ndices (que pueden
ser direccionados del 0 al 5). La matriz completa puede grabar un total de 6 x 6 = 36 valores
enteros. Aunque puede definir cientos de dimensiones de matrices en Visual Basic; sin

INGENIERIA DE MINAS 2015-1

INTRODUCCION A LA PROGRAMACION

embargo, la cantidad disponible de memoria limita el nmero de dimensiones que puede


tener.
Cambios dinmicos en las dimensiones de las matrices Tambin se pueden definir matrices
en las cuales las dimensiones del campo de datos puede cambiar dinmicamente. Por ejemplo,
puede definir una matriz que para contener todas las palabras que inician con la letra A. Como
el nmero de palabras inicialmente es desconocido, necesitar poder cambiar
consecuentemente los lmites de la matriz. Para hacer esto en Visual Basic, use la siguiente
instruccin:
ReDim MiMatriz(10)
Visual Basic le permite cambiar matrices dinmicas y estticas con el uso de ReDim. El siguiente
ejemplo cambia las dimensiones de la matriz inicial de manera que pueda guardar 11 o 21
valores:
Dim MiMatriz(4) As Integer 'Declaracin con cinco valores
'...
Redim MiMatriz(10) As Integer 'Incrementa a 11 elementos
'...
Redim MiMatriz(20) As Integer 'Incrementa a 21 elementos
Cuando restaura las dimensiones de una matriz, puede usar cualquiera de las opciones
presentadas en las secciones previas. Esto incluye arrays multidimensionales y especificar los
valores de inicio y final. Cuando las dimensiones de un array son cambiados, todo su contenido
se pierde. Si desea mantener los valores originales, use el
comando Preserve:
Dim MiMatriz(10) As Integer 'Define la dimensin inicial
' ...
ReDim Preserve MiMatriz(20) As Integer ' Incrementa el campo
' de datos reteniendo
' los valores iniciales
Cuando usa Preserve, asegrese que el nmero de dimensiones y el tipo de la variable se
mantenga igual.
6. CONSTANTES
En Visual Basic, use la palabra clave Const para declarar una constante:
Const A = 10
Tambin puede especificar el tipo de constante en la declaracin:
Const A As Double = 10
7. OPERADORES
Operadores Aritmeticos
Los operadoras matemticos pueden ser aplicados a todos los tipos numricos, sin embargo,
el operador + puede ser tambin usado para concatenar cadenas.
+
Suma de nmeros y valores de fecha, concatenar cadenas.
Resta de nmeros y valores de fecha.
*
Multiplicacin de nmeros.
4

INGENIERIA DE MINAS 2015-1


/
\
^
MOD

INTRODUCCION A LA PROGRAMACION

Divisin de nmeros.
Divisin de nmeros con nmeros enteros (redondeo)
Elevacin a exponente.
Operacin de cociente (calcula el resto o sobrante de una divisin)

Operadores lgicos
Los operadores lgicos permiten concatenar elementos de acuerdo al lbegra boleana.
Not
Negacion
And
y
Or
o
Operadores de comparacin
Los operadores de comparacin pueden ser aplicados a todos los tipos de variables
elementales (nmeros, fecha, cadenas, y valores boleanos)
=
Igualdad entre fechas, nmeros y cadenas.
<>
Diferencia entre fechas, nmeros y cadenas.
>
Mayor que para nmeros, fechas y cadenas.
>=
Mayor que o igual para nmeros, fechas y cadenas.
<
Menor que para nmeros, fechas y cadenas.
<=
Menor que o igual para nmeros, fechas y cadenas.
Operador de texto
&
concatenar cadenas
8. ESTRUCTURAS DE SELECCIN (CONTROL DE FLUJO)
Las instrucciones de control de flujo restringen la ejecucin de bloques de cdigo mientras una
condicin particular sea satisfecha.
If ... Then ... Else
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
La instruccin ms comn del control de flujo es la instruccin If, como se muestra en el
siguiente ejemplo:
If A > 3 Then
B=2
End If
La asignacin B = 2 solamente ocurre cuando el valor de la variable A es mayor que tres. Una
variacin de la instruccin If es la clusula If/Else:

INGENIERIA DE MINAS 2015-1

INTRODUCCION A LA PROGRAMACION

If A > 3 Then
B=2
Else
B=0
End If
En este ejemplo, la variable B es asignada al valor 2 cuando A es mayor que 3, de otra forma
a B le es asignado el valor 0.
Para instrucciones ms complejas, puede hacer cascadas de la instruccin If, por ejemplo:
If A = 0 Then
B=0
ElseIf A < 3 Then
B=1
Else
B=2
End If
Si el valor de la variable A es igual a cero, a B le es asignado el valor 0. Si A es menor a 3 (pero
no igual a cero), entonces a B es asignado el valor de 1. En todas las dems instancias (esto es,
si A es mayor a 3), a B le es asignado el valor de 2.
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
Msgbox(menor de edad)
Else
If edad < 65 Then
Msgbox(adulto)
Else
Msgbox(tercera edad)
End If
End If
Select ... Case
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

INGENIERIA DE MINAS 2015-1

INTRODUCCION A LA PROGRAMACION

La instruccin Select ... Case es una alternativa a la instruccin If en cascada y es usada cuando
necesita verificar un valor contra varias condiciones.
Select Case DiaSemana
Case 1:
Nombre = "Domingo"
Case 2:
Nombre = "Lunes"
Case 3:
Nombre = "Martes"
Case 4:
Nombre = "Mircoles"
Case 5:
Nombre = "Jueves"
Case 6:
Nombre = "Viernes"
Case 7:
Nombre = "Sbado"
End Select
En este ejemplo, el nombre del da de la semana corresponde a un nmero, de manera que la
variable Nombre se le asigna el valor de domingo para el valor de 1, Lunes para el valor de
2, y as consecutivamente. El comando Select no est restringido a asignaciones simples de 1:1
Tambin puede especificar operadores de comparacin o listas de expresiones en el control
de flujo Case. El siguiente ejemplo muestra las variaciones de sintaxis ms importantes.
Select Case Var
Case 1 To 5
' ...Var est entre los nmeros 1 y cinco
Case 6, 7, 8
' ...Var es 6, 7, u 8
Case Var > 8 And Var < 11
' ...Var es mayor que 8 y menor que 11
Case Else
' Cualquier otra ocurrencia
End Select
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
Console.writeline(Suspenso)
Case Is < 6
Console.writeline( Suficiente)
Case Is < 7
Console.writeline( Bien)
Case Is < 9
7

INGENIERIA DE MINAS 2015-1

INTRODUCCION A LA PROGRAMACION

Console.writeline( Notable)
Case Else
Console.writeline( Sobresaliente)
End Select
9. CICLOS
For ... Next
For contador = inicio To fin [Step incremento]
bloque de sentencias
Next
El ciclo For ... Next tiene un nmero fijo de pasos. El contador de ciclos define el nmero de
veces que el ciclo ser ejecutado. En el siguiente ejemplo,
Dim i
For i = 1 to 10
' ... Parte central del ciclo
Next
la variable i es el contador de ciclo, con un valor inicial de 1. El contador es incrementado en
uno al final de cada paso. Cuando la variable i sea igual a 10, el ciclo se detiene. Si desea
incrementar el contador de ciclos en otro valor distinto de 1 al final de cada paso, use la funcin
Step:
Dim I
For I = 1 To 10 Step 0.5
' ... Parte central del ciclo.
Next I
En el ejemplo anterior, el contador es incrementado en 0.5 al final de cada paso, y el ciclo es
ejecutado 19 veces. Tambin puede usar valores de pasos negativos:
Dim I
For I = 10 to 1 Step -1
' ... Parte central del ciclo.
Next I
En este ejemplo, el contador inicia con 10 y el valor es reducido en uno en cada paso, hasta
que el contador es 1.
La instruccin Exit For le permite salir de un ciclo For prematuramente. En el siguiente ejemplo,
el ciclo es terminado en el quinto paso:
Dim I
For I = 1 To 10
If I = 5 Then
Exit For
8

INGENIERIA DE MINAS 2015-1

INTRODUCCION A LA PROGRAMACION

End If
' ... parte central del ciclo
Next I
Do ... Loop
Estructura
Do While condicin
bloque de sentencias
Loop
Do
bloque de sentencias
Loop While condicin
Do Until condicin
bloque de sentencias
Loop

Detalle
El bloque de sentencias se ejecuta mientras
se cumpla la condicin. Puede ocurrir que
dicho bloque no se ejecute ninguna vez.
El bloque de sentencias se ejecuta mientras
se cumpla la condicin. Dicho bloque se
ejecutar al menos una vez.
El bloque de sentencias se ejecuta hasta
que se cumpla la condicin. Puede ocurrir
que dicho bloque no se ejecute ninguna
vez.
El bloque de sentencias se ejecuta hasta
que se cumpla la condicin. Dicho bloque
se ejecutar al menos una vez.

Do
bloque de sentencias
Loop Until condicin

El Do ... Loop no est vinculado a un nmero determinado de pasos. En cambio, el Do ... Loop
es ejecutado hasta que cierta condicin sea cumplida. Hay cuatro variantes del Do ... Loop:
Estructura
i=2
Do While i < 8
Console.writeline( i )
i=2+i
Loop
i=3
Do
Console.writeline( i )
i=2*i
Loop While i <= 12
i=2
Do Until i >= 16
Console.writeline( i )
i=i^2
Loop
i = 10
Do
Console.writeline( i )
i=i-1
Loop Until i < 7

Detalle
Imprime en pantalla los nmeros 2, 4 y 6

Imprime en pantalla los nmeros 3, 6 y 12

Imprime en pantalla los nmeros 2 y 4

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:

INGENIERIA DE MINAS 2015-1

INTRODUCCION A LA PROGRAMACION

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.
Como en los ciclo For ... Next, el Do ... Loop tambin est provisto de una instruccin de
terminacin.El comando Exit Do puede hacer salir del ciclo en cualquier punto dentro del ciclo.
Do
If A = 4 Then
Exit Do
End If
' Cuerpo del ciclo
While A > 10
10. EJEMPLO DE ORDENACION CON CICLOS
Dim Entrada(1 To 10) As String
Dim Contador As Integer
Dim Contador2 As Integer
Dim Temp As String
Entrada(1) = "Patricia"
Entrada(2) = "Jos"
Entrada(3) = "Toms"
Entrada(4) = "Miguel"
Entrada(5) = "David"
Entrada(6) = "Consuelo"
Entrada(7) = "Susana"
Entrada(8) = "Eduardo"
Entrada(9) = "Cristina"
Entrada(10) = "Juan"
For Contador = 1 To 10
For Contador2 = 1 To 10
If Entrada(Contador) > Entrada(Contador2) Then
Temp = Entrada(Contador)
Entrada(Contador) = Entrada(Contador2)
Entrada(Contador2) = Temp
End If
Next
Next
For Contador = 1 To 10
Console.writeline(Entrada(Contador))
Next Contador

10

INGENIERIA DE MINAS 2015-1

INTRODUCCION A LA PROGRAMACION

11. PROCEDIMIENTOS Y FUNCIONES


Los procedimientos y funciones son puntos fundamentales de la estructura de un programa.
Proveen la estructura para dividir problemas complejos en varias sub-tareas.
Procedimientos
Un procedimiento ejecuta una accin prctica sin proveer un valor explcito. Su sintaxis es:
Sub Prueba
' aqu coloca el cdigo del procedimiento
End Sub
El ejemplo define un procedimiento llamado Prueba y contiene el cdigo que puede ser
accesado desde cualquier punto del programa. La llamada es hecha al ingresar el nombre del
procedimiento en cierto punto del programa:
' ... cdigo del programa
Prueba()
' ... cdigo del programa
Funciones
Una funcin, como un procedimiento, combina un bloque de programas para que sean
ejecutados como una unidad lgica. Sin embargo, a diferencia del procedimiento, una funcin
retorna un valor.
Function Prueba
' ... aqu va el cdigo de esta funcin
Return = 123
End Function
El valor de retorno es asignado usando la instruccin Return. La funcin precedente puede
ser llamada dentro de un programa de la siguiente manera:
Dim A : A = Prueba()
El cdigo define una variable A y le asigna el resultado de la funcin Prueba. El valor de retorno
puede ser sobreescrito diferentes veces dentro de la funcin. Como una asignacin de variable
clsica, la funcin en este ejemplo retorna el ltimo valor que le fue asignado
Pasando parmetros
Las funciones y procedimientos pueden recibir uno o ms parmetros. Los parmetros deben
ser encerrados entre parntesis despus del nombre de la funcin o procedimiento. El
ejemplo:
Sub Prueba (A As Integer, B As String)
End Sub
Define un procedimiento que espera un entero para A y una cadena para B como parmetros.
11

INGENIERIA DE MINAS 2015-1

INTRODUCCION A LA PROGRAMACION

12. FUNCIONES BASICAS


Una funcin nos servir para realizar un clculo u obtener un determinado valor. Entre las
mltiples existentes podemos destacar las siguientes, agrupadas en categoras.
Funciones matemticas
Math.Abs(nmero)
Int(nmero)
Math.Sqrt(nmero)
Math.Round(nmero, numdecimales)
indicadas
Math.Sin(ngulo)
Math.Cos(ngulo)
Math.Tan(ngulo)
Funciones aleatorias
Rnd
Randomize

Devuelve el valor absoluto de nmero


Devuelve la parte entera de nmero
Halla la raz cuadrada de nmero
Redondea nmero con las posiciones decimales
Seno de ngulo
Coseno de ngulo
Tangente de ngulo

Devuelve un nmero aleatorio entre 0 y 1


Inicializa el generador aleatorio

Funciones de cadenas de caractres


Left(cadena, num)
Extrae num caracteres de cadena contando de izquierda a derecha
Right(cadena, num)
Extrae num caracteres de cadena contando de derecha a izquierda
Mid(cadena, pos, num) Extrae num caracteres de cadena a partir de la posicin pos
Len(cadena)
Devuelve la longitud de la cadena
LCase(cadena)
Convierte la cadena a minsculas
UCase(cadena)
Convierte la cadena a maysculas

Funciones de comprobacin
IsNumeric(dato)
Comprueba si un dato es numrico

12