TEMA 13: Características y estructura del lenguaje

 

Hemos comprobado que en los ejemplos anteriores utilizamos código que posiblemente no entendemos; este tema trata de explicar ese código. También podemos consultar en cualquier momento la Ayuda que incorpora Visual Basic, así como la documentación de los Libros de pantalla.

 

TIPOS DE DATOS

TABLA 16. LOS TIPOS DE DATOS UTILIZADOS EN VISUAL BASIC
Tipo Descripción Car-tipo Rango
Integer Entero (2 bytes) % -32768 a 32767
Long Entero largo (4 bytes) & -2147483648 a 2147483647
Single Real simple precisión (4 bytes) ! -3.40E+38 a 3.40E+38
Double Real doble precisión (8 bytes) # -1.79D+308 a 1.79D+308
Currency
(Moneda)
Número con punto
Decimal fijo (8 bytes)
@ -922337203685477.58 a
922337203685477.58
String Cadena de caracteres
(1 byte por carácter)
$ 64K cars. en 16-bits
231 cars. en 32-bits
Byte Carácter (1 byte) (ninguno) 0 a 255
Boolean Boolean (2 bytes) (ninguno) True o False
Date Fecha/Hora (8 bytes) (ninguno) 1/Enero/100 a 31/Diciembre/9999
Object Referencia a un objeto (4 bytes) (ninguno) Cualquier referencia a un objeto
Variant
(por defecto)
16 (con números) o 22 (con cars.)
bytes + 1 byte por carácter
(ninguno) Almacena datos de cualquier tipo de los anteriores

 

DECLARACIÓN DE VARIABLES Y CONSTANTES

Antes de utilizar una variable, es de buen ámbito declarar su tipo. Una forma de hacer esto es utilizando la sentencia Dim (o una de las palabras Public, Private o Static). Cualquier declaración de éstas inicializa las variables numéricas con el valor cero y las variables alfanuméricas con el carácter nulo.

Para declarar una variable dentro de un procedimiento se utiliza la sentencia Dim (es posible declarar varias variables de diferentes tipos en una misma sentencia Dim). Para guardar el valor anterior a partir de la segunda vez que iniciamos un procedimiento, hay que utilizar Static en lugar de Dim. La sintaxis es:

· Dim NombreVariable [As Tipo]

Dim Nombre As String
Dim Num, Tot As Integer

Los nombres de constantes siguen las mismas reglas que los de las variables, declarándose de forma similar. Para declarar una constante dentro de un procedimiento debe utilizarse la sentencia Const, cuya sintaxis es la siguiente:

· Const NombreConstante [As Tipo] = Expresión

Const PI = 3.14159265
Const NOMBRE = "Luis Miguel"

Nota: si desea que Visual Basic genere un mensaje de aviso cada vez que encuentre una variable no declarada utilizar la sentencia Option Explicit. Debe situarse en la sección de declaraciones del módulo donde se desea que opere.

 

ÁMBITO DE LAS VARIABLES

Sé entiende por ámbito de una variable el espacio de la aplicación donde la variable es visible y por lo tanto se puede utilizar. El siguiente esquema indica los lugares donde se puede declarar una variable:

Notas: a nivel del módulo, no hay diferencias entre Dim y Private, pero se aconseja utilizar Private en contraste con Public. No se pueden declarar variables globales en un procedimiento.

 

SENTENCIAS (INSTRUCCIONES DE ASIGNACIÓN)

Una sentencia es una línea de texto que indica una o más operaciones a realizar. Una línea puede tener varias sentencias, separadas unas de otras por dos puntos. Ejemplo:

Total = Cantidad * Precio: Suma = Suma + Total

Igualmente, es posible escribir una sentencia que ocupe más de una línea de código. Para ello debe utilizarse el carácter de continuación de línea (un espacio en blanco seguido del carácter subrayado. Ejemplo:

Image1.Move X+10, _
               Y+10

La sentencia más común en Visual Basic es la sentencia de asignación. Proviene de la sentencia Let. Su forma general es Variable = Expresión . Ejemplo:

X = 1024

 

ETIQUETAS DE LÍNEA

Son cadenas de texto que deben comenzar por una letra y terminar con el carácter dos puntos. Suelen utilizarse para identificar la línea con objeto de un posible salto en el flujo del programa. Ejemplo:

Comienzo:
X = 20
.....
GoTo Comienzo

 

COMENTARIOS

Permiten realizar una descripción de las distintas operaciones que van realizando y no son tomadas en cuenta durante la ejecución de la aplicación. Se utiliza una comilla simple ('). Ejemplo:

'Esto es un comentario

 

CONVENCIONES DE NOMENCLATURA

En Visual Basic, los identificadores que el programador utiliza para nombrar procedimientos, variables, constantes, etc, deben seguir una serie de directrices:

- Deben comenzar siempre por una letra.
- Los caracteres que pueden utilizarse soon sólo letras, números y el carácter subrayado (_), quedando excluidos los símbolos de puntuación y caracteres especiales.
- El tamaño máximo es de 255 caracteres, aunque en el caso de los nombres de controles, Formularios, clases y módulos no deben exceder de 40 caracteres.
- No pueden ser iguales que las palabras reservadas del lenguaje.

 

ESTRUCTURAS DE CONTROL

Hay dos tipos:

- Estructuras de bifurcación o toma de decisión: permiten ejecutar una u otra sección del código, en función de que se cumpla o no una determinada condición. La estructura de decisión más sencilla se realiza con la sentencia If...Then. Su sintaxis es la siguiente:

· If Condición Then Instrucción

· If Condición Then
     [Instrucciones]
  End If

· If Condición Then
     [Instrucciones1]
  Else
     [Instrucciones2]
  End If

· If Condición1 Then
     [Instrucciones1]
  [Elseif Condición2 Then
     [Instrucciones2]]
  .....
  [Else
     [InstruccionesN]]
  End If

La sentencia Select Case permite crear una estructura de control similar al formato más completo de If, ejecutando un grupo de instrucciones de entre varios posibles, dependiendo del valor tomado por una determinada expresión de evaluación.

· Select Case Expresión
     [Case ListaComprobación1
        [Instrucciones1]]
     [Case ListaComprobación2
        [Instrucciones2]]
     .....
     [Case Else
        [InstruccionesN]]
  End Select

Los valores de Case pueden estar separados por comas (,), por un rango de valores, haciendo uso de la cláusula To o por un valor mediante la cláusula Is, acompañado de un operador relacional. Un ejemplo completo: Case 1 To 4, 7 To 9, 11, 13 Is > MaxNumber

- Estructuras repetitivas o de bucle: permiten la ejecución repetitiva de una sección de código mientras se cumpla una determinada condición. Tenemos las siguientes sentencias:

· Do [{While|Until} Condición]
     [Instrucciones]
  Loop

Si la cláusula es While (mientras), se evalúa la condición. Si el resultado es True, se ejecutarán las instrucciones que contiene el bucle, al llegar la clásula Loop vuelve a evaluar la condición. Esta operación se repite hasta que la condición devuelva un valor False.

El funcionamiento es inverso cuando la sentencia Do va acompañado de la claúsula Until (hasta). Las instrucciones se ejecutan cuando el resultado de Condición es False, finalizando la estructura cuando el resultado es True.

· Do
     [Instrucciones]
  Loop [{While|Until} Condición]

Se realiza la evaluación al final del bucle. La diferencia es que el grupo de instrucciones se ejecutan siempre, al menos 1 vez (dentro del bucle se debe variar la Condición, para que este no se ejecute indefinidamente).

· For Variable = ExpInicio To ExpFin [Step ExpIncremento]
     [Instrucciones]
  Next [Variable]

La variable toma el valor indicado en ExpInicio. A continuación, se ejecutan las instrucciones que contiene el bucle. Una vez ejecutado, las variables de control se incrementará en el valor indicado en ExpIncremento, volviendo a ejecutarse las instrucciones. La operación se repite hasta que la variable de control supera el valor indicado en ExpFin, terminando la ejecución de la estructura. Si se omite la cláusula Step el valor por defecto de ExpIncremento es 1.

· For Each Variable In Grupo
     [Instrucciones]
  Next [Variable]

La sentencia For Each...Next es similar a la sentencia For, con la diferencia de que ahora se repite un grupo de sentencias por cada elemento de una colección de objetos o de un array (excepto arrays de elementos de un tipo definido por el usuario). Esto es especialmente útil cuando no conocemos cuántos elementos cuántos elementos hay en la colección o en el array. Ejemplo: para ocultar todos los controles de un Formulario puede utilizar código similar a éste.

For Each Control In Form1.Controls
  Control.Visible = False
Next Control

 

SENTENCIA WITH

With permite ejecutar una serie de sentencias sobre un mismo objeto de un tipo predefinido o de un tipo definido por el usuario. Su sintaxis es la siguiente:

· With Objeto
     [Instrucciones]
  End With

Ejemplo:

With Text1
  .BackColor = &HFF&
  .ForeColor = &HC00000
  .Font = "Arial"
End With

 

PROCEDIMIENTOS DE VISUAL BASIC

Hay dos tipos:

- Procedimientos de evento: se ejecutan en respuesta a un evento y están definidos por el propio Visual Basic. Sólo se incluyen en los módulos de Formulario y van siempre asociados a Formularios y controles.

Sintaxis y ejemplo para los Formularios:

· Private Sub Form_NombreEvento ([ListaArgumentos])
     [Instrucciones]
  End Sub

Private Sub Form_Load()
.....
End Sub

Sintaxis y ejemplo para los controles:

· Private Sub NombreControl_NombreEvento ([ListaArgumentos])
     [Instrucciones]
  End Sub

Private Sub Command1_Click()
.....
End Sub

- Procedimientos generales: son procedimientos que se invocan desde el código de otros procedimientos y son creados por el programador. Este tipo de procedimientos se incluyen en los módulos de Formulario, módulos estándar y módulos de clase. Los procedimientos generales son públicos por defecto y se sitúan en la sección General de los módulos de Formulario, módulos estándar y módulos de clase. Hay tres tipos:

Procedimientos Sub (o subrutinas): conjuntos de instrucciones que realizan una determinada tarea. Su sintaxis es la siguiente:

· [Private|Public] Sub NombreSubrutina [(ListaParámetros)]
     [Instrucciones]
  End Sub

La llamada a los procedimientos Sub puede ser de alguna de las dos formas siguientes:

Procedimiento [(ListaArgumentos)]
Call Procedimiento [(ListaArgumentos)]

Procedimientos Function (o funciones): igual que las subrutinas, pero, además, devuelven un valor a la instrucción que los ha invocado. Su sintaxis es:

· [Private|Public] Function NombreFunción [(ListaParámetros)] [As Tipo]
     [Instrucciones]
  End Function

La principal diferencia que representan las funciones respecto a las subrutinas es que las primeras devuelven un valor a la instrucción que las ha invocado. Por tanto, es posible declarar el tipo de datos que devuelven, utilizando la cláusula As al final de la cabecera. Ejemplo:

Public Function Area (B As Integer, H As Integer) 'Calcula el área de un triángulo
  Area = (B * H) / 2
End Function

Para llamar a la función, podemos utilizar cualquiera de las siguientes expresiones:

X = Area(100, 40)
Area 100, 40
Call Area(100, 40)

Procedimientos Property: conjunto de instrucciones que sirven para crear y manipular propiedades personalizadas, se pueden usar para crear propiedades de sólo lectura de Formularios, módulos estándar y módulos de clase. Se deben usar en lugar de variables públicas y al definir el valor de una propiedad se tiene que ejecutar código.

   Propertylet: establece el valor de una propiedad.
   Propertyget: devuelve el valor de una propiedad.
   Properyset: establece una referencia a un objeto.

 

SALIDAS DE BUCLES Y PROCEDIMIENTOS

Si queremos que termine de forma forzosa un bucle o un procedimiento puede emplear las siguientes palabras: Exit Do, Exit For, Exit Sub, Exit Function.

 

          Tema anterior                                                                                               Tema siguiente

Hosted by www.Geocities.ws

1