CAPITULO II - FUNDAMENTOS DE PROGRAMACION

2 TIPOS, DECLARACIONES Y ALCANCES DE LAS VARIABLES

2.1 Que son las variables

En cualquier programa necesitamos hacer cálculos, usar información, procesarla y mostrarla. En la mayoría de los casos, necesitamos un lugar temporal en el cual guardar parte de esa información, incluso toda.

Es aquí donde entran en juego las variables, las que nos permite guardar datos en memoria, para que cuando los necesitemos, podamos tomarlos, modificarlos y volverlos a guardar para usar mas tarde.

La memoria es el lugar donde el ordenador almacena de forma temporal los programas y parte de la información que necesita o utiliza. Esas posiciones o lugares de la memoria donde los programas pueden almacenar información son las variables.

Es una ubicación de almacenamiento temporal con nombre que se encuentra en memoria, siendo capaz de contener cierto tipo de datos que pueden modificarse durante la ejecución del programa.

En VB los nombres de las variables deben limitarse a 255 caracteres, empezar con un carácter alfabético y no pueden obtener un punto

Utilización temporal de almacenamiento de datos dentro de un programa. Permiten asignar nombres cortos y fácil de recordar. Son para manejar cualquier tipo de información.

 

2.1 Tipos de Variables

Dim: Al declarar una variable con esta palabra estamos diciendo que la variable sea local al ámbito en que se declara. Puede ser dentro de un procedimiento o dentro de un formulario, de esta forma no sería accesible desde los demás procedimientos o formularios.

Ej: Dim suma

Public: Las variables declaradas serán publicas y podrán estar accesibles desde todos los formularios de la aplicación. Para conseguirlo tendremos que declararlas en un módulo de código, no en la sección declarations de cualquier formulario de los que conste la aplicación.

Ej: Public suma

 

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 a entrar en algún procedimiento las variables recuerdan el valor que tenían cuando se salió de él.

Ej: Static suma

TIPOS DE VARIABLES

TIPO

COMENTARIO

BOOLEAN

Sólo admite 2 valores TRUE o FALSE

BYTE

admite valores entre 0 y 255

INTEGER

admite valores entre -32768 y 32767

LONG

admite valores entre -2.147.483.648 y 2.147.483.647

SINGLE

admite valores decimales con precisión simple

DOUBLE

admite valores decimales de doble precisión

CURRENCY

válido para valores de tipo moneda

STRING

cadenas de caracteres

Variant

Admite cualquier tipo de datos

DATE

fechas, permite operar con ellas

 

2.2 Declaracion de las variables

DIM: Es la abreviatura de Dimensión, esto reserva espacio en memoria para la variable cuando se ejecute el programa y permitirá a VB que tipo de datos deberá guardar en dicha variable.

EJ : Dim nombre

Declaración Implícita: Declarar variables sin uso del Dim. No obliga a organizar y listar las variables de antemano.

Si se va a herramientas, opciones y en editor se elige "Requerir Declaración de Variables". Con esto VB genera un mensaje de error siempre que encuentre una variable mal escrita o declarada.

 

 

 

Pero hay otra forma que sólo es utilizable para 6 tipos. Esta forma de identificar a una variable nos permite ahorrar tiempo a la hora de escribir código, además de tratar de hacer compatible las primeras formas de asignar variables en Visual Basic (desde Visual Basic 1.0).

Estas formas son extensibles para las variables tipo Integer, Long, Single, Double, String y Currency.

Integer %

Long &

Single !

Double #

String $

Currency @

De esta forma, podemos escribir el siguiente código:

Private Sub Command1_Click()

Sum% = 3 + 4

Num# = 32 / Sum%

Label1 = Num#

End Sub

En este ejemplo, puede utilizarse, pero es preciso tener un ligero conocimiento de este tipo de variables para no confundir una variable de tipo Long por otra de tipo Integer por ejemplo.

2.3 Establecimiento del alcance de la variable

El alcance de las variables se refiere al área del programa en las cuales es visible la variable. Hay cuatro niveles diferentes de alcances:

Nivel de Procedimiento: Para declarar variables, ya sea implícitas o con el enunciado DIM, es en el nivel de procedimiento. En VB, existen dos tipos de procedimientos: los procedimientos SUB y los FUCNTION. Las variables declaradas en los procedimientos son locales para ese procedimiento. Siendo accesibles solamente por los procedimientos en los cuales están declaradas, las variables locales tienen la visibilidad mas baja y el alcance mas estrecho. Las variables locales de un procedimiento son reinicializada cada vez que llama el procedimiento.

También se pueden declarar variables Estáticas: es decir que las variables locales sean permanentes: EJ static nombre.

Nivel de Formulario: Si se declara una variable a nivel de forma esta disponible en cada procedimiento en esta forma.

Nivel de Modulo: Se crean mediante la selección de la opción Agregar Modulo del menú Proyecto de VB. Los módulos de códigos se utilizan para conservar los subprocedimientos y funciones generales que no están relacionados con eventos, así como sus variables locales(publicas) y sus constantes. Variables Publicas: para identificar una variable global, se declara con

la palabra Public. Ej:

Public nompreapellido As String

2.4 Matrices

Para declarar matrices debemos colocar entre paréntesis el número de elementos de los que constará a continuación del nombre de la variable:

Dim medidas(9) as integer

De esta forma tenemos una matriz de 10 elementos identificados del 0 al 9

Podemos obligar a que el primer elemento de una matriz tenga el índice con valor 1.

Esto se hace colocando la instrucción option base 1 en la sección declarations de nuestro formulario. También podemos indicar los límites 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 multidimensionales se declaran de la siguiente forma:

Dim medidas(1 to 10, 1 to 10) as integer

2.5 Tipos de Datos Definidos por el Usuario

 

El usuario puede definir los datos en VB en la sección General de Declaraciones de un modulo de código, usando la palabra clave Type y End Type. Ej:

Type tipoempleado ‘ Crear tipo definido por el usuario.

ID As Long

Nombre As String *15

Salario As Currency

End Type

2.6 Por que son Indispensables las Variables

El poder y la flexibilidad añadidos a sus programas de computadoras por un uso juicioso y bien informado de variables están más allá de cualquier discusión y no pude sobre estimarse. De hecho, cualesquiera programas, a excepción d los más triviales harán un uso cuidadoso de una amplia diversidad de variables, abarcando todo el expectro de tipos disponibles. Los tipos de datos personalizados son útiles en los programas de Bases de Datos, donde ayuda a considerar varios elementos diferentes de datos como una sola entidad, tal como un registro de un empleado por ejemplo, o una factura de un cliente.

Por lo general el establecimiento de variables del tipo y alcance adecuado asegurara el uso más eficiente de la memoria en sus programas.

2.7 Declaración de Constantes

Como su palabra lo dice es Información que no varía hace más fácil la comprensión del código y permite modificar un valor en un solo lugar no ocupa espacio extra, Ejemplo:

Const Mínimo = 1, Máximo = 10

3 ENTRADAS Y SALIDAS SENCILLAS CON MSGBOX() E INPUTBOX()

3.1 Que son Inputbox(), Msgbox()

 

InputBox() Despliega un Mensaje en un cuadro de dialogo, espera que el usuario introduzca el texto o seleccione un botón y luego devuelve el contenido del cuadro de texto. Sintaxis:

ValRe = InputBox(Mensaje, titulo, Posx, Posy, ArchAyuda, Context)

‘ Devuelve Variant

 

RetVal$ = InputBox$(Mensaje, titulo, Posx, Posy, ArchAyuda, Context)

‘ Devuelve una Cadena.

 

 

MsgBox() y MsgBox Despliega un mensaje en un cuadro de dialogo y espera que el usuario seleccione un botón. Sintaxis:

ValRe% = MsgBox(Mensaje, tipo, titulo, ArchAyuda, Context)

Valor

Botón

Constante

0

Ok(Aceptar)

VbOKOnly

1

Ok(Cancelar)

VbOKCancel

2

Abortar, Reiterar e Ignorar

VbAbortRetryIgnore

3

Si, No y Cancelar

VbYesNoCancel

4

Si o No

VbYesNo

5

Reiterar y Cancelar

VbRetryCancel

16

Icono Parada Critica

VbCritical

32

Signo de Interrogación

VbQuestion

48

Signo de Exclamación

VbExclamation

64

Icono de Información

VbInformation

3.2 Por qué usar InputBox() y MsgBox()

Proporcionan una manera de manejar tareas sencillas de Entrada y Salida. Son muy útiles para manejar tareas tales como el despliegue de mensajes de error y de ayuda, así como los cuadros de Acerca De que se presentan en los Sistemas.

 

Crear un formulario con tres botones, un botón dirá Captura de Nombre, el otro Mostrar Nombre y el ultimo Salir.

Digitar el Siguiente Código en las declaraciones generales de la forma:

Private Nombre As String

Private Const TituloInput = "Demostración de InputBox"

Private Const TituloNombre = " Valor Actual del Nombre"

En el Botón Captura de Nombre Digitar el siguiente Código:

Dim Petición As String

Petición = "Teclee su Nombre: "

Nombre = InputBox$(Peticion, Tituloinput)

If Nombre = " " Then

MsgBox " No escribio Nada", vbCritical, "Error"

End If

En el Botón Mostrar Nombre Digitar el siguiente Código:

Dim men As String

Dim Tipo As integer, valRe As Integer

Tipo = vbYesNoCancel + vbQuestion

ValRe = MsgBox("Digito" & Nombre, Tipo, TituloNombre)

If ValRe = VbYes Then

Men = " Ha presionado Si"

ElseIf valRe = vbNo Then

Men = "Ha presionado No"

ElseIf valre = vbCancel Then

Men = " Ha Precionado Cancelar"

End If

MsgBox Men, vbInformation, "Procedimiento MsgBox"

4 ESTRUCTURAS DE DECISIONES: RAMIFICACIONES Y CICLOS

4.1 Que son las estructuras de Decisiones?

Estas estructura caen en dos amplias categorías: Ramificaciones y Ciclos. Los dispositivos como If..Then y Select Case hacen que el programa continúe en una dirección cuando se encuentra una condición particular, sin mirar nunca atrás.

Las construcciones en ciclos como Do.. Loop y While..Wend, se usan para repetir un cierto bloque limitado de instrucciones hasta que las condiciones especificadas son True(cierta) o False(Falsa).

 

4.2 Sentencia If Then Else

La primera es la sentencia If Then Else que no debe tener secretos puesto que es muy similar en todos los lenguajes. La estructura general es la siguiente:

If condición then

bloque de sentencias

Else

bloque de sentencias

End If

Se pueden colocar todas las sentencias de código que queramos en cada uno de los bloques de sentencias, siempre que cada sentencia vaya en una línea distinta. Si los bloques de sentencias están formados por una sola instrucción podemos utilizar la versión reducida que ocupa una sola línea:

If condición then sentencia else sentencia

Ejemplo:

If isnumeric(numero) then la variable numero es numérica else no es numerica.

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 dato<10 then

la variable dato contiene un solo dígito

Else

If dato<100 then

la variable dato contiene 2 dígitos

Else

la variable dato contiene más de 2 dígitos

end If

End If

En el ejemplo anterior se quiere saber si la variable dato contiene uno, dos o más dígitos. Para calcularlo no es suficiente con una sola sentencia If Then Else, por tanto se recurre a anidar 2 sentencias de este tipo. La segunda sentencia If se ejecutará si la condición de la primera sentencia If no se cumple, es decir, si dato>=10. Una vez que se ha llegado a este punto sabemos que la variable dato contiene 2 o más dígitos, mediante una nueva sentencia If sabremos exactamente el número de dígitos de la variable dato.

Este último ejemplo podría haberse escrito de otra forma utilizando la cláusula ElseIf:

If dato<10 then

la variable dato contiene un dígito

ElseIf dato<100 then

la variable dato contiene dos digitos

Else

la variable dato contiene más de 2 digitos

End If

Esta segunda opción es perfectamente válida cuando queremos evaluar varias condiciones, aunque tiene más limitaciones que la estructura anterior ya que enlaza directamente el Else con el If siguiente, sin dejarnos introducir sentencias entre medias que algunas veces podríamos necesitar.

Podemos introducir tantas líneas ElseIF como queramos siempre antes del último Else, si es que lo necesitamos.

Para múltiples decisiones en los que dependiendo del valor de una variable queremos que se realice una acción distinta, parecido a los menús de los programas de MS DOS, no conviene utilizar la estructura IF Then, sino que el código queda más claro y resulta más fácil de modificar utilizando la sentencia Select

Algunas veces se puede condensar la construcción If..Then..Else..Endif dentro de una línea de código. Esto se logra con la función IIF(Si inmediato). Ej:

Color = IIF(elcolor < 15, elcolor, 1)

4.3 Sentencia Select CASE

 

Esta sentencia permite realizar operaciones diferentes dependiendo del valor de una variable:

Estructura General:

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 construcción, 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 sólo se limitan a valores constantes como números y cadenas de texto, sino que podemos comparar con un número como podemos ver en el siguiente ejemplo:

Select Case NotaFinal

Case Is < 5

Suspendido

Case 5 to 6.99

Aprobado

Case 7 to 8.99

Notable

Case Else

Sobresaliente

End Select

Como se puede observar si utilizamos los operadores lógicos 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. También podemos realizar comparaciones con un conjunto de valores separados por comas:

Case 1, 3, 5. El numero es impar. Para terminar con el tema de las sentencias de selección vamos a ver un ejemplo completo en el que probaremos el uso de este tipo de instrucciones. Se trata del típico ejemplo de resolución de una ecuación de 2º grado. Sabemos que la estructura de una ecuación de este tipo es la siguiente:

ax2+ bx + c = 0

La fórmula que resuelve el valor de x es:

Esta fórmula tiene 2 soluciones, una o ninguna dependiendo del contenido de la raíz, de modo que esa es la comparación que realizaremos:

Trabajaremos con variables de tipo double que permiten decimales con la mayor precisión:

También podría haberse utilizado la estructura If then Else, aunque de esta forma no hay que repetir tantas veces la condición a evaluar. El código anterior es sólo una muestra de como llegar a la solución de un problema utilizando sentencias de Visual Basic, no hemos entrado todavía en como introducir este codigo en el entorno de desarrollo de VB para crear una aplicación. Eso lo veremos en el capítulo siguiente, donde hablaremos de controles que son los elementos necesarios para construir el interfaz de usuario y poder asociar el código necesario para realizar nuestras aplicaciones

4.4 Sentencia de Control While Wend

 

 

Ejecuta repetidamente una o mas instrucciones mientras una condición dada es cierta.

Sintaxis:

While condición

[ instrucciones]

Wend

4.5 Sentencia de Control Do Until

proporciona una forma mas estructurada y flexible para ejecutar ciclos. Esta repite un bloque de codigo mientras una condicion es True o a partir de que la condicion sea True.

Sintaxis:

Do Unitil cliente.EOF

Print cliente("nombre")

Cliente.movenext

Loop

Exit Do transfiere el control a la instrucción que sigue inmediatamente al ciclo.

4.6 Sentencia de Control For Next

 

Esta sentencia repite un grupo de instrucciones, un numero especificado de veces. Sintaxis:

For contador = 1 To 10

Print cliente("nombre")

Cliente.Movenext

Next contador

Se puede especificar también el intervalo Step, la cantidad que cambiar el contador cada vez que se ejecuta el ciclo. Si no se especifica, el incremento toma un valor por omisión de 1. Ej:

For porcentaje = 0 To 100 Step 5

Print porcentaje & "%"

Next porcentaje

 

Exit For se usa frecuentemente con la evaluación de algunas condicionantes If..Then y transfiere el control a la instrucción que se encuentra a continuación de Next.

4.7 Por que Tomar Decisione?

Los lenguajes de computación al igual que la vida real deben ser capaces de realizar diferentes juegos de acciones, algunas veces repetidas, indicadas por circunstancias internas o externas. Por ejemplo, en un sistema de administración de personal, si un empleado ha estado en la compañía por espacio de una año, este empleado obtiene un aumento. Si el empleado entra en la edad de la jubilación, hay que jubilarlo.