INGENIERIA DE MINAS 2015-1 INTRODUCCION A LA PROGRAMACION
1
GUIA BASICA DE PROGRAMACION EN VISUAL BASIC
1. LINEAS DE PROGRAMACION
El Interprete de Basic está orientado a la ejecución de líneas y esto es una diferencia primaria
entre Basic y otros lenguajes de programación. Mientras la posición de puntos de interrupción
en el código fuente de Java, C++ o Delphi es irrelevante, cada línea de código en un programa
Basic es una unidad auto-contenida. Las llamadas a funciones, expresiones matemáticas, u
otros elementos lingüisticos, como las funciones y encabezados de ciclos, pueden ser
completados en la misma línea en la que empezaron.
Si no hay suficiente espacio, o resulta en líneas muy largas, entonces varias líneas pueden ser
unidas al agregar guion bajo ( _ ). El siguiente ejemplo muestra cómo cuatro líneas de una
expresión matemática pueden ser unidas:
SumaExpresion = (expresion1 + expresion2 ) + _
(expresion3 + expresion4 ) + _
(expresion5 + expresion5 ) + _
(expresion6 + expresion7 )
El guion bajo debe ser siempre el último carácter de la línea unida y no debe ir seguida de un
espacio o tabulación, de lo contrario el código generará un error.
Adicionalmente a unir líneas individuales, Visual Basic, puede usar dos puntos (:) para dividir
una línea en cada sección si hay espacio suficiente para cada expresión. 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 código del programa que puede ser ejecutado, la programación en Visual
Basic puede contener comentarios que expliquen partes individuales del programa y proveer
más información que puede ser de ayuda para puntos posteriores.
Visual Basic provee dos métodos para insertar comentarios en el código del programa:
- Todas las letras que sigan a un apóstrofe (') 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 más simple, el comando para una declaración explícita de una variable es:
Dim MiVariable
INGENIERIA DE MINAS 2015-1 INTRODUCCION A LA PROGRAMACION
2
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, incluyéndo
cadenas (string), números, 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 número.
MiVar = 1.0 ' Asigna un número de punto flotante.
MiVar = True ' Asigna un valor boleano.
Use el siguiente estilo cuando desee hacer una declaración de una variable de un tipo
específico:
Dim MiVar As Integer ' Declara una variable del tipo entero.
La variable es declarada como un entero y no puede registrar cualquier tipo de números.
También puede usar el siguiente estilo para declarar una variable del tipo entero:
Dim MiVar% 'Declara una variable del tipo entero.
La instrucción 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 declaración 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 demás procedimientos o formularios.
Public: Las variables declaradas serán publicas y podrán estar accesibles desde todos los
formularios de la aplicación.
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 al
entrar en algún procedimiento las variables recuerdan el valor que tenían cuando se salió de
él.
INGENIERIA DE MINAS 2015-1 INTRODUCCION A LA PROGRAMACION
3
4. TIPOS DE VARIABLES
TIPO COMENTARIO DECLARACION
BOOLEAN Sólo admite 2 valores: TRUE o FALSE Dim Variable As Boolean
BYTE admite valores enteros entre 0 y 255 Dim Variable As Byte
INTEGER admite valores enteros entre -32768 y 32767
Dim Variable As Integer Dim Variable%
LONG valores enteros entre –2.147.483.648 y 2.147.483.647
Dim Variable As Long Dim Variable&
SINGLE admite valores decimales con precisión simple
Dim Variable As Single Dim Variable!
DOUBLE admite valores decimales de doble precisión
Dim Variable As Double Dim Variable#
STRING cadenas de caracteres Dim Variable As String Dim Variable$
DATE fechas, permite operar con ellas Dim Variable As Date
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 declaración de una matriz es similar a la declaración de una variable
simple. Sin embargo, a diferencia de la declaración de la variable, el nombre de la matriz está
seguido de paréntesis que contiene la especificación del número de elementos. La expresión:
Dim MiMatriz(3)
Declara una matriz con cuatro variables del tipo Variant, llamadas MiMatriz(0), MiMatriz(1),
MiMatriz(2), MiMatriz(3).
También se pueden declarar variables de un tipo específico para una matriz. Por ejemplo, la
siguiente línea declara una matriz con cuatro elementos enteros:
Dim MiMatriz(3) As Integer
Matriz bidimensional Además de las matrices de una sola dimensión, Visula Basic también
soporta trabajar con campos de datos multidimensionales. Las dimensiones correspondientes
están 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
4
embargo, la cantidad disponible de memoria limita el número de dimensiones que puede
tener.
Cambios dinámicos en las dimensiones de las matrices También se pueden definir matrices
en las cuales las dimensiones del campo de datos puede cambiar dinámicamente. Por ejemplo,
puede definir una matriz que para contener todas las palabras que inician con la letra A. Como
el número de palabras inicialmente es desconocido, necesitará poder cambiar
consecuentemente los límites de la matriz. Para hacer esto en Visual Basic, use la siguiente
instrucción:
ReDim MiMatriz(10)
Visual Basic le permite cambiar matrices dinámicas y estáticas 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 'Declaración 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 dimensión inicial
' ...
ReDim Preserve MiMatriz(20) As Integer ' Incrementa el campo
' de datos reteniendo
' los valores iniciales
Cuando usa Preserve, asegúrese que el número 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
También puede especificar el tipo de constante en la declaración:
Const A As Double = 10
7. OPERADORES
Operadores Aritmeticos
Los operadoras matemáticos pueden ser aplicados a todos los tipos numéricos, sin embargo,
el operador + puede ser también usado para concatenar cadenas.
+ Suma de números y valores de fecha, concatenar cadenas.
- Resta de números y valores de fecha.
* Multiplicación de números.
INGENIERIA DE MINAS 2015-1 INTRODUCCION A LA PROGRAMACION
5
/ División de números.
\ División de números con números enteros (redondeo)
^ Elevación a exponente.
MOD Operación de cociente (calcula el resto o sobrante de una división)
Operadores lógicos
Los operadores lógicos permiten concatenar elementos de acuerdo al álbegra boleana.
Not Negacion
And y
Or o
Operadores de comparación
Los operadores de comparación pueden ser aplicados a todos los tipos de variables
elementales (números, fecha, cadenas, y valores boleanos)
= Igualdad entre fechas, números y cadenas.
<> Diferencia entre fechas, números y cadenas.
> Mayor que para números, fechas y cadenas.
>= Mayor que o igual para números, fechas y cadenas.
< Menor que para números, fechas y cadenas.
<= Menor que o igual para números, fechas y cadenas.
Operador de texto
& concatenar cadenas
8. ESTRUCTURAS DE SELECCIÓN (CONTROL DE FLUJO)
Las instrucciones de control de flujo restringen la ejecución de bloques de código mientras una
condición particular sea satisfecha.
If ... Then ... Else
If condición then
bloque de sentencias a realizar si la condición es cierta
Else
bloque de sentencias a realizar si la condición es falsa
End If
La instrucción más común del control de flujo es la instrucción If, como se muestra en el
siguiente ejemplo:
If A > 3 Then
B = 2
End If
La asignación B = 2 solamente ocurre cuando el valor de la variable A es mayor que tres. Una
variación de la instrucción If es la cláusula If/Else:
INGENIERIA DE MINAS 2015-1 INTRODUCCION A LA PROGRAMACION
6
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 más complejas, puede hacer cascadas de la instrucción 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 demás instancias (esto es,
si A es mayor a 3), a B le es asignado el valor de 2.
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 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
7
La instrucción Select ... Case es una alternativa a la instrucción 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 = "Miércoles"
Case 5:
Nombre = "Jueves"
Case 6:
Nombre = "Viernes"
Case 7:
Nombre = "Sábado"
End Select
En este ejemplo, el nombre del día de la semana corresponde a un número, 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
– También puede especificar operadores de comparación o listas de expresiones en el control
de flujo Case. El siguiente ejemplo muestra las variaciones de sintaxis más importantes.
Select Case Var
Case 1 To 5
' ...Var está entre los números 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
INGENIERIA DE MINAS 2015-1 INTRODUCCION A LA PROGRAMACION
8
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 número fijo de pasos. El contador de ciclos define el número 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 función
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. También 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 instrucción 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
INGENIERIA DE MINAS 2015-1 INTRODUCCION A LA PROGRAMACION
9
End If
' ... parte central del ciclo
Next I
Do ... Loop
Estructura Detalle
Do While condición bloque de sentencias
Loop
El bloque de sentencias se ejecuta mientras se cumpla la condición. Puede ocurrir que dicho bloque no se ejecute ninguna vez.
Do bloque de sentencias
Loop While condición
El bloque de sentencias se ejecuta mientras se cumpla la condición. Dicho bloque se ejecutará al menos una vez.
Do Until condición bloque de sentencias
Loop
El bloque de sentencias se ejecuta hasta que se cumpla la condición. Puede ocurrir que dicho bloque no se ejecute ninguna vez.
Do bloque de sentencias
Loop Until condición
El bloque de sentencias se ejecuta hasta que se cumpla la condición. Dicho bloque se ejecutará al menos una vez.
El Do ... Loop no está vinculado a un número determinado de pasos. En cambio, el Do ... Loop
es ejecutado hasta que cierta condición sea cumplida. Hay cuatro variantes del Do ... Loop:
Estructura Detalle
i = 2 Do While i < 8
Console.writeline( i ) i = 2 + i
Loop
Imprime en pantalla los números 2, 4 y 6
i = 3 Do
Console.writeline( i ) i = 2 * i
Loop While i <= 12
Imprime en pantalla los números 3, 6 y 12
i = 2 Do Until i >= 16
Console.writeline( i ) i = i ^ 2
Loop
Imprime en pantalla los números 2 y 4
i = 10 Do
Console.writeline( i ) i = i - 1
Loop Until i < 7
Imprime en pantalla los números 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
10
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 números pares, hasta el infinito.
Como en los ciclo For ... Next, el Do ... Loop también está provisto de una instrucción de
terminación.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) = "Tomás"
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
INGENIERIA DE MINAS 2015-1 INTRODUCCION A LA PROGRAMACION
11
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 acción práctica sin proveer un valor explícito. Su sintaxis es:
Sub Prueba
' aquí coloca el código del procedimiento
End Sub
El ejemplo define un procedimiento llamado Prueba y contiene el código que puede ser
accesado desde cualquier punto del programa. La llamada es hecha al ingresar el nombre del
procedimiento en cierto punto del programa:
' ... código del programa
Prueba()
' ... código del programa
Funciones
Una función, como un procedimiento, combina un bloque de programas para que sean
ejecutados como una unidad lógica. Sin embargo, a diferencia del procedimiento, una función
retorna un valor.
Function Prueba
' ... aquí va el código de esta función
Return = 123
End Function
El valor de retorno es asignado usando la instrucción Return. La función precedente puede
ser llamada dentro de un programa de la siguiente manera:
Dim A : A = Prueba()
El código define una variable A y le asigna el resultado de la función Prueba. El valor de retorno
puede ser sobreescrito diferentes veces dentro de la función. Como una asignación de variable
clásica, la función en este ejemplo retorna el último valor que le fue asignado
Pasando parámetros
Las funciones y procedimientos pueden recibir uno o más parámetros. Los parámetros deben
ser encerrados entre paréntesis después del nombre de la función 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 parámetros.
INGENIERIA DE MINAS 2015-1 INTRODUCCION A LA PROGRAMACION
12
12. FUNCIONES BASICAS
Una función nos servirá para realizar un cálculo u obtener un determinado valor. Entre las
múltiples existentes podemos destacar las siguientes, agrupadas en categorías.
Funciones matemáticas
Math.Abs(número) Devuelve el valor absoluto de número
Int(número) Devuelve la parte entera de número
Math.Sqrt(número) Halla la raíz cuadrada de número
Math.Round(número, numdecimales) Redondea número con las posiciones decimales
indicadas
Math.Sin(ángulo) Seno de ángulo
Math.Cos(ángulo) Coseno de ángulo
Math.Tan(ángulo) Tangente de ángulo
Funciones aleatorias
Rnd Devuelve un número aleatorio entre 0 y 1
Randomize Inicializa el generador aleatorio
Funciones de cadenas de caractéres
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 posición pos
Len(cadena) Devuelve la longitud de la cadena
LCase(cadena) Convierte la cadena a minúsculas
UCase(cadena) Convierte la cadena a mayúsculas
Funciones de comprobación
IsNumeric(dato) Comprueba si un dato es numérico
Top Related