Logo Studenta

Lectura en Clase - Programate Todo

¡Este material tiene más páginas!

Vista previa del material en texto

u s e r s . t e c t i m e s . c o m28
Mariano Birnios
mariano@tectimes.com
NT_ProgramacionUEx#44.qxd 5/9/01 5:20 PM Page 28
u s e r s . t e c t i m e s . c o m 29
a programación no es algo “tan nuevo” como se
cree; por el contrario, comenzó mucho tiempo atrás.
Como diría Snoopy, “era una noche sombría
y tormentosa” cuando el hombre vio en las máquinas
una fabulosa oportunidad para ayudarlo a resolver
sus problemas matemáticos, científicos y, obviamen-
te, militares. Allá por el año 1834, Charles Babbage
desarrolló una aparatosa máquina mecánica: la Má-
quina Analítica (Analytical Engine), como fue bau-
tizada. Era una computadora mecánica de propósito
general, más que nada utilizada para realizar cálcu-
los de todo tipo. La máquina trabajaba con tarjetas
perforadas para recibir instrucciones, y según los ori-
ficios estratégicamente ubicados en la tarjeta, los
dispositivos mecánicos de aquel engendro leían los
datos de entrada y operaban hasta llegar al resulta-
do. El concepto de tarjeta perforada se siguió utili-
zando durante mucho tiempo más, incluso hasta ha-
ce algunas décadas (ver imagen). Si bien los meca-
nismos de lectura mejoraron, la esencia era la mis-
ma, y aunque no tuve la posibilidad de trabajar con
aquellos mamotretos, siempre recuerdo a mis profe-
sores contando sus hazañas con la programación de
máquinas con tarjetas perforadas...
Pero Carlitos Babbage no trabajaba solo en el de-
sarrollo de su máquina. Lo ayudaba su asistente, la
Programar es hermoso. 
Más que una técnica, 
para mí es un arte. 
Programar una computadora 
es jugar a ser Dios, 
y los programadores sentimos 
que somos capaces 
de crear vida artificial, 
pero vida al fin, sin la cual 
la mismísima PC se convertiría 
en un manojo de chips inservibles. 
¿Todavía no programás? 
Vení, pasá y unite al club...
L
NT_ProgramacionUEx#44.qxd 5/9/01 5:21 PM Page 29
u s e r s . t e c t i m e s . c o m30
señorita Ada Augusta Byron, una joven
muy inteligente, que comprendía muy
bien el funcionamiento de la máquina y
el poder que podría alcanzar (segura-
mente, más de lo que Babbage supo-
nía). Luego de unos viajes por el exte-
rior, Ada se dispuso a documentar su
funcionamiento, basándose en unas lec-
turas de Babbage. Lo interesante fue
que ella quiso agregar algunas “notas”
de su autoría, pero se entusiasmó tanto,
que terminó describiendo cómo se po-
dría usar la máquina para mucho más
que simples cálculos numéricos... Hasta
sugirió que se podría utilizar para crear
música “artificial”, alimentándola con
reglas de armonía y melodía. En cierto
modo, estaba describiendo cómo “pro-
gramar” el aparato, y por esa razón, pa-
ra alegría de todas nuestras lectoras, se
considera a la señorita Ada la primera
programadora del mundo. Varias déca-
das después, existió un lenguaje de pro-
gramación llamado ADA, en honor a su
trabajo.
Pero esto no tomó vuelo sino hasta
después de la invención de las compu-
tadoras digitales. En 1954 se creó
FORTRAN, el primer lenguaje de pro-
gramación de alto nivel, que incluía un
compilador. Como estaba muy orienta-
do a la ingeniería, le dejó el campo
abierto a COBOL, que durante mucho
tiempo fue el principal lenguaje usado
para desarrollar aplicaciones de nego-
cios. Seguramente hoy queden restos
en algún banco pueblerino...
Hoy en día... 
¿qué es programar?
Como todos saben, el hardware está
formado por los componentes físicos de
la PC, y el software son los diferentes
programas que la hacen funcionar. “Pro-
gramar” es crear ese software, que le in-
dica a la computadora qué, cómo, dón-
de y cuándo tiene que hacer las cosas;
es decir, le da instrucciones. Pero,
aparte de mandar, también es necesario
tomar decisiones, casi de la misma for-
ma en que lo hacemos a diario... “Si el
semáforo está en verde, entonces cruzo;
pero si está en rojo, mejor espero”. Ade-
más, muchas veces hay que hacer ciclos
repitiendo instrucciones y, en fin, mane-
jar otras estructuras.
Todo este conjunto de instrucciones
termina conformando un algoritmo, una
serie de pasos por seguir para lograr un
objetivo. Pensemos en un ejemplo ton-
to. Imaginemos el trabajo de un progra-
ma que, dada una lista de números,
cuente cuántos son positivos y cuántos
negativos. El razonamiento sería algo
como:
• Las cantidades de positivos y de ne-
gativos son cero, inicialmente.
• Tomo el primer número y, si es ma-
yor que cero, sumo uno a los positivos;
si no, sumo uno a los negativos (deje-
mos de lado el caso del cero).
• Si hay más números, repito el proce-
so con el próximo hasta terminar.
• Si termino la lista, informo la cantidad
de positivos y de negativos que hubo.
La ilustración de la próxima página
muestra el funcionamiento lógico del
programa usando Diagramas de Flujo,
una herramienta que se utiliza para re-
presentar el trabajo de algoritmos. Es
muy útil para enseñar a programar, aun-
que en la práctica casi no se utiliza.
Pero en la práctica... ¿cómo se le dice
a la PC lo que debe hacer? Nuestra que-
rida PC sólo entiende el lenguaje máqui-
na, o sea, ceros y unos, pero a nosotros,
los mortales, nos resulta algo difícil de
comprender. En lugar de eso, es necesa-
rio utilizar un lenguaje comprensible por
ambas partes (con ciertas “traducciones”
de por medio), y aquí es donde intervie-
nen los lenguajes de programación.
(FORmula TRANslation). El primer
lenguaje de alto nivel con
compilador. Fue desarrollado por
IBM y usado para resolver
problemas científicos y de
ingeniería.
(COmmon Business Oriented
Language). Fue un lenguaje
orientado al desarrollo de
aplicaciones de negocios
(bancos, etc.). Se caracterizaba
por su horripilante sintaxis. 
(Beginners All-purpose Simbolic
Instruction Code). Fue
desarrollado pensando en los
principiantes, y resultó muy
popular. En 1987 vio la luz el
QuickBasic.
Un lenguaje estructurado muy
utilizado para enseñar
programación en las universidades.
Actualmente, la versión más
popular es Turbo Pascal 7.0,
desarrollada por Borland.
El lenguaje fue inventado por
Dennis Ritchie con vistas a UNIX,
pero adquirió tanta popularidad,
que luego fue portado a otras
plataformas. El ANSI C data de
1983.
1954 1960 1964 1972
LOS LENGUAJES
EN EL TIEMPO
FORTRAN COBOL BASIC 1971 Pascal C
Las tarjetas perforadas
también fueron 
muy utilizadas para 
el procesamiento de
datos (por ejemplo, en
censos). Con este fin,
una tarjeta equivalía 
a un registro... 
una auténtica base 
de datos en papel.
Desde la década del ‘50 hasta
la actualidad, 
se han desarrollado 
más de 2.000 lenguajes 
de programación diferentes.
Claro está, 
no todos se volvieron
comerciales y adquirieron
gran popularidad. De hecho,
menos de 40 fueron
realmente significativos 
en la historia informática.
NT_ProgramacionUEx#44.qxd 5/9/01 5:21 PM Page 30
u s e r s . t e c t i m e s . c o m 31
Los lenguajes 
de programación
Existen varios lenguajes, para todos
los gustos: Visual Basic, C++, Pascal,
JAVA, COBOL, Delphi, Visual FoxPro...
Aunque, claro, no todos están en uso.
La razón por la cual no hay un único
lenguaje de programación es simple:
hay diferentes metodologías de progra-
mación (modular, estructurada, orienta-
da a objetos, etc.), y hay lenguajes di-
señados para cubrir necesidades especí-
ficas (por ejemplo, Visual FoxPro es un
lenguaje que apunta al trabajo con ba-
ses de datos). Pero ¿cuántos lenguajes
creés que han sido desarrollados hasta
el día de hoy? Seguramente, menos de
lo real. Se han desarrollado más de
2.000 lenguajes diferentes. ¡Increíble!
Si querés husmear un rato, en el CD que
acompaña a la revista podés encontrar
un documento con una breve descrip-
ción de cada uno (en inglés), bajado de
Internet y mantenido por una universi-
dad norteamericana.
Los lenguajes de programación se sue-
len clasificar en:
• Lenguajes de bajo nivel. Son aqué-
llos en los que una instrucción del len-
guaje equivale a una instrucción de la
CPU. El único lenguaje de este grupo es
Assembler, que, como todos saben, está
íntimamente ligado al procesador sobre
el cual corre. Escribir programasen estos
lenguajes es una tarea muy laboriosa... 
• Lenguajes de alto nivel. Son más
parecidos al lenguaje humano y, por lo
tanto, mucho más fáciles de usar. Sus
instrucciones son palabras en inglés,
que resultan mucho más sencillas de
leer y analizar. En este grupo están BA-
SIC, Pascal, Visual Basic, Delphi y Vi-
sual FoxPro, entre otros. El lenguaje C,
para dar la nota, se suele clasificar co-
mo de nivel medio, ya que en cierta par-
te comparte elementos de las dos ramas.
Cómo se crean 
los programas
Una vez elegido el lenguaje, se escribe
el programa. Algunos lenguajes vienen
con un IDE (Integrated Development En-
vironment) para escribir el código, y
hasta resaltan las instrucciones en co-
lor. Si no es así, habría que escribir el
código con un editor externo, como el
mismísimo Bloc de notas.
El “texto” escrito de esta forma se lla-
ma código fuente (Source Code), pero
claro, la máquina no tiene ni idea de lo
que significa. Por eso, para poder ejecu-
tarlo, primero debe compilarlo. El pro-
ceso de compilación lee el texto escrito
por el programador, lo traduce a lengua-
je máquina y genera el archivo ejecuta-
ble como lo conocemos todos, con ex-
tensión .exe.
¿Qué elementos se
pueden programar?
Es posible programar aplicaciones per-
sonales, grandes sistemas para empresas,
juegos, utilitarios y cualquier otro engen-
dro, pero lo importante es que, de acuer-
Un sistema de bases de datos
para PCs. Según cuenta la
historia, fue creado por Wayne
Ratliff para manejar el
campeonato de fútbol de la
empresa donde trabajaba.
Nació como un compilador de
xBase, un lenguaje utilizado por
dBASE. Fue muy popular a
principios de los ‘90, pero hoy
ya es obsoleto. Nunca tuvo un
IDE decente...
Un administrador de bases de
datos, compatible con dBASE.
Las primeras versiones ya son
historia, pero hoy sobrevive su
hermano mayor, Visual FoxPro.
Fue desarrollado por Microsoft
para facilitar el desarrollo de
aplicaciones Windows. Hoy en día
va por la versión 6.0, y es uno de
los lenguajes más populares.
La versión visual del clásico
Pascal. Si bien es muy poderoso,
no es el que más adeptos tiene
a la hora de hacer sistemas y
manejar bases de datos.
1989 19951986 1991
El ejemplo que mencionamos representado con Diagramas de Flujo. Una
rápida mirada y ya es posible comprender cómo funciona.
dBASE Clipper FoxPro Visual Basic Delphi1980
positivos = 0
negativos = 0
¿más
números?
número > 0
negativos = negativos +1 positivos = positivos +1
➤
➤
SI
SINO
NO
Mostrar resultados
➤
➤
➤➤
NT_ProgramacionUEx#44.qxd 5/9/01 5:21 PM Page 31
do con lo que se vaya a programar, será
conveniente elegir un lenguaje u otro.
Por ejemplo, en el caso de los juegos co-
merciales, casi el cien por cien es desa-
rrollado en Visual C++, sin lugar a dudas,
el lenguaje más poderoso de la actuali-
dad, aunque, evidentemente, no es el
más fácil de aprender o utilizar. Nosotros,
para los efectos didácticos de esta nota,
hemos elegido Visual Basic como len-
guaje para aprender. ¿Es el ideal para em-
pezar? Más adelante encontrarás la res-
puesta, en esta misma nota.
Programación visual
En los anárquicos tiempos del DOS, los
programas se escribían como una serie
de instrucciones que, de manera secuen-
cial, se iban ejecutando para cumplir
con su objetivo. Con la llegada de Win-
dows eso cambió radicalmente, y se in-
trodujo el concepto de programación vi-
sual, con un modelo dirigido por even-
tos. La receta es sencilla:
1) Primero se diseñan las ventanas del
programa (formularios).
2) En cada una se agregan los objetos
(controles) necesarios, como cajas de
texto, listas, combos, imágenes, etc.
3) Se establecen las propiedades de
los objetos agregados.
4) Por último, se programan los even-
tos a los que va a responder cada obje-
to, escribiendo código para cada uno.
Como todos los lenguajes visuales de
hoy en día tienen un buen IDE, crear los
formularios y situar controles no es ta-
rea complicada. Seguramente, habrá una
barra de herramientas con los íconos de
los objetos que se pueden agregar, y
una ventana para modificar las propie-
dades de cada uno.
Una propiedad es un atributo de un
objeto. Por ejemplo, en Visual Basic,
las cajas de texto disponen de una lla-
mada BackColor, que determina el color
de fondo del texto. La cantidad y el ti-
po de propiedades dependen de cada
objeto, pero, en general, hay propieda-
des para modificar colores, tamaños,
comportamiento, texto, bordes y hasta
el nombre mismo del objeto (en Visual
Basic, propiedad Name). Esta última es
muy importante, ya que permite referir-
se al objeto a la hora de escribir el có-
digo. Por ejemplo, si nuestra caja de
texto se llama “txtNombre”, en la ma-
yoría de los lenguajes podríamos escri-
bir algo similar a:
txtNombre.BackColor = 0
Aquí se ve cómo se escribe el nombre
del objeto, seguido de un punto y el
nombre de la propiedad en cuestión.
En este caso, le asignamos el color 0:
negro.
Otro punto importante son los even-
tos. Un evento es un suceso que se pro-
duce en un objeto. En el caso de los ob-
jetos del formulario, un evento puede
ser, por ejemplo, el hecho de que el
usuario haga clic sobre un botón. Cada
objeto tiene una lista concreta de even-
tos a los que responde, y cada uno se
programa por separado para definir cuál
es la respuesta esperada del objeto.
Eso es todo. Simple, ¿no? No tanto.
Los primeros dos pasos de nuestra rece-
ta son comparables a los de la creación
de una página web con FrontPage o con
cualquier otro editor visual. Se “tiran”
objetos, se establecen sus propiedades,
y nuestro pollo va tomando forma vi-
sualmente. Pero el último paso es donde
realmente se pone la carne al asador:
hay que escribir el código. Y en el códi-
go es donde más se notan las diferen-
cias entre lenguajes. Cada uno tiene su
sintaxis, su forma de declarar variables,
de hacer ciclos, estructuras de decisión,
de trabajar con objetos, etc. Pero, en
fin, sólo es cuestión de elegir un len-
guaje, y la habilidad para hablar en ese
idioma crecerá día a día.
Lady Ada Augusta Byron,
considerada la primera
programadora del mundo. Sus
notas datan de la década del
‘40... del siglo XIX.
u s e r s . t e c t i m e s . c o m32
El IDE que Delphi 5
nos presenta para
crear formularios.
Hoy en día, todos
los lenguajes
modernos cuentan
con un IDE para
facilitar el
desarrollo.
La programación visual
contribuyó mucho a
disminuir el tiempo de
desarrollo, facilitando la
creación de interfases de
usuario.
NT_ProgramacionUEx#44.qxd 5/9/01 5:21 PM Page 32
u s e r s . t e c t i m e s . c o m34
S in lugar a dudas, el lenguaje ideal para aprender.¿Por qué? Primero, Visual Basic es un lenguaje de
propósito general: se pueden crear aplicaciones de escrito-
rio, utilitarios, pequeños juegos, aplicaciones multimedia,
sistemas con manejo de bases de datos, componentes reu-
tilizables y mucho más. Muchos critican esta generalidad,
aduciendo que sirve para tantas cosas, que al final no cum-
ple bien con ninguna... Cuán equivocados están.
Su sintaxis es clara y simple: tiene un lenguaje amigable,
que hace que la lectura del código sea muy sencilla.
Pero, para mí, la principal ventaja de Visual Basic es que
le permite al programador concentrarse en resolver su pro-
blema, y no en lidiar con los vericuetos del lenguaje. Esto
aporta mucho al desarrollo rápido de aplicaciones, ya que,
por ejemplo, crear un formulario con algunos combos y lis-
tados puede llevar unos escasos cinco minutos... no así en
Visual C++. Además, para el programador principiante, no
lograr resultados en poco tiempo suele resultar frustrante,
y en muchos casos termina desistiendo.
Pero ¿es un lenguaje sólo para principiantes? Para nada.
Si se lo sabe utilizar, es un lenguaje realmente poderoso.
D ejando a un lado las pasiones, no se puede discutirque C es el lenguaje más poderoso de nuestros días,
y para el entorno Windows, viene en paquetito como Visual
C++. Pero claro, poderoso no significa fácil...
La ventaja de C es que le otorga muchas libertades al pro-
gramador. Su filosofíaes dejarle hacer casi todo, y no es-
tar constantemente controlando sus errores. Así, C gana
mucha velocidad; pero, obviamente, si el programador no
sabe muy bien lo que hace, sus programas terminarán col-
gándose misteriosamente... 
Visual C++ permite crear las más sofisticadas aplicaciones
para Windows. Un claro ejemplo son los juegos. Quake III,
Flight Simulator, Unreal y otros monstruos del 3D son de-
sarrollados en este lenguaje. Pero, a mi modo de ver las co-
sas, VC++ no es el lenguaje indicado para, por ejemplo, ha-
cer sistemas de información. Creo que uno no puede enfo-
car el problema cuando tiene que ocuparse de, por ejem-
plo, contar manualmente las referencias a un objeto para
saber si se pueden liberar los recursos que utiliza.
Pero si a vos te gustan los desafíos, puede resultarte muy
provechoso aprender este lenguaje. 
✔ Fácil de aprender, sintaxis clara y sencilla.
✔ Uso general (desde bases de datos hasta multimedia).
✖ No soporta totalmente la orientación a objetos.
✖ Las aplicaciones requieren la carga de pesadas librerías.
✔ Completo y poderoso. Desde drivers hasta juegos 3D.
✔ El más rápido del condado, si se lo sabe usar.
✖ Complicado, sintaxis muy engorrosa.
✖ No es la herramienta más veloz para desarrollar.
MS Visual C++ 6.0
¿Qué lenguaje 
debo elegir?
Un lenguaje ideal para aprender sería
aquel que no resultara muy complicado
al principio, que en poco tiempo
permitiera ver resultados alentadores,
que no “quedara chico” luego de adquirir
mayor experiencia, que no se encerrara
en una rama específica, que tuviera
Ideal para aprender y trabajar ¡Yo tengo el poder!
MS Visual Basic 6.0
NT_ProgramacionUEx#44.qxd 5/9/01 5:21 PM Page 34
u s e r s . t e c t i m e s . c o m 35
aceptación en el mercado, buena salida
laboral y, si fuera posible, que dispusiera de
alguna versión para testearlo.
Sin lugar a dudas, el lenguaje que cumple
mejor con todas estas pautas es Visual
Basic. No por nada es uno de los lenguajes
más utilizados hoy día, y la existencia de
una gran comunidad de programadores 
en un lenguaje también es un punto a
favor, más aún a la hora de aprender.
Pero dejando de lado opiniones personales,
presentamos una comparación objetiva entre
los cuatro lenguajes visuales más populares
para crear aplicaciones para Windows.
✔ Orientación a objetos (herencia, polimorfismo, etc.).
✔ Genera ejecutables standalone (sin pesadas librerías).
✔ Muy estricto, lo que lo vuelve apto para el aprendizaje.
✖ El IDE podría ser mucho mejor.
✔ Orientación a objetos.
✔ Muy veloz para el trabajo con bases de datos.
✖ No es un lenguaje de propósito general.
✖ Pobre manejo de gráficos y de multimedia.
D elphi es, por decirlo de forma simple y rápida, unaversión moderna y visual del clásico Pascal. Técnica-
mente, soporta todas las características avanzadas de
orientación a objetos, como herencia y polimorfismo, que,
a la hora de compararlo con Visual Basic, representa uno
de los principales argumentos. Además, incluye docenas de
controles adicionales, y genera ejecutables standalone
que, si bien son un poco más voluminosos, no requieren la
carga de extensas librerías en memoria.
Pero si Delphi es tan bueno... ¿por qué no es más popu-
lar? Muchos amantes del lenguaje lo atribuyen a las pobres
estrategias de marketing que Borland (actualmente Inpri-
se) utiliza para el producto, más aún si se considera que
compite con un gigante de los negocios, como Microsoft. 
Si bien hoy Delphi soporta casi todas las tecnologías ac-
tuales en materia de desarrollo, a la hora de criticarlo mu-
chos se basan en el miedo de que eso no continúe siendo
así; ya que, quiérase o no, en cuanto a desarrollo para Win-
dows, el que lleva la batuta es Microsoft. Por ejemplo, MS
piensa en lanzar .NET a principios del año que viene... ¿Có-
mo afectará eso a Delphi?
V FP es la versión visual del antiguo FoxPro, un len-guaje compatible con dBASE utilizado para desarro-
llar aplicaciones que manejen bases de datos. Como tal,
VFP es un lenguaje que se usa en mayor medida para crear
sistemas que funcionen con grandes bases de datos. De
hecho, por más que “técnicamente” fuese posible, prácti-
camente no existen utilitarios o aplicaciones de uso gene-
ral desarrollados en este lenguaje.
VFP incluye herramientas especiales para crear bases de
datos, tablas, reportes y consultas, y el lenguaje incorpo-
ra muchísimas funciones específicas para trabajar en acce-
so a datos. Muchas de ellas no tienen un equivalente en
otros lenguajes, como Visual Basic. En cierta parte, esto
hace que muchas aplicaciones de VFP trabajen mejor y más
rápido con grandes bases de datos.
Pero, en cuanto a la creación de interfases de usuario
amigables y al trabajo con sonidos, gráficos y multimedia,
Visual FoxPro deja mucho que desear. El entorno de desa-
rrollo (IDE) también podría mejorar bastante.
En cuanto a su futuro, actualmente ya está disponible la
Beta 2 de Visual FoxPro 7, la próxima versión del lengua-
je. Veremos qué trae de nuevo.
Delphi 5 MS Visual FoxPro 6.0
El heredero de Pascal Zorro viejo...
NT_ProgramacionUEx#44.qxd 5/9/01 5:22 PM Page 35
u s e r s . t e c t i m e s . c o m36
Como mencionamos antes, VisualBasic es el lenguaje ideal paraaprender, y para eso estamos
aquí. Pero primero lo primero: ¿dónde se
consigue? La última versión de Visual
Basic es la 6.0, que comercialmente vie-
ne en tres ediciones: Enterprise, Profe-
sional y Learning. Obviamente, las tres
son pagas, pero existe una alternativa
gratuita: Visual Basic 6 Working Model.
Es una versión reducida que no permite
compilar nuestros programas (crear el
ejecutable), pero funciona por tiempo
ilimitado, y es muy útil para probar.
El entorno de desarrollo
Ahora sí, apenas ingresamos en Visual
Basic, vemos un diálogo de bienvenida,
en el que se nos pregunta qué tipo de
proyecto queremos crear. Como noso-
tros vamos a comenzar creando aplica-
ciones Windows comunes, elegimos
“Standard EXE”.
Una vez hecho esto, accedemos al
área de trabajo de VB, que la Guía Vi-
sual de la página siguiente explica bre-
vemente. De todo lo que se ve, hay cua-
tro elementos principales:
• El formulario que estamos diseñan-
do, en el centro.
• La caja de herramientas, con íconos
que nos permiten agregar diferentes
objetos al formulario. La Guía Visual de
esta página describe brevemente cada
ícono de esa barra.
• La ventana de propiedades, que
sirve para modificar las propiedades de
los objetos que están en el formulario
(y del mismo formulario en sí).
• El Project Explorer, que nos mues-
tra los archivos que forman parte de
nuestro proyecto y nos permite navegar
entre ellos.
Con esos elementos podemos ir agre-
gando objetos a nuestro formulario prin-
cipal, pero... ¿dónde se ingresa el famo-
so código? Probemos con un ejemplo
sencillo: tomamos un botón de la caja
de herramientas y lo “dibujamos” en el
formulario. En la ventana de propieda-
des, cambiamos su propiedad Name
(nombre) a “cmdSalir”, y la propiedad
“Caption” a “Salir” (Caption indica el
texto que muestra el botón). Luego, ha-
cemos doble clic sobre el botón en el
formulario. ¡Voilá! Aparecimos en la
ventana de código, una especie de edi-
tor en el cual podemos ingresar código
para programar, en este caso, los even-
tos del botón. Pero... ¿qué eventos?
En esa ventana de código tenemos dos
combos en la parte superior. El izquier-
do indica sobre qué objeto estamos es-
cribiendo código, y el derecho, el even-
to de dicho objeto. Si observamos la fi-
gura, veremos que a la izquierda dice
“cmdSalir” (el nombre interno de nues-
tro botón), y a la derecha, “Click” (el
nombre del evento que estamos por
programar). Si desplegamos esta última
lista, veremos que también hay otros
eventos disponibles: DblClick (doble
clic), GotFocus (cuando adquiere el fo-
co del usuario), LostFocus, etc.
Siguiendo con el ejemplo, el funciona-
miento que esperamos del botón es bas-
El mejor punto de partida 
para aprender a programar
Visual Basic
en una clase
Los objetos 
se incrustan 
en los 
formularios
mediante 
lacaja de
herramientas:
Puntero
Etiqueta
Marco
CheckBox
ComboBox
ScrollBar horizontal
Timer
DirListBox
Shapes
Control de imagen
OLE
PictureBox
Caja de texto
Botón
Botón de opción
ListBox
ScrollBar vertical
DriveListBox
FileListBox
Línea
DataControl
NT_ProgramacionUEx#44.qxd 5/9/01 5:22 PM Page 36
tante obvio... queremos salir de la apli-
cación. Para eso, podemos hacer uso de
la añeja sentencia “End”. Pero antes,
para romper con el clásico y aburrido
“Hola Mundo”, vamos a agregar un men-
saje final, mediante la función MsgBox.
El código del botón quedaría así:
Private Sub cmdSalir_Click()
MsgBox “Adiós mundo cruel...”
End
End Sub
¡Listo! Para probar cómo queda nues-
tra aplicación, pulsamos <F5> o vamos
al menú [Run/Execute]. Cuando presio-
nemos el botón [Salir], nuestro progra-
ma se verá como en la figura. Finalmen-
te, si queremos compilar el programa
para crear el ejecutable, debemos ir al
menú [File/Make Project1.EXE], elegir
el nombre del ejecutable y aceptar.
Pero antes de que te entusiasmes de-
masiado, será mejor que guardes el pro-
yecto ([File/Save]); no vaya a ser que
justo se corte la luz... En fin, Visual Ba-
sic guarda los proyectos en archivos con
extensión VBP. Si luego ejecutamos ese
archivo desde el explorador, Visual Basic
se abrirá con el proyecto cargado.
Código en Visual Basic
Ahora ya sabemos dónde se ingresa el
código en Visual Basic, pero nuestro po-
tencial sigue siendo muy limitado, por-
que no conocemos el lenguaje: ¡no sa-
bemos qué escribir! Para solucionar es-
to, vamos a ver pequeños ejemplos
prácticos de las instrucciones más im-
portantes.
Variables y constantes
Para decirlo fácilmente, las variables
son nombres que almacenan valores, que
pueden cambiar. Lo importante es que el
nombre de la variable refleje el conteni-
do de ésta. Veamos algunos ejemplos:
Dim Velocidad As Integer
Dim NombreSocio As String
Dim DeudaExterna As Long
Dim RespuestaCorrecta As Boolean
Por el contrario, las constantes se
usan para guardar valores que no cam-
bian nunca a lo largo del programa.
Const Pi = 3.141592 
Const Gravedad = -9.8
Luego, la idea es hacer referencia a es-
tas constantes, sin repetir varias veces
el valor explícito que almacenan.
Estructuras de decisión
Se usan para decidir cómo sigue el flu-
jo del programa, según el resultado de
una expresión (que, generalmente, invo-
lucra variables o constantes). Ejemplos:
Dim RespuestaCorrecta As Boolean
[...]
If RespuestaCorrecta = True Then
MsgBox “¡Muy bien!”
Else
MsgBox “Incorrecto”
End If
Mientras que la estructura del IF deci-
de si una expresión es verdadera o no, la
u s e r s . t e c t i m e s . c o m 37
El área de trabajo de Visual Basic:
Barra de Título
Barra de Menúes
Barra de Herramientas
Caja de
Herramientas
Diseñador de
formularios
Explorador de
proyectos
Posición del
formulario
Ventana 
de 
propiedades
NT_ProgramacionUEx#44.qxd 5/9/01 5:22 PM Page 37
estructura Select Case puede optar en-
tre varios valores:
Dim Equipo As String
[...]
Select Case Equipo
Case “Boca”
MsgBox “Xeneizes”
Case “River”
MsgBox “Millonarios”
Case Else
MsgBox “Equipo desconocido”
End Select
Basándose en el valor de la variable
Equipo, el programa muestra un mensaje.
Bucle For-Next
Es una estructura que se usa para repe-
tir la ejecución de un bloque de instruc-
ciones una cantidad exacta de veces. 
Vamos al ejemplo:
Dim i As Integer
For i = 1 to 10
MsgBox i
Next i
Nos muestra los números del 1 al 10. A
medida que el ciclo se repite, aumenta
en uno el valor de la variable “i”. Obvia-
mente, se puede elegir cualquier varia-
ble numérica para controlar el bucle.
Bucle Do-Loop
Se usa para ejecutar un bloque de ins-
trucciones hasta (Until) o mientras (Whi-
le) se cumpla cierta condición.
Do
[...]
Loop Until condicion
La palabra clave “Until” se puede
reemplazar por “While” para obtener el
otro comportamiento. Además, la con-
dición también se puede situar luego de
“Do”.
Funciones del lenguaje
Como todo lenguaje, Visual Basic viene
con un pack de funciones útiles para
ayudar al programador. Hay algunas pa-
ra el tratamiento de cadenas de caracte-
res (strings), funciones matemáticas, pa-
ra manejar fechas y horas, dar formato a
expresiones, y mucho más. Por ejemplo:
Dim Longitud As Integer
Dim Nombre As String
Nombre = “Programación”
Longitud = Len(Nombre)
Aquí, la longitud del texto contenido
en la variable Nombre guardada en la
variable numérica Longitud, mediante
el uso de la función Len. Esta función
recibe como único parámetro el texto
cuya longitud se quiere averiguar, pero
otras funciones pueden recibir más pará-
metros (valores o variables de entrada).
Algunas funciones útiles
Cortitas y al pie, vamos a ver algunas
funciones útiles que nos pueden ayudar.
Tené en cuenta que, para hacerlo breve,
no están incluidas en un ejemplo, pero,
como todas son funciones, devuelven un
valor para utilizar a gusto (almacenarlo
en otra variable, imprimirlo, mostrarlo
en un mensaje, etc.). Dicho sea de paso,
en Visual Basic todo texto seguido de un
apóstrofo (’) es un comentario, y se ig-
nora. Ahí van:
‘Devuelve el largo de la cadena,
o sea 5
Len(“USERS”)
‘Devuelve la cadena “FOREST GUMP”
UCase(“forest gump”)
‘Devuelve los 4 primeros
caracteres (“Boca”)
Left(“Boca Juniors”, 4) 
‘Reemplaza el primero por el
segundo...
Replace(“Pipi”, “i”, “o”)
‘Un mensaje con pregunta
If MsgBox(“¿Le ponés queso a los
fideos?, vbYesNo) = vbYes Then
MsgBox “Yo también.”
Else
MsgBox “¡Sacrilegio!”
End If
‘Para ingresar un dato
Nombre = InputBox(“¿Cómo te
llamás?”)
En el combo de la izquierda hay
que indicar el objeto deseado, y en
el de la derecha, elegir el evento
que se quiere programar. En la
lista izquierda también existe la
sección especial [Declarations],
para declarar variables y acceder 
a otros procedimientos en la lista
de la derecha.
Tipos de datos en Visual Basic
Éstos son los tipos de variables más comunes en Visual Basic. Hay más, pero
inicialmente, con éstos es suficiente.
Tipo Descripción
Byte Numérico, valores desde 0 hasta 255.
Bolean Sólo puede contener Verdadero o Falso (True o False).
Integer Enteros, de –32.768 a 32.767.
Long Enteros largos, de – 2.147.483.648 a 2.147.483.647.
Single Números en coma flotante, precisión simple.
Double Números en coma flotante, doble precisión.
String Almacena cadenas de caracteres.
Date Almacena fechas.
u s e r s . t e c t i m e s . c o m38
NT_ProgramacionUEx#44.qxd 5/9/01 5:22 PM Page 38
da a derecha. Acordate de que todas tie-
nen el mismo Name, pero se diferencian
por su Index (que comienza en 0).
A codificar
Lo primero que debemos codificar es
qué pasa cuando el programa arranca. Si
hacemos doble clic sobre cualquier sec-
tor libre del form, accedemos a la ven-
tana de código en el evento Load. Este
evento se dispara al cargar el form, que,
como es el único, indica el comienzo de
la aplicación. El código es:
Private Sub Form_Load()
lblLetrasJugadas = “”
lblBienvenida = “¡Bienvenido!”
End Sub
Lo siguiente es declarar dos variables
que vamos a necesitar globalmente: Pa-
labra (la palabra ingresada) y Errores
(el contador de desaciertos). Para eso,
en la ventana de código vamos a la sec-
ción [General] (a la izquierda) y [De-
clarations] (a la derecha), y escribi-
mos:
Dim Palabra As String
Dim Errores As Byte
Lo próximo es programar qué pasa
cuando el usuario cliquea en [Nuevo].
Para eso, buscamos el objeto “cmdNue-
vo”, y en el evento Click ingresamos:
probó, para que no se olvide. Es la que
muestra las letras “GEOM”.
• El recuadro que encierra el área de
juego es un marco (fraJuego). 
• Dentro del recuadro, hay un control
de imagen (imgHorca), que usaremos
para mostrar el jugador a medida que va
perdiendo.
• Finalmente, hay dos botones: Nuevo
(cmdNuevo) y Salir (cmdSalir).
Ahora bien, seguramente habrás notado
que no dijimos qué eran las letras que for-
man la palabra en juego. Son etiquetas,
pero con una cualidad especial: forman un
arreglo de objetos. ¿Qué es eso? En lugar
de crear varias etiquetas por separadocon
un nombre distinto cada una, creamos un
solo arreglo de etiquetas, con un único
nombre, e identificamos a cada una me-
diante un subíndice (propiedad Index de
cada una). ¿Cómo se crea? Paso a paso:
• Tiramos la primera etiqueta dentro
del marco. La llamamos lblLetras y po-
nemos su propiedad Caption en un
guión bajo (“_”).
• Hacemos Copy-Paste de esa etique-
ta, siempre dentro del marco.
• Entonces, VB nos advierte que tene-
mos otro control con el mismo nombre
(el que ya existe), y nos pregunta si que-
remos cambiarle el nombre o crear un
arreglo. En nuestro caso, creamos el
arreglo eligiendo [Yes].
A medida que vamos pegando etiquetas,
las vamos ubicando en orden, de izquier-
La idea es hacer un pequeñojuego del tipo Ahorcado, yaque todos sabemos las reglas y
la lógica es bastante simple. Antes de
comenzar, sería bueno que tomes el
ejemplo terminado del CD y lo pruebes,
para ver cómo funciona.
El formulario
Abrimos VB, creamos un proyecto, y ya
estamos listos para empezar. Antes de
comenzar a tirar objetos en el form prin-
cipal, trabajamos con sus propiedades:
• Vamos a la ventana de propiedades,
y cambiamos la propiedad Name de
form1 a frmAhorcado.
• Después, cambiamos el título de la
ventana modificando la propiedad Cap-
tion (por ejemplo, “Ahorcado v1.0”).
Ahora bien, la próxima propiedad que
nos interesa es BorderStyle. Ésta se
utiliza para definir el tipo de borde que
tiene la ventana. Hay bordes fijos (Fi-
xed), bordes que permiten el cambio de
tamaño (Sizeable), y otros para crear
diálogos o cajas de herramientas. Como
nosotros vamos a tener un borde fijo,
cambiamos la propiedad Border a “1 –
Fixed Single” (esto impedirá que el
usuario ajuste el tamaño del form). Ha-
brás notado que, al hacer esto, el botón
de minimizar desapareció de la barra de
títulos. Para volver a colocarlo, basta
con cambiar la propiedad MinButton de
False a True. Otras que usamos en este
form fueron StartUpPosition e Icon,
pero dejamos que las descubras solo.
Los objetos 
del formulario
La figura de arriba muestra el form en
tiempo de diseño, y la figura de abajo,
el ejemplo terminado. Ahí se ven los
controles que vamos a ubicar, que son:
• Una etiqueta (lblBienvenida), para
el mensaje de bienvenida. El texto entre
paréntesis indica el nombre (propiedad
Name) del objeto.
• Otra etiqueta (lblLetrasJugadas),
que indica las letras que el jugador ya
El Ahorcado en tiempo de diseño, en el
IDE de Visual Basic.
El Ahorcado v1.0 terminado, y en
ejecución. La palabra es bastante
fácil... aunque parece que nuestro
amigo está a punto de ser colgado.
u s e r s . t e c t i m e s . c o m40
El clásico Ahorcado en versión digital
Mi primer programa
NT_ProgramacionUEx#44.qxd 5/9/01 5:22 PM Page 40
u s e r s . t e c t i m e s . c o m 41
Private Sub cmdNuevo_Click()
NuevoJuego
End Sub
¿Qué es NuevoJuego? Es un procedi-
miento, una subrutina. Al escribir su
nombre la estamos invocando, y comien-
za a ejecutarse. Para crear el procedi-
miento, basta con situarse debajo del
“End Sub” que acabamos de ver, y tipear
“Sub NuevoJuego”, seguido de <EN-
TER>.
El código de este procedimiento se ve
en la Sección 1 del listado de código. Bá-
sicamente, lo que hace es mostrar un diá-
logo para que se ingrese una palabra (In-
putBox), convertirla a mayúsculas (UCa-
se), guardarla en la variable Palabra, ini-
cializar el estado de algunos controles y
otras variables. Finalmente, invoca a otro
procedimiento llamado CargarPalabra
(Sección 2). Éste oculta todas las etique-
tas de letras (el ciclo For va de 0 a lblLe-
tras.Ubound, que es el último subíndice
del arreglo de etiquetas), y luego toma la
palabra cargada (variable Palabra) y
muestra los guiones necesarios; además,
guarda en la propiedad Tag de cada eti-
queta la letra real que contiene.
Finalmente, sólo resta ver qué pasa
cuando el usuario tipea las letras. Para
que nuestro form reciba eventos de te-
clado, es necesario establecer su propie-
dad KeyPreview en True. Ahora, lo que
nos interesa es el evento KeyPress del
form, que se dispara cuando el usuario
pulsa una tecla. El código del evento es:
Private Sub Form_KeyPress(KeyAscii
As Integer)
JugarLetra UCase(Chr(KeyAscii))
End Sub
Este evento recibe como parámetro el
código ASCII de la letra. Lo convertimos
a un carácter (Chr) y a mayúsculas (UCa-
se), y se lo pasamos como parámetro al
procedimiento JugarLetra.
La Sección 3 muestra el código de es-
te procedimiento. Es el más complejo, ya
que debe fijarse si la letra está en la pa-
labra (InStr), mostrar las letras en las
etiquetas (comparando la letra ingresada
con la propiedad Tag de cada etiqueta),
actualizar la imagen (propiedad Picture
de imgHorca), y determinar si acaba de
ganar o perder.
1
2
3
Sub CargarPalabra()
Dim i As Integer
For i = 0 To lblLetras.UBound
lblLetras(i).Visible = False
Next i
For i = 1 To Len(Palabra)
lblLetras(i - 1).Tag = Mid(Palabra, i, 1)
lblLetras(i - 1).Caption = “_”
lblLetras(i - 1).Visible = True
Next i
End Sub
Sub JugarLetra(Letra As String)
Dim Termino As Boolean
Dim i As Integer
If InStr(Palabra, Letra) <> 0 Then
Termino = True
For i = 1 To Len(Palabra)
If lblLetras(i - 1).Tag = Letra Then
lblLetras(i - 1).Caption = Letra
End If
If lblLetras(i - 1).Caption = “_” Then
Termino = False
End If
Next i
Else
Errores = Errores + 1
lblLetrasJugadas = lblLetrasJugadas & Letra
imgHorca.Picture = LoadPicture(App.Path & _
“\horca” & Errores & “.bmp”)
End If
If Errores = 6 Then
MsgBox “¡Ganaste!”
NuevoJuego
End If
If Termino Then
MsgBox “¡Perdiste!”
NuevoJuego
End If
End Sub
Sub NuevoJuego()
Palabra = InputBox(“Ingrese su palabra (15 letras máx):”)
Palabra = UCase(Palabra)
imgHorca.Picture = LoadPicture(“”)
lblLetrasJugadas = “”
Errores = 0
CargarPalabra
End Sub
NT_ProgramacionUEx#44.qxd 5/9/01 5:22 PM Page 41
u s e r s . t e c t i m e s . c o m42
Cuando hablo con gente que quiere aprender a progra-mar, siempre me hace la misma pregunta: “¿Qué pro-grama puedo hacer?”. Ya eligieron un lenguaje y es-
tán decididos a aprender, pero no saben qué proyecto encarar.
Eso sí que es un problema, porque la mejor forma de aprender,
muchos dirán lo mismo, es pegando el traste en la silla y per-
siguiendo un objetivo concreto. Tenés que pensar para vos:
“Quiero hacer un programa que haga tal y cual cosa, y hasta
que no lo saque, no me levanto de la silla”. 
Por ejemplo, supongamos que el objetivo es una agenda con
recordatorios. A la semana de haberla empezado, resulta que
no sabemos cómo hacer que el recordatorio nos avise con un
sonido de alarma... “Bah... mejor lo dejamos así, sin alarma so-
nora”. ¡No! Ése es el gran error. Hay que investigar, buscar y
probar hasta que salgan las cosas. Así, luego de haber termi-
nado el programa, podrás decir: “Con este programa aprendí a
hacer esto y aquello”. 
Un buen primer proyecto sería, justamente, un programa que
permita recordar fechas, cumpleaños, aniversarios, películas
buenas que dan en cable (si es que todavía podemos encon-
trar alguna...), etc. Sería bueno hacerlo con una base de da-
tos Access, y que se instale de forma tal que al iniciar Win-
dows avise si hay algo para estos días... ¿Más ideas? Un me-
motest, una agenda que use bases de datos, una tragamone-
das, un programa para seguir fixtures de fútbol o los campeo-
natos, un tamagochi criollo, un cronómetro con alarmas, un
juego de preguntas y respuestas, una aplicación que enseñe
visualmente las normas de tránsito, un mastermind, etcétera.
Entonces, bien, ya empezaste el proyecto, y todo
está encaminado. Pero cuando las cosas no salen...
¿a dónde recurrir por información? Yo tengo mucha
preferencia por el método autodidacta: comprarse
un buen libro y buscar información en Internet. De
esa manera, uno adquiere un entrenamiento fabulo-
so para resolver nuevos problemas en el futuro.
Cuando algo no sale, recorre los sitios de su lista de
favoritos y, en diez minutos, problema resuelto.
En el otro extremo están los que prefieren los cur-
sos. No digo que sea una mala idea, por el contrario,
en muchoscasos funciona, pero la realidad es que, al
margen de que haya muchos chantas dando vueltas,
hacer cursos sale más caro y no fomenta el espíritu
curioso digno de un programador, que bien podría
aprovechar esas horas buscando tips, trucos, tutoria-
les, ejemplos, fuentes y más chiches en la Red. Tal vez
los cursos convengan más adelante, cuando el progra-
mador está formado pero necesita especializarse en
un tema en particular, sobre el cual no hay mucha in-
formación disponible, o cuando el tiempo apremia.
Finalmente, como sucede con el estudio, un buen
consejo es tratar de formar un grupo de aprendiza-
je. Hay que juntarse con un par de amigos que es-
tén en la misma, y empezar a practicar. Después, se
gana mucho al compartir lo que se va aprendiendo,
y, a su vez, las dudas de uno las puede contestar el
otro, y viceversa. ✕
DIEZ CONSEJOS ÚTILES
1 Elegir un lenguaje apto para aprender, como Visual Basic o Delp-hi. Dejar los lenguajes avanzados, como C, para más adelante.
2 Es conveniente comenzar con un proyecto simple, factible y con unobjetivo concreto.
3 No dejar los programas a medio hacer. Es preferible recortar fun-cionalidad, pero cumplir el ciclo y terminar el programa.
4 Juntarse con amigos o compañeros que estén en la misma situa-ción, y formar un grupo de estudio para aprender entre todos.
5 No quedarnos sentados esperando a que un curso nos dé los con-ceptos masticados y servidos en bandeja de plata.
6 Aprender por la vía autodidacta. En Internet hay una parva de in-formación, y los libros también son una excelente opción.
7 Encontrar dos o tres buenos sitios del lenguaje elegido y suscribir-se a sus newsletters, para estar siempre actualizado.
8 Ser modesto. En una comunidad de programadores, más vale pasarpor tonto y aprender, que aparentar mucho y decir pavadas.
9 Buscar un buen foro de discusión en la Web. “El que no sabe y pre-gunta, pasa vergüenza una vez. El que no sabe y no pregunta, pasa
vergüenza siempre” (proverbio).
10Compartir información. Así como es interesante ver código de otroprogramador, es muy bueno no ser egoísta y compartir el nuestro.
El sitio de la MSDN cuenta con toda la documentación de
referencia, newsgroups, artículos, código e información de los
lenguajes de programación de Microsoft. Encontralo en
msdn.Microsoft.com.
Cómo aprender
NT_ProgramacionUEx#44.qxd 5/9/01 5:22 PM Page 42

Continuar navegando