|
Curso básico
de programación en Visual Basic
Lección
1
Variables
y expresiones
|
Realizamos
programas para la gestión de empresas. Empresas medianas y
pequeñas. Programas de contabilidad, cartera de pedidos
clientes proveedores, facturación control de albaranes,
tesorería cartera de cobros y pagos y estadísticas.
Nuestro
agradecimiento a todos los que por unas causas o por otras
visitan nuestra web. Gestión de empresas PYMES. Curso de
programación de Visual Basic.
|
A estas alturas no
es fácil hacer un curso de introducción a la programación con
Visual Basic. Si fuese a raíz de la primera o segunda versión,
incluso con la tercera, sería más fácil. Pero ahora está más
crudo, por aquello de que soporta 16 y 32 bits y te enfocas en una u
otra dirección o...
Pero como el título indica, esto será una cosa para introducir al
que quiere empezar a programar, incluso para el que viene de otro
lenguaje, aunque seguramente, sobre todo al principio, se
encontrará con conceptos demasiados básicos.
Como este curso no se publica sobre algo que ya está terminado,
iré haciéndolo sobre la marcha, espero tus indicaciones sobre si
voy demasiado rápido o si realmente me estoy pasando en cuanto a
'simpleza'. De cualquier forma, me gustaría oír tu comentario y
tus impresiones, eso me animará a seguir y sobre todo a terminar.
Bueno, manos a la
obra.
A ver como me sale el tema, (al final no he encontrado los apuntes
que ya tenía hechos, de cuando daba clases a niños y a no tan
niños, de esto hace ya 10 añillos de nada)
Lo advierto, a los que saben algo y a los que lo
saben todo (o casi todo), lo que viene a continuación es super
básico. Y pensando también en los que por una razón u
otra no tienen unos conocimientos que a otros les parecerá absurdo,
sé que aún hay gente que no tienen ni 'repajolera' idea de lo que
es una expresión, una variable y ni que decir tiene sobre las
matrices, los números binarios o la notación hexadecimal...
¿Que es
una variable?
En cualquier programa siempre necesitaremos hacer cálculos, usar
información, procesarla y mostrarla.
En la mayoría de los casos, necesitaremos un lugar temporal en el
cual guardar parte de esa información, incluso toda.
Todos los lenguajes, y el Basic no iba a ser menos, nos permiten
guardar datos en la memoria, para que cuando los necesitemos,
podamos tomarlos, modificarlos y volverlos a guardar para usarlos
más tarde. Si no seguimos unas normas o usamos unas reglas, de poco
nos iba a servir el guardar esa información, si después no podemos
almacenarla en ningún sitio, pero ese será tema de otro
capítulo... ahora centrémosno en la memoria.
¿La memoria? Espero que este concepto lo tengas
claro, pero si no es así, ahí va un poco de 'rollo':
La memoria es el lugar donde el ordenador almacena de forma temporal
los programas y parte de la información que necesita o utiliza.
Así pues, los lenguajes de programación usan también esa memoria
para guardar información propia del lenguaje y del programa que
queramos realizar.
El programa una vez que se está ejecutando puede necesitar también
guardar información, aunque esta información sólo estará
disponible mientras se esté ejecutando. Esas posiciones o lugares
de la memoria donde los programas pueden almacenar información son
las variables. El que se llamen de esta forma es
porque podemos hacer que el contenido de ese lugar de almacenamiento
varíe, es como si tuviésemos una serie de cajas y
en ellas pudiésemos guardar cosas, con la salvedad de que en cada
caja sólo puede haber una cosa a la vez; aunque también veremos
cómo hacer que el contenido pueda variar y que varíe dependiendo
de lo que contenía antes...
Veamos un ejemplo:
Imagínate que quieres guardar tu nombre en una variable, para ello
tendríamos que 'guardar' el nombre en la memoria, es decir asignar
a una variable un valor. En este caso nuestro nombre. Para ello el
lenguaje de programación pone a nuestra disposición unos lugares
donde almacenar nuestro nombre, pero nos impone una serie de reglas
de conducta.
Si queremos guardar en una de nuestras cajas una hoja, por lo menos
tendremos una caja con el tamaño adecuado y que tenga una 'forma',
para que el papel no vuele al menor soplo de viento.
Esta es la regla básica para poder usar esos lugares de
almacenamientos (variables):
Llamar a esas posiciones de memoria con un nombre. Simple, ¿verdad?
En principio, es todo el requisito necesario: que le demos un nombre
al sitio en el que queremos guardar la información.
Por tanto, si queremos guardar un nombre, (el nuestro, por ejemplo),
en la memoria, podríamos llamarlo nombre.
Y ahora tendremos que seguir otra norma de conducta (o
funcionamiento), que en este caso el lenguaje Basic nos dicta:
Para guardar en una variable (posición de memoria) algo, debes
hacerlo de la siguiente manera:
---Pon el nombre con el que quieres llamar a esa parte de la
memoria,
---a continuación pones el signo igual (=) y
---después lo que quieras guardar.
Por tanto para guardar Guillermo en la
variables nombre, tendríamos que hacer (o
casi):
Nombre = Guillermo
Pero esto podía llevar a confusión, ya que el Basic no nos dice
nada sobre cómo debemos llamar (o si lo prefieres, cómo hay que
escribir) el nombre de una variable, por tanto Guillermo
también podría ser una variable, (es
que el Basic, a pesar de que llevo tantos años bregando con él, no
sabe que ese es mi nombre!!!).
Así pues, cuando queramos guardar en una variable una palabra, una
frase, nombre o cualquier tipo de información alfabética,
tendremos que indicarlo poniendo dicha información dentro de
comillas dobles, el ejemplo quedaría así:
Nombre = "Guillermo"
Ahora no hay confusión posible, hemos seguido lo que el Basic nos
ha dicho: variable, signo igual, valor a almacenar.
Si queremos guardar un número en una variable, la cosa es más
simple:
Numero = 7
¿Te estás enterando?
Pero, ¿que ocurre
si quisiéramos repetir 7 veces a Guillermo?
Podrías hacer esto, multiplicar a Guillermo por 7 (como
no hay bastante con uno...)
Paliza = "Guillermo" * 7
Pero el Basic te diría que eso no está bien, no porque Guillermo (yo)
no sea un paliza, sino porque te diría que no coinciden los tipos
(Type Mismatch)
¿Que son los tipos? Los distintos tipos de datos.
(que esfuerzo
mental...)
Los datos pueden ser, básicamente, de dos tipos:
Numéricos: sólo números y
Alfanuméricos: cualquier cosa, letras y/o
números, pero es tratada como si fuesen palabras, frases, etc.
Para el Basic 7 y "7" son dos tipos de datos diferentes.
El primero es el número 7 y en el segundo caso, es el literal (o
palabra) "7"
Así que cuando veas algo entrecomillado, piensa que no es un
número, sino una palabra (más vulgarmente llamada cadena
de caracteres o string en inglés)
Hemos visto que no podemos multiplicar una palabra (cadena)
por un número, pero si podemos multiplicar una variable por un
número (siempre que la variable sea numérica, por supuesto)
Según esto, el Basic debería permitir hacer esto:
Guillermo = 5
Paliza = Guillermo * 7
El Basic tomaría el 5 y lo almacenaría
en una variable numérica llamada Guillermo.
Después se encuentra con: Paliza = Guillermo * 7
y aquí lo que hace es evaluar la expresión que está después del
signo igual, lo calcula y el resultado lo guarda en la variable que
está a la izquierda del signo de asignación (=)
¿Expresión? Expresión es cualquier cosa que el
Basic tenga que 'desglosar' para poder entenderla, incluso a veces
ni eso...
Por ejemplo cuando el Basic se encuentra con 5 * 2
tiene que 'evaluar' lo que significa, para poder hacer el cálculo,
de esta forma sabrá que tenemos una operación en la cual queremos
multiplicar dos números, una vez que ha evaluado nuestra intención
de multiplicar esos dos números, efectuará el cálculo y
almacenará el resultado en... si no le decimos dónde, lo hará en
una memoria que tiene para esas cosas, pero si no le indicamos que
debe hacer con ese resultado, nos dará un error...
Si le decimos simplemente: 5 * 2
El Basic no sabrá que hacer con el resultado de esta 'expresión' (que
por cierto es 10) y nos dirá:
o te espabilas o lo tienes crudo conmigo.
Así que lo más juicioso sería decirle: vale, vale, guárdalo en
una variable, así que:
Resultado = 5 * 2 guardaría un 10 en la
variable Resultado.
También podríamos decirle que nos mostrara el resultado, en lugar
de guardarlo en una variable, y aquí llega nuestra primera
instrucción: Print. Con ella le decimos al Basic que lo
imprima (o sea que los muestre, más adelante veremos dónde),
según lo dicho, haciendo esto:
Print 5 * 2, el Basic diría que muy bien
y mostraría un 10
Pero, volvamos al Paliza del Guillermo,
es decir al ejemplo de Paliza = Guillermo * 7
Si quisiéramos mostrar el valor de Paliza,
tendríamos que hacer algo como esto: Print Paliza,
y nos mostraría 35, ya que el valor de Paliza
sería 35, porque el contenido de Guillermo
es 5 y 5 * 7 es 35 (y
sin calculadora!!!)
Veamos si es cierto que Guillermo vale 5.
Haciendo Print Guillermo, mostrará un 5.
Antes de seguir
'imaginando' las cosas, vamos a verla en funcionamiento. Es decir
vamos a probar que todo esto es cierto.
Carga el Visual Basic (si es que aún no lo has hecho).
Te creará un Form nuevo, que estará vacío.
Ciérralo y muestra la ventana de código.
Mostrará la parte de las declaraciones Generales del Formulario.
Si tiene escrito Option Explicit, (estará en la parte superior),
bórralo, más adelante te explicaré para que sirve.
Ahora sitúate en Form (selecciónalo de la lista desplegable que
está a la izquierda), te mostrará:
Private Sub Form_Load()
End Sub
Sitúate en medio,
es decir, en una línea en blanco después del Private... y escribe
el ejemplo, quedaría así:
Private Sub Form_Load()
Show
Guillermo = 5
Paliza = Guillermo * 7
Print Paliza
End Sub
Pulsa F5, para
ejecutar el programa, y verás que se escribe el 35.
Bien, ya tienes una forma de mostrar datos. Ahora veamos otros
ejemplos, antes debes parar el programa, para ello cierra el Form,
pulsando en el botón que tiene una X, o bien pulsa en el botón
detener de la barra de herramientas del VB.
Sitúate de nuevo en el código del Form_Load, escribe después de
la línea del Print, lo siguiente:
Print Guillermo
Pulsa de nuevo F5 y verás que
ahora además del 35, hay un 5 debajo. El valor de la variable
Guillermo.
Pero, ¿que ocurriría si cambiásemos el valor de Guillermo?
Añade estas líneas a continuación de la anteriores, para que
quede de esta forma:
Private Sub Form_Load()
Show
Guillermo = 5
Paliza = Guillermo * 7
Print Paliza
Print Guillermo
Guillermo = 10
Print Guillermo
Print Paliza
End Sub
Después de pulsar
F5, te mostrará los siguientes valores (cada número en una
línea), 35, 5, 10, 35
¿Esperabas que el último fuese 70?
Fíjate que cuando asignamos a Paliza el
contenido de Guillermo, éste era 5, por
tanto el Basic evaluó la expresión 5 * 7 y almacenó el resultado
(el 35). Una vez almacenado el resultado, el Basic se olvidó de
dónde había sacado ese 5.
Si queremos que se 'actualice' el valor de Paliza,
tendremos que indicárselo de nuevo al Basic, para que vuelva a
evaluar la expresión y hacer la correspondiente asignación. Para
ello, pon en medio de los dos últimos prints la siguiente
asignación:
Paliza = Guillermo * 7
Esta vez, al ejecutar el programa, mostrará un 70, que será el
nuevo contenido de Paliza.
Ya para terminar,
borra todo lo anterior y escribe: (por
supuesto debes detener el programa...)
Private Sub Form_Load()
Show
Nombre = "Guillermo"
Print Nombre
End Sub
Pulsa F5 y verás
que se muestra el contenido de la variable Nombre,
es decir Guillermo.
Prueba ahora con esto otro (es un clásico):
Print "Hola Mundo"
Y para rematar, y de camino ver otra posibilidad del
Print, escribe en lugar del Print Nombre:
Print "Hola " ; Nombre
El punto y coma, se usa para indicarle al Basic que se deben mostrar
las cosas una a continuación de la otra.
Ahora te habrá mostrado: Hola Guillermo, fíjate que después de
hola y antes de cerrar las comillas hay un espacio.
Bien, creo que con
esto es suficiente por hoy... o por ahora.
Nos vemos,
Nota: En todos
los FORM_LOAD deberás poner SHOW al principio para que se muestre
lo que se imprime.

|