Curso Básico de Programación
en Visual Basic
Primera. (Iniciado el
18/Abr/97)
por Guillermo "guille" Som
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 SubSitú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 SubPulsa 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 GuillermoPulsa 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 SubDespué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 SubPulsa 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.
Si tienes algún comentario, hazlo pulsando en este link. Así sabré que opinión te merece este primer capítulo del cursillo/tutorial o como prefieras llamarlo.
Nos vemos, (espero que pronto).
Nota: En todos los FORM_LOAD deberás poner SHOW al principio para que se muestre lo que se imprime.
Ya lo he cambiado para que no te quejes, pero los que empezaron el curso antes del 4 de Sep'98, lo tuvieron más crudo...