Guia Basica de Programacion en Visual Basic Ingminas

12
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

description

GUIA DE VISUAL BASIC

Transcript of Guia Basica de Programacion en Visual Basic Ingminas

Page 1: Guia Basica de Programacion en Visual Basic Ingminas

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

Page 2: Guia Basica de Programacion en Visual Basic Ingminas

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.

Page 3: Guia Basica de Programacion en Visual Basic Ingminas

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

Page 4: Guia Basica de Programacion en Visual Basic Ingminas

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.

Page 5: Guia Basica de Programacion en Visual Basic Ingminas

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:

Page 6: Guia Basica de Programacion en Visual Basic Ingminas

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

Page 7: Guia Basica de Programacion en Visual Basic Ingminas

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

Page 8: Guia Basica de Programacion en Visual Basic Ingminas

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

Page 9: Guia Basica de Programacion en Visual Basic Ingminas

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:

Page 10: Guia Basica de Programacion en Visual Basic Ingminas

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

Page 11: Guia Basica de Programacion en Visual Basic Ingminas

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.

Page 12: Guia Basica de Programacion en Visual Basic Ingminas

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