Вы находитесь на странице: 1из 321

Page 1 of 321

REGLAS DEL CDIGO


Page 2 of 321
Hola! Bienvenido a Reglas del Cdigo!
Estas a punto de emprender una aventura de
aprendizaje a campo traviesa.
Acompaa a Nikki y a Cliff mientras manejan la
camper en el rally de carretera Reglas del
Cdigo. Sus buenos amigos, Jen y Dirk, tambin
participan y t ests invitado! El rally de
carretera tiene 12 ciudades de destinos. Para
terminar el rally, Nikki y Cliff deben viajar a
cada destino en un orden particular. Durante el
trayecto te ensearn a programar en Visual
Basic .Net usando Visual Studio .Net de
Microsoft.
En este viaje aprenders mucho de Nikki y Cliff. Ambos son guerreros del cdigo
Visual Basic .Net. Ellos te pondrn en camino presentndote la programacin con
Visual Studio .Net y antes de que te des cuenta escribirs tu primer programa, el
tradicional Hello World. Ese es tan solo el principio. Pronto disears formatos,
aadirs elementos como botones y cuadros de texto y configurars sus propiedades.
Entonces comienza la diversin. Nikki y Cliff te ensearn las bases de la
programacin: cmo usar variables, instrucciones de decisin, bucles y funciones. Les
dars vida a los formatos y botones. Y entonces estars programando.
Emocionado? Entonces vmonos! Esta es una lista de todos los destinos a los que
viajars en el rally de carretera Reglas del Cdigo.
Everywhere, Wisconsin (programacin y programadores)
Ideal, Illinois (Visual Studio .Net y tu primer programa)
Pseudo, Pennsylvania (planeacin y diseo del programa)
Formsville, Virginia (formatos)
Proper, Georgia (propiedades)
XY, Arkansas (variables)
Switchboard, Oklahoma (operadores)
Whatif, Texas (instrucciones condicionales)
IfElse, New Mexico (instrucciones condicionales complejas)
Def Valley, California (bucles definidos)
Whatever, Colorado (bucles indefinidos)
Function, South Dakota (funciones)
Cuando llegues a cada destino, el comit del rally Reglas del Cdigo te someter a
una pequea prueba para que puedas presumir lo que has aprendido en el trayecto.
Tambin tendrn algunos retos interesantes para que los codifiques. Estos son
proyectos que querrs mostrarle a tus amigos. Listo? Vamonos!.
Plan del curso

Unidad 0: Reglas del Cdigo
Conducir la camper
El Mapa de ruta y los destinos
Los aparatos electrnicos de Nikki

Unidad 1: La programacin se encuentra en todo
Los programas en la vida cotidiana
Page 3 of 321
Lo que hacen los programadores
Qu es un programa?
Opciones de lenguajes de programacin
Sintaxis del lenguaje de programacin
Sintaxis de Visual Basic.Net

Unidad 2: Visual Studio .Net e IDE
Visual Studio.Net
Iniciar Visual Studio
Usar Visual Studio.Net
Pgina de inicio de IDE
Mi perfil
Crear un proyecto nuevo
Ventana de proyecto nuevo
Ventana de diseo de formato
Ventana de cuadro de herramientas
Mover y redimensionar un botn
Agregar un cdigo al botn
Crear tu solucin
Creacin exitosa
Creacin fallida
Iniciar tu programa
Desplegar el cuadro de mensaje
La ventana de salida
Guardar tu proyecto
Archivos y carpetas de solucin para Visual Basic

Unidad 3: Pseudo-cdigo
Tipos de instrucciones de cdigo
Qu es un pseudo-cdigo?
Comentarios de cdigo
Pseudo-cdigo como comentario
Sangra y espacio en blanco

Unidad 4: Formatos
Aplicaciones de Windows
Diseo del formato
Uso del formato
Propiedades del formato
Controles y propiedades del formato
Desencadenar eventos
Cuadros de mensaje

Unidad 5: Propiedades y mtodos
Propiedades
Dnde inicia el cdigo
Leer propiedades con el cdigo
Configurar propiedades con el cdigo
Page 4 of 321
IntelliSense y notacin de punto
Mtodos
Llamar mtodos con el cdigo

Unidad 6: Asignaciones y variables
Asignaciones
Tipos
Tipos primitivos
Qu son las variables?
Por qu usar variables?
Declarar variables
Dnde declaras las variables?
Inicializar las variables
Usar las variables
Entenderse con las variables
Otros tipos de variables

Unidad 7: Operadores
Operadores
Operadores aritmticos
Operadores de cadena
El operador Not
Usar operadores en instrucciones de asignacin
Operadores aritmticos en accin
El operador Not y los operadores concatenados en accin
Depuracin del cdigo
Entrar al cdigo

Unidad 8: If sencillo
Tomar decisiones
Lgica booleana
Operadores booleanos
Operadores de comparacin
Ejecutar un cdigo condicional
Instrucciones IfThen
Ms de una instruccin IfThen
Ms de una oracin condicional
Opcin mltiple
Operadores booleanos en el cdigo

Unidad 9: If complejo
Ampliacin de If.Then
Instrucciones IfThen anidados
Condiciones contrarias
IfThenElse
Entrar a una instruccin IfThenElse
Instrucciones If en C# y J#
Operadores booleanos y operadores de comparacin en C# y J#
Page 5 of 321


Unidad 10: Bucles finitos
Bucles
ForNext
Entrar a un bucle ForNext
Mil problemas de suma
Sacar la basura
Bucles dentro de bucles
Letrero de salida
Instrucciones ForNext en C# y J#

Unidad 11: Bucles infinitos
Bucles infinitos
Bucle Do While
Entrar al Bucle Do While
Bucle Do Until
Bucles en accin
Formatos de bucle alternos
Salir de Do
Bucles indefinidos en J# y C#

Unidad 12: Funciones
Qu son las subs?
Escribir tus propias subs
Usar tu propia sub
Escribir y usar subs con argumentos
Escribir tus propias funciones
Usar tus propias funciones
Subs y funciones integradas
Algunas funciones de cadena
Generador de nmeros aleatorios
Funciones de conversin
Subrutinas y funciones en J# y

Page 6 of 321

Lista de tareas de Reglas del Cdigo

No. de tarea
Titulo de la
tarea Descripcin
01 Ejercicio 01
Computacin
cotidiana
Mencionar por lo menos cuatro ejemplos que
demuestran que las computadoras forman parte
de la vida cotidiana.
01 Ejercicio 02
Trabajos de
informtica
El uso de Internet o de otros recursos determina
el salario inicial de los profesionistas de la
tecnologa de la informacin en tu localidad.
01 Reto Ninguno No hay Reto para la unidad 01.
02 Ejercicio 01 Hello World Escribir un programa llamado Hello World.
02 Ejercicio 02 Mi nombre es Escribir un programa llamado Mi Nombre es.
02 Reto Comida rpida Desplegar imgenes de comida rpida.
03 Ejercicio 01
Empacar para el
viaje
Escribir un seudo cdigo para describir los pasos
requeridos para empacar para tu viaje.
03 Ejercicio 02 Lavar los trastes
Escribir un seudo cdigo para describir los pasos
requeridos para lavar los trastes
03 Reto Pecera
Contar el nmero de peces de cada color, luego
calcular que porcentaje representa cada uno.
04 Ejercicio 01 Quin es quin
Crear un formato y ajustar las propiedades del
objeto colocado en el formato usando la
ventana. Propiedades para que puedas aprender
ms acerca de tus compaeros de viaje.
04 Ejercicio 02
El precio de la
Pizza
Ayudar a los clientes a evaluar el precio de su
pizza.
04 Reto Gato Completar el programa para el juego Gato.
05 Ejercicio 01 Arco iris Crear un arco iris.
05 Ejercicio 02
Medidor de
viaje
Ajustar un control de desplazamiento usando el
cdigo.
05 Reto Flores
Ocultar y mostrar imgenes de flores usando el
cdigo.
06 Ejercicio 01 Pedazo de Pi Mostrar el numero Pi en diferentes formatos.
06 Ejercicio 02 Rana saltarina Escribir un programa de juego de Rana saltarina.
06 Reto Bicho Encontrar 10 errores en un programa.




Page 7 of 321

No. de tarea Titulo de la tarea Descripcin
07 Ejercicio
01 Costo de la gasolina Calcular el costo de la gasolina.
07 Ejercicio
02
Depurar un
programa
Usar herramientas de depuracin de Visual
Studio.NET.
07 Reto
Calculadora de
volumen
Calcular el volumen de un cubo y de una
esfera.
08 Ejercicio
01 Ideas de regalos Sugerir ideas de regalo para los vendedores.
08 Ejercicio
02
Programacin de
una encuesta de
aptitudes
Escribir un programa de encuesta para ayudar
a otros alumnos a decidir si deben tomar un
curso de programacin.
08 Reto Zap
Escribir un juego de Arcade donde se trate de
hacer clic sobre un objetivo mvil.
09 Ejercicio
01
Puntuaciones de
golf
Calcular las puntuaciones de cuatro jugadores
de golf.
09 Ejercicio
02 Cuadrado mgico
Juego del cuadrado mgico. Construir un
cuadro mgico de 3 x 3.
09 Reto Lanzar la moneda
Dejar que la computadora lance una moneda
varias veces.
10 Ejercicio
01 Contar conejos
Cunto podra crecer la poblacin de conejos
si vivieran para siempre?
10 Ejercicio
02 Nmeros primos Calcular nmeros primos.
10 Reto Roth IRA Escribir una calculadora de Roth IRA.
11 Ejercicio
01 Tiro al blanco Tratar de dar en el blanco en tiro con arco.
11 Ejercicio
02 En seguida
Contar lanzamientos de moneda idnticos
consecutivos.
11 Reto Calculadora GPA Calcular un promedio de calificaciones.
12 Ejercicio
01 Canadiense
Convertir las unidades canadienses de medida
a americanas y viceversa.
12 Ejercicio
02 Adivinador
Con base en el nmero de vocales en la
pregunta, generar una respuesta aleatoria.
12 Reto El gato y el ratn
El gato persigue al ratn hasta que lo atrapa o
el ratn escapa.



Page 8 of 321
Seguimiento de tareas del estudiante de Reglas de cdigo

No. de tarea Titulo de la tarea Fecha
compromiso
Completado
01 Ejercicio
01
Computacin cotidiana

01 Ejercicio
02
Trabaja?

01 Exmen Ninguno

02 Ejercicio
01
Hello World

02 Ejercicio
02
MiNombreEs

02 Exmen Comida rpida

03 Ejercicio
01
Empacar para el viaje

03 Ejercicio
02
Lavar los trastes

03 Exmen Pecera

04 Ejercicio
01
Quin es quin

04 Ejercicio
02
El precio de la pizza

04 Exmen Gato

05 Ejercicio
01
Arco iris

05 Ejercicio
02
Medidor de viaje

05 Exmen Flores

06 Ejercicio
01
Pedazo de Pi

06 Ejercicio
02
Salta rana

06 Exmen Splat

07 Ejercicio
01
Gas Cost

07 Ejercicio
02
Depurar un programa

07 Exmen Calculadora de volumen

08 Ejercicio
01
Ideas para regalos

08 Ejercicio
02
Encuesta de aptitudes de
programacin

08 Exmen Zap

09 Ejercicio
01
Resultados de golf

Page 9 of 321
09 Ejercicio
02
Cuadrado mgico

09 Exmen Volado

10 Ejercicio
01
Contar conejos

10 Ejercicio
02
Nmeros primos

10 Exmen Roth IRA

11 Ejercicio
01
Blanco

11 Ejercicio
02
En fila

11 Exmen Calculadora GPA

12 Ejercicio
01
Conversin canadiense

12 Ejercicio
02
El adivino

12 Exmen El gato y el ratn



Unidad 1 - Everywhere, Wisconsin Pg. 10 de 321



Temas en el camino a
Everywhere:

Los programas en la vida
cotidiana

Lo que hacen los
programadores

Qu es un programa?

Opciones de lenguajes de
programacin

Sintaxis del lenguaje de
programacin

Sintaxis de Visual Basic.NET

Llegada a Everywhere


Unidad 1 - Everywhere, Wisconsin Pg. 11 de 321
Los programas en la vida cotidiana
Voy a dejar que Cliff maneje primero para que
tengamos la oportunidad de conocernos mejor.
Ya te cont que mi padrastro es programador?
Solo que no escribe programas para las PC, sino
unos que se usan para control de robots en una
planta que fabrica mquinas de escribir. Una vez
tuvo un error en su programa y los robots hicieron
todas estas mquinas de escribir sin las teclas de
las letras Q, W, E, R, T e Y!
Es sorprendente ver cuantas cosas a nuestro
alrededor contienen programas y es todava ms
sorprendente cuantas se han diseado o probado por medio de programas
de computadora. No slo las calculadoras, los robots y las computadoras
usan programas. Muchos aparatos y artculos de entretenimiento e incluso
coches son programables.




Unidad 1 - Everywhere, Wisconsin Pg. 12 de 321
Esta camper, por ejemplo. Contiene como un milln
de elementos que probablemente fueron diseados
en una computadora. Es probable que la forma
aerodinmica fue modelada y probada en un tnel de
viento simulado en una computadora. Los asientos,
la cocina y las camas probablemente fueron
diseados en una computadora y despus ajustados
en un modelo tridimensional de la camper. Y tal vez,
algunas de las partes fueron hechas por robots
controlados por computadora como los de la fbrica
de mi padrastro.
Hay mucho ms, como el sistema de
posicionamiento global, el microondas, y
el estreo en la camper. Todos se pueden
programar y ajustar por medio de un
control remoto. Esto significa que
contienen programas para controlar lo que efectan cuando oprimes un
botn. Estos programas estn permanentemente grabados en los
procesadores que contienen las tarjetas electrnicas, pero primero alguien
tuvo que escribirlos. Adems, piensa en la msica electrnica que compone
Dirk. Independientemente de que sea buena o mala, toda se realiza en una
computadora. Incluso escribi un programa para guardar todas las versiones
de sus letras cursis para que no se le olvide ninguna de sus grandes ideas.
Lo bueno acerca de los programas es que se usan para resolver todo tipo de
problemas y llevar a cabo toda clase de actividades. En la actualidad casi
todos usan una computadora en el trabajo y en el hogar para escribir cartas,
hacer hojas de clculo y bases de datos, y llevar el control de una cuenta
bancaria. Casi todos los negocios usan programas para llevar un registro de
sus movimientos financieros, sus clientes y de todo lo que fabrican o
compran. Muchos de los programas se usan para almacenar y recuperar
informacin, filtrarla, y presentarla de diferentes maneras. Y muchos se
escriben para investigar problemas difciles como la inteligencia artificial, el
calentamiento global, y la gentica. Adems hay todo tipo de programas
especializados que se usan para disear partes, dibujar grficos, o para
juegos; es probable que para cualquier cosa que se te ocurre existe un
programa. Y ni hablar de los programas de Internet, en lnea, y de realidad
virtual.
Lo increble es que hay personas que escriben programas slo por diversin. Un profesor que
tena en la preparatoria escribi un programa que creaba automticamente nuestra tarea de
matemticas. Su hermana escribi un programa que compone versos haiku y que los traduce al
islands. Le un artculo de un hombre que construy un robot Lego y lo program para que
Costuras de las llantas Horno de micro
ondas
Diseo de la Aire acondicionado
carrocera
Cdigo integrado

Diseo habilitado por cdigo


Unidad 1 - Everywhere, Wisconsin Pg. 13 de 321
armara el cubo de Rubik. No se por qu lo hizo, tal vez fue slo para demostrarse que lo poda
hacer.

Quiero programar video juegos tridimensionales en
lnea e interactivos, o tal vez escribir programas de
actuara para analizar las estadsticas de mortalidad
para una compaa de seguros.


Creo que tengo un ejercicio sobre programacin de computadora en mi organizador personal.




01 Ejercicio 01 Computacin
cotidiana

Enlista por lo menos 4 ejemplos que demuestran que las
computadoras forman parte de la vida cotidiana. No uses los
ejemplos que se encuentran en este curso, piensa en
aplicaciones diferentes.
Lo que hacen los programadores
Sabes, mucha gente cree que los programadores
son esos chicos y chicas cerebritos que se
Recomendacin para el profesor

Lego y el cubo de Rubik
http://jpbrown.i8.com/cubesolver.html

Computacin cotidiana

En este ejercicio
explorars algunas formas
en las que la programacin
es parte de la vida
cotidiana.
El archivo
01_proveit01_files tiene
instrucciones para este
ejercicio y cualquier
archivo de apoyo que
necesites.
Como cuando empec con mi grupo,
tuve que decidir qu instrumentos
usar, quines seran los msicos,
qu canciones tocaramos y en
dnde tocaramos.


Unidad 1 - Everywhere, Wisconsin Pg. 14 de 321
sientan frente a la computadora y tecleen cdigos mientras comen pizza fra
y toman refrescos cafenados toda la noche. Aunque ese es la profesin de
mis sueos, hay mucho ms que eso detrs de un programador.
Los buenos programas no se hacen de la noche a la maana. Se requiere
mucha planeacin cuidadosa y trabajo de diseo para crear un programa de
computacin que haga lo que se supone que debe hacer. Tambin debe ser
fcil de modificar, libre de errores y simple de usar. Para grandes proyectos
de programacin puede haber equipos de cientos de programadores bien
capacitados, organizados y administrados. Entonces, aunque escribir un
cdigo es parte del trabajo de un programador, l o ella tambin hacen
muchas otras cosas:
deciden qu har el programa;
disean la interfase del usuario;
deciden qu lenguaje de programacin usar;
disean la arquitectura del programa y como funcionarn en conjunto partes del mismo;
establecen los estilos de codificacin y de diseo;
deciden quin escribir el cdigo para las partes del programa;
administran el programa de desarrollo y llevan un registro de cuanto tiempo les toma
escribir el cdigo;
capacitan a los programadores para usar herramientas de desarrollo;
configuran y administran las computadoras y la red que usan los programadores;
Escriben el cdigo!!!
documentan el cdigo;
disean la base de datos para almacenar informacin que el programa necesita o crea;
manejan el diseo artstico y de grficos;
manejan la entrada de informacin a la base de datos;
prueban el cdigo para asegurarse de que funcione;
empacan el cdigo para que poder instalarlo en la computadora o servidor del usuario;
toman decisiones respecto a caractersticas nuevas;
resuelvan los errores encontrados por los usuarios;
capacitan a los usuarios para usar el programa;
escriben la documentacin y material de
capacitacin para el programa.
Como puedes ver, "escribir el cdigo" es slo
una de las muchas actividades de los
programadores.
Mi organizador personal tiene otro ejercicio
acerca de los trabajos de programacin.
Recomendacin para el
profesor
Los elementos en la lista
representan mltiples opciones
de carrera. Algunos son
sobresalientes para escribir
cdigos; otros, para decidir qu
cdigo tiene que escribirse.
Algunos son mejores para probar
que el cdigo escrito funcione
perfectamente. Y algunos
administran los esfuerzos de
todos estos profesionales de la
computacin.


Unidad 1 - Everywhere, Wisconsin Pg. 15 de 321


01 Ejercicio 02 Trabajos de informtica
Con la ayuda del Internet u otros recursos, determina el salario inicial para los profesionistas de
informtica en tu rea. Compara los salarios para varias categoras tales como Programador,
Analista de Sistemas, Desarrollador de Pginas Web, etc.
Qu es un programa?
Un programa de computacin est conformado por lneas de cdigo escritas
en un lenguaje de programacin parecido al ingls. Para escribir un
programa puedes escoger entre varios lenguajes de diferentes capacidades
segn las necesidades de tu programa. Una vez que termines de escribir el
programa, este se compila en un lenguaje que la computadora puede
comprender y ejecutar.
Puedes escribir muchos tipos diferentes de programas con el mismo lenguaje
de programacin. Por ejemplo, puedes escribir un programa que juegue
gato, otro que muestre imagines en forma de presentacin, y otro que
muestre la orbita de un cohete alrededor de un planeta y todo con el mismo
lenguaje. El cdigo que t escribes es lo que distingue a estos programas y
les da su funcionalidad.
Dicho cdigo define lo que el programa har. Determina que ocurre cuando
oprimas un botn o seleccionas un elemento de una lista. Tu cdigo
representa la "inteligencia" del programa; define cmo ste tomar
Trabajos de programacin

En este ejercicio
investigars los salarios
iniciales de los
programadores y otros
profesionales de la
computacin.
El archivo
01_proveit02_files tiene
instrucciones para este
ejercicio y cualquier
archivo de apoyo que
necesites.


Unidad 1 - Everywhere, Wisconsin Pg. 16 de 321
decisiones, cuntas veces realizar una accin, y qu clculos realizar.
Puedes escribir un cdigo para hacer clculos matemticos, escribir texto,
responder a acciones del usuario, recabar datos, o desplegar informacin.
Escribir un cdigo puede ser un reto pero tambin es divertido y
satisfactorio. Cuando aprendes un lenguaje de programacin, aprendes un
medio nuevo que te permite expresar tu creatividad, explorar, resolver
problemas, y jugar. Es muy similar al trabajo con otros medios como el
barro, el metal o las matemticas.



Unidad 1 - Everywhere, Wisconsin Pg. 17 de 321
Opciones de lenguaje de
programacin
Mi abuelo poda hablar cuatro idiomas:
japons, espaol, swahili e ingls, adems de
un quinto idioma cuando se volvi totalmente
loco. Los lenguajes de computacin son muy
parecidos a los idiomas hablados. Puede que
no suenen o se vean exactamente igual pero
esencialmente se usan para lo mismo: dar
instrucciones a una computadora sobre como
resolver un problema.
Sabas que se estn creando nuevos
lenguajes de programacin todo el tiempo?
Durante los pasados 50 aos se han
desarrollado muchos lenguajes diferentes. Al
igual que los idiomas hablados, algunos ya no se usan. Otros han
evolucionado en su forma y han estado en uso durante 20 30 aos.
Un lenguaje de programacin nuevo se crea tomando las mejores
caractersticas de uno o ms lenguajes existentes, y combinndolas. Los
lenguajes de programacin de hoy reflejan los avances en el equipo de
computacin y la evolucin de los programas anteriores.
Los primeros lenguajes de programacin tenan que programarse en trminos que la
computadora pudiera comprender. Esto significaba escribir programas usando solamente unos y
ceros. Qu tedioso! Finalmente se crearon programas llamados compiladores que convertan el
cdigo, escrito en un idioma que se parece ms al ingls, en los unos y ceros que la computadora
poda comprender. Casi todos los lenguajes de programacin modernos son compilados. Es
decir, estn escritos en lenguajes de programacin similares al ingls y que despus se compilan
o cambian a un cdigo que la mquina puede leer.
En el transcurso de los aos se han creado diferentes lenguajes de
programacin para resolver problemas especficos. FORTRAN, por ejemplo,
fue desarrollado para resolver problemas numricos y realizar clculos. Las
siglas FORTRAN quieren decir lenguaje de traduccin de frmulas (FORmula
TRANslating language). COBOL quiere decir lenguaje comn orientado a los
negocios (Common Business-Oriented Language) y fue desarrollado
primordialmente para aplicaciones de negocios en las que tenan que
procesarse grandes cantidades de datos no numricos. LISP, que quiere
Ve esto:
En Canad hay dos idiomas
oficiales, pero en los dos esta seal
dice DETENGA SU COCHE!


Unidad 1 - Everywhere, Wisconsin Pg. 18 de 321
decir Lenguaje de procesamiento de lista (ListProcessing language) fue
desarrollado para investigar la inteligencia artificial.
Los lenguajes nuevos han evolucionado desde ese entonces con una o ms
ventajas primarias en comparacin con los anteriores. A continuacin
algunos ejemplos:
C: cdigo rpido y eficiente
Java: independencia de plataforma
BASIC: facilidad de uso
Visual Basic: diseo de interfase de usuario por medio de formatos
Perl: manipulacin de texto
Cuando inicias un proyecto nuevo de programacin tienes que definir qu
lenguaje vas a usar. Tiene el lenguaje la funcionalidad que necesitas? Es
de fcil programacin? Ya lo conoces? Ya est instalado en tu
computadora?
Mi lenguaje favorito es Visual Basic.NET. Es poderoso y fcil de usar. Se que
a Cliff le gusta Visual Basic.NET tambin. A Jen le gusta el programa J# (se
pronuncia J sharp), el cual tiene sus races en el lenguaje de programacin
Java. Dirk est aprendiendo C# (se pronuncia C sharp) el cual tiene sus
orgenes en los lenguajes de programacin C y C++. En este viaje
aprenders Visual Basic.NET, pero Jen y Dirk tambin te ensearn algunas
cosas acerca de J# and C#. No est de ms conocer ms que un solo
lenguaje de programacin!


Unidad 1 - Everywhere, Wisconsin Pg. 19 de 321
Sintaxis del lenguaje de programacin
Si viajas por el mundo tal vez necesites encontrar a alguien que hable
ingls. En cualquier idioma hay un modo de preguntar "habla ingls?" Por
ejemplo:
Ingls: Do you speak English?
Alemn: Sprechen Sie Englisch?
Espaol: Habla ingls?
Portugus: Voc fala ingls?
Lenguaje de nios: Ha-fa bla-fas in-fin gle-fes?
En los ejemplos anteriores, no slo las palabras son diferentes, su
organizacin es distinta tambin: los sustantivos, verbos y objetos no tienen
el mismo orden. La palabras y su organizacin constituyen la sintaxis del
lenguaje. La sintaxis define las reglas para hacer una oracin correcta en el
idioma dado.
Al igual que los idiomas, cada lenguaje de programacin tiene su propia
sintaxis, la cual es el vocabulario, gramtica, eleccin de palabras y
estructura que lo constituye. La sintaxis define las reglas para escribir lneas
correctas de cdigo y combinar estas lneas en un programa vlido.
Por ejemplo, todos los lenguajes de programacin modernos pueden
ejecutar una orden "If..then..else". Una tal orden es una forma en la que un
programa puede elegir basndose en la informacin que tiene. Mira, djame
ensearte algunos ejemplos de cdigos en mi computadora porttil que
demuestran la sintaxis de las rdenes "If..then..else" en Visual Basic.NET,
C# y J#. En este punto no te preocupes por su significado, o por
comprender el cdigo, slo busca las similitudes y diferencias que definen su
sintaxis.


Unidad 1 - Everywhere, Wisconsin Pg. 20 de 321


En Visual Basic. NET
If x >5 Then
MessageBox.Show (Soy mayor que 5)
Else
MessageBox.Show (No soy mayor que 5)
End If.


En C#:
If (x >5)
{
MessageBox.Show (Soy mayor que 5);
}
Else
{
MessageBox.Show (No soy mayor que 5);
}


En J#:
If (x >5)
{
MessageBox.Show (Soy mayor que 5);
}
Else
{
MessageBox.Show (No soy mayor que 5);
}

Te diste cuenta de que J# y C# usan el


Unidad 1 - Everywhere, Wisconsin Pg. 21 de 321
Aprender un lenguaje de programacin consiste en aprender su sintaxis,
estructura, y reglas. Tienes que aprender la puntuacin del lenguaje, as
como qu palabras son "reservadas", porque slo se usan como comandos
para el lenguaje. Las palabras reservadas, tambin conocidas como palabras
clave, tienen un significado especial y por lo general una funcionalidad
especial asociada a ellas: le dicen al programa qu hacer. Por ejemplo, las
palabras "If" y "Else" son palabras reservadas en la mayora de los
lenguajes de programacin. Se usan para crear rdenes de cdigo que
toman decisiones.
Cuando aprendes un lenguaje de programacin debes aprender su sintaxis y tambin su
funcionalidad y capacidades. Recuerda que no todos los lenguajes pueden hacer todo. Sin
embargo, todos los que son modernos tienen caractersticas y funcionalidad en comn que
siempre podemos esperar encontrar.


Unidad 1 - Everywhere, Wisconsin Pg. 22 de 321
Sintaxis de Visual Basic.NET
Visual Basic.NET es un lenguaje poderoso y fcil de aprender. Conforme
aprendes a programar en Visual Basic.NET, conocers las palabras
reservadas, la estructura, y los objetos fundamentales que constituyen el
lenguaje. Primero tienes que comprender algunos de los elementos bsicos
de la sintaxis del lenguaje.
Hice una breve lista de algunos elementos clave de la sintaxis en Visual
Basic.NET:
Las lneas de cdigo no tienen un indicador de fin de lnea como un punto y coma (;)
Las lneas de comentario inician con un apstrofe (')
Las llaves { y } no se usan para contener bloques de cdigo
Visual Basic.NET NO diferencia entre maysculas y minsculas. Escribir MyCase es
exactamente lo mismo que escribir myCase o MYCASE.
Oye, Dirk, Cules son algunas de las diferencias sintcticas clave en C#?
Bueno, en C# cada lnea termina con un punto y coma.
Adems, los bloques de cdigo estn contenidos entre llaves, {
y }. Una lnea de comentario inicia con dos diagonales // y C# s
diferencia entre maysculas y minsculas. MyCase es diferente
de myCase y de MYCASE.
Oigan, no se olviden de J#. J# y C# comparten la misma
sintaxis bsica. Por ejemplo, J# usa un punto y coma para
indicar el fin de una lnea de cdigo y los bloques de cdigo se
ponen entre llaves. Las lneas de comentario en J# inician con
// y J# tambin diferencia entre maysculas y minsculas.
Recomendacin para el
profesor
Visual Basic es un buen primer
lenguaje para aprender ya que es
ms benvolo que la mayora. El
tamao de la letra no importa.
Las lneas de cdigo no necesitan
marcarse de manera especial. La
estructura es ms bien intuitiva.


Unidad 1 - Everywhere, Wisconsin Pg. 23 de 321
Llegada a Everywhere
Bienvenido a Everywhere, Wisconsin. Tienes que contestar la pequea
prueba para prepararte para el Comit del rally. En el curso impreso la
prueba no es interactiva. En la versin en lnea de este curso la
computadora revisa las respuestas. Aqu la tienes. Suerte!



Una diferencia importante entre los diferentes
lenguajes de programacin es:
Por lo general un lenguaje de computadora est
constituido por:
Qu hace la compilacin de un programa?
Hay miles de lenguajes de computacin
distintos porque:
Sintaxis

Traduccin

Ortografa
Reune datos en un agrupamiento interno

Asocia objetos de formato con la pgina del cdigo.


Convierte el texto escrito por un programador en un
cdigo que la computadora puede entender
Los cientficos de la computacin tienen que
mantenerse ocupados.
Cada uno se ha creado para resolver problemas
especficos.

Cada marca de computadora requiere un lenguaje
nico
Tablas de traduccin

Lneas de cdigo escritas en un lenguaje de
programacin similar al ingls

Smbolos matemticos creados por
computadoras


Unidad 2 - Ideal, Illinois Pg. 24 de 321


Temas en el camino a Ideal:

Visual Studio.NET y el IDE

Iniciar Visual Studio

Crear un proyecto nuevo

Ventana de proyecto nuevo

Ventana de diseo de formato

Ventana de cuadro de
herramientas

Agregar un cdigo a un botn

Construir tu solucin

Iniciar tu programa

Archivos y carpetas de
soluciones


Unidad 2 - Ideal, Illinois Pg. 25 de 321
Visual Studio.NET y el IDE
Hola, cmo te va hasta ahora? Pudiste
contestar todas las preguntas del comit del rally?
Puede ser que sean ms difciles conforme
avancemos, pero para ese entonces tambin
sabrs ms. Estoy seguro de que no tendrs
problemas. Nikki va a manejar por un rato para
que yo te pueda explicar algunas cosas durante el
camino hacia nuestro siguiente emocionante
destino: Ideal, Illinois.
Durante el trayecto te voy a ensear lo que
necesitars para pasar la prueba de manejo de
IDE. El IDE son las siglas en ingls de Ambiente
de Desarrollo Integrado proporcionado por Visual
Studio.NET de Microsoft. Lo usars para escribir
tu primer programa de Visual Basic.NET. Puedes
usarlo para escribir programas en otros lenguajes
tambin.
Despus de que aprendas sobre IDE y pases el
examen de manejo, estars listo para manejar
tambin y ayudarnos con las pruebas del rally. Despus de todo, no
queremos que alguien ms maneje todo el tiempo o s? No sera muy
divertido.



Unidad 2 - Ideal, Illinois Pg. 26 de 321
Visual Studio.NET
Sabas que es posible escribir un cdigo de computacin usando un simple
procesador de palabras como el bloc de notas o Microsoft Word? Eso, claro,
si quieres hacer las cosas de la manera ms complicada. En su lugar, la
mayora de los programadores como Nikki y yo usamos herramientas de
software para ayudarnos a desarrollar programas con ms facilidad. Y eso es
lo que vas a hacer t tambin, usando Visual Studio.NET de Microsoft.

Visual Studio.NET Microsoft es una herramienta de desarrollo que ayuda a
escribir programas en varios lenguajes de programacin .NET diferentes. Por
ejemplo, cuando agregues un botn a un formato, Visual Studio.NET
automticamente agrega algn cdigo para este botn. Es obvio que Visual
Studio.NET no puede escribir todo el cdigo; despus de todo, no sabe lo
que se supone que tu programa va a hacer. Sin embargo, puede reducir la
cantidad de cdigo que tienes que escribir y el tiempo necesario para
hacerlo.
Visual Studio.NET te facilita la vida tambin de otros modos.
Automticamente colorea tu cdigo segn su significado. Por ejemplo, los
comentarios siempre estn en verde y las palabras claves en azul. Incluso
los errores en sintaxis estn subrayados con una lnea roja ondulante. Esto
te ayuda a identificar y corregir errores antes de que operes tu cdigo.
Visual Studio.NET te ayuda a mantener tu cdigo organizado al almacenarlo
en archivos independientes. De esta manera puedes dividir tu cdigo en
unidades funcionales. Por ejemplo, un archive independiente ser usado
para almacenar el cdigo para cada uno de tus formatos. Visual Studio.NET
facilita la compilacin y operacin de tu programa con slo hacer clic unas
cuantas veces en el ratn. Puedes usar sus funciones auxiliares de
depuracin para buscar errores en tu programa y desplegar informacin
mientras se ejecuta tu programa.
Lo mejor de todo es que, Visual Studio.NET te permite desarrollar programas
en muchos lenguajes distintos, conocidos como los lenguajes .NET. Usas la
misma interfaz familiar de Visual Studio.NET para cada uno. Los lenguajes
.NET incluidos en Visual Studio.NET son:
Visual Basic.NET
C# (se pronuncia C sharp)
J# (se pronuncia J sharp)
C++ ( se pronuncia C plus plus)
ASP.NET (creacin de pginas web)


Unidad 2 - Ideal, Illinois Pg. 27 de 321
Durante nuestro viaje a nuestro prximo destino, te mostrar como usar
Visual Studio.NET para escribir tu primer programa. Usars Visual Basic.NET
como tu lenguaje de programacin primario durante este viaje, pero
tambin te mostraremos ejemplos del cdigo C# y J# a lo largo del camino.
Preprate porque vas a escribir tu primer programa.
Iniciar Visual Studio
Para iniciar Visual Studio:
1. Oprime el botn de inicio
2. Selecciona Programas
3. Selecciona la carpeta Microsoft Visual Studio.Net 2003
4. Selecciona la aplicacin Microsoft Visual Studio.Net 2003
Tambin hay un icono en mi Escritorio que yo puedo usar para abrir Visual
Studio. El icono es una forma rpida de iniciar Visual Studio.NET, slo haz
doble clic sobre l.




Recomendacin para el
profesor
Asegrese de mostrarles a sus
alumnos el mtodo que se usa en
su escuela para ubicar y abrir
Visual Studio. Los alumnos sin
experiencia previa tal vez tengan
dificultad al inicio para navegar
hacia la ubicacin correcta.
Recuerda, la ubicacin de Visual
Studio puede variar de una
computadora a otra. Si ests usando
una computadora en la escuela o la
computadora de alguien ms, Visual
Studio puede encontrarse en un lugar
distinto. Pregntale a tu profesor o al
representante del departamento de
cmputo, si no puedes encontrar el
modo de abrir Visual Studio.NET.


Unidad 2 - Ideal, Illinois Pg. 28 de 321
Usar Visual Studio.NET
Ahora te voy a explicar los pasos para crear tu primer programa Visual
Basic.NET usar Visual Studio.NET. Ya debes tener Visual Studio.NET abierto.
Sigue los pasos conforme te los indico. No slo lee; haz lo que ests
leyendo!

Pgina de inicio IDE
La primera pgina que debes ver cuando abres Visual Studio.NET es la
pgina de inicio. La pestaa Proyectos es seleccionada de manera
predeterminada. Por lo general, veras una lista de Proyectos existentes.
Dado que probablemente esta sea la primera vez que usas Visual
Studio.NET, no habr nada en la lista.



La pestaa Mi perfil es
donde puedes
personalizar Visual
Studio.NET para que se
adapte a tu estilo de
trabajo.

1. Haz clic en la
pestaa Mi perfil.



Unidad 2 - Ideal, Illinois Pg. 29 de 321
Mi Perfil
Mi perfil es donde puedes seleccionar qu tipo de desarrollador eres y
personalizar tu configuracin de estudio de Visual Studio.NET.
1. Selecciona Desarrollador
Visual Studio de la lista
desplegable de perfiles.
2. Revisa que las
configuraciones
predeterminadas sean
Esquema de teclado:
[Ajuste por omisin]
Configuracin de la
ventana:
Visual Studio
Predeterm.
Filtro de ayuda:
sin filtro
3. Selecciona Ayuda interna
para la configuracin
Mostrar ayuda.
4. Selecciona Mostrar pgina
de inicio para la
configuracin de Al inicio.
5. Selecciona la pestaa
Proyectos en la parte
superior de la Pgina de
inicio para continuar.


Unidad 2 - Ideal, Illinois Pg. 30 de 321
Crear un proyecto nuevo
Ahora que haz terminado la configuracin del ambiente Visual Studio.NET,
exploraremos la pestaa de Proyectos. Puedes iniciar un nuevo proyecto o
abrir un proyecto existente desde esta pestaa. Para abrir un proyecto
existente debes hacer clic en el botn Abrir proyecto en la parte inferior de
la pantalla. Despus de que creas tu primer proyecto, aparecer en la lista
de proyectos existentes. Para abrir un proyecto existente, selecciona el
proyecto de la lista y haz clic en Abrir proyecto.
Te voy a ensear a crear un proyecto nuevo para el programa Hello World;
despus escribiremos el programa. Hello World es el primer programa tpico
que escribe la mayora de los programadores. El objetivo es crear un
recuadro de mensaje que diga "Hello World."









1. Haz clic en el botn Proyecto nuevo
para crear un proyecto nuevo. Se
abre la ventana de dilogo Proyecto
nuevo.


Unidad 2 - Ideal, Illinois Pg. 31 de 321
Ventana de Proyecto nuevo
En la pestaa Proyecto nuevo vers que en el panel superior izquierdo
llamado Tipo de proyectos, hay varios tipos de proyectos disponibles en
Visual Studio.NET. Te presentaremos algunos de ellos en breve. El programa
Hello World ser una aplicacin de Windows (las reglas del cdigo slo
usarn aplicaciones de Windows, as es que ni siquiera hay que preocuparse
por las otras plantillas). En esta pestaa no slo seleccionars el tipo de
proyecto y la plantilla sino tambin los nombres de proyecto y las
ubicaciones de archivos
para los proyectos
guardados.
1. Selecciona
Proyectos de
Visual Basic como
Tipo de proyecto.

2. Selecciona
Aplicaciones de
Windows como
plantilla.
3. Teclea el nombre
HelloWorld para el proyecto (los
nombres de archivo no llevan
espacios).
4. Selecciona una ubicacin para guardar
tu proyecto.
5. Haz clic en el botn OK. El proyecto
nuevo se abrir, desplegando un
formato llamado Form1.vb en el lado
izquierdo de la pantalla y el
Explorador de soluciones en el lado
derecho. Sper, no?

Recomendacin para el profesor
Cada escuela tiene sus propias reglas acerca
de la ubicacin para guardar los proyectos de
los alumnos. Sea muy especfico al describir
las reglas de la escuela.
Cada proyecto debe quedarse en su propia
carpeta.


Se crear un directorio
llamado HelloWorld
(que elegiste para
guardar tu archivo) y el
proyecto HelloWorld
quedar guardado en el
directorio.


Unidad 2 - Ideal, Illinois Pg. 32 de 321
Ventana de diseo de formato
La mayora de las veces construirs aplicaciones de Windows que inician con
un formato. stos son la parte del programa que el usuario ve. Podrs poner
objetos en el formato, como botones y cajas de texto. Cuando se hace clic
en un botn, el cdigo se ejecutar para realizar el proceso requerido para
ese botn.
Un formato en blanco puede verse en la ventana principal en el lado
izquierdo de la pantalla. Esta se llama ventana de diseo de formato
(llamada Form1.vb [Design]). El Explorador de soluciones puede verse en el
lado derecho. El formato no tiene botones o cuadros de texto en este punto.
Despus habr tiempo para ponerse creativo con los formatos. Por ahora,
djame mostrarte un par de cosas sencillas que hacer.


Unidad 2 - Ideal, Illinois Pg. 33 de 321


close any window in
Visual Studio.NET by
clicking on the "X" located
in the upper right corner
of the window. You can
open most Visual
Studio.NET windows by
going to View on the Main
Menu and selecting the
appropriate window from
the menu.

You can autohide any
window by clicking on the
thumbtack (pushpin) icon
located in the upper right
corner of the window.
When you autohide a
window, it disappears. A
taskbar will appear along
the right edge of the
screen showing tabs for
the hidden window. If you
move the cursor over the
tab, the hidden window
will slide into view.
Autohide is a great way to
save screen space so you
have a larger code
window. If you click the
pushpin icon again,
autohide will be disabled.
Recomendacin para el
profesor
Aliente a los alumnos a usar el
comando auto-ocultar en todas las
ventanas. Esto hace visible una mayor
rea de la pgina del cdigo y reduce
los errores de codificacin.
Puedes cerrar cualquier
ventana en Visual Studio.NET
al hacer clic en la x ubicada
en la esquina superior
derecha de la ventana.
Puedes abrir la mayora de
las ventanas de Visual
Studio.NET, en Ver en el
Men principal y seleccionar
la ventana apropiada del
men.

Puedes ocultarla de manera
automtica al hacer clic en el
icono de tachuela ubicado en
la esquina derecha de la
ventana. Cuando ocultas una
ventana de manera
automtica, esta desaparece
y aparecer una barra de
tareas en la orilla derecha de
la pantalla que muestra
pestaas para la ventana
oculta. Si mueves el cursor
sobre la pestaa, la ventana
oculta aparecer. La funcin
de auto-ocultar es una
excelente manera de ahorrar
espacio de pantalla si tienes
una ventana con un cdigo
mayor. Si pulsas el icono de
tachuela otra vez, se
deshabilitar el comando
auto-ocultar.


Unidad 2 - Ideal, Illinois Pg. 34 de 321
Ventana de Cuadro de herramientas
Gran parte de las funciones de Visual Studio.NET se accesa al abrir y cerrar
diferentes ventanas. Por ejemplo, para colocar botones y cuadros de texto
en el formato, abrirs la ventana de Cuadro de herramientas, la cual
muestra todos los elementos diferentes que puedes colocar en el formato,
tales como botones, botones de radio, cuadros de texto, listas desplegables,
etc. Aqu es donde crears formatos que se vern geniales.

1. Selecciona Ver de la
barra del Men principal

2. Selecciona Cuadro de
herramientas y abre
esta ventana.

3. Haz doble clic en Botn
para aadir un botn al
formato (El botn que
aadiste puede estar
escondido detrs del
Cuadro de
herramientas; la
moveremos en un
instante)


Unidad 2 - Ideal, Illinois Pg. 35 de 321
Mover y redimensionar un botn
Ahora que haz aadido un botn a un formato, te voy a ensear qu fcil es
mover o redimensionarlo.

1. Haz clic en el botn y
arrstralo al centro del
formato.

2. Mueve el cursor sobre uno de
los cuadros blancos (estos son
los puntos de
redimensionamiento).

3. Mientras mantienes presionado
el botn izquierdo del ratn,
arrastra el punto de
redimensionamiento para
estirar o reducir el tamao del
botn.


Fue fcil no? Ahora vas a aadir el cdigo al botn para hacer que haga
algo cuando el usuario lo oprime.


Unidad 2 - Ideal, Illinois Pg. 36 de 321
Agregar un cdigo al botn
Cuando creamos el botn, Visual Studio.NET automticamente agrega varias
lneas de cdigo a la ventana de cdigo. Ve el siguiente ejemplo.
Public Class Form1
Inherits System.Windows.Forms.Form

Window Forms Designer Generated Code
Private Sub Botn 1_Click(ByVal sender As
System.Object,
ByVal e As System.EventArgs) Handles
Button 1.Click

End Sub

Parece que est en chino, verdad? Pero no te preocupes, te ayudaremos a
traducir conforme avancemos. Por ahora slo encuentra el Button 1_Click.
Esta parte del cdigo se usa cuando el usuario hace clic en el botn. Si
hacemos clic ahora, no pasa nada. Necesitamos decirle a nuestra aplicacin
qu hacer cuando se oprima el botn. De eso trata la programacin. Ests
listo para comenzar?

1. Despus de hacer
doble clic en
Button 1, se abre
la ventana de
cdigo
2. Haz clic en la lnea
en blanco arriba de
End Sub
3. Introduce la
siguiente lnea de
cdigo exactamente como se muestra a continuacin
Recomendacin para
el profesor
Muchos ejemplos de cdigo
en el curso son una sola
lnea en Visual Basic pero
sta se ajusta cuando se
despliega en el curso. Para
continuar una lnea de
cdigo en una segunda lnea
en Visual Basic, finaliza la
primera lnea con un
espacio seguido por un
guin bajo ( _ ).


Unidad 2 - Ideal, Illinois Pg. 37 de 321

MessageBox.Show("Hello, World.")
Esta lnea de cdigo se ejecuta cuando el usuario oprima el botn en el
formato.
Crear tu solucin
Es hora de crear tu solucin. Aqu es donde el cdigo que t y Visual
Studio.NET han escrito se compila en instrucciones que la computadora
puede comprender.

1. Selecciona Crear
de la barra del
Men principal

2. Selecciona Crear
solucin del
men
desplegable



Recomendacin para el
profesor
Las versiones de Visual Basic
anteriores a .NET no requeran
que se seleccione Crear antes de
la ejecucin. .NET siempre
requiere que se seleccione Crear.


Unidad 2 - Ideal, Illinois Pg. 38 de 321
Creacin exitosa
Una vez que termina la operacin Crear, la ventana de salida se abre y
despliega un mensaje, el cual indica si tu creacin fue exitosa o si hubo
errores. Si la creacin fue exitosa, vers el siguiente mensaje en la ventana
de salida:

------ Build started: Project: HelloWorld, Configuration:
Debug .NET ------
Preparing resources...
Updating references...
Performing main compilation...
Building satellite assemblies...

---------------------- Done ----------------------
Build: 1 succeeded, 0 failed, 0 skipped



Unidad 2 - Ideal, Illinois Pg. 39 de 321
Creacin fallida
Supongamos que en vez de introducir MessageBox, cometiste un error e
introdujiste mMessageBox. La ventana de salida arroja un mensaje de error
que se ve as.

------ Build started: Project: HelloWorld, Configuration:
Debug .NET ------
Preparing resources...
Updating references...
Performing main compilation...
C:\VBNETProjects\HelloWorld\Form1.vb(59) : error BC30451:
Name 'mMessageBox' is not declared.
Building satellite assemblies...

---------------------- Done ----------------------
Build: 0 succeeded, 1 failed, 0 skipped

Cuando puede, Visual Basic tambin subraya la ubicacin del error. Al hacer
doble clic en el mensaje de error, el cursor seala el error. Adems se abre
una ventana de lista de tareas que te mostrar los errores especficos.

Si tu creacin contiene errores, regresa y revisa que hayas escrito la lnea de
cdigo para el botn exactamente como se muestra. Despus sigue los
pasos para crear la solucin que te mostramos antes.


Unidad 2 - Ideal, Illinois Pg. 40 de 321
Iniciar tu programa
Tu programa ahora est compilado sin errores. Ests a punto de convertirte
en un programador. Lleg la hora de ejecutar tu primer programa.
1. Selecciona
Depurar de la
barra de Men
principal
2. Selecciona
Iniciar del men
desplegable.
(Tu formato se
despliega y en
el se encuentra
el botn que
agregaste.)
3. Haz clic en el
botn. Ya saba
que lo haras.
Recomendacin para el profesor
Cuando se selecciona Iniciar, Visual Basic efecta
Crear antes de la ejecucin. Si hay errores de
creacin, el sistema pregunta al alumno si quiere
ejecutar el programa de todos modos. La respuesta
correcta es NO. Si el alumno intenta ejecutar el
programa, no podr hacerlo.


Unidad 2 - Ideal, Illinois Pg. 41 de 321
Desplegar el cuadro de mensaje
Cuando haces clic en el botn, un cuadro de mensaje aparece desplegando
el texto "Hello World". Despus de todo, eso es lo que le dijiste a tu
programa que hiciera. Felicidades! Haz ejecutado tu primer programa de
Visual Basic.NET.
1. Haz clic en el
botn OK para
cerrar el cuadro
de mensaje. (El
cuadro de
mensaje
desaparece pero
tu formato sigue
ah. Puedes hacer
clic en el botn
otra vez para
mostrar el cuadro
de mensaje por
segunda vez.)
2. Haz clic en la "X"
en el extremo
superior derecho
de tu formato
para cerrar tu
programa.


Unidad 2 - Ideal, Illinois Pg. 42 de 321
La ventana de salida
Una vez que el programa finaliza, se muestra la informacin de depuracin.
Tienes que avanzar hacia abajo para ver toda la informacin.






Guardar tu proyecto
Es hora de guardar tu proyecto. Esta parte es como cualquier otro programa
de Windows.
1. Escoge Seleccionar archivo de la Barra de Men principal
2. Selecciona Guardar todo del Men desplegable
3. Para salir de Visual Studio.NET, selecciona Archivo de la Barra de Men
principal
4. Selecciona Salir del Men desplegable
Puedes intentarlo t solo. Tengo un Prove-It en mi organizador personal
para ti.
Recomendacin para el profesor
Los alumnos principiantes no usarn la
informacin de depuracin. Se menciona aqu
para que no se sorprendan cuando vean esta
informacin.
Recomendacin para el
profesor
Visual Basic guardar automticamente
el proyecto cada vez que se efecte
Crear.


Unidad 2 - Ideal, Illinois Pg. 43 de 321

02 Ejercicio 01 Hello World

Escribe un programa llamado
HelloWorld. Repite los pasos
mostrados en el curso. Despliega un
cuadro de mensaje que diga Hello,
World.





Hello World

Escribe un programa
llamado Hello World.
Despliega un cuadro de
mensaje que diga Hello
World.
El archivo
02_proveit01_files
contiene las instrucciones
para este Ejercicio y
cualquier archivo de apoyo
que pudieras necesitar.



Unidad 2 - Ideal, Illinois Pg. 44 de 321
Archivos y carpetas de solucin
Cuando creas una aplicacin de Visual Basic, se crean muchos archivos.
Necesitas saber qu archivos se han creado y lo que significan algunos de
ellos. Ve la imagen de la pantalla a continuacin para ver una organizacin
tpica de archivos y carpetas.

Con Windows Explorer navega a la ubicacin donde almacenaste tu proyecto
HelloWorld. Expande esta carpeta y veras que se ha creado una carpeta para
el proyecto llamado HelloWorld. Expande la carpeta HelloWorld para ver los
archivos creados por Visual Studio.NET para tu proyecto. Debes ver los
siguientes archivos:

HelloWorld.sln es el archivo de solucin que
mantiene un registro de todas las otras
partes de la solucin. Una solucin puede
hacer referencia a mltiples proyectos, pero
tu solucin HelloWorld contiene slo uno
llamado HelloWorld.vbproj. El archivo
HelloWorld.sln es al que se hace referencia
cuando abres un proyecto existente.

El archivo Form1.vb contiene el formato y su
cdigo asociado.
Haz doble clic en la carpeta papelera para
expandirla. Contiene el archivo de cdigo
ejecutable Visual Basic llamado
HelloWorld.exe. Este archivo puede
ejecutarse en otra computadora an si no
dispone de Visual Studio.NET.
Para ejecutar un archivo
ejecutable en otra
computadora, sa debe
contar con ciertos
archivos que permitirn la
ejecucin de la aplicacin
.NET. Estos archivos ya
estn instalados en las
computadoras con el
sistema operativo
Windows XP. Pueden
descargarse e instalarse
en computadoras con
otros sistemas operativos.


Unidad 2 - Ideal, Illinois Pg. 45 de 321
Llegada a Ideal
Ahora que haz terminado de leer el Manual del conductor de IDE, es hora de
tomar el examen de manejo.

Haz el Ejercicio MyNameIs para demostrar que ests listo para salir a
circular.
02 Ejercicio 02
MiNombreEs

Escribe un programa llamado
MiNombreEs. Este programa es muy
similar al programa HelloWorld
mostrado en el curso.

Crea un nuevo proyecto llamado
MiNombreEs. En la pgina de Inicio
selecciona el botn Proyecto nuevo.
Tal vez necesites cerrar la ventana
de salida para verlo. O, puedes ir a
Archivo / Nuevo / Proyecto.

En Form1 coloca un botn y un
cuadro de texto. Deja los nombres
del botn y del cuadro como sus
nombres predeterminados.

Haz doble clic en Botn 1 para abrir
la pgina del cdigo. En el
subprograma Botn 1_Click,
introduce esta lnea del cdigo:


TextBox1.Text = "tu nombre"

Reemplaza tu nombre con tu nombre. Asegrate de que aparezcan las
comillas.

Crea e inicia tu programa.

Una vez que funcione correctamente, mustraselo a tu instructor.
Hello World

Escribe un programa
llamado MiNombreEs.
Despliega un cuadro de
mensaje que diga mi
nombre es.
El archivo
02_proveit02_files
contiene las
instrucciones para este
ejercicio y cualquier
archivo de apoyo que
pudieras necesitar.



Unidad 2 - Ideal, Illinois Pg. 46 de 321
02 Reto Comida rpida

Ya que al parecer nos estamos
deteniendo en cada restaurante de
comida rpida que vemos, vamos a
divertirnos con un programa.

Ya sabes como agregar un botn a un
formato, crear una aplicacin y
ejecutarla. La plantilla
02_challenge_template es una
aplicacin completa, salvo que
necesita cuatro botones llamados
Botn 1 Botn 4.



El formato debe verse como
sigue una vez que hayas
agregado los botones.

Crea la aplicacin. Despus
escoge Depurar / Iniciar sin
depurar, o puedes escoger
Depurar / Iniciar.

Qu ocurre cuando haces
clic en cada botn?

Cuando funcione
correctamente, mustraselo
a tu instructor.




Recomendacin para el profesor
El alumno aade botones a un programa
existente donde stos se quitaron, pero donde
el programa en s est completo.
Comida rpida

En este reto debes agregar
botones a un formato de
comida rpida.
El archivo 02_challenge_files
contiene las instrucciones
para este trabajo y todos los
archivos de apoyo que
necesites.


Unidad 2 - Ideal, Illinois Pg. 47 de 321

Extensin / Desviacin

En una unidad posterior te mostraremos como cambiar el texto en un botn.
Puedes descubrir t solo como cambiar el texto del botn usando la
ventana Propiedades?
Bienvenido a Ideal. Aqu hay otra pequea prueba para prepararte para el
comit del rally. En el curso impreso la prueba no es interactiva. En la
versin en lnea de este curso la computadora revisa las respuestas. Aqu la
tienes. Suerte!


Unidad 2 - Ideal, Illinois Pg. 48 de 321


Propiedades

Cuadro de herramientas

Salida
La pgina de proyectos

La pgina de recursos en lnea

La pgina de perfil
Cierto

Falso
Crear

Depurar

Explorar recursos
Qu ventana se usa para colocar
objetos en un formato?
Visual Studio puede personalizarse
para cada usuario en:
En Visual Studio, las soluciones pueden
contener uno o ms proyectos; stos pueden
contener formatos, y los formatos objetos y
cdigos.
Antes de ejecutar un programa debes:


Unidad 03 Pseudo, Pennsylvania Pg. 49 de 321



Temas en el camino a
Pseudo:

Tipos de instrucciones de
cdigo
Qu es un pseudo
cdigo?
Comentarios de cdigo
Pseudo cdigo como
comentario
Sangra y espacio en
blanco
Llegada a Pseudo



Unidad 03 Pseudo, Pennsylvania Pg. 50 de 321

Tipos de rdenes de cdigo

Cliff hizo un excelente trabajo al presentar Visual
Studio.NET. No te pareci fantstico escribir tu primer
programa? Se que no haz escrito muchos cdigos
todava, pero lo hars ms adelante. Por ahora quiero
mostrarte como planear y organizar tu programa
incluso antes de que comiences a escribir el cdigo.

Sabas que puedes escribir un programa antes de que
sepas un lenguaje de computacin? Muchos
programadores escriben sus programas en un "pseudo
cdigo" primero y despus los traducen a un lenguaje
real de programacin. Esto les ayuda a determinar el
flujo lgico del programa y lo que tienen que hacer. El
pseudo cdigo consiste de instrucciones sencillas
escritas en ingls (o tu idioma nativo) las cuales
explican lo que el programa tiene que hacer. Una vez
escrito el pseudo cdigo es ms fcil escribir el cdigo
real. El pseudo cdigo brinda una estructura o
lineamiento para el programa.

Antes de que te ensee como usar un pseudo cdigo, quiero mostrarte
algunos de los tipos de instrucciones bsicas que constituyen un programa
de computacin. Todos los lenguajes de programacin usan los mismos tipos
de instruccin de cdigo bsicos, aunque la sintaxis para escribirlos sea
diferente en cada lenguaje. Cuando se combina, estas instrucciones bsicas
te permiten escribir programas muy complejos.

Recuerdas la lnea de cdigo que introdujiste para el botn en el programa
Hello World?

Era:
MessageBox.Show("Hello, World.")

Este cdigo despliega informacin para el usuario. Es un tipo de instruccin
bsica conocido como alerta, mensaje, o instruccin. Todos los lenguajes de
programacin tienen un tipo de instruccin bsica similar usado para
brindarle informacin al usuario, aunque la sintaxis depender del lenguaje.
Hay otros tipos de instrucciones fundamentales que usan todos los lenguajes
de programacin.


Unidad 03 Pseudo, Pennsylvania Pg. 51 de 321


A continuacin te muestro unos ejemplos.

Las variables son usadas para almacenar informacin tales como nmeros o
texto. Representan informacin o resultados de clculos.

Las instrucciones de asignacin establecen lo que est almacenado en una
variable. El valor puede ser un nmero, texto, otra variable o un valor
calculado.

Las instrucciones de comparacin se usan para comparar un valor o variable
con un nmero, u otro valor o variable. Hacen una pregunta cuya respuesta
siempre es "cierto" o "falso".

Las instrucciones de decisin se usan para
elegir. El proceso de decisin se basa en una
comparacin. Si la respuesta a la comparacin
es "cierto", entonces se realiza la primera
eleccin, si es "falso", la segunda. Las
instrucciones de decisin a menudo se
denominan instrucciones de ramificacin
porque el flujo del programa puede ir ya sea
en una direccin o en otra.

Las instrucciones de bucle se usan para hacer
cosas una y otra vez. Las instrucciones de
bucle reducen la cantidad de cdigo que tienes
que escribir cuando tu programa est
realizando la misma accin repetidamente.

Conforme aprendas a programar, aprenders a
usar estas instrucciones bsicas para que tu
programa haga lo que t quieres que haga.
Para poder usar Visual Basic.NET (o cualquier otro lenguaje de
programacin) tu trabajo ser aprender la sintaxis particular requerida por el
lenguaje de programacin para escribir y usar estas instrucciones bsicas.

Es fantstico estar aqu esta
noche! Le deca al encargado de
seguridad en la entrada que si
estoy en la ciudad y es noche de
aficionados me encontrarn en
este escenario.



Unidad 03 Pseudo, Pennsylvania Pg. 52 de 321

Que es un pseudo cdigo?

Como ya lo dije antes, los programadores a menudo escriben sus programas
en pseudo cdigo. La palabra pseudo significa "en lugar de". Por ejemplo,
algunos autores usan un pseudnimo en lugar de su nombre real. Un pseudo
cdigo no est escrito en un lenguaje real de programacin sino que consiste
de instrucciones sencillas que describen lo que el programa va a hacer.
Podras escribir un pseudo cdigo en ingls, espaol, latn o cualquier otro
idioma, porque una computadora ni siquiera tiene que leer o comprender tu
pseudo cdigo. ste tiene que ser claro para que t y otros programadores
lo entiendan, porque brinda el marco o instrucciones para escribir el cdigo
real de tu programa. Tu pseudo cdigo se escribe usando los diferentes tipos
de instrucciones bsicas: asignacin, comparacin, decisin, etc.




Una gran ventaja de
disear tu propio
programa usando un
pseudo cdigo es que no
tienes que preocuparte
acerca de qu lenguaje de
programacin vas a usar.
Primero, encuentra la
lgica y estructura usando
el pseudo cdigo. Despus
"traduce" tu pseudo
cdigo al lenguaje de
programacin que quieres
usar.
Recomendacin para el
profesor
El concepto principal en esta unidad
es que el programador debe planear
qu cdigo escribir antes de iniciar la
codificacin en s.


Unidad 03 Pseudo, Pennsylvania Pg. 53 de 321


Djame darte un ejemplo de como usar el pseudo cdigo para disear un
programa. Digamos que quisiera escribir un programa para calcular el costo
promedio de la gasolina en dlares por galn para todo nuestro viaje. Qu
tendra que hacer el programa? Para contestar esta pregunta, disear el
programa usando un pseudo cdigo. Estos son los pasos que mi programa
tendra que hacer para calcular el costo promedio de la gasolina durante
nuestro viaje:

1. Sumar todo el dinero que pagamos para la gasolina y asignar este
monto a una variable (total en dlares)
2. Sumar el nmero total de galones de gasolina que usamos y asignar
este monto a una segunda variable (total de galones)
3. Tomar la primera variable (total en dlares) y dividirla entre la
segunda variable (total de galones) y asignar el resultado a una
tercera variable (dlares por galn).
4. Desplegar un mensaje que da el costo promedio en dlares por galn.

El pseudo cdigo claramente muestra lo que mi programa necesitar hacer.
Ahora puedo escribir el cdigo para realizar las tareas delineadas en el
pseudo cdigo.



Unidad 03 Pseudo, Pennsylvania Pg. 54 de 321

Djame darte un ejemplo distinto con ms pasos. Puede ser para un robot
programable que cambia llantas.

1. Determinar que llanta est
ponchada. (instruccin de
comparacin)
2. Determinar el tamao de la llanta
ponchada (instruccin de
comparacin)
3. Si hay una llanta de refaccin del
tamao correcto entonces
proceder;
4. de otro modo, conseguir la
refaccin en una tienda de llantas.
(instruccin de comparacin y
decisin)
5. Levantar la camper usando un gato
hidrulico.
6. Quitar el tapn con un desarmador para exponer las tuercas.
7. Quitar las tuercas usando una llave de cruz hasta haber removido
todas. (instruccin de bucle)
8. Remover la llanta ponchada.
9. Colocar la llanta nueva.
10. Colocar de nuevo y ajustar las tuercas usando una llave de cruz hasta
que todas estn en su lugar. (instruccin de bucle)
11. Colocar el tapn y ponerlo en su lugar con un martillo.
12. Bajar el gato hidrulico.

En el pseudo cdigo anterior hay una mezcla de instrucciones de asignacin,
de comparacin, de decisin y de bucle. Por ejemplo, debes recordar el
tamao de la llanta ponchada; eso es una instruccin de asignacin. Debes
comparar el tamao de la llanta ponchada con el tamao de las llantas que
tienes en existencia; esa es una instruccin de comparacin. Una instruccin
de decisin se usa con la instruccin de comparacin. Si tienes una llanta del
tamao correcto, entonces procede, o visita la tienda de llantas. Colocar y
apretar las tuercas puede verse como un proceso de bucle. Necesitas repetir
cada proceso un nmero de veces hasta que se hayan quitado todas las
tuercas y despus hasta que se hayan apretado de nuevo.

Poner llanta nueva.
Colocar de nuevo las
tuercas y
apretarlas.
Colocar el tapn.


Unidad 03 Pseudo, Pennsylvania Pg. 55 de 321

Por qu no intentas escribir un pseudo cdigo usando mi organizador
personal?

03 Ejercicio 01 Empacar para el viaje

Escribe en pseudo cdigo los pasos
requeridos para empacar lo que vas
a llevar para tu viaje. Tu solucin
debe tener por lo menos siete
pasos. Si cada paso comienza con
una instruccin condicional, no
entendiste el pseudo cdigo.
Recomendacin para el
profesor
Es sorprendente cuntos alumnos
escriben un pseudo cdigo que
consiste en el 100% de
instrucciones condicionales en
vez de contener una mezcla de
acciones y acciones
condicionales. Un pseudo cdigo
sin instrucciones condicionales
tambin es correcto.
Empacar para el viaje

En este ejercicio debers
escribir un pseudo cdigo
explicando los pasos que
sigues para empacar lo que
vas a llevar para tu viaje

El archivo 03_proveit01_files
contiene las instrucciones
para este ejercicio y
cualquier archivo de apoyo
que pudieras necesitar.



Unidad 03 Pseudo, Pennsylvania Pg. 56 de 321

Comentarios de cdigo

Los lenguajes de programacin modernos, incluyendo Visual Studio.NET,
permiten aadir comentarios a tu cdigo. stos no se compilan como parte
de tu programa y no se ejecutan cuando corres tu programa. Los
comentarios son una forma til de documentar tu cdigo. Te ayudan a
recordar lo que hace. Tambin ayudan a otros programadores a
comprenderlo.

Siempre debes comentar tu cdigo. Los comentarios son muestra de un
buen programador. Un buen programador se toma el tiempo para
comprender y documentar a fondo el cdigo que ha escrito. Debes agregar
comentarios a tu cdigo cuando haces un cambio o aades una funcin.
Tambin haz comentarios sobre partes de tu cdigo que son difciles de
comprender o que realizan un clculo particularmente difcil o complejo.


















Recomendacin para el profesor
Hay muchas razones para examinar el cdigo en s que los alumnos escriben en vez de ver
simplemente el resultado de ejecutar el programa.
Inctelos a hacer comentarios
Motive buenos nombres de datos
Detecte si un alumno est copiando el cdigo de otro. Copiar es fcil y es tentador.
Busque similitudes de tcnica, ya que puede aplicarse la funcin de Encontrar-
reemplazar a los nombres de variables para disfrazar el cdigo.


Haz comentarios
respecto a tu cdigo
pero no demasiados.
Estas tratando de
documentar tu cdigo,
no de escribir una
novela.


Unidad 03 Pseudo, Pennsylvania Pg. 57 de 321

En Visual Basic.NET comenzars una lnea de comentario con una sola
comilla ('). Cualquier lnea de cdigo que inicia con una sola comilla se
interpreta como un comentario y no ser compilada o ejecutada cuando se
corre el programa. Lo siguiente es un ejemplo de un comentario en Visual
Basic.NET




'Funcin agregada para calcular
el promedio de millas por galn.








Oye, podrs usar una sola comilla para los comentarios en
Visual Basic.NET, pero en C# y J#, usamos una doble diagonal
(//) al principio de nuestras lneas de comentario.

Por ejemplo,




//Funcin agregada para
calcular el promedio de millas
por galn.



Unidad 03 Pseudo, Pennsylvania Pg. 58 de 321

Los comentarios tienen otra funcin importante adems de documentar tu
cdigo. Dado que no se ejecutan, pueden usarse como un mtodo para
evitar que ciertas lneas del cdigo se ejecuten. Esto se llama "comentar
para excluir una lnea de cdigo. Comentar para excluir es un mtodo que
puede usarse para ayudarte a encontrar errores en tu cdigo. Si tienes un
error en tu programa, puedes marcar lneas o bloques completos de cdigo
como si fueran comentarios para evitar su ejecucin hasta que el error deje
de ocurrir. El ltimo cdigo que marcaste de esta manera es probablemente
donde est ocurriendo el error. Es muy til, no?

Ahora te dar un ejemplo de comentar para excluir un cdigo. Date cuenta
de que hay tres lneas de cdigo. La segunda lnea se comenta para excluirla
poniendo una sola comilla en su inicio. Por lo tanto, no se ejecutar, pero la
primera y tercera lneas s.





MessageBox.Show("Soy de"
'MessageBox.Show("una ciudad fantstica
llamada")
MessageBox.Show("San Francisco.")



Unidad 03 Pseudo, Pennsylvania Pg. 59 de 321

Pseudo cdigo como comentario

Y ahora, un uso ms del may verstil comentario. Estoy seguro que te
mueres por saber. Puedes usar los comentarios para disear y arreglar tu
programa. Es fcil. Ya escribiste el pseudo cdigo que describe lo que tu
cdigo va a hacer. Aprovchalo. Copia y pega tu pseudo cdigo en tu
programa y pon una sola comilla al principio de cada lnea de tu pseudo
cdigo para convertirla en comentario. Ahora, escribe el cdigo real de
Visual Basic.NET bajo cada lnea de pseudo cdigo y tu programa no slo
estar completo, sino que tambin tendr comentarios. As de simple.

He aqu un ejemplo basado en el pseudo cdigo que escrib para calcular la
cantidad promedio en dlares por galn de gasolina para nuestro viaje. Nota
que el pseudo cdigo proporciona los comentarios.



'Suma todo el dinero que pagamos de
gasolina y asigna este monto a una variable
(total de dlares)
Dim totalDollars As Double
totalDollars = 88.76 + 100.8 + 120.3

'suma el total de galones de gasolina que
usamos y asigna este monto a una segunda
variable (total de galones)
Dim totalGallons As Double
totalGallons = 49.3 + 55.5 + 46.3

'Toma la primera variable (total de dlares),
divdela entre la segunda variable (total de
galones) y asigna el resultado a una tercera
variable (dlares por galn).
Dim dollarsPerGallon As Double
dollarsPerGallon = totalDollars /
totalGallons
'Despliega un mensaje dando el costo
promedio en dlares por galn.
MessageBox.Show (dollarPerGallon)



Unidad 03 Pseudo, Pennsylvania Pg. 60 de 321

Sangras y espacios en blanco

Aunque tal vez no comprendas todo el cdigo Visual Basic.NET, quiero que
veas un par de cosas. En primer lugar puedes ver que todos los comentarios
inician con una sola comilla. El color del texto del comentario es verde. Esto
facilita distinguirlos del resto del cdigo. En segundo lugar, fjate que se
agreg una lnea en blanco antes de cada comentario. Esta lnea en blanco
divide los comentarios y el cdigo en grupos de acuerdo a su funcin. Las
lneas en blanco hacen la lgica de tu programa clara y tu programa, de fcil
comprensin.

En la mayora de los casos Visual
Basic.NET agrega automticamente
espacios en blanco y sangras para hacer
que tu cdigo sea ms fcil de leer. Sin
embargo, puedes aadir espacios en
blanco adicionales y sangras como t
quieras. Mi opinin al respecto es que los
uses para hacer tu cdigo y comentarios
ms fciles de leer. A Visual Basic.NET y
a los dems lenguajes .NET no les
importan las lneas en blanco o las
sangras. De hecho las ignoran cuando se
compila el programa. Aunque a Visual
Basic.NET no le importen, estas lneas en
blanco y las sangras les facilitan a los
dems leer tu cdigo. (Y t eres la
persona que ms se beneficiar de ello.)

Recomendacin para el
profesor
Aliente el uso de lneas en blanco
entre los bloques de cdigo. Esto
beneficia tanto al alumno como al
profesor.
Por omisin, Visual
Basic.NET aplica la
sangra de manera
automtica a tus
instrucciones de cdigo
basado en la sintaxis de
tu cdigo. Aunque
puedes inhabilitar la
aplicacin automtica de
sangra, se recomienda
que la uses.


Unidad 03 Pseudo, Pennsylvania Pg. 61 de 321

03 Ejercicio 02 Lavar los trastes

Tengo otro Ejercicio en mi
organizador personal para que
lo resuelvas una vez que
termines de lavar los trastes.

La camper tiene una cocina
que usamos cuando no hay un
restaurante de sushi o comida
Cajun cerca. Cocinar significa
trastes sucios que lavar. La
camper no tiene un lavavajillas
automtico.

Escribe un pseudo cdigo
explicando los pasos
necesarios para lavar los
trastes. Si no tienes
experiencia en el tema,
tendrs que investigar al
respecto.

Tu solucin debe tener por lo
menos siete pasos.




Lavar los trastes

En este ejercicio escribirs
un pseudo-cdigo
explicando los pasos que
sigues para lavar los
trastes

El archivo
03_proveit02_files contiene
las instrucciones para este
ejercicio y cualquier archivo
de apoyo que pudieras
necesitar.



Unidad 03 Pseudo, Pennsylvania Pg. 62 de 321

03 Reto Pecera

Ves la pecera en el aparador de
esa tienda de mascotas? Rpido,
antes de que cambie el semforo.
Contemos los peces de cada color
para calcular el porcentaje que
cada uno representa.

En realidad, tengo el programa que
hace eso.

Encuentra el archivo FishTank.sln.
Haz doble clic en l para abrir
Visual Studio.NET. Ve a la pgina
del cdigo.

Tu tarea es ver la pgina del
cdigo, y luego copiar todos los
comentarios en un documento de
Word o de texto.

El resultado se ve como pseudo
cdigo?

Entrgale la lista de comentarios a tu instructor.


Extensin / Desviacin

Hay demasiados comentarios? Demasiado pocos? Por qu?







La pecera

En este Reto estudiars los
comentarios en el programa
de la pecera

El archivo
03_challenge_files contiene
las instrucciones para este
Reto y todos los archivos de
apoyo que pudieras
necesitar.




Unidad 03 Pseudo, Pennsylvania Pg. 63 de 321

Llegada a Pseudo

Ya que estamos por llegar a Pseudo, PA tienes que contestar otra pequea
prueba del rally. Te puede ayudar contestar algunas de las preguntas que
har el comit del rally.


Cul de las siguientes instrucciones se usa
para algo varias veces?
Las instrucciones de decisin
Los errores de programa pueden evitarse
al incluir lo siguiente en tu programa
Involucran una comparacin

Realizan una accin cuando una
comparacin es cierta y otra falsa

ambas
Un lenguaje de programacin

Instrucciones sencillas que describen
lo que el programa va a hacer

El nombre del autor
Comentarios

Espaciado

Ambos
Instruccin de comparacin

Instruccin de bucle

Instruccin de asignacin

Un pseudo-cdigo es:



Unidad 04 Formsville, Virginia 64
Controles y propiedades de formato
Temas en el camino a
Formsville:

Aplicaciones de Windows
Diseo del formato
Uso del formato
Propiedades del formato
Controles y propiedades
del formato
Desencadenar eventos
Cuadros de mensajes
Entrando a Formsville




Unidad 04 Formsville, Virginia 65
Controles y propiedades de formato
Aplicaciones de Windows

Nos dirigimos a uno de mis lugares
favoritos: Formsville, Virginia!
Antes, Formsville era un lugar muy
aburrido. No haba gran cosa que
ver, pero ciertamente haba mucho
papeleo que hacer. Tenas que
llenar un formato de 10 pginas
tan slo para pasar por el pueblo.

En la actualidad, Formsville es
fantstica. Hay tantas cosas
emocionantes que hacer que
podras pasar un ao entero en
Formsville y no ver todo ni
tampoco aburrirte. Para m,
Formsville es una de las principales
razones por las que hice este viaje.

Te acuerdas que en el camino a
Ideal usaste Visual Studio para
escribir tu primer programa? Una de las primeras cosas que tuviste que
decidir fue qu tipo de proyecto queras crear y escogiste una aplicacin de
Windows. Una aplicacin de Windows es un tipo de programa que tiene una
interfase de usuario que brinda un formato para que tu usuario interacte
con el programa. No todos los programas tienen una interfase de usuario,
algunos se ejecutan una sola vez o en segundo plano y no requieren ninguna
informacin de introduccin del usuario una vez que se abrieron. Mmmmm.
Es un tanto aburrido, si me preguntas.




Unidad 04 Formsville, Virginia 66
Controles y propiedades de formato
Diseo del formato

A m me gustan los juegos, y eso significa accin interactiva, por lo que
todos los programas que escribo son aplicaciones de Windows. Las
aplicaciones de Windows usan formatos para que disees lo que el usuario
ve y como interacta con tu programa.

Cuando creas por primera vez una aplicacin de Visual Basic de Windows,
Visual Studio agrega automticamente un formato llamado Form1.vb a tu
proyecto. Agregas "controles de formato" tales como botones, etiquetas,
cuadros de texto, listas desplegables, etc. al formato para brindar formas
para que el usuario interacte con tu programa. Digamos que tu aplicacin
tiene un "formato de llanta ponchada" para introducir la informacin acerca
de una llanta ponchada. He aqu una descripcin de los controles que
necesitas en el formato de llanta ponchada y lo que hacen:

En un cuadro de texto, introduce el nmero de las placas del coche.
De un grupo de botones de seleccin selecciona el que indica qu
llanta est ponchada (la frontal izquierda, la frontal derecha, la trasera
izquierda, la trasera derecha)
Utiliza una casilla para indicar que este es un "trabajo urgente"
De un combobox selecciona el tamao de la llanta
Haz clic en un botn que busque en el inventario de las llantas
En un cuadro de texto despliega una lista de las llantas disponibles
incluyendo el fabricante, nmero de modelo, tamao, nmero de
inventario y costo.

As que el formato de llanta ponchada tiene dos cuadros de texto, cuatro
botones de seleccin, una lista desplegable, una casilla de verificacin, y un
botn. Puedes organizarlos en el formato en muchas formas diferentes y es
ah donde la diversin y al creatividad comienza.




Unidad 04 Formsville, Virginia 67
Controles y propiedades de formato
Para m, uno de los aspectos ms agradables de la programacin es el
diseo del formato. Puedo decidir como se ve el
formato y como se organizan sus controles. Los
formatos son como un lienzo y sus controles la
pintura. Pero tengo que ser cuidadoso tambin.
Tengo que asegurarme de que el formato haga
lo que se supone que tiene que hacer. Tiene que
cumplir con los requisitos del programa. Tiene
que ser fcil de usar y no puede tener elementos
innecesarios. Cuando diseo un formato me
pregunto continuamente: "Cul es el objetivo
de este formato? Qu se supone que haga?"

Tambin tengo que asegurarme de que el
formato se vea bien, como yo. No puede estar
lleno de colores extravagantes o molestos
efectos visuales tales como textos cintilantes que distraen al usuario. Y los
controles del formato tienen que organizarse de forma clara y lgica. Tengo
que pensar en el orden en que el usuario introducir la informacin e
interactuar con el programa. Algunas veces tengo que notificar al usuario
que no ha introducido toda la informacin requerida, o que parte de la
informacin es errnea. Cuando ests diseando tus formatos, tienes que
pensar como un usuario y tratar de imaginar todas las formas posibles en las
que un usuario puede interactuar con tu programa.

Finalmente, cuando diseas un formato, tienes que recordar que todas las
aplicaciones de Windows tienen una apariencia y un ambiente estndar. Un
usuario espera que tu aplicacin siga ciertos lineamientos de diseo y se
comporte de cierta manera. Por ejemplo, la primera eleccin del men de
una aplicacin de Windows es "Archivo", y bajo "Archivo" se encontrar una
eleccin de men llamada "Salir" que el usuario selecciona para cerrar el
programa.

Un usuario estara muy sorprendido y molesto si hace clic en un botn
llamado "Calcular resultados" y tu programa cambia el color del formato
principal a rojo y traduce todos los ttulos de los botones al latn.



Unidad 04 Formsville, Virginia 68
Controles y propiedades de formato
Uso del formato

Como sabes, cuando creas una nueva
aplicacin de Windows, Visual Studio agrega
automticamente un formato llamado
Form1.vb. Este es el formato principal, o
formato de inicio, de tu aplicacin. Es lo
primero que el usuario ve cuando abre tu
programa. El formato principal es como un panel de control central. Desde
aqu el usuario puede dirigirse a cualquier otra parte del tu programa. A
menudo, una barra de men o barra de herramientas se coloca a lo largo de
la parte superior del formato principal para brindar medios de navegacin a
distintas partes de la aplicacin.

Desde el formato principal el usuario selecciona los elementos del men o
hace clic en los botones que abren otros formatos. Estos formatos pueden
ser para introducir o visualizar informacin o interactuar con el programa de
otras maneras. Por lo general tienen un propsito especfico, como visualizar
la puntuacin del boliche, introducir una lista de efectos secundarios o elegir
configuraciones de programa. Despus de que el usuario ha introducido o
visualizado la informacin en uno de estos formatos, ste se cierra por lo
general y regresa al formato principal. Aunque Visual Studio solo agrega
Form1, t puedes aadir a tu proyecto cuantos formatos requieras.

Otro tipo de formato importante es el cuadro de mensaje. En realidad t ya
usaste este formato. En el programa HelloWorld usaste un cuadro de
mensaje para desplegar las palabras "Hello World". Se usa para desplegar tu
mensaje en un formato de dilogo comn. Una vez que el usuario ley el
mensaje, cierra el cuadro de mensaje haciendo clic en el botn OK.

Comencemos. Vas a disear tu propio formato: un formato de llanta
ponchada. Despus agregars algunos controles de formato y establecers
sus propiedades. Te mostrar como responden los controles de formato a
acciones tales como hacer clic en un botn y volveremos a ver un formato
integrado especial: nuestro viejo amigo el cuadro de mensajes.






Recomendacin para el
profesor
Form1.vb puede cambiarse de
nombre con una denominacin ms
descriptiva. Esto es deseable para
las aplicaciones complejas.
Recomendacin para el profesor
Los alumnos estarn tentados a leer el material pero no a llevar a cabo
realmente lo que est descrito en el texto. Se beneficiarn ms cuando hagan
realmente lo que dice el texto del curso, lo cual indica, confirma y refuerza que
comprendieron el material del curso.



Unidad 04 Formsville, Virginia 69
Controles y propiedades de formato
Propiedades del formato

Cuando creas una aplicacin nueva de Windows, Form1 se agrega
automticamente. Tiene un tamao predeterminado de 300 por 300 pxeles.
Cmo saba el tamao de Form1?, te preguntars. Bueno, hay una manera
sencilla de verificarlo usando la ventana de propiedades. Lo que es ms,
puedes cambiar el tamao del formato en la misma ventana.

Te mostrar los pasos. Primero, tienes que crear una nueva aplicacin de
Windows llamada LlantaPonchada. Una vez creado el proyecto, pulsa una
vez en Form1 para seleccionarlo. Oprime la tecla F4 para abrir la ventana de
propiedades.

1. Ya que Form1 est seleccionada en
este momento, la ventana de
propiedades despliega las de Form1.
Nota que el rubro Texto es resaltado por
omisin.

















2. Recorre la lista de propiedades de
Form1 y ubica el rubro Tamao. Nota que
ste tiene un signo de ms junto a l, lo
que indica que puede expandirse para
desplegar otras propiedades.



Unidad 04 Formsville, Virginia 70
Controles y propiedades de formato

3. Haz clic en el signo de ms
ubicado junto a Tamao. Se
despliegan las propiedades Altura y
Ancho. La altura de Form1 es de
300 y el ancho es de 300. Vamos a
cambiar el tamao de Form1.




4. Haz doble clic en Ancho para
resaltar el valor del rubro (300).
Oprime la tecla de retroceso para
borrar este valor.




5. Introduce el nmero 450.
Oprime la tecla Enter listo! Acabas
de cambiar el ancho del formato.
Nota cmo el ancho del formato
cambi en cuanto oprimiste la tecla
Enter. Nota tambin cmo el valor
del ancho ubicado junto al rubro
tamao se estableci al mismo
tiempo.




Unidad 04 Formsville, Virginia 71
Controles y propiedades de formato


Ahora, establezcamos la propiedad Color de fondo de
Form1. El color de fondo es el color del formato y de
los controles que estn en l. En la ventana de
propiedades, ve a Color de fondo de Form1. Haz clic
en la palabra Control. Un botn de flecha hacia abajo
aparecer a la derecha; haz clic en l. Se abre una
ventana de paleta de colores. Selecciona la pestaa
Personalizar. Haz doble clic en el cuadro de color que
quieres seleccionar. A m me gusta el amarillo
brillante. Guau, mira ese formato ahora!

Crea tu solucin y comienza tu proyecto. Ve el nuevo
y extravagante color de fondo de tu formato. Adems,
fjate que ste ahora se llama "Formato de llanta
ponchada" y ya no tiene forma cuadrada sino
rectangular.






Ahora ya sabes como cambiar las
propiedades de un formato usando la
ventana de propiedades. Recorre las
propiedades de Form1 y familiarzate con
la lista. sta ventana te permite cambiar
las propiedades del formato en el
momento de disearlo. Como vers, la
ventana de propiedades no es slo para
formatos. Tambin te permite cambiar
las propiedades de los botones, cuadros
de texto y otros controles del mismo.




Unidad 04 Formsville, Virginia 72
Controles y propiedades de formato
Controles y propiedades de
formato

Ahora eres un experto en agregar botones
a los formatos, pero eso es un tanto
repetitivo! Puedes ver que la ventana de
caja de herramientas tiene muchas otros
controles de formato disponibles. Ahora
voy a mostrarte como usar algunos de los
ms comunes y como configurar sus
propiedades mas tiles. Comencemos con
los ttulos.
Etiquetas

El control de formato Etiqueta se usa para
etiquetar controles individuales o grupos
de controles en tu formato. Tambin se
usa comnmente para dar instrucciones o
indicar el orden para introducir
informacin en el formato.

Abre la ventana cuadro de herramientas y haz doble clic en el control de
formato Etiqueta para agregar una etiqueta a tu formato. Arrstrala a una
ubicacin adecuada deteniendo el botn izquierdo del ratn y moviendo el
ratn. Selecciona Label1 y abre la ventana de propiedades, la cual
despliega una lista de propiedades del control de etiquetas. Mueva el cursor
a Texto, haga doble clic para seleccionar el texto, y brralo con la tecla de
retroceso. Teclea las palabras Introducir licencia.
Cuadro de texto

Un cuadro de texto puede usarse para desplegar informacin para el usuario
o recabar informacin del usuario. En la ventana Cuadro de herramientas
haz doble clic en el control de formato Cuadro de texto; se agrega
Textbox1 a tu formato. Arrastra Textbox1 a la derecha de Label1, baja al
rubro Texto, haz doble clic y presiona la tecla de retroceso para borrar el
texto. Establece Slo lectura a Falso para que el usuario pueda introducir
texto en el cuadro de texto. Falso debe ser el valor predeterminado.

Recomendacin para el
profesor
Todos los controles son objetos pero no
todos los objetos son controles. Un
objeto puede ser casi cualquier cosa
menos una propiedad. Una propiedad
es una caracterstica de un objeto,
como el ancho o el color.



Unidad 04 Formsville, Virginia 73
Controles y propiedades de formato
Los cuadros de texto a menudo se usan para desplegar una gran cantidad de
informacin. Si el texto es realmente largo tal vez quieras agregar barras de
desplazamiento al cuadro de texto. Agrega otro cuadro de texto a tu
formato. Establece la propiedad Multilnea a Verdadero. Pon la altura a 100
pxeles y el ancho a 100 pxeles. Si Multilinea se establece a falso, no podrs
cambiar la altura. Pon las barras de desplazamiento en Vertical y Solo
lectura en verdadero para que el usuario no pueda introducir texto en el
cuadro de texto.
Botones de seleccin

Los botones de seleccin se usan para ofrecerle al usuario opciones. ste
puede seleccionar un solo botn de seleccin de un grupo de botones. Es
como una prueba de opcin mltiple. En la ventana Cuadro de herramientas
haz doble clic en el control de formato de botn de seleccin. Se agrega el
botn de seleccin RadioButton1 al formato. Selecciona RadioButton1 en tu
formato, oprime el botn derecho del ratn y selecciona Copiar del men.
Haz clic en cualquier lugar en Form1, oprime el botn derecho del ratn, y
selecciona Pegar del men. Como por arte de magia, se agrega
RadioButton2. Repite la operacin Pegar para agregar RadioButton3 y
RadioButton4. Selecciona RadioButton1 y abre la ventana de Propiedades.
Escoge la propiedad Texto y cmbialo de "RadioButton1" a izquierdo,
delantero. Cambia las propiedades de texto de los otros botones de
seleccin: RadioButton2 a izquierdo, posterior, RadioButton3 derecho,
delantero, RadioButton4 a "(derecho, posterior).
Casilla de verificacin

Un cuadro de texto puede usarse para desplegar informacin para el usuario
o para recabar informacin del usuario. En la ventana Cuadro de
herramientas, haz doble clic en control de formato de cuadro de texto. Se
agrega Textbox1 a tu formato. Arrastra Textbox1 a la derecha de Label1.
Selecciona la propiedad Texto, pulsa dos veces, y oprime la tecla de
retroceso para borrar el texto. Establece Slo lectura a Falso para que el
usuario pueda introducir texto en el cuadro de texto. Falso debe ser el valor
predeterminado.

Las casillas de verificacin tambin se usan ofrecerle al usuario opciones. Un
usuario puede seleccionar una o ms casillas de verificacin de un grupo. En
la ventana Cuadro de herramientas haz doble clic en el control de formato
de casilla de verificacin. Se agrega CheckBox1 al formato. Abre la ventana
de propiedades y cambia Texto a "Rush Job" (trabajo urgente.)



Unidad 04 Formsville, Virginia 74
Controles y propiedades de formato

ComboBox

Una combobox brinda una lista de opciones para el usuario. Al seleccionar
un elemento de la lista, ste se despliega en la combobox. En la ventana
Cuadro de herramientas, haz doble clic en el control de formato Combobox;
se agrega ComboBox1 al formato. Abre la ventana de Propiedades y cambia
Texto a Escoge tamao de llanta. Ve a elementos y haz clic en la palabra
Coleccin. Un botn de elipsis (botn con tres puntos en l) aparece a la
derecha. Haz clic en el botn ellipsis y se abre una ventana en donde puedes
introducir una lista de elementos que aparecern en la combobox. Debes
colocar cada elemento de la lista en una lnea independiente. Despus de
haber introducido un elemento, haz clic en Entrar para crear una lnea
nueva. En la ventana introduce 12, oprime Entrar, introduce 13, oprime
Entrar, introduce 14; oprime Entrar e introduce 15. Haz clic en el botn OK
para cerrar la ventana.

Botones de comando

Un cuadro de texto puede usarse para desplegar informacin para el usuario
o para recabar informacin del mismo. En la ventana Cuadro de
herramientas haz doble clic en el control de formato Cuadro de texto; se
agrega Textbox1 a tu formato. Arrastra Textbox1 a la derecha de Label1. Ve
a la propiedad Texto, haz doble clic y oprime la tecla de retroceso para
borrar el texto. Pon Slo lectura en Falso para que el usuario pueda
introducir texto en el cuadro de texto. Falso debe de ser el valor
predeterminado.

Agrgale un botn a tu formato. Pon en la propiedad Texto "Conseguir
llantas. Cambia el color de fondo a rojo. Ve a la propiedad Fuente. Haz clic
en Fuente para desplegar el botn de elipsis. Haz clic en el botn de elipsis
para desplegar Paleta de fuentes. En la paleta de fuentes, cambia el estilo de
fuente a Negrita. Haz clic en OK para cerrar la paleta de fuentes.

Crea tu solucin y comienza el proyecto. Haz clic en los varios controles de
formato que agregaste. Qu ocurre cuando haces clic en la combobox?
Qu ocurre cuando escoges uno de los botones de seleccin, un botn de
seleccin diferente, la casilla de verificacin? Introduce algn texto en el
cuadro de texto junto a la etiqueta Introducir licencia. Nota que el otro
cuadro de texto es gris y que no puedes introducir texto en l. Haz clic en la
"X" en el extremo superior derecho para cerrar tu aplicacin.



Unidad 04 Formsville, Virginia 75
Controles y propiedades de formato

Te diste cuenta de que acabas de crear el "formato de llanta ponchada"?
Durante el trayecto aprendiste varios tipos de controles de formato y sus
propiedades. Para convertirlo en un formato de trabajo real, falta agregar el
cdigo Visual Basic.NET al formato y los controles de formato.

Asegrate de familiarizarte con las varias
propiedades de cada control de formato que
agregaste. Puedes reorganizar los controles
de formato para hacer el formato ms claro
y fcil de usar. Puedes agregar ttulos que
le digan al usuario para qu se utilizan los
diferentes controles y dar instrucciones
sobre qu tipo de informacin se necesita.
Cmo crees que deben organizarse los
controles en el formato? Qu control debe estar al principio y cul al final?
Recomendacin para el
profesor
El alumno debe usar la ventana de
propiedades para revisar las
propiedades de cada control.



Unidad 04 Formsville, Virginia 76
Controles y propiedades de formato





Un formato y
muchos objetos de
formato tienen las
mismas
propiedades.
Algunas de las ms
comunes son:
Color de fondo
Habilitado
Color frontal
Ubicacin
Nombre
Tamao (altura,
ancho)
Texto
Visible








En J# y C# el diseo de formato es exactamente igual que en VB.NET.
Se facilita gracias a Visual Studio.NET. Slo abrimos el Cuadro de
herramientas y arrastramos los controles de formato hacia el formato.
Despus abrimos la ventana de propiedades y las configuramos.











Unidad 04 Formsville, Virginia 77
Controles y propiedades de formato
04 Ejercicio 01 Quin es quin

Te gustara saber ms acerca de la gente con la
que ests viajando? En este punto del viaje
debes demostrar que puedes crear un formato y
ajustar las propiedades de los objetos colocados
en el formato usando la ventana de
propiedades. Si creas el formato correctamente,
usando el cdigo suministrado, aprenders ms
acerca de tus compaeros de viaje.

Puedes obtener el cdigo de base 04_
proveit_01_template code (solucin) de tu
instructor o del sitio de internet del curso si es
que lo ests tomando en lnea. Coloca la
solucin en una carpeta individual. Debes tener
dos carpetas (papelera, objetos) y 7 archivos.

Abre Visual Studio.NET, selecciona Proyecto
existente, y navega al archivo llamado WhosWho.sln. Como alternativa
puedes usar Mi PC para navegar a WhosWho.sln, haz doble clic en l, y el
archivo WhosWho abrir en Visual Studio.NET.

Tu tarea es agregar objetos del cuadro de herramientas para que el formato
se vea as. Tambin debers actualizar elementos en la ventana de
propiedades como se describe a continuacin.

Quin es quin
Debes crear un formato
para desplegar las
biografas de Nikki, Cliff,
Jen, Dirk y DJ Vu. Tendrs
el cdigo Visual Basic.NET.

El archivo
04_proveit01_files contiene
las instrucciones para este
ejercicio y cualquier archivo
de apoyo que pudieras
necesitar.

Haz clic en el botn
Descargar para descargar
el archivo.




Unidad 04 Formsville, Virginia 78
Controles y propiedades de formato

1. Haz clic una vez en el formato para resaltarlo y despus usa la
ventana de propiedades para cambiar el nombre del formato a
Whoswho.

2. Coloca dos casillas de verificacin en el formato. Deja los nombres
predeterminados como CheckBox1 y CheckBox2. Cambia las
propiedades de Texto a Mostrar imagen y Mostrar biografa.

3. Coloca cinco botones de seleccin en el formato. Cambia las
propiedades de texto a Nikki, Cliff, Dirk, Jen, y DJ Vu. Deja los
nombres como RadioButton1 RadioButton5.

4. Coloca un cuadro de texto llamado TextBox1.

5. Coloca un control de cuadro de imagen llamado PictureBox1. Usa la
ventana de propiedades para configurar la altura a 160 y el ancho a
140. Estos se cambian al pulsar el signo de ms en el tamao.

6. Coloca un cuadro de texto llamado TextBox1. Debes hacer varios
cambios en las propiedades. El orden en el que realizas los cambios es
importante. Quieres que el recuadro sea lo suficientemente grande
para mostrar varias lneas de biografa. Visual Basic no te permitir
ajustar la altura de un cuadro de texto hasta que colocas PRIMERO la
propiedad Multilnea en Verdadero. Visual Basic sabe que si slo tienes
una lnea no hay razn para tener un cuadro largo. Ahora ajusta la
altura del cuadro a 120. Finalmente, coloca las barras de
desplazamiento vertical en caso de que haya ms lneas de biografa
de las que pueden caber en el cuadro.

7. Coloca un botn de comando llamado Button1. Ajusta la propiedad
Texto a Salir.

Una vez que hayas creado tu formato, crea la solucin. Si no hay errores de
creacin, escoge Depurar / Iniciar para ejecutar tu programa.

Si tu programa funciona correctamente, mustraselo a tu instructor.





Recomendacin para el profesor
El alumno coloca objetos en un programa
parcialmente terminado. No debe escribe
ningn cdigo.



Unidad 04 Formsville, Virginia 79
Controles y propiedades de formato
Desencadenar acciones

Las acciones son producidas por acciones del usuario. Por ejemplo, cuando
un usuario oprima un botn, selecciona un elemento de un combobox, o
cambia el texto en un cuadro de texto, se produce un evento. Los eventos
del usuario al hacer clic una o dos veces en un control o mover el cursor
hacia un control o fuera de l tambin generan eventos. T usas estos
eventos para ejecutar el cdigo VB.NET asociado con ellos. El cdigo VB.NET
produce que tu programa haga lo que se supone que tiene que hacer.

Cuando escribiste la aplicacin HelloWorld, hiciste doble clic en el botn y la
ventana de cdigo se abri para que pudieras introducir el cdigo en la
accin Button1_Click. La accin Button1_Click es el evento predeterminado
para un botn. Cada control de formato tiene un evento predeterminado.
Cuando ests en modo de diseo, haz doble clic en el control de formato y la
ventana de cdigo se abrir para el evento predeterminado.

Por ejemplo:

Para un botn el evento predeterminado es hacer clic en l.
Para un cuadro de texto el evento predeterminado es Cambio de texto.
Para un botn de seleccin el evento predeterminado es marcado
cambiado.
Para una casilla de verificacin , el evento predeterminado es Marcado
cambiado)
Para un ComboBox , el evento predeterminado es
SelectedIndexChanged (ndice seleccionado cambiado.

Para mostrarte cmo funciona esto, les agregaremos algunos cdigos a los
eventos predeterminados de los controles de formato del "formato de llanta
ponchada". El cdigo mostrar un cuadro de mensaje que despliega el tipo
de control que envi la accin. En modo de diseo, haz doble clic en cada
uno de los controles de formato que agregaste. La ventana de cdigo se
abrir para la accin predeterminada de cada control. Pega la siguiente lnea
de cdigo en cada de seccin de evento.

MessageBox.Show(sender.GetType.Name)

Crea tu solucin e inicia tu proyecto. Haz clic en los varios elementos del
formato, cambia el texto en el cuadro de texto y selecciona un elemento del
ComboBox. Para cada control se desencadena el evento predeterminado y se
despliega el cuadro de mensaje mostrando el tipo de control que envi el
evento.



Unidad 04 Formsville, Virginia 80
Controles y propiedades de formato

Si el formato de llanta ponchada fuera parte de una aplicacin real,
agregaras un cdigo a las acciones predeterminadas para brindarle la
funcionalidad que requiere tu programa. Por ejemplo, cuando haces clic en el
botn Conseguir las llantas, se desplegar en el cuadro de texto una lista de
llantas disponibles.
Recomendacin para el profesor
Puede suceder que un alumno haga doble clic en el control equivocado, como una etiqueta,
creando un cdigo de evento por clic. Por lo general, cuando un alumno borra un cdigo
innecesario, no hay problema. A veces, VB crea un cdigo adems del cdigo de evento por
clic. Ese cdigo tambin debe borrarse para completar un proceso de creacin. Una creacin
marcar el error para que sea fcil de encontrar.



Unidad 04 Formsville, Virginia 81
Controles y propiedades de formato



En C# y J# los controles de formato tienen los mismos
eventos que en VB.NET. Esto se debe al marco .NET; y Visual
Studio lo facilita.

Cuadros de mensaje

A menudo descubrirs que tu programa necesita entablar un dialogo con el
usuario. El programa tal vez le requiera enviar un mensaje, recabar su
respuesta, o recibir la informacin de entrada del mismo. De hecho, estos
tipos de dialogo son tan comunes que Visual Studio.NET incluye un cuadro
de mensaje para manejarlos.

En el programa que escribiste, usaste una lnea de cdigo que despleg un
cuadro de mensaje.

MessageBox.Show("Hello, World.")

El cuadro de mensaje es un tipo de formato que est integrado en VB.NET.
No tienes que agregar un cuadro de mensaje a tu proyecto para usarlo. Todo
lo que tienes que hacer es usar el mtodo de Mostrar () e incluir el texto que
quieres que el cuadro de mensaje muestre. La sintaxis para usar el cuadro
de mensaje es:

Nota que el mensaje que quieres desplegar debe estar incluido en comillas
dobles.

Oye, ve el cdigo para un cuadro de mensaje en C#. Es el
mismo que en J# tambin.

{
MessageBox.Show("Hello World");
}



Unidad 04 Formsville, Virginia 82
Controles y propiedades de formato



En C# y J# los controles de formato tienen los mismos eventos
que en VB.NET. Esto se debe al marco .NET; y Visual Studio lo
facilita.



Los controles de formato tienen ms
de un evento predeterminado. La
mayora de los controles de formato
tienen una docena de eventos. Por
ejemplo, el cuadro de texto tiene las
siguientes acciones:
Cambio de texto (evento
predeterminado)
Hacer clic
Hacer doble clic
Entrada de ratn
Salida de ratn
y muchos ms!

Para ver todos los eventos para un
control de formato, selecciona el
control. Haz clic con el botn derecho
y selecciona Ver cdigo del men
emergente. La ventana de cdigo se
abre. En la parte superior de la misma
ves dos listas desplegables. La que
est en el lado derecho enlista todos
los eventos de control. Los eventos en
negritas tienen cdigo asociado con
ellos.



Unidad 04 Formsville, Virginia 83
Controles y propiedades de formato
Cuadros de mensajes
A menudo descubrirs que tu programa requiere entablar un dialogo con el
usuario. El programa tal vez tenga que enviar un mensaje al usuario,
recabar la respuesta del usuario, o recibir la informacin de entrada del
usuario. De hecho, estos tipos de dialogo son tan comunes que Visual
Studio.NET incluye un objeto de cuadro de mensaje para manejarlos.

En el primer programa que escribiste, usaste una lnea de cdigo que
despleg un cuadro de mensaje.
MessageBox.Show("Hello, World.")
El cuadro de mensaje es un tipo de formato que est integrado en VB.NET.
No tienes que agregarlo a tu proyecto para usarlo. Todo lo que tienes que
hacer es usar el mtodo de Mostrar() e incluir el texto que quieres que el
cuadro de mensaje muestre. La sintaxis para usar el cuadro de mensaje es:
MessageBox.Show("Tu mensaje")

Nota que el mensaje que quieres mostrar debe incluirse en comillas dobles.
Oye, ve el cdigo para un cuadro de mensaje en C#. Es el
mismo que en J# tambin.{
MessageBox.Show("Hello World");
}
Recomendacin para el profesor
Un cuadro de mensaje tiene un formato ms complejo que despliega botones que el
usuario puede pulsar (Ej. si, no, cancelar). El programador puede revisar para ver que
eleccin hizo el usuario. Los cuadros de mensaje complejo no se usan en este curso.
Por ejemplo,
Dim EleccinUsuario como Integral
EleccinUsuario = MessageBox.Show ("pregunta aqu?", vbYesNo, "ttulo aqu")
Si EleccinUsuario = vbYes entonces
"si" cdigo aqu
o
"no" cdigo aqu
Terminar condicional



Unidad 04 Formsville, Virginia 84
Controles y propiedades de formato
Entrada a Formsville

Buen trabajo en la creacin de ese formato de llanta ponchada! Ahora ves
porque me gusta tanto el diseo de formatos. Se que ests listo para
Formsville. Intenta resolver estos Ejercicios, contesta la pequea prueba, y
estars en camino de convertirte en un diseador profesional de formatos.

04 Ejercicio 02 Precio de la Pizza

Qu sera un viaje en carretera sin pizza? Pizza
palace en Formsville tiene un programa para
ayudar a los clientes a evaluar el precio de su
pizza.

Apuesto a que puedes escribir el mismo
programa. Bueno, puedes disear el formato de
cualquier manera. Te daremos el cdigo. Usa la
plantilla 04_proveit02_template. Encuentra el
archivo PizzaPrice.sln. Haz doble clic para abrir
Visual Studio.

Tu tarea es agregar objetos del Cuadro de
herramientas para que el formato se vea as.



Necesitas tres botones de seleccin, dos ttulos y 8 casillas de verificacin.
Precio de la pizza

Crears un formato para
desplegar el precio de una
pizza. Te damos el cdigo
de Visual Basic.NET.
El archivo
04_proveit02_files tiene
las instrucciones para este
ejercicio y los archivos de
apoyo que necesitars.
Haz clic en el botn
Download para descargar
el archivo



Unidad 04 Formsville, Virginia 85
Controles y propiedades de formato
No te olvides de cambiar el texto en la parte superior del formato. El
programa cambiar el texto de label2.

Pizza Palace cobra $5 dlares por una pizza regular, $1 dlar ms por cada
carne adicional, y $0.50 centavos por cada ingrediente vegetal extra. Una
pizza mediana cuesta 25% ms y una grande 50% ms que una regular.

Una vez creado tu formato, crea la solucin. Si no hay errores de creacin,
elige Depurar/iniciar para ejecutar tu programa. Si tu programa funciona
correctamente, mustraselo a tu instructor.


Extensin / desviacin

Muestra el precio formateado con apariencia de dinero. Visual Basic.NET
tiene una funcin conveniente para esto. Coloque una variable dentro de la
funcin FormatCurrency, como esta:
FormatCurrency(miVariable) El resultado se ve como dinero.

Agrega un cuadro de imagen con una imagen adecuada referente a la venta
de pizza.


Recomendacin para el profesor
La funcin FormatCurrency opera en el contexto de la variable,
no en el objeto mismo. El aplicar FormatCurrency a un cuadro
de texto no significa que ste siempre estar formateado. Slo
significa que el elemento en el cuadro de texto es formateado al
momento en que se aplica la funcin. Si el contenido del cuadro
de texto es reemplazado posteriormente, el formato desaparece,
salvo que se aplique nuevamente al momento de la actualizacin.



Unidad 04 Formsville, Virginia 86
Controles y propiedades de formato

04 Reto Gato

Ya que casi todos en el viaje usan la
computadora porttil, los juegos de
computadora son una forma de pasar el tiempo
cuando el paisaje es aburrido.

Tu misin, si decides aceptarla, es escribir el
clsico juego de gato usando Visual Basic.NET.
Dirk encontr el cdigo para el programa en un
portal de internet poco conocido pero falta el
cdigo del formato. Debes pintar el formato
para que corresponda al cdigo. Si haces eso
correctamente, tendrs un juego de gato listo
para jugar.

Tu instructor te dar el cdigo de base
04_challenge_template code o lo obtendrs en
el portal de internet si ests tomando el curso
en lnea. Coloca la solucin en una carpeta
individual. Debes tener dos carpetas (papelera,
objeto) y 7 archivos.

Abre Visual Studio.NET, selecciona Proyecto existente, y navega al archive
llamado TicTacToe.sln. Otra opcin, es usar Mi PC para navegar hasta
TicTacToe.sln, hacer doble clic en ella, y Visual Studio se abrir.

Tu tarea es agregar objetos del Cuadro de herramientas para que el formato
se vea as. Tambin debers
actualizar elementos en la
ventana de propiedades como se
describe abajo.

1. Haz clic en el formato para
enfocarlo. Cambia el ttulo del
formato a Gato.

2. Crea 9 ttulos llamados Label1
a Label9. Organzalos para que
Label1 se encuentre en el
extremo superior izquierdo y
Label9 est en el extremo inferior
Gato
En este Reto debes crear el
formato usado por el
programa Gato. El cdigo
est incluido. Cuando pintes
el formato correctamente,
tendrs listo el juego
llamado gato.
El archivo
04_challenge_files tiene las
instrucciones para este Reto
y los archivos de apoyo que
necesitars.
Haz clic en el botn
Descargar para descargar el
archivo.
Despus haz doble clic en
el archivo para accesar las
instrucciones y archivos
necesarios.



Unidad 04 Formsville, Virginia 87
Controles y propiedades de formato
derecho. Puedes ahorrar mucho tiempo haciendo un ttulo, configurando las
propiedades, y despus copiando y pegando el titulo 8 veces ms.

Haz estos cambios en todos ellos:


Altura 48
Ancho 48
Fuente Microsoft Sans Serif Negrita 36
Color de
fondo
Puede quedarse como el gris
predeterminado
Texto Puede quedarse como el
predeterminado

3. Crea un ttulo llamado Label10 a continuacin del 9
anterior.

Altura 25
Ancho 175
Fuente Microsoft Sans Serif Negrita 16
Color de
fondo
Puede quedarse como el
predeterminado
Texto Puede quedarse como el
predeterminado

4. Crea 3 ttulos llamados Label11 al Label13. Cambia el texto a X Gana
O gana, y Empate, como se muestra en el ejemplo.

5. Crea 3 cuadros de texto llamados TextBox1 al TextBox3. Colcalos
junto a los ttulos creados en el paso 4.

6. Crea un botn llamado Button1, como se muestra. Cambia este texto a
Jugar de nuevo.

7. Crea un botn llamado Button2, como se muestra. Cambia su texto a
Fin.

Una vez que hayas creado tu formato, crea la solucin. Si no hay errores de
creacin, elige Depurar/iniciar para ejecutar tu programa.

Si tu programa funciona correctamente, mustraselo a tu instructor.


Recomendacin
para el profesor
Las letras L grandes
en la pgina previa
representan la
primera letra de un
ttulo que tiene una
fuente grande.



Unidad 04 Formsville, Virginia 88
Controles y propiedades de formato

Extension / Desviacin

Cambia el color de fondo del formato.
Cambia la fuente de todos los botones, cuadros de texto, etc. a una
fuente ms legible, tal como Microsoft Sans Serif negrita 10. Puedes
cambiar las fuentes de todos los elementos al primero hacer clic en los
elementos mientras detienes la tecla CTRL?
Agrega cuadros de texto para los nombres de los jugadores.
Llegada a Formsville

Ya que estamos por llegar a Formsville, VA tienes que contestar otra
pequea prueba del rally. Te puede ayudar contestar algunas de las
preguntas que har el comit del rally. suerte!


Qu se usa en un formato para permitirle al
usuario interactuar con tu programa?
En Visual Basic, qu hacen los eventos?
Qu control puede usarse para desplegar y
recabar informacin?
Cambian las propiedades de un
cuadro de texto
Actualizan la carpeta fuente
Hacen que se ejecute el cdigo
Profundidad

Propiedades

Ventanas hijas
Cuadro de texto

Etiqueta

Botn de comando
Controles

Objetos

Tanto controles como objetos
Un formato y sus controles tienen:
INTENTA LA PRUEBA DE NUEVO


Unidad 05 Proper, Georgia 89

Temas en el camino a
Proper
Propiedades
Dnde inicia el cdigo
Leer propiedades con
el cdigo
Configurar propiedades
con el cdigo
Mtodos IntelliSense y
notacin de punto
Llamar mtodos con el
cdigo.
Entrada a Proper


Unidad 05 Proper, Georgia 90
Propiedades

Formsville fue muy divertido! Yo s que es uno
de los lugares favoritos de Cliff, l sabe mucho
acerca del diseo de formatos y controles de
formatos. El te ense como crear el formato de
llanta ponchada. Incluso me ense algunas cosas
acerca de configurar usando la ventana de
propiedades.

Voy a manejar hacia nuestro siguiente destino:
Proper, Georgia. Alguna vez has ido? Es un
lugar muy apropiado. Debers tener muy buenos
modales cuando lleguemos all, durante el camino
te ensear ms cosas respecto a las propiedades,
te ensear como leerlas y configurarlas usando el
cdigo Visual Basic.NET. Despus de aprender
sobre dichas propiedades, te ensear un poco
acerca de los mtodos y como accesarlos tambin.









Unidad 05 Proper, Georgia 91
Dnde inicia el cdigo

Es divertido disear un formato y configurar los controles correspondientes usando la ventana de
propiedades, pero esto es slo el principio, la ventana de propiedades es muy fcil de usar, pero
no es muy verstil. Qu pasa si tu usuario desea cambiar el color de fondo del formato cuando
est usando tu programa? Qu pasa si necesita cambiar el tamao o estilo de fuente? Cmo
sabe tu programa si un usuario ha marcado algn cuadro de verificacin o ha hecho clic en un
botn de opcin en particular? Dado que tus usuarios no tendrn que accesar la ventana de
propiedades cuando ejecutan tu programa, Cmo podran hacer estas cosas?

Bien, la respuesta es por medio del cdigo Visual Basic.NET, con l puedes hacer todo esto y
mucho ms usando el cdigo. T mismo escribes cdigo para leer las propiedades de los
controles de formato. T mismo escribes ms cdigos para configurar sus propiedades. Es as de
simple y es muy poderoso. En mi opinin, es aqu donde empieza realmente la programacin.











Usa la ventana de propiedades
para configurar las propiedades
iniciales de tu formato y los
controles de formato cuando lo
ests diseado. Usa el cdigo
para cambiar las propiedades
durante la ejecucin del
programa.


Unidad 05 Proper, Georgia 92
A dnde va todo este cdigo? Escribirs tu cdigo en la pgina correspondiente de tu formato.
En la mayora de los casos lo colocars en las secciones de eventos de tus controles de formato.
Recuerdas el botn clic por evento? Cuando un usuario realiza una accin, como la de pulsar un
botn, el cdigo que escribes para la seccin de evento se ejecuta y la propiedad de un control de
formato se lee o se configura. Cuando agregas un cdigo a los eventos de los controles del
formato, ests realizando los primeros pasos para convertir un formato en un programa
funcional. Recuerdas el formato de llanta ponchada que diseaste? El formato no puede hacer
nada hasta que le hayas agregado un cdigo.



A continuacin te dar unos cuantos ejemplos de como leer las propiedades de los controles de
formato usando el cdigo Visual Basic.NET. Posteriormente te dar unos ejemplos de cmo
configurarlas.





Para editar la seccin de
eventos predeterminada de un
control, selecciona el control en
tu formato y haz doble clic en l.
La ventana de cdigo se abre y
el cdigo de la seccin de
evento est listo para su edicin.
Puedes escoger una seccin de
evento diferente de una lista
desplegable en el extremo
superior derecho de la ventana
de cdigo.


Unidad 05 Proper, Georgia 93
Lectura de las propiedades con el cdigo

Vamos a ver algunos ejemplos reales respecto a la forma de leer propiedades con el cdigo
Visual Basic.NET. Para iniciar, te mostrar unos ejemplos de como leer algunas propiedades
sencillas que normalmente se configuran usando la ventana de propiedades. Despus de esto te
dar unos ejemplos ms de cmo leer algunas propiedades que los usuarios pueden cambiar
cuando estn usando tu programa. Ahora, sigamos adelante.

Crea una nueva aplicacin de Windows llamada Leer propiedades, abre el cuadro de
herramientas y agrega un botn a Form1. Abre la ventana de propiedades y cambia la propiedad
de Texto del Button1 a Leer texto.

Haz doble clic en Button1 para editar el cdigo de evento del botn de clic. Teclea este cdigo:

MessageBox.Show(Button1.Text)

Crea e inicia tu aplicacin. Haz clic en el botn Leer texto. Un cuadro de mensaje se abre y
despliega el mensaje Leer texto lo cual es la propiedad de del texto de Button1. Ve esto: tu
cdigo ley la propiedad de texto de Button1 y despus despleg su valor usando un mensaje.
Esto es fantstico.

Este es otro ejemplo. Agrega otro botn a Form1. Usa la ventana de propiedades para cambiar la
propiedad de texto de Button2 a Tamao del formato. Haz doble clic en el Button2 para editar el
cdigo de evento del botn de clic. Teclea la siguiente lnea de cdigo en el evento del clic de
botn.

MessageBox.Show(Form1.ActiveForm.Height & "," &
Form1.ActiveForm.Width)

Crea e inicia tu proyecto. Haz clic en el botn tamao de formato. Un cuadro de mensaje
despliega: 300,300 (o un valor aproximado, asumiendo que dejaste el formato en su tamao
original) tu cdigo ha desplegado la altura y ancho de Form1, separado por una coma, lo cul
est muy bien y fue realmente sencillo.

Qu otras propiedades puede leer el cdigo Visual Basic.NET? Bueno, en realidad, el cdigo
Visual Basic.NET puede leer todas las propiedades de un formato o control de formato, los
cuales estn en la lista de la ventana de propiedades. Tu cdigo puede leer propiedades como
altura y ancho, color de fondo, color frontal, y ubicaciones en los ejes X e Y. Sin embargo,
muchas de las propiedades desplegadas en la ventana de propiedades se configuran cuando
diseas el formato y no cambian cuando el programa se ejecuta. Por lo tanto, el hecho de leerlas
con el cdigo no es tan til ni emocionante.


Unidad 05 Proper, Georgia 94

Lo que es realmente til es leer las propiedades
de los controles de formato que los usuarios
pueden cambiar cuando usen tu programa,
como el contenido de un cuadro de texto o el
marcado de un cuadro de verificacin. De esta
manera tu programa obtiene informacin de tu
usuario. Qu nmero de placas introdujo Len?
Qu llanta est ponchada? Qu tamao de
llanta escogi Cliff?

Aqu hay un ejemplo ms prctico. Vamos a
escribir un cdigo que muestre si un cuadro de
verificacin est marcado o no. Abre el cuadro
de herramientas y agrega un cuadro de
verificacin a Form1. Agrega un tercer botn a
Form1. Abre la ventana de propiedades y
cambia el texto del Button3 a verifcame. Haz
doble clic en el Button3 para editar el cdigo de
evento de clic.

Teclea la siguiente lnea de cdigo en el evento
de clic:

MessageBox.Show(CheckBox1.Checke
d)

Crea e inicia tu proyecto. Haz clic en el botn
verifcame. Qu despliega el cuadro de mensaje? Marca el cuadro de verificacin y haz clic en
el botn Verifcame otra vez. Ahora qu despliega el cuadro de mensaje? Cada vez que haces
clic en el botn, el cuadro de mensaje despliega la propiedad actual del cuadro de verificacin.
Debe decir cierto.





Recomendacin para el profesor
El alumno debe saber como leer y cambiar las
propiedades usando el cdigo, hasta que aprenda
tambin las instrucciones condicionales, hay
serias limitaciones sobre que tan interesante
puede ser un programa.
Esa es A3, B2 y
mi favorita, B9.


Unidad 05 Proper, Georgia 95
Ahora, como un ejemplo final. Te dar unos ejemplos de como leer y desplegar las palabras que
un usuario teclea en un cuadro de texto.

Agrega un cuadro de texto a Form1. Abre la ventana de propiedades para asegurarte que la
propiedad de Read only est configurada como falso. Configura el texto con Teclear aqu.
Agrega un cuarto botn a Form1. Cambia el texto de Button4 a leer el texto. Haz clic en Button4
para editar el cdigo del evento de clic. Teclea la siguiente lnea de cdigo.

MessageBox.Show(TextBox1.Text)

Crea e inicia tu proyecto. Haz doble clic en TextBox1 y oprime la tecla de retroceso para borrar
el texto. Teclea un texto nuevo en TextBox1. Haz clic en el botn Leer texto. Qu despliega el
cuadro de mensaje? Cambia el texto en TextBox1 y haz clic en el botn Leer texto otra vez.
Qu ocurre?


En J# y C# las propiedades de control de formato se leen igual que en
Visual Basic.NET. Este es un ejemplo de cdigo J# o C# que despliega el
texto de un cuadro de texto:

{
MessageBox.Show(TextBox1.Text);
}

Salvo por los corchetes y el punto y coma al final de la lnea, el cdigo se ve
igual que en Visual Basic.NET. Tambin, en J# y C# TextBox1 inicia con
t minscula.


Los ejemplos que expuse anteriormente, demuestran cmo se usa el cdigo Visual Basic.NET
para leer propiedades de controles del formato. Pero eso slo es una parte de la historia, porque
el cdigo Visual Basic.NET tambin se usa para configurar propiedades.







Unidad 05 Proper, Georgia 96

Configuracin de propiedades con cdigo

Es fantstico poder leer las propiedades de los controles mediante el cdigo Visual Basic.NET.
De este modo nuestro cdigo puede capturar las configuraciones que hacen los usuarios cuando
usan el programa. Tu programa puede realizar diferentes acciones o ejecutar un cdigo diferente
dependiendo de las configuraciones del usuario. Es posible hacer lo contrario? Qu pasa si yo
quiero configurar las propiedades de algunos de los controles cuando el usuario est ejecutando
el programa? Por ejemplo, si quiero tener marcado siempre el cuadro de verificacin de trabajo
urgente cuando el usuario inicia el programa. Quiero que el programa despliegue todos los
tamaos disponibles de las llantas en un cuadro de texto cuando el usuario hace clic en el botn
Conseguir las llantas. Quiero que la lista de tamaos de llantas disponibles se cargue
automticamente en la lista desplegable una vez que el usuario introduzca un nmero de placas
del vehculo.

Por supuesto que el cdigo Visual Basic.NET me permite hacer todo eso! Configurar las
propiedades de controles es tan fcil como leerlas. Para configurar una propiedad usando el
cdigo Visual Basic.NET usamos una instruccin de asignacin. Recuerdas que hablamos de
las instrucciones de asignacin de camino a Pseudo, PA? Una instruccin de asignacin
configura a un elemento con otro. El cdigo para una instruccin de asignacin se ve como una
ecuacin sencilla con un signo de igualdad en ella.

TextBox1.Text = "Code Rules"

El lado derecho de la ecuacin (la parte a la derecha del signo de igual) se evala primero.
Despus el lado izquierdo de la ecuacin (la parte a la izquierda del signo de igual) se configura
con este valor.





Recomendacin para el profesor
Recuerde continuamente a los alumnos que las asignaciones de
lenguajes .Net, van de derecha a izquierda.
Un concepto muy importante es que todo lo que se encuentra a
la derecha del signo de igual permanece sin cambios. El
contenido de las variables del lado derecho es evaluado en un
rea de trabajo de Visual Basic y despus es asignado a la
variable en el lado izquierdo. Slo la variable del lado
izquierdo se cambia.


Unidad 05 Proper, Georgia 97
Estos son algunos ejemplos sobre la forma de configurar propiedades usando el cdigo Visual
Basic.NET. El primer ejemplo configura el contenido de un cuadro de texto. Esta es una
grandiosa forma de desplegar informacin para el usuario, puede usarse en vez de que siempre
emerja un cuadro de mensaje. Inicia una nueva aplicacin de Windows y dale el nombre de
ConfiguraPropiedades. Agrega dos cuadros de texto y un botn a Form1. Usa la ventana de
propiedades para configurar el texto del Button1 con Configurar texto. Configura el texto de
TextBox1 y TextBox2 dejndolo en blanco, haciendo doble clic en sus propiedades de texto y
oprimiendo la tecla de retroceso. Haz doble clic en Button1 para editar el cdigo de evento del
botn de clic. Agrega la siguiente lnea de cdigo:

TextBox2.Text = TextBox1.Text

Crea e inicia tu proyecto. Teclea texto en TextBox1 y haz clic el botn configurar texto. Qu
ocurre? Como puedes ver el texto en TextBox1 ha sido "copiado" en TextBox2. La propiedad de
texto de TextBox2 se configura con el mismo valor de la propiedad de texto de TextBox1. El
cdigo Visual Basic.NET lee la propiedad de texto de TextBox1 y despus configura la
propiedad de texto de TextBox2 con este valor. Eso es prctico.

Vamos a agregar un cdigo para que un cuadro de verificacin est seleccionado
automticamente y un segundo cuadro de verificacin estar automticamente sin seleccionarse
cuando el usuario abra la aplicacin. Agrega un cuadro de verificacin a Form1 y configura su
propiedad de texto con trabajo urgente usando la ventana de propiedades. Agrega un segundo
cuadro de verificacin a Form1 y configura su propiedad de texto con "Whenever" usando la
ventana de propiedades. Haz doble clic en Form1 (no en CheckBox1 o CheckBox2) esto abre el
cdigo de evento de carga de Form1_Load para su edicin. El cdigo del evento de carga de
formato se ejecuta cuando el formato se crea por primera vez y se despliega antes de que
cualquier otro cdigo de programa haya sido ejecutado. Agrega las siguientes lneas de cdigo:

CheckBox1.Checked = True
CheckBox2.Checked = False

Crea e inicia tu proyecto. Cul de las casillas de verificacin est marcada? Tu cdigo configur
automticamente la propiedad de checked para las dos casillas de verificacin cuando se carg
el formato.


Unidad 05 Proper, Georgia 98

















Yo s que el tamao de llanta ms comn es el 14. Entonces, vamos a usar el cdigo para elegir
automticamente 14 en nuestro cuadro combinado de tamao de llanta. Primero, agrega un
cuadro combinado al Form1. Usa la Ventana de propiedades para configurar sus elementos con
12, 13, 14,15, y 16. No olvides oprimir Enter para crear una lnea nueva para cada elemento en
la lista. Haz doble clic en Form1 (no en ComboBox1) para editar el cdigo de carga de formato.
Agrega la siguiente lnea de cdigo:

ComboBox1.SelectedItem = "14"

Crea e inicia tu proyecto. Qu elemento est seleccionado en el cuadro combinado? Pensemos
que me equivoque, descubr que el tamao de llanta ms comn es 13. Cmo cambiaras el
cdigo para seleccionar automticamente 13 en el cuadro combinado?


En J# y C# puedes configurar las propiedades igual que en Visual
Basic.NET. El cdigo a continuacin muestra cmo configurar la propiedad
de verificada de una cuadro de verificacin en C# o en J#.

{
checkBox1.Checked = True;
}


05 Ejercicio 01 Arco iris
El evento de carga de formato se
usa a menudo para inicializar un
programa. La inicializacin configura
ciertos valores antes de que el
formato se despliegue para el
usuario. Por ejemplo, podramos
agregar cdigo al evento de carga
de formato para configurar el
tamao del formato y su color de
fondo as como seleccionar ciertos
botones de opcin antes de que se
despliegue el formato.


Unidad 05 Proper, Georgia 99

Inspirado por un lindo arco iris que vimos desde el
asiento frontal de la camper, nuestros compaeros
decidieron ver quien poda imitar la vida con un
programa artstico.

Tu tarea es demostrar que puedes manipular tambin las
propiedades usando cdigo VB real, y no solo la
Ventana de propiedades.

Abre Visual Studio.NET, selecciona Proyecto existente,
y navega al archivo llamado Rainbow.sln.
Alternativamente, puedes usar Mi PC para navegar a
Rainbow.sln, hacer doble clic en l para abrir Visual
Studio.NET.

Tu tarea es agregar objetos del cuadro de herramientas
para que el formato tenga esta apariencia. Tambin
actualizars elementos en la ventana del cdigo como
se describe a continuain.

1. Haz clic en el formato para centrarlo.
Cambia la propiedad de texto del
formato a Arco iris.

2. Crea un cuadro de imagen grande
llamado ImageBox1.

3. Crea dos botones de comando
llamados Button1 y Button2. Nombra
Colores estndar al Button1. Nombra
Personalizar colores al Button2.

Arco iris de colores.
Disears un formato que
despliegue un arco iris de colores.
Modificars un cdigo existente
para hacer que el programa
funcione y lo agregars a las
secciones de eventos de los
controles de formato.
El archivo 05_proveit01_files
incluye las instrucciones para este
Ejercicio y todos los archivos de
apoyo que pudieras necesitar.


Unidad 05 Proper, Georgia 100

4. Haz doble clic en el Button1 para ver el cdigo que ya te dimos. Vers que se dibujan siete
colores del arco iris. Los siete se dibujan en negro. Tu tarea es cambiar los colores a los siete
colores tradicionales del arco iris: rojo, naranja, amarillo, verde, azul, ndigo, violeta. Por
ejemplo, reemplaza este cdigo:

MyPen.Color = System.Drawing.Color.Black

Con este cdigo

MyPen.Color = System.Drawing.Color.Red

En cuanto se teclea el punto despus de la palabra Color, Intellisense enlista todos los colores
definidos. Al teclear una o dos letras de estos, te posiciona en la lista.

5. Haz doble clic en Button2 para ver el cdigo que ya se te asign. En vez de negro, escoge los
siete colores que quieras.

Una vez que hayas creado tu formato, crea la solucin. Si no hay errores de creacin, escoge
Depurar/ Iniciar para ejecutar tu programa.

Si tu programa funciona correctamente, mustraselo a tu instructor.


Prueba extra

Si quieres, puedes hacer cambios a los parmetros de Dibujar arco para la opcin personalizar
con el propsito de obtener otros resultados interesantes.




Recomendacin para el profesor
La funcin Dibujar arco es en realidad un valo
circunscrito por un rectngulo invisible. Los parmetros
especifican el tamao del rectngulo, donde inicia el
arco y hasta donde llega el arco. El hecho de cambiar
los parmetros puede producir algunos efectos
interesantes.


Unidad 05 Proper, Georgia 101
IntelliSense y notacin de
punto

Ahora sabes como escribir un cdigo Visual
Basic.NET para leer y configurar todas las
propiedades de los formatos y los controles de
formato. S, apuesto que puedo adivinar cul es
tu siguiente pregunta. Ya que cada formato y
control tiene tantas propiedades, cmo llevo un
control de todas ellas? No es muy conveniente
estar cambiando de la ventana de cdigo a la
Ventana de propiedades cada vez que
necesitamos saber qu propiedad pertenece a un
control en particular. No hay otro modo ms
fcil?

En efecto, s lo hay. Se llama IntelliSense. Es
una parte de Visual Studio. IntelliSense ahorra mucho tiempo cuando ests escribiendo un
cdigo en la ventana de cdigo. IntelliSense sabe a qu control te refieres y sabe cuales son sus
propiedades. Despliega una lista de propiedades y te permite escoger la que quieras usar. La
propiedad ms utilizada se resalta cuando la lista de IntelliSense se despliega. Por ejemplo, la
propiedad de texto de un cuadro de texto se resalta inicialmente. Usa las flechas para encontrar la
propiedad que quieras. Cuando oprimes la tecla de tabulador, agrega la propiedad a tu cdigo.
Con IntelliSense no tienes que memorizar todas las propiedades de todos los controles. Te
ahorra capturar mucha informacin! Yo lo uso todo el tiempo.






Recomendacin para el profesor
De ser posible, haga una demostracin de Intellisense.
Seale que en cuanto se pone el punto, las opciones
aparecen. Si no aparecen opciones entonces es probable
que la variable no est definida o haya sido capturada
con errores.
El grupo y yo hemos tocado
durante tanto tiempo que ya
saben que voy a hacer a
continuacin


Unidad 05 Proper, Georgia 102

Inicia una nueva aplicacin de Windows llamada IntelliSense. Agrega un cuadro de texto y un
botn a Form1. Haz doble clic en el botn para abrir el cdigo de evento de clic para Button1.

1. Teclea TextBox1 y oprime la tecla de punto (.).
(No olvides el punto), en cuanto tecleas el
punto, IntelliSense despliega una lista de
propiedades para TextBox1, ya que esta es un
cuadro de texto, esta lista es la misma para
cualquier cuadro de texto que agregues a un
formato. Por sistema la propiedad de verificado
en la lista IntelliSense es la ms usada. En este
caso la propiedad de texto est predeterminada
por el sistema.


2. Ahora teclea la letra "R". IntelliSense encuentra
la primera propiedad en la lista que inicie con la
letra "R". Conforme escribes el nombre,
IntelliSense encuentra la propiedad de que ms
se parezca a lo que escribiste.







3. Usa la flecha de descenso para moverte en la
lista y ubicar la propiedad de texto otra vez.
Selecciona la propiedad de texto para resaltarla.


4. Oprime la tecla de tabulador. Mira lo que ocurre! La palabra Text (texto) se agrega a tu
cdigo despus de TextBox1. Ahora escribe ="Clifford". El cdigo ahora debe decir:

TextBox1.Text = "Clifford"

No fue fcil y rpido? IntelliSense ayuda a eliminar errores de captura y tambin de sintaxis. Es
el mejor.



Unidad 05 Proper, Georgia 103


Probablemente ya te diste cuenta de que hay un icono junto a
cada uno de los elementos en la lista desplegada por IntelliSense.
El icono que representa una propiedad es una mano sealando un
elemento en una lista. El icono que representa un mtodo es un
cuadro prpura o diamante prpura. (En un minuto te explicar
los mtodos.) Dependiendo del control, tambin puedes ver otros
iconos correspondientes a los atributos de control adicionales.



Te diste cuenta de que tuviste que teclear el punto antes de que apareciera la lista de
IntelliSense? Esto se debe a que Visual Basic.NET usa un tipo de sintaxis llamada Notacin de
punto, una vez que tecleas el nombre del control, como TextBox1, tienes que teclear un punto (.).
Despus tecleas el nombre de la propiedad. El punto es lo que conecta el control con su
propiedad. Esta es la sintaxis bsica para referir una propiedad de un formato o control usando
notacin de punto:

FormName.FormProperty
ControlName.ControlProperty

Ya viste muchos ejemplos pero aqu hay otros ms:

TextBox1.Text
CheckBox1.Checked
Form1.ActiveForm.Height

Nota que el punto (.) que une el control con su propiedad. En el ltimo ejemplo, formato activo,
es una propiedad de Form1 y altura es una propiedad de ActiveForm. Por lo tanto, se requieren
dos puntos para unir las propiedades. IntelliSense sabe cuando una propiedad tiene una
Ya que todas las propiedades estn
resaltadas en la lista Intellisense, una
recomendacin aparece junto a ella.
La recomendacin te da informacin
acerca de la propiedad de, como si se
trata de una propiedad de slo lectura
que no puede configurarse. La
recomendacin tambin da
informacin acerca de los parmetros
de configuracin de la propiedad, tales
como una cadena (texto) o un entero.


Unidad 05 Proper, Georgia 104
propiedad propia. Cuando tengas dudas, teclea otro punto e IntelliSense desplegar una lista de
propiedades disponibles. Si IntelliSense no despliega la lista, no hay propiedades adicionales y
tendrs que retirar el ltimo punto. O tal vez hayas escrito mal el nombre del control.

Cuando desarrollas aplicaciones C# y J# usando Visual Studio,
IntelliSense tambin est disponible. Funciona igual que Visual
Basic.NET. Solo teclea el nombre de tu control y despus un
punto (.). IntelliSense despliega una lista de propiedades y
mtodos disponibles. Debido a que J#, C# y Visual Basic.NET
estn basados en el marco de trabajo .NET, la lista de propiedades
y mtodos para un control es la misma para los tres lenguajes. Un
cuadro de texto en C#, J# y Visual Basic.NET tiene las mismas
propiedades y mtodos.









Unidad 05 Proper, Georgia 105
Mtodos
Probablemente ya te diste cuenta de que algunas de las propiedades en la lista desplegada por
IntelliSense tienen un icono de diamante prpura junto a
ellas. Estas no son propiedades sino mtodos. Las
propiedades son caractersticas del control, tales como el
color, nmero de asientos, libras de cromo y caballaje del
motor son caractersticas de los autos. Los mtodos tienen
ms similitud con las acciones del control, tales como girar
a la derecha, parar, y acelerar hasta el fondo son acciones
de los autos. Los mtodos no pueden accesarse mediante la
ventana de propiedades. Para desplegar los mtodos debe
usarse un cdigo.

Por ejemplo, la mayora de los controles de formato tienen
un mtodo para ocultar y mostrar. Cuando usas el mtodo
ocultar de un control, el control deja de ser visible aunque est en el formato. Cuando usas el
mtodo mostrar, el control se hace visible. Algunos mtodos te permiten producir una accin que
normalmente sera realizada por un usuario. Por ejemplo, un botn tiene un mtodo Hacer clic el
cul permite que tu cdigo hacer clic en un botn, simulando la accin de un usuario.

Algunos mtodos requieren que incluyas cierta informacin cuando los usas. Esta informacin
afecta la forma en que se realiza el mtodo y los resultados. Estos datos se llaman argumentos
del mtodo. Un mtodo puede requerir uno o ms argumentos. Algunos de ellos pueden ser
opcionales.

Por ejemplo, el mtodo para mostrar el cuadro de mensaje usa una cadena de texto como
argumento. Este argumento determina lo que despliega el cuadro de mensaje. Ya has usado el
mtodo para mostrar el cuadro de mensaje pero tal vez no te diste cuenta que estabas usando un
mtodo con un argumento.

MessageBox.Show("Hola Mundo")

En el cdigo que est sobre el texto "Hello World" se encuentra un argumento del mtodo para
mostrar. El argumento determina lo que se despliega en el cuadro de mensaje.
Recuerda, la diferencia principal entre las propiedades y los mtodos es que stos realizan una
accin. Los mtodos tienen que usarse partiendo del cdigo y no pueden accesarse a partir de la
Ventana de propiedades. Algunos mtodos pueden requerir uno o ms parmetros (argumentos)
cuando se usan. Algunos mtodos devuelven un valor que puedes usar en tu cdigo.

Llamar mtodos con el cdigo

La sintaxis para llamar un mtodo es casi idntica a la sintaxis de configuracin o lectura de una
propiedad. Usa la notacin de punto para conectar el control de formato con su mtodo. Algunos
No, eso es
falso


Unidad 05 Proper, Georgia 106
mtodos, como Button.Hide y Button.Show, no necesitan argumentos. Otros, como
MessageBox.Show, necesitan un argumento para saber qu mostrar. La sintaxis para llamar un
mtodo es:

ControlName.MethodName (argument1, argument2, etc.)

Recuerda que usaste el mtodo mostrar del cuadro de mensaje cuando diste un argumento:

MessageBox.Show(Hello World)

Como puedes ver, una gran diferencia entre llamar un mtodo y leer (o configurar) una
propiedad es que no hay un signo de igual en el cdigo empleado para llamar un mtodo.

Ahora veamos algunos de mis mtodos favoritos y como puedes usarlos partiendo del cdigo. Te
dar unos ejemplos de como ocultar y mostrar controles de formato, borrar el texto en un cuadro
de texto y establecer la ubicacin del cursor. Para empezar, inicia una aplicacin nueva de
Windows llamada Mtodos. Agrega dos botones y un cuadro de texto a Form1. Cambia el texto
de Button1 a "Show". Cambia el texto de Button2 a "Hide". En el evento de clic de Button1
agrega la siguiente lnea de cdigo.
TextBox1.Show()

En el evento de clic de Button2 agrega la siguiente lnea de cdigo.

TextBox1.Hide()

Crea e inicia tu aplicacin. Haz clic en los botones "Show" y "Hide". Cada vez que haces clic en
un botn ests usando un mtodo del control del botn.
Agrega un tercer botn a Form1. Configura el texto de Button3 con "Reset" agrega el siguiente
cdigo al evento de clic de Button3.

TextBox1.ResetText()
TextBox1.Focus()

El mtodo ResetText elimina el texto del cuadro de texto.
El mtodo Focus coloca el cursor en el cuadro de texto.
Crea e inicia tu aplicacin. Teclea el texto en el cuadro de texto y haz clic en el botn Reset. El
texto se elimina del cuadro de texto y el cursor se coloca automticamente en el cuadro de texto,
listo para teclear datos.










Recomendacin para el profesor
Una alternativa comn para
TextBox1.ResetText()
es el no asignar nada
TextBox1.Text =
y el interior de las comillas est vaco.



Unidad 05 Proper, Georgia 107
Como habrs adivinado, los mtodos se usan en J# y C# igual que en
Visual Basic.NET. Este es un cdigo de J# que elimina el texto de un
cuadro de texto y pone el cursor en el cuadro de texto. El cdigo C# se
ve exactamente igual.

{
TextBox1.ResetText();
TextBox1.Focus();
}








Unidad 05 Proper, Georgia 108
Llegada a Proper

Muy bien, aqu estamos en las almidonadas y perfectas afueras de Proper, Georgia. Aprendimos
mucho durante el camino. Ahora puedes leer y configurar propiedades y usar mtodos de
controles de formato usando cdigo Visual Basic.NET. Como viste, la mayor parte del cdigo
pasa a las secciones de eventos de los controles de formato. Para abrir el cdigo para la seccin
de eventos slo haz doble clic en el control, la ventana de cdigo se abre y la seccin de evento
est lista para edicin. Para leer o configurar una propiedad, o usar un mtodo, teclea el nombre
de un control y despus teclea un punto (.). IntelliSense muestra una lista de propiedades y
mtodos disponibles para el control. Selecciona el que quieras y oprime la tecla de tabulador para
agregarlo a tu cdigo.

Tenemos tiempo suficiente para un Ejercicio o dos y una prueba antes de que nos pongamos algo
ms elegante y vayamos al Peach 'n Bass Caf. Listo?




Unidad 05 Proper, Georgia 109
05 Ejercicio 02 Medidor de viaje

El fantstico mapa de viaje inspir a Nikki a
preguntar si alguien podra escribir un programa que
muestre el porcentaje del viaje que ha sido cubierto
cuando lleguemos a cada ciudad.

Tu tarea es demostrar que ya puedes manipular
propiedades usando el cdigo VB real, no slo la
Ventana de propiedades.

Abre Visual Studio.NET, selecciona Nuevo
proyecto, y crea un proyecto llamado Medidor de
viaje.

Tu tarea es agregar objetos del cuadro de
herramientas para que el formato se vea as. Tambin
deber actualizar los elementos en la ventana de
cdigo como se describe a continuacin.


1. Haz clic en el formato y cambia el nombre del
formato a Medidor de viaje.

2. Crea 13 botones de opcin. Que el ancho de cada
botn sea 150 pxeles. Tal vez quieras usar la funcin
copiar y pegar.

3. Alinalos verticalmente y despus sepralos
uniformemente. Sabas que hay iconos en la barra de
herramientas que pueden hacer eso? Coloca tu cursor
en los botones de la barra de herramientas hasta que
encuentres el que necesitas, y luego haz clic sobre l.


Medidor de avance del viaje

Crea un formato que muestre
un medidor que indique el
avance del viaje de las reglas
de cdigo. Puedes agregar un
cdigo a los elementos del
formato para hacer tu programa
interactivo. El archivo
05_proveit02_files contiene las
instrucciones y cualquier
archivo de soporte que puedas
necesitar.
Fin


Unidad 05 Proper, Georgia 110

4. Cambia el texto de los botones a:

Inicio: Everywhere, WI
Ideal, IL
Pseudo, PA
Formsville, VA
Proper, GA
XY, AR
Switchboard, OK
Whatif, TX
Ifelse, NM
Def Valley, CA
Whatever, CO
Function Junction, SD
Final: Whatever, WI

5. Crea un botn llamado fin. Haz doble clic para obtener la pgina de cdigo asociado. Coloca
la palabra fin en el evento del clic de botn.

6. Coloca una barra vertical de desplazamiento en tu pgina. Tal vez tengas que recorrer el
cuadro de herramientas usando el tringulo descendente. Por sistema, la barra de desplazamiento,
inicia en cero y termina en 100 como predeterminada. Esto hace que el indicador de la barra de
desplazamiento sea muy grueso. Para hacerlo ms delgado, cambia el parmetro mximo para la
barra de desplazamiento a 1000.

7. Ahora puedes escribir el cdigo. Haz doble clic en el primer botn de opcin. Coloca esta
lnea de cdigo en el evento de clic.

VScrollBar1.Value = 0

Este mueve el indicador de desplazamiento a la posicin cero, para el rango de 0 1000.
Para cada botn de opcin, usa una lnea de cdigo similar, haciendo cada valor 83 veces mayor
que el valor previo. El ltimo valor debe ser 1000.

Una vez creado tu formato, crea la solucin. Si no hay errores de creacin, elige Depurar / Iniciar
para ejecutar tu programa.

Si tu programa funciona correctamente, mustraselo a tu instructor.


Unidad 05 Proper, Georgia 111
05 Reto Flores

Cuando pasamos por un campo de flores me pongo
de buen humor. Creo que deberamos tener un
programa de flores.













Haz un formato como este:



1. Pon la propiedad de Visible de los cuatro cuadros de imagen en falso.

2. Pon el estilo de orilla de los cuatro cuadros de imagen en 3D fijo.

3. Pon la propiedad de SizeMode de los cuatro cuadros de imagen en auto-dimensionar.

4. Configura la propiedad de cada cuadro de imagen con la imagen correspondiente en la
carpeta de descarga.

5. Ve a la pgina de cdigo. Justo arriba del cdigo
hay dos listas desplegables. De la lista desplegable
izquierda, escoge Label1.
Recomendacin para el
profesor
Algunos alumnos configurarn
MouseHover para el cuadro de
imagen. Las instrucciones hacen
que el ratn se coloque sobre el
ttulo que tiene el nombre de la
flor, no sobre la flor.
En este reto crears un formato
para mostrar flores. Escribirs un
cdigo para hacer cambios en las
propiedades del formato.
El archivo 05_Challenge_files
contiene las instrucciones para
esta prueba y todos los archivos
de apoyo que necesitas


Unidad 05 Proper, Georgia 112

6. De la lista desplegable a la derecha, elige MouseHover.

7. En el evento Label1.Mousehover, pon la propiedad de Visible de ImageBox1 en Cierto.
Pon la propiedad de Visible de los otros tres cuadros en falso.

8. Haz lo mismo para los otros tres ttulos, haciendo los cambios correspondientes en los
cuales las imagines son visibles y en los que no.

9. El resultado final es un programa que solo muestra una imagen a la vez cuando el ratn
se mantiene sobre la descripcin.

Una vez que tu programa funciona correctamente, mustraselo a tu instructor.


Extensin / desviacin

Cuando una flor haya sido seleccionada, cambia el color de fondo del formato.




Unidad 05 Proper, Georgia 113
Dado que ya vamos a llegar a Proper, GA tienes que resolver otra prueba del rally. Buena suerte.



Puedes usar un cdigo de programa para:
Cmo haces que el cdigo seleccione un
cuadro de verificacin ?
Todas las instrucciones de asignacin de Visual
Basic:
Qu lnea de cdigo lee y despliega la propiedad de
seleccionado de un botn de opcin?
Leer propiedades de los controles


Configurar las propiedades de los
controles

Ambas
Van de izquierda a derecha

Van de derecha a izquierda


Van en cualquier direccin porque son
iguales




Unidad 06 XY, Arkansas Pgina 114 de 321


Temas en el
camino a XY
XY
Asignaciones
Tipos
Tipos primitivos
Qu son las variables?
Variables de
declaracin
Variables de
inicializacin
El uso de variables
Otro tipo de variables
La llegada a XY



Unidad 06 XY, Arkansas Pgina 115 de 321

XY

Ahora nos estamos dirigiendo a XY,
Arkansas. Es la ciudad natal del famoso
jugador de basketball Al'Gebra. Mi ex-
novia viva aqu. Por qu ex-novia? Es
que no nos entendamos muy bien. Creo
que era demasiado voluble.

En el camino a XY, te ensear algo
acerca de los tipos de datos, como las
cadenas de caracteres y enteros. Cuando
configuras la propiedad de formato,
debes estar seguro de que es el tipo
correcto. La mayor parte del viaje
hablaremos de las variables y cmo
utilizarlas en tu cdigo, el cul utiliza
variables para almacenar informacin de tipos diferentes. Las variables
constituyen un bloque bsico de creacin para la escritura de un cdigo. Yo
estoy seguro que aprenders rpido y comenzars a basarte en las variables
tanto como lo hacemos Nikki y yo para escribir un cdigo.





Unidad 06 XY, Arkansas Pgina 116 de 321

Asignaciones
Nikki nos hizo primero escribir un cdigo en Visual Basic.NET que es realmente til. Ahora ustedes saben cmo leer y
configurar las propiedades mediante un cdigo. Sabas que cuando asignas una propiedad ests utilizando una instruccin
de asignacin? Hablamos de ellas en el camino a Pseudo, PA. Las instrucciones de asignacin asignan una cosa a otra. El
cdigo para una instruccin de asignacin parece una simple ecuacin que contiene un signo de igual.
TextBox1.Text = Code Rules
Ahora rige esta instruccin de asignacin.

Algo que t debes saber acerca de las instrucciones de asignacin es que el lado derecho de la ecuacin (la parte que se
encuentra a la derecha del signo de igual) se evala primero. Despus, el lado izquierdo de la ecuacin (la parte que se
encuentra a la izquierda del signo de igual) se asigna a este valor. Parece algo retrgrada, pero es as como funciona el
programa. En la ecuacin que se presenta a continuacin, Code Rules se evala primero. Despus TextBox1.Text se
asigna a ese valor.
TextBox1.Text = Code Rules




Unidad 06 XY, Arkansas Pgina 117 de 321

Tipos
Otra cosa que siempre debes tener en mente es que el la parte izquierda de la ecuacin espera que su parte derecha sea
de true type (texto, nmero, color, etc.) te lo explicar mediante la siguiente lnea de cdigo como ejemplo:
TextBox1.Texto = Code Rules Rocks
Aqu, el lado izquierdo de la ecuacin es la propiedad de Texto de TextBox1, que slo puedes asignarse al texto, de modo
que el lado derecho tambin debe ser texto. Si el lado derecho es un tipo diferente (que no sea texto), se produce un error
cuando trata de construir el proyecto. Debido a que Code Rules Rocks es texto, y es lo que la propiedad de Texto est
esperando, no ocurre ningn error.

El siguiente cdigo no se compilar porque estamos tratando de configurar la propiedad de Texto que est esperando
asignarse a ForeColor, que es un tipo de color.
TextBox1.Text = TextBox1.ForeColor 'resulta un error
El siguiente cdigo es correcto porque al lado derecho de la ecuacin evala un tipo entero y a la Propiedad de altura slo
le puedes asignar un valor entero.
TextBox1.Height = 200
Este cdigo es incorrecto porque incluye un decimal.
TextBox1.Height = 200.5
Recuerda, cuando ests utilizando instrucciones de asignacin, el lado
derecho de la ecuacin debe ser del tipo correcto -- tiene que ser del tipo
que lado izquierdo de la ecuacin est esperando.















Recomendacin para el profesor
Con frecuencia, Visual Basic convertir exitosamente un
tipo de datos mal correlacionado. No se puede garantizar
una conversin exitosa as que se deben especificar los
datos correctos para las variables como una costumbre para
lograr una buena programacin. J# y C# son ms sensibles a
errores de correlacin.



Unidad 06 XY, Arkansas Pgina 118 de 321








Hasta ahora hemos usado el
texto como un tipo, en el
marco de trabajo de .NET,
se le denomina una
cadena. Cuando ests
usando un cdigo para
configurar una propiedad
que requiere un tipo de
cadena, debes recordar que
dicho texto va entre
comillas, as:
Button1.Text = Click Here
Hasta aqu hemos usado texto
como tipo. En el marco .NET
todos los textos se llaman
cadena. Cuando usas un
cdigo para definir una
propiedad que requiere un tipo
cadena, acurdate te colocar el
text en s entre comillas.

Button1.Text = Click Here



Unidad 06 XY, Arkansas Pgina 119 de 321

Tipos primitivos

El entorno de .NET soporta a varios tipos bsicos, a los cules se les
conoce como primitivos. Tu ya has utilizado el tipo de cadena para asignar
la propiedad de Texto de un botn. Ya has utilizado el tipo entero para
asignar la Propiedad de altura de una forma. Incluso haz utilizado la
Propiedad booleana (True o False), es decir verdadero o falso,
respectivamente para configurar la Propiedad de Visible de un cuadro de
texto.

Algunos de los tipos primitivos que se utilizan ms comnmente son:
Cadena (texto), Entero (nmeros enteros), Sencillo (nmeros decimales) y
Booleano (True o False), estos tipos primitivos son comunes en todos los
lenguajes de programacin de .NET, incluyendo Visual Basic.NET, C#, y J#.

A continuacin se presentan algunos ejemplos de valores que permitidos
para cada uno de estos tipos primitivos:

Tipo Ejemplo Comentario
Cadena "Hello" El texto debe estar entre comillas dobles
Entero 123 Todos los nmeros enteros sin puntos
decimales
Sencillo 55.12 Nmeros con puntos decimales
Booleana True Slo puede ser True o False



Recomendacin para el profesor
La mayora de los alumnos tienen problemas con el concepto de que un nmero, como
el entero 1, el cul no es lo mismo que el carcter de cadena 1. El formato binario
del entero es 00000001 y el formato binario del carcter de cadena 00110001,
obviamente no son iguales.

Visual Basic complica el asunto porque intenta realizar conversiones segn sean
necesarias. Por ejemplo,
Dim A as Integer = 1
Dim B as string = 1
Si (A = B) Entonces

El cdigo anterior regresa un valor de True a pesar del hecho que la representacin
interna es diferente.

Remind students not to directly do arithmetic using the Text property of a textbox.



Unidad 06 XY, Arkansas Pgina 120 de 321

Ve estos ejemplos de cdigo de instrucciones de asignacin los cuales
muestran las propiedades de diferentes tipos:
TextBox1.Texto="Smile"
TextBox1.Visible=True
TextBox1.Width = 1000




Aqu hay algo interesante! Debido a que C# y J# tambin son
lenguajes de .NET, tienen los mismos tipos primitivos como
Visual Basic.NET--cadenas, enteros, sencillos, Booleanos y todos
los dems.






Cuando selecciones una
propiedad o mtodo de la lista
del IntelliSense, tambin se
desplegar un tip de ayuda, el
cul te dir a que tipo de
propiedad debe configurarse o
qu tipo de argumentos de
mtodo debe ser:

Button1.Text = Presiona aqui



Unidad 06 XY, Arkansas Pgina 121 de 321

Qu son las variables?
Las variables son utilizadas por tu cdigo para almacenar informacin que podr necesitar en algn momento ms
adelante. Las variables en el cdigo son como las variables en las matemticas. Se le asignan a un valor y pueden
utilizarse en lugar de ste. A las variables se les puede asignar un nuevo valor en cualquier momento.
En el cdigo, tu programa utiliza a las variables para "recordar" la informacin. Si tu cdigo no utiliz alguna variable,
entonces tu programa tendra que detenerse constantemente y pedirle al usuario que teclee la informacin cada vez que la
necesite. Imagnate que tu programa requiriera saber la edad del usuario en tres momentos diferentes No sera molesto
si el programa tuviera que detenerse y solicitarle al usuario que la tecleara una y otra vez?
Teclee su edad.
Teclee su edad.
Teclee su edad.
Con la ayuda de las variables, tu programa solicitara slo una vez que el usuario teclee su edad, sta se guardara en una
variable que el cdigo utilizara cada vez que el programa necesitara saberla.



Unidad 06 XY, Arkansas Pgina 122 de 321

Por qu utilizar las variables?
Como pudiste ver, las variables nos ayudan a ahorrar tiempo real, reduciendo tambin el volumen de informacin que un
usuario debe teclear. Tambin nos ayudan a reducir los errores. Si tuviste que teclear un nmero de varias cifras una y
otra vez, existe una mayor posibilidad de que en algn momento cometieras por lo menos un error.

Adems de ahorrar informacin ingresada por usuarios, las variables se utilizan para otras cosas. Asimismo, se utilizan
para llevar un control sobre los resultados calculados por el programa. Las variables se utilizan tambin para hacer
comparaciones que determinan el orden en el que se ejecuta el cdigo. Se emplean tambin para contar cosas, como, por
ejemplo, cuntas veces se ha realizado un clculo.

Un componente fundamental en la programacin es aprender cmo almacenar informacin en las variables, las cules se
utilizan en todos los lenguajes de programacin. Son absolutamente necesarias para realizar ciertos tipos de clculos y
llevara a cabo ciertas acciones en tu cdigo.




Unidad 06 XY, Arkansas Pgina 123 de 321

Declaracin de variables
Antes de que tu programa pueda utilizar una variable,
debes declararla. Para declarar una variable debes
escribir una lnea de cdigo que establece el nombre de
la variable y le asigna un tipo especfico. Debes declarar
todas las variables en Visual Basic.NET. De todos modos
es un buen ejercicio porque te hace pensar acerca de
cmo se utilizar dicha variable y acerca de su tipo.
Declarar tus variables acelera el tiempo de compilacin y
logra que el programa se ejecute ms eficazmente.
Tambin evita que escribas mal el nombre de la variable
cuando se utiliza en tu cdigo.

Para declarar una variable en cdigo de Visual
Basic.NET, utilizas una instruccin "Dim".


La instruccin Dim tiene la siguiente sintaxis:
Dim VariableName As VariableType
Aqu hay algunos ejemplos de cmo declarar variables
de diferentes tipos.
Dim MyName as String
Dim MyWeight as Integer
Dim PanComido como Booleana
Dim DVDprice As Single

La primera variable, MyName, se declara como variable
de tipo Cadena. Esto significa que a la variable de
MyName slo puedes asignarle a una Cadena. La segunda variable, MyWeight, se declara como una variable de tipo
Entero, es decir que slo puede asignarse a un Entero. La variable PanComido slo puede asignarse a al tipo Booleana y la
variable de DVDprice slo puede asignarse al tipo Sencillo.




Unidad 06 XY, Arkansas Pgina 124 de 321













En C# y J# declaras las variables de una manera un
poco diferente. Primero, escribes el tipo de variable,
despus el nombre de la misma. De igual forma, los
nombres de los tipos son ligeramente distintos. Por
ejemplo, int se utiliza en lugar de Entero y decimal se
utiliza en lugar de Sencillo.

int val4;
string MyName;
decimal miPromediodeAciertos;
Recomendacin para el profesor
Los alumnos tienden a escoger nombres de
variables que son ya sea lindos o no tienen
sentido, o letras solas para ahorrarse la
tecleada. Ms tarde se les olvida lo que
significan las variables, originando errores
causados por haber utilizado un nombre
equivocado. Adems, cuando el alumno pide
ayuda, la persona que le asiste no tiene ni
idea de para qu se utilizan las variables.
Usted podr considerar negarse a ayudar a un
alumno que no asigne nombres con sentido
para las variables.
Los nombres que elijas para tus
variables son importantes. Los
nombres de las variables deben
ser descriptivos pero cortos.
Debes abreviar solamente
cuando sea necesario. Muchos
programadores usan la
convencin de nombres
estndar llamada camel case,
de esta forma, cada palabra de
la variable empieza con
mayscula, por ejemplo:
CamelCase, MyName,
MaximaVelocidadWinnwbago,
LimiteVelocidadLocal. Visual
Basic pone con mayscula la
primera letra. Mientras que J#
y C# no lo hacen.

Button1.Text=Click Here



Unidad 06 XY, Arkansas Pgina 125 de 321

En dnde se declaran las variables?
Puedes declarar las variables que quieras en tu cdigo de Visual Basic.NET. Se pueden declarar como cualquiera de los
tipos permitidos por el entorno de .NET. Nikki y yo aplicamos una prctica de codificacin estndar al escribir un cdigo.
Declaramos todas nuestras variables al inicio de nuestro cdigo. De esta manera sabemos en dnde buscarlas y fcilmente
podemos ver de qu tipo son. Tambin permite que nuestro cdigo se quede limpio y organizado. Si necesitamos crear
otra variable al escribir nuestro cdigo, regresamos al inicio del mismo y la declaramos junto con el resto de las variables.
No declaramos variables nuevas a la mitad de nuestro cdigo.
Puedes declarar las variables de modo que sean variables globales o variables locales. Hasta ahora, todo el cdigo que
hemos escrito han estado en los manejadores de eventos de controles de forma --como el cdigo de manejador de eventos
para el botn de clic. Todas las variables que declaramos en el cdigo del manejador de eventos han sido variables locales.
A las variables locales slo puedes leerlas o cambiarlas por medio del cdigo del manejador de eventos en el que las
declaraste. Ningn otro manejador de eventos u otro cdigo del formato puede tener acceso a ellas. Los valores de las
variables locales slo se guardan cuando se estn ejecutando en el cdigo del manejador de eventos, despus de que este
se haya ejecutado, se pierden los valores de las variables locales. Un ejemplo de variable local es una variable que se
declara en un evento de botn de clic.
Para declarar variables locales, configura la instruccin Dim en tu cdigo del manejador de eventos esta variable debe
declararse primero, antes de que escribas cualquier otro cdigo. Aqu hay un ejemplo:
Private Sub Button1_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles
Button1.Clickk
Dim MyName as String
MyName = "Bill"
TextBox1.Text = MyName
End Sub

Hasta ahora, no hemos utilizado ninguna
de las variables globales. Las variables
globales se pueden leer o configurar por
todo el resto de personas que manejen el cdigo del formato. Las
variables globales se pueden acceder por todos los manejadores de
eventos y todo el resto del cdigo del formato. Los valores en las
variables globales se guardan mientras que el formato est abierto. Un
ejemplo de variable global es un contador que lleva un registro del
nmero total de veces el que se ha hecho
clic en cada uno de los botones.

Para declarar las variables globales que
se pueden utilizar por todos los cdigos
del formato, debes poner la instruccin Dim en el cuerpo del mismo. El
mejor lugar para declarar variables globales
en el cdigo de una forma es justo despus de la instruccin que dice:
Windows Form Designer generated code
Esta lnea de cdigo est encerrada en un cuadro y tiene un signo de
ms a su izquierda. Declara sus variables justo despus de esta lnea.
Ve este ejemplo:
Windows Form Designer generated

Recomendacin para el
profesor
MyName se declara dentro de un Sub
(subprograma). En cuanto se ejecuta
la instruccin End Sub (finalizar
subprograma), se borra MyName.



Unidad 06 XY, Arkansas Pgina 126 de 321

code
Dim TotalButtonClicks As Single
La variable TotalButtonClicks es una variable global. TotalButtonClicks se
puede leer o configurar por otro cdigo del formato como, por ejemplo, el
cdigo en los manejadores de eventos.

Si declaras todas tus variables aqu en el cuerpo del formato, todas sern
globales. Sus valores se puedes leer o configurar por todos los cdigos del
formato y los manejadores de eventos.



Unidad 06 XY, Arkansas Pgina 127 de 321

06 Ejercicio 01 Pedazo de Pi

Mi postre favorito en un restaurante es el pastel
de manzana. Esto me hizo pensar en cmo el
nmero Pi podr aparecer en diferentes
formatos.

Pinte una forma como esta:




En el evento de botn de clic , define variables del tipo:

Entero
Sencillo
Doble
Cadena

Coloca el valor de Pi en cada variable utilizando la calculadora de Pi
integrada de Visual Basic:
Math.PI

Slo asigna Math.PI a cada una de las variables.

Asigna cada una de las variables al cuadro de texto apropiado.

Cuando tu programa funcione correctamente, mustraselo a su instructor.


Pedazo de Pi
En este ejercicio vers el
valor de Pi en los formatos
de variable
El 06_proveit01_files
contiene instrucciones para
este ejercicio y todos los
archivos de soporte que
puedas necesitar.



Unidad 06 XY, Arkansas Pgina 128 de 321

Iniciar las variables
Una vez que una variable se haya declarado, puedes utilizarla en tu cdigo. Una de las primeras cosas que deber hacer tu
cdigo es asignar la variable a un valor inicial. Puedes asignar la variable a cualquier valor que desees mientras que sea el
tipo correcto. Slo puedes asignar la variable a un valor que tenga el mismo tipo que la variable misma. Cuando asignas
una variable a un valor, ests utilizando una instruccin de asignacin. Vamos a ver algunos ejemplos.
Dim MyName as String
MyName = "Paul Bunion"

Dim MyWeight as Integer
MyWeight = 128

Dim DrivingDistance As Single
DrivingDistance = 12.8
La variable MyName se declara como tipo Cadena y se asigna a la cadena "Paul Bunion". La variable MyWeight se declara
como tipo Entero y se asigna a 128, un valor entero. La variable de DrivingDistance se declara como tipo Sencillo y se
asigna a 12.8, un valor decimal.

Aqu hay un buen mtodo abreviado que puedes utilizar para declarar tu variable y asignar su valor inicial mediante una
sola lnea de cdigo. Esto asegura que la variable comience con un valor apropiado. El uso de una variable a la que no se
ha asignado un valor inicial puede provocar una falla del programa.
Dim MyAge as Integer = 100
Inicializar una variable o asignar una variable a un valor se
realiza de la siguiente manera en C# y J#:
int myOrbit;
myOrbit=123000;


Utilizar variables
Ahora que has declarado tu variable y asignado su valor inicial, la puedes utilizar en tu cdigo en dnde quieras emplear el
valor que guardaste en ella. Ve estos ejemplos.
Dim MiNombre as String
MiNombre = "Joe Cooker"
MessageBox.Show(MiNombre)



Unidad 06 XY, Arkansas Pgina 129 de 321

Qu te imaginas que se desplegar en el MessageBox?
Se desplegar Joe Cooker.
Dim MiNombre as String
MiNombre = "Peter, Paul and Mary"
TextBox1.Text = MiNombre
Puedes cambiar el valor de una variable utilizando instrucciones de asignacin adicionales. Qu se desplegar en
TextBox1?
Dim MiNombre as String
MiNombre = "Bill"
MiNombre = "Bob"
MiNombre = "Ben"
TextBox1.Texto = MiNombre
Qu nombre se desplegar en TextBox1? Si dijiste "Ben", ests en lo correcto, la variable MyName se asigna a Bill,
despus Bob y al final Ben. Debido a que lo ltimo a lo que se asign MiNombre fue Ben, esto es lo que se desplegar en
TextBox1.

Incluso puedes asignar el valor de una variable a otra variable.
Dim MiNombre as String
Dim TuNombre as String
MiNombre = "Allen Ginsberg"
TuNombre = MyName
MessageBox.Show(TuNombre)
Allen Ginsberg se desplegar en el Cuadro de Mensaje.
Aqui est el mismo cdigo en J# o C#. Puedes ver algunas similitudes y tambin ciertas diferencias. Ve
cmo declaramos las variables; es un poco diferente que en Visual Basic. NET.

string MiNombre;
string TuNombre;
MiNombre = "Allen Ginsberg";
TuNombre = MiNombre;
MessageBox.Show(TuNombre);
Aqu hay un ejemplo que produce un error porque intentamos asignar una variable que fue declarada como un tipo a una
variable de un tipo diferente. Este cdigo no se compilar.
Dim MiNombre as String
Dim DVDPrice As Single



Unidad 06 XY, Arkansas Pgina 130 de 321

MiNombre = "Paul Bunion"
DVDprice = MiNombre
Recuerda, tus variables se declaran como un tipo especfico. Slo se les puedes asignar valores del mismo tipo.



Unidad 06 XY, Arkansas Pgina 131 de 321

Aumentar de velocidad con las variables
Te platiqu acerca de los tipos de variables, porqu se utilizan las
variables y cmo declarar y asignarlas. Qu ms hay acerca de
ellas? Escribiremos un programa con las variables!

Inicia una nueva Aplicacin de Windows en Visual Studio.NET.
Asigna el nombre XACTLY a la aplicacin. Abre la Ventana de
Herramientas y agrega un botn y dos cuadros de texto a
Format1. Despeja la propiedad de Texto de TextBox1 y TextBox2.
Configura el Texto de Button1 a "Show XY". Asigna True a la
Propiedad de ReadOnly del TextBox1 y TextBox2. Haz doble clic
en el Button1 para editar el cdigo de evento de clic en botn.
Ingresa las siguientes lneas de cdigo:
Dim XName as String
Dim YName as String
XName = "X es mi nombre"
YName = "Y es mi nombre "
TextBox1.Text = XName
TextBox2.Text = YName
Crea e inicia tu aplicacin. Haz clic en el botn "Show XY". Tu
cdigo declara dos variables de tipo cadena, XName e
YName. Las variables X e Y se asignan a cadenas de texto
(entre comillas) la Propiedad de Texto de TextBox1 se asigna
al valor almacenado en XName. La Propiedad de Texto del
TextBox2 se asigna al valor almacenado en YName. Intenta
cambiar los valores de XName e YName en tu cdigo y
ejecuta tu programa nuevamente.

Ahora vamos a modificar este programa. Agrega un tercer cuadro de texto. Despeja la Propiedad de Texto del TextBox3.
Asegrate que la Propiedad de ReadOnly de TextBox3 est asignada a False.
Recomendacin para el profesor
Esta unidad se pueden comprender ms
fcilmente si el alumno le sigue creando el
mismo cdigo en su propia aplicacin de
Visual Studio, segn se solicite.



Unidad 06 XY, Arkansas Pgina 132 de 321

Haz doble clic en Button1 para editar el cdigo de evento de clic. Modifica tu cdigo para que aparezca as:
Dim XName as String
Dim YName as String
Dim ZNombre as String
ZNombre = TextBox3.Text
XName = ZName
YName = XName
TextBox1.Texto = XName
TextBox2.Texto = YName
Crea e inicia tu aplicacin. teclea algn texto en el TextBox3. Haz clic en el botn de "Show XY". Qu es lo que pasa? Tu
cdigo declara tres variables de tipo cadena. La variable ZName se asigna a propiedad de Texto del TextBox3. La variable
XName se asigna a Zname (que anteriormente se haba asignado a la propiedad de Texto del TextBox3). La variable
YName se asigna a XName (que apenas se asign al valor almacenado en XName) Despus, el cdigo asigna la propiedad
de Texto del TextBox1 a XName a la propiedad de Texto del TextBox2 a YName. Este cdigo muestra cmo asignar el valor
almacenado en una variable a aquel de una variable diferente.
Aqu hay un ltimo ejemplo para Show cmo se utilizan las variables
globales. Inicia una nueva Aplicacin de Windows denominada
TotalButtonClicks. Agrega tres Botones al formato1. En la ventana de
Cdigo encontrars el cdigo:
Windows Form Designer generated code
Justo despus de esta lnea de cdigo, agrega el siguiente cdigo:
Dim TotalButtonClicks as Integer



Unidad 06 XY, Arkansas Pgina 133 de 321


Haz doble clic en el Button1 y agrega el siguiente cdigo al manejador de eventos de clic.
TotalButtonClicks = TotalButtonClicks + 1
MessageBox.Show(TotalButtonClicks)
Agrega el mismo cdigo a los manejadores de eventos de clic para el Button2
y Button3.

Crea e inicia tu aplicacin. Haz clic en todos los botones en cualquier orden.
Cada vez el nmero total de clics en botones se despliega en un cuadro de
mensaje. Este cdigo funciona porque declaramos una variable global
denominada TotalButtonClicks en el cdigo de forma. La variable global se
utiliza para guardar el nmero total de clics en botones. Cada vez que el
usuario haga clic en un botn, el valor almacenado en TotalButtonClicks
aumenta en uno. El valor global no se pierde hasta que se cierra el formato.

Otros tipos de variables
En Visual Basic.NET, puedes declarar variables de muchos tipos diferentes adems de los tipos primitivos (cadena, entero,
Booleano, sencillo, etc.) Estos otros tipos se integran en el entorno de .NET y puedes utilizarlos en todos los Lenguajes
.NET. Muchos de estos tipos son propiedades de "Clases de Sistema". Las clases del Sistema contienen cdigos que
proporcionan una funcionalidad bsica de los lenguajes .NET. La parte ms difcil de aprender a programar mediante un
lenguaje .NET es comprender las clases del Sistema y su funcionalidad.

No tienes que aprender acerca de las clases del Sistema ahora. De vez en cuanto, Nikki o yo te demos algn cdigo que
emplee una propiedad o un mtodo de las clases del sistema, as que conviene que seas capaz de reconocerlas. Ahora te
dar un ejemplo del uso de las clases del sistema para configurar el color de fondo de un formato.

Abre tu aplicacin de ShowXY y agrega un segundo botn al formato1. Cambia la propiedad de Texto del Button2 a
"Color". Haz doble clic en el Button2 para editar el cdigo de eventos de clic en botones.

Agrega el siguiente cdigo:
Dim MiColor as System.Drawing.Color
MiColor = System.Drawing.Color.Blue
Format1.ActiveForm.BackColor = MiColor
Crea e inicia tu aplicacin. Haz clic en el Button2.

Tu cdigo declar una variable denominada MiColor del tipo System.Drawing.Color. La variable MiColor fue asignada a
System.Drawing.Color.Blue, un System.Drawing.Color vlido. Finalmente, la propiedad de ColorFondo del formato1 se asign a MyColor.
Nota que la propiedad ColorFondo debe asignarse a un valor del tipo System.Drawing.Color.



Unidad 06 XY, Arkansas Pgina 134 de 321


Puedes explorar las clases del Sistema por tu cuenta. La mejor manera es teclear System. (punto) en la Ventana de Cdigo. IntelliSense
despliega una lista de todas las propiedades y mtodos disponibles para la clase del Sistema. Selecciona una propiedad o un mtodo y
teclea otro punto para ver si tiene sus propias propiedades y mtodos. Hay mucho que explorar.




Unidad 06 XY, Arkansas Pgina 135 de 321

Llegada a XY
Llegamos--por fin a XY! Yo realmente disfrut el viaje. Dejar que encuentres el PDA y puedas resolver los ejercicios.
Despus de eso, haz la prueba e iremos a que nos perforen la tarjeta del rally. Ahora que has aprendido acerca de las
variables, sers realmente capaz de ayudarnos con el Reto del Rally.

06 Ejercicio 02 Rana saltarina

Inspirado por el estanque de ranas que vimos en
la maana, creo que deberamos escribir un
programa de rana saltarina.









Crea una forma como sta o utiliza
06_proveit02_template, que ya lo hizo para ti:



Coloca Frog1 en el TextBox1.Texto. Coloca Frog2 en el TextBox2.Texto.

Cuando el usuario hace clic en un botn Leap, el contenido del cuadro de
texto arriba del botn se asigna al cuadro que se encuentra dos cuadros a la
derecha. No olvides vaciar el cuadro actual.

Cuando tu programa funcione correctamente, mustraselo a tu instructor.
Rana saltarina
Escribe un programa para
simular el juego de rana
saltarina.
El archivo
06_proveit02_files
contiene las instrucciones
para este ejercicio y todos
los archivos de soporte
que puedas necesitar.



Unidad 06 XY, Arkansas Pgina 136 de 321

06 Reto Bicho

Splat, Otro bicho aplastado en el parabrisas.
Me recuerda algo. Necesitamos practicar la
bsqueda de bichos en un programa. La
mayora de ustedes saben que un error en un
programa se llama bicho.

El programa en 06_challenge_template est,
deliberadamente, lleno de bichos. Diez de
ellos. Cada lnea de cdigo excepto una tiene
un defecto. Tu tarea es la de corregir cada
error de modo que el programa pueda Crear y
ejecutar. Puedes elegir el cdigo correcto
cuando la lnea con error tiene una eleccin
completamente inapropiada.

Abre el archivo denominado splat.sln.
Aplstalo.

Cuando tu programa trabaje correctamente, mustraselo a tu instructor.







Extensin / Desviacin

Quin es Commodore Grace Hopper?
Por qu preguntaramos eso en este Reto?


Recomendacin para el profesor
La plantilla contiene muchos errores intencionales.
Se espera que el alumno corrija el cdigo. No se
requiere una correccin particular. Por ejemplo, si
X = 123.4 es incorrecto, X = 123 es una correccin
inaceptable pero tambin lo es X = 1234
Recomendacin para el
profesor
Commodore Hopper descubri el
primer bicho de la Tecnologa de
Informacin un autntico bicho
en los tubos de vaco de una de
las primeras computadoras.
Bicho

Encontrars errores en un
programa existente que
los contiene.
El archivo
06_challenge_files
contiene instrucciones
para este examen y los
archivos de soporte que
necesites.



Unidad 06 XY, Arkansas Pgina 137 de 321


En una instruccin de evaluacin, cuntos
elementos se pueden asignar al lado izquierdo del
signo de igual?
Cualquier nmero
Las variables se usan para:
Cambiar
propiedades

Recordad valores de datos

La propiedad de una caja de texto siempre
contiene qu tipo de datos?
Sencillos

Enteros

De cadena
Antes de que uses una variable en un
programa debes:
Declarar (Dim) la
variable

Calcular la variable



Unidad 07 Switchboard, Oklahoma Pgina 138 de 321


Temas en el
camino a
Switchboard
Switchboard, OK
Operadores
Operadores aritmticos
Operadores de cadena
El operador NOT en asignacin
Instrucciones
Operadores en accin
Cdigo de depuracin
Llegada a Switchboard




Unidad 07 Switchboard, Oklahoma Pgina 139 de 321


Switchboard, OK
Estamos listos para seguir avanzando. Siguiente parada, Switchboard,
Oklahoma! Cliff ya te ha enseado cmo utilizar los instrucciones de
asignacin y las variables, de modo que ahora cuentas ya con algunas
herramientas de programacin bsicas que puedes emplear. Ahora te
ensear sobre los operadores en nuestro trayecto a Switchboard. El
uso de los operadores es otra de esas herramientas bsicas de
programacin que debes tener en su caja de herramientas. Una vez
que aprendas cmo utilizar los operadores en Visual Basic.NET, podrs
utilizarlos en cualquier lenguaje de programacin. El uso de los
operadores es fcil, cuando nos acerquemos a Switchboard, te
mostrar cmo utilizar algunas de las herramientas de depuracin que
forman parte de Visual Studio.NET. stas te ayudarn a que tu cdigo
est libre de errores, de modo que se pueda compilar en todo
momento.



Unidad 07 Switchboard, Oklahoma Pgina 140 de 321

Operadores
As que, si los operadores son tan sencillos, Haz escuchado hablar de ellos? Bueno, seguro que si, algunos ejemplos de
operadores son la suma, resta, multiplicacin y la divisin. Has estado empleando los operadores desde el primer grado.
Es simplemente que no los llamabas de este modo. En programacin, existen otros operadores tambin, para realizar
clculos matemticos complejos y unir cadenas de texto.

Los operadores generalmente actan sobre dos valores, aunque algunos actan exclusivamente sobre un valor nico. Los
valores se denominan operandos. La siguiente es la sintaxis bsica para el uso de los operadores:

operando 1, operador, operando 2:

Por ejemplo,
3 + 4

En la expresin 3 + 4 hay dos operandos (3 y 4) unidos por un operador (+) El operador realiza una operacin (es este
caso, suma) sobre los dos operandos (3 y 4)

Usar los operadores es fcil y tambin divertido, puedes crear ecuaciones muy complejas empleando los operadores.
Comencemos revisando los operadores aritmticossuma, resta, multiplicacin y divisin. Despus te mostrar cmo unir
cadenas de texto y echaremos un vistazo a un operador especial denominado NOT.




Unidad 07 Switchboard, Oklahoma Pgina 141 de 321

Operadores aritmticos
Reglas matemticas, me agradan las matemticas. Me encantara hacer problemas matemticos todo el da, pero en
ocasiones me canso y comienzo a cometer errores. Los programas de computadora son excelentes para hacer problemas
matemticos. No cometen errores al sumar y nunca se cansan de hacer el mismo problema una y otra vez. Suena esto
demasiado bueno para ser verdad? Bueno, hay un pequeo problema. Aunque los programas hacen un gran trabajo al
calcular las respuestas, stos no pueden plantear los problemas. se es el trabajo que debes realizar como programador.

Por eso es importante que comprendas cmo utilizar los operadores aritmticos en tu cdigo. De esta forma puedes decirle
a tu programa qu problema matemtico deseas que resuelva. Dado que las computadoras son tan buenas para las
matemticas, todos los lenguajes de programacin tienen un conjunto estndar de operadores aritmticos. Como estas
operaciones son tan comunes, los smbolos utilizados para representar estos operadores en el cdigo son bsicamente los
mismos en todos los lenguajes de programacin. Esto lo facilita an ms.


Unidad 07 Switchboard, Oklahoma Pgina 142 de 321

La siguiente es una lista de los operadores aritmticos ms comunes y los smbolos que se
utilizan cotidianamente en comparacin con los smbolos utilizados en el cdigo. Nota que
el nico que es diferente es el de la multiplicacin. En el cdigo, usas * en lugar de una x
para representar el operador de multiplicacin.

Operador Smbolo Cotidiano Smbolo de Cdigo
Suma + +
Resta - -
Multiplicacin x *
Divisin / /
Veamos un par de ejemplos de operadores aritmticos en cdigo.
3 + 4
18 - 2
33 * 3
66 / 6


Tanto C# como J# utilizan los mismos operadores como Visual Basic.NET.
Utilizan +, -, * y / para la suma, resta, multiplicacin y divisin.



Unidad 07 Switchboard, Oklahoma Pgina 143 de 321

Operadores de Cadena
S, reglas matemticas, pero no todos los programas que vayas a crear se relacionan con clculos. En ocasiones tu
programa solo requiere trabajar con cadenas de texto. Sabas que en Visual Basic.NET y otros lenguajes de programacin
pueden sumar texto? En realidad, no es como la suma regular de nmeros. La suma de texto se denomina
concatenacin, que es simplemente un nombre atractivo para llamarle a la unin de dos cadenas de texto juntas. En
Visual Basic.NET, el operador de concatenacin es un signo de conjuncin (&) Lo usas justo como el operador de suma,
pero con cadenas en vez de nmeros.

Los siguientes son un par de ejemplos:

Bill & Mike
1 & 2






En C# y J# no utilizamos un signo de conjuncin
(&) para unir cadenas de texto. Utilizamos un
signo de ms (+). Observa esta lnea de cdigo
nombre completo = Bill + Bob;
Recomendacin para el
profesor
Dado que Visual Basic intent ser
flexible, en ocasiones aceptar
un signo de ms (+) en lugar de
uno de conjuncin (&) cuando
ambos operandos se definen
como cadenas. sta es una mala
tcnica de codificacin. Estimule
a los alumnos a utilizar siempre
el signo de conjuncin.
Cuando unes dos
cadenas de textos
utilizando el
operador de
concatenacin,
Visual Basic no
puede agregar
automticamente
ningn espacio,
tendrs que decirle


Unidad 07 Switchboard, Oklahoma Pgina 144 de 321

El Operador NOT
El operador NOT es un operador especial que slo opera sobre un nico
operando. Adems, el operando debe evaluarse segn un valor Booleano (True
o False). El operador NOT cambia un valor False a True y un valor True a False.
Observe estos ejemplos.
NOT (True)
NOT (NOT (True))
No s por qu deseas utilizar el ltimo enunciado, pero bueno.





Atencin, en C# utilizamos un signo de exclamacin (!) en
lugar de NOT. Revisa este cdigo C#
TextBox3.Visibl
e = !(TextBox1.Visible);
.
Cuando ?





Unidad 07 Switchboard, Oklahoma Pgina 145 de 321

Instrucciones de asignacin
As que cmo utilizas los operadores en el cdigo? La mayor parte del tiempo utilizas un enunciado de asignacin.
Recuerda, un enunciado de asignacin tiene el aspecto de una ecuacin con un signo de igual en l. Los operadores y
operandos se colocan del lado derecho del signo de igual. La expresin al lado derecho del signo de igual se evala,
despus el lado izquierdo de la ecuacin se determina en este valor. Aquello que se encuentra del lado derecho de la
ecuacin debe evaluarse segn el mismo tipo que el lado izquierdo para que el cdigo realice la compilacin. A
continuacin se proporcionan un par de ejemplos de uso de los operadores aritmticos y el operador de concatenacin en
instrucciones de asignacin.
Dim FormWidth as Integer
FormWidth = 200 + 300

Dim FormHeight as Integer
FormHeight = 1000 / 2

Dim Winnebagoname as String
Winnebagoname = Cde & Bus


Unidad 07 Switchboard, Oklahoma Pgina 146 de 321

Los operadores en accin
Los ejemplos que acabo de proporcionarte eran bastante
simples, con slo dos operandos y un nico operador en
cada enunciado de asignacin. Sin embargo, en el mundo
real de la codificacin, frecuentemente debers traducir
frmulas o hacer clculos que implican muchos
operadores y operandos. Afortunadamente, con la
mayora de los lenguajes de programacin, puede aadir
tantos operandos y operadores como requieras para
concatenar texto o convertir frmulas a cdigo. Adems,
puedes utilizar variables como operandos. Exacto! Los
operadores funcionan sobre las variables tambin
siempre y cuando sean del tipo correcto. An ms,
puedes incluso determinar una variable en una expresin
que contenga a la variable misma. As que veamos unos
cuantos ejemplos que son un poco ms complejos. El
primer ejemplo calcula la circunferencia de las llantas de
la camper.

Dim TireCircum As Single
Dim TireDiam As Integer
Dim PiValue As Single
PiValue = 3.14159
TireDiam = 18
TireCircum = TireDiam * PiValue
Este ejemplo calcula el costo promedio de gasolina en marzo y abril. Nota que emple parntesis para asegurarme que los
costos se sumaran y que los galones se sumaran tambin antes de dividirlos.
Dim MarchCost As Single = 123.66
Dim AprilCost As Single = 231.45
Dim MarchGallons As Single = 87.4
Dim AprilGallons As Single = 157.2
Dim CostPerGallon As Single
CostPerGallon = (MarchCost + AprilCost) / (MarchGallons+
AprilGallons)


Poblacin


Unidad 07 Switchboard, Oklahoma Pgina 147 de 321


Recomendacin para el
profesor
Revise el orden de las operaciones.
Cuando no hay parntesis, la divisin y
multiplicacin se realizan antes que la
suma y resta. Promueva el uso de
parntesis para asegurar que los
clculos se realicen como pretende el
programador. NOT hay problema en
utilizar demasiados parntesis.
Puedes usar el
parntesis en tu
cdigo tal y como lo
haces en problemas
normales de
asociacin. Cuando
pones algo entre
parntesis, se evala
primero, por ejemplo:
(5+7)/(1+5)=2

En esta operacin, (5+7) se evala primero, (1+5)
despus, y al ltimo se ejecuta la operacin de
divisin. La respuesta en 2.

Sin los parntesis, obtenemos una respuesta diferente:

5+7/1+5=17

Usa el parntesis en tu cdigo cuando
quieras decirle al programa el orden el cul


Unidad 07 Switchboard, Oklahoma Pgina 148 de 321

Operadores de comparacin
Recuerda, mencion que puedes especificar una variable para una expresin que contiene a la variable misma? Cmo es
eso, preguntaras? Observa el siguiente ejemplo y ve si puedes descubrir lo que se desplegar en el cuadro de mensajes.
Dim MileCounter as Integer
MileCounter = 100
MileCounter = MileCounter + 200
MileCounter = MileCounter + 400
MsgBox.Mostrar (MileCounter)
El cuadro de mensajes desplegar 700, que es el valor del
MileCounter cuando se requiere el cuadro de mensajes. As es
como funciona. Las primeras dos lneas del cdigo enuncian la
variable del MileCounter y establecen su valor inicial en 100. La
tercera lnea del cdigo toma el valor actual del MileCounter (100)
y le suma 200 para obtener 300. Recuerda, el lado derecho de la ecuacin siempre se evala primero. Despus el lado
izquierdo de la ecuacin (MileCounter) se especifica en el valor del lado derecho de la ecuacin (300). La cuarta lnea del
cdigo toma el valor actual del MileCounter (ahora 300) y le suma 400 para obtener 700. El MileCounter se especifica en
este valor, mismo que despliega el cuadro de mensajes. Para el lado izquierdo de la ecuacin es irrelevante cmo se
calcula el resultado del lado derecho de la ecuacin, siempre y cuando los tipos coincidan. En lo concerniente al lado
izquierdo de la ecuacin, la variable del MileCounter del lado derecho es slo una variable ms, no ella misma.

Determinar una variable para una expresin, la cual contiene a la variable misma, es una prctica de codificacin comn
con soporte en todos los Lenguajes .NET. Esto evita el problema de tener que crear otra variable para almacenar
temporalmente un valor intermedio. Como lo muestra mi ejemplo, esta tcnica es perfecta para contar o aadir una serie
de valores. Sabas que la lnea de cdigo ms comn es probablemente variable = variable + 1, que se utiliza para contar
algo? Frecuentemente se utiliza para contar el nmero de veces que se completa un ciclo. Te dir ms sobre los circuitos a
medida que avancemos en nuestro trayecto.
Los operadores NOT y de concatenacin en accin
Demasiadas matemticas ah. Ahora voy a mostrarte un ejemplo rpido del operador de concatenacin en accin y
despus uno del operador NOT. A continuacin aparece un ejemplo que concatena variables de texto y despliega el
resultado en un cuadro de texto.
Dim FirstName As String
Dim LastName As String
Name = Bob
LastName = Marley
TextBox1.Text = Name & & Last Name
Notaste que tuve que decirle a Visual Basic.NET que agregara un espacio entre el nombre y el Apellido? El operador de
concatenacin no agrega espacio automticamente.
Mi ltimo ejemplo te muestra cmo utilizar el operador NOT para ocultar un cuadro de
texto siempre que se muestre otro cuadro de texto. Recuerda que el operador NOT se
utiliza en tipos Booleanos.
Recomendacin para el profesor
Revise la diferencia entre asignar un
valor y agregar un valor.
TextBox1.text = Hello en comparacin
con
TextBox1.Text= TextBox1.Text & Joe


Unidad 07 Switchboard, Oklahoma Pgina 149 de 321

TextBox1.Visible = True
TextBox2.Visible = NOT (TextBox1.Visible)
No s por qu querra utilizar esa ltima lnea de cdigo.


Unidad 07 Switchboard, Oklahoma Pgina 150 de 321

07 Ejercicio 01 Costo de la gasolina
Puedes calcular el costo de la gasolina para el siguiente
tramo de nuestro viaje?
Intntalo.

1. Crea un formato que tu mismo(a) disees.

Incluye los siguientes elementos:

nombre de forma apropiado;
cuatro cuadros de texto para mostrar
estos puntos:
o Millas hasta el siguiente destino
o Millas por galn (MPG) para el
vehculo
o Precio por galn de gasolina
o Costo total de la gasolina requerida
cuatro rtulos para identificar cada cuadro de texto.
un botn de comando marcado para iniciar el clculo.

2. Despus de que el usuario del programa
teclea la distancia, MPG y precio, calcula el
costo total para llegar a la siguiente ciudad
destino.
3. Una vez que hayas creado tu formato, crea la solucin. Si no hay errores
en ella, elige Depurar / Inicio para ejecutar tu programa.

Si tu programa funciona correctamente, mustraselo a tu instructor.

Extensin / Desviacin
Dale un formato al costo total que tenga la apariencia de dinero.
Estudia el siguiente cdigo.
X = 123.45
X = FormatCurrency(X)
Recomendacin para el
profesor
Costo = (distancia / MPG) * precio
Costo de la
gasolina
En este ejercicio usars lo que
haz aprendido acerca de los
operadores para disear un
programa que calcula los costos
de la gasolina.
El archivo file07_proveit01_files
contiene instrucciones para este ejercicio
y todos los archivos de soporte que
puedas necesitar




Unidad 07 Switchboard, Oklahoma Pgina 151 de 321



Cdigo de depuracin

Ests haciendo un gran trabajo! Hasta ahora has creado bastantes cdigos, tambin has
creado y operado muchos proyectos. Tal vez no todos tus proyectos hayan realizado la
compilacin a la primera, pero seguramente ests mejorando al descubrir cul es el
problema con tu cdigo y resolverlo. De modo que ahora te dar algunos consejos que te
ayudarn a resolver tus problemas an ms rpido. Resolver los problemas de un cdigo se
denomina depuracin. La depuracin es un paso necesario para hacer que un programa se
ejecute sin errores y produzca los resultados correctos. Antes que nada te mostrar cmo
Visual Studio te ayuda a depurar tu cdigo a medida que lo ests creando.

1. Primero crea una nueva Aplicacin de Windows denominada Depurar
Vista. Agrega un botn y un cuadro de texto a format1. Haz doble clic en
el Botn 1 y agrega el siguiente cdigo.

MyName = Bill
TextBox1.Text = MyName
2. Nota que incluso antes de que
Crearas tu proyecto, Visual
Studio.NET puso una lnea azul en
zig zag bajo MyName en la
primera y segunda lneas del
cdigo. De qu se trata? Bueno,
Visual Studio.NET es lo
suficientemente inteligente para darse cuenta (incluso antes de que
creemos algo) que no enunciaste la variable MyName. Esto es una
advertencia de que hay algn problema con el cdigo antes de que
realices la compilacin.
3. Crea y ejecuta tu proyecto. La Ventana de Resultados
muestra que hubo un error. La Lista de Tareas te muestra
Recomendacin para el profesor
Adentrarse en un programa lnea por lnea al mismo tiempo que se visualiza el contenido de las
variables, resulta extremadamente valioso. Hay demasiados alumnos que ignoran esta leccin.
Cuando despus tienen problemas con su cdigo, le piden ayuda a un vecino o al instructor, en lugar
de intentar encontrar el problema ellos mismos. Cuando le ayuda a un alumno a depurar su
programa, insista en que se adentre con usted en el cdigo.



Unidad 07 Switchboard, Oklahoma Pgina 152 de 321

por qu fall. Ves dos lneas en la lista de tareas que te notifican que no se has enunciado el nombre en MyName.


Unidad 07 Switchboard, Oklahoma Pgina 153 de 321

4. Haz doble clic en Nombrar si
MyName no se enuncia en la
Lista de Tareas. Te llevar al lugar
del cdigo en dnde se encuentra
el error.


5. Notas que la variable MyName se encuentra resaltadaste es el
problema que debes resolver. Agrega la siguiente lnea de cdigo al
evento de clic del Botn 1 para resolver el problema.
Dim MyName as String
La lnea azul en zig zag desaparecer.

6. Crea ejecuta tu proyecto. Se compilar sin errores. has depurado tu
programa con xito.





Unidad 07 Switchboard, Oklahoma Pgina 154 de 321

Entrar al cdigo
En ocasiones los errores en tu cdigo no sern errores que Visual Studio.NET pueda
detectar y advertirte sobre ello. Tu programa se compila sin errores, pero los resultados o
efectos no estn muy bien. En este caso, sus errores pueden ser errores de lgica o flujo del
programa, en lugar de errores de sintaxis. stos son errores que has incorporado en el
diseo del programa, pero que no son considerados por Visual Studio.NET como errores
en el cdigo, dado que la sintaxis es correcta.

En casos como ste, resulta til poder adentrarse en tu cdigo, lnea por lnea, para ver
cmo se est ejecutando y qu camino est tomando. Por lo general estableces un punto de
quiebre en el cdigo, despus te adentras en el cdigo para ver cmo ejecuta lnea por
lnea. El punto de quiebre acta como un signo de altola ejecucin se detiene en la lnea
del cdigo que has marcado con un punto de quiebre. Despus oprime la tecla F11 para
ejecutar cada lnea del cdigo a su vez. Ahora te mostrar cmo funciona.

1. Encuentra la siguiente lnea de cdigo en el
evento de clic del Botn 1:
MyName = Bill
Ubica el cursor en algn lugar sobre esta lnea de
cdigo. Haz clic con el botn derecho del ratn y
seleccione Insertar Punto de Quiebre del men
desplegable.

2. Nota que la lnea de cdigo se resalta en color caf y que aparece un
crculo color caf en el margen izquierdo de esta lnea de cdigo. Crea y
ejecuta tu programa. Cuando aparezca el formato haz clic en el Botn.



Unidad 07 Switchboard, Oklahoma Pgina 155 de 321

3. El cdigo ejecuta y
hace correr la lnea de
cdigo que marcaste
con el punto de
quiebre (MyName =
Bill) Esta lnea de
cdigo no se ha
ejecutado an. La
lnea de cdigo se resalta en amarillo y el crculo caf que se encuentra
junto tiene ahora una flecha amarilla dentro.

4. En la Ventana de cdigo
desplaza el cursor sobre
la variable MyName.
Aparecer un consejo
mostrndote el valor de
la variable MyName.
Actualmente MyName =
Nada, pues aunque la variable se ha enunciado, sta no se ha
determinado.

5. En la Ventana de cdigo
desplaza el cursor sobre
la propiedad de Texto
del Cuadro de Texto 1.
Aparece un consejo que
te muestra el valor de
la propiedad de Texto.
Actualmente Texto = Cuadro de Texto1.
Oprime la tecla F11. Esto realiza la Introduccin en el cdigo, ejecutando
la lnea actual (MyName = Bill) y resaltando la siguiente lnea en
amarillo.

6. En la Ventana de
Cdigo, desplaza el
cursor sobre la
variable MyName. El
consejo muestra
MyName = Bill porque
acabamos de fijar el
valor de esta variable.



Unidad 07 Switchboard, Oklahoma Pgina 156 de 321

7. En la Ventana de
cdigo desplaza el
cursor sobre la
propiedad de Texto del
Cuadro de Texto 1. El
consejo muestra Texto
= Cuadro de Texto 1.
Este valor no ha cambiado.
Oprime la tecla F11 de nuevo. Esto realizar la Introduccin en el cdigo,
ejecutando la lnea actual (Cuadro de Texto 1.Texto = MyName) y
resaltando la siguiente lnea en amarillo.
8. En la Ventana de Cdigo,
desplaza el cursor sobre
la variable MyName. El
consejo muestra MyName
= Bill porque el valor
de esta variable no ha
cambiado.
9. En la Ventana de cdigo
desplaza el cursor sobre
la propiedad de Texto del
Cuadro de Texto 1. El
consejo muestra Texto =
Bill porque acabamos
de fijar esta propiedad en
la variable MyName.
Oprime la tecla F11 una vez ms. El formato aparece de Nuevo porque el
programa ha terminado de ejecutar el cdigo en el evento de clic del
botn. Haz clic en la X que se encuentra en el extremo del formato para
cerrarlo.
10. En la Ventana de Cdigo, haz clic en
el inicio de la lnea de cdigo con el
punto de quiebre. Haz clic con el botn
derecho del ratn y selecciona Eliminar
Punto de Quiebre del men desplegable.





Unidad 07 Switchboard, Oklahoma Pgina 157 de 321

Ya has finalizado la sesin de depuracin. Resulta bastante prctico
adentrarse en tu cdigo lnea por lnea. Puedes seguir la ruta que tu
programa emplea a medida que ejecutas tu cdigo. En ocasiones tal vez
descubras que le has dicho accidentalmente a su programa que ejecute tu
cdigo en el orden incorrecto, o que ha utilizado una variable errnea en
un enunciado de asignacin. Adentrarse en tu cdigo te muestra en dnde
se ha desviado errneamente tu programa. A medida que te introduces en
el cdigo, puedes monitorear los valores de las propiedades y variables
moviendo tu cursor sobre ellos en la Ventana de Cdigo. Los valores se
actualizan despus que se ejecuta cada lnea del cdigo.

Estas tcnicas de depuracin se vuelven ms importantes a medida que tu
cdigo se hace ms complejo. Un cdigo complejo es ms difcil de
depurar. Pronto aprenders cmo controlar el orden en que se ejecuta tu
cdigo utilizando instrucciones If y bucles. Las herramientas de
depuracin son extremadamente valiosas para rastrear cmo ejecuta tu
programa estos tipos de instrucciones.

Llegada a Switchboard
se fue un gran viaje, Hablamos sobre muchas cosas en el trayecto. Ahora te debes sentir ya bastante cmodo utilizando
los operadores para decirle a tu cdigo cmo hacer problemas matemticos y unir cadenas. Puedes incluso utilizar las
herramientas de depuracin de Visual Studio.NET como ayuda para diagnosticar problemas. Creo que encontrars que las
Pruebas son ms divertidas y desafiantes a medida que avancemos. Intenta realizar aquellas que se encuentran en el PDA.
Mantente actualizado resolviendo la prueba y despus Cliff nos llevar a nuestro siguiente destino.
Recomendacin para el profesor
Para reforzar esta habilidad, haga que cada uno
de los alumnos demuestre individualmente su
dominio en la tcnica utilizando un programa
previamente creado.


Unidad 07 Switchboard, Oklahoma Pgina 158 de 321

07 Ejercicio 02 Depurar un programa
Practiquemos ahora las habilidades de depuracin que
acabas de aprender. He creado un programa que se
encuentra al descargar 07_proveit02_template. ste es un
programa completo. No tienes que crear ningn cdigo en
lo absoluto. Slo debes encontrar el archivo denominado
DebugMe.sln y despus hacer doble clic en l.
Tu tarea, si eliges aceptarla, es escribir en un archivo de
texto, un documento de Word o en una vieja hoja de
tareas de matemticas, las respuestas a tres preguntas.
1. Qu valor introdujiste en el cuadro de
texto del formato?

2. Cul es el valor final de la variable
denominada Respuesta Uno?
3. Cul es el valor final de la variable
denominada Respuesta Dos?

El cdigo de este programa se ha hecho deliberadamente confuso y complicado para que no
tengas la tentacin de intentar descubrir cmo es que llega el programa a sus respuestas.
Todo lo que tienes que hacer es colocar e crculo de depuracin de punto de quiebre de
color caf en el margen vertical izquierdo, adentrarte en el cdigo, despus colocar el
cursor sobre la variable en donde deseas ver el valor DESPUS que se haya ejecutado esa
lnea de cdigo.
sta es una de las herramientas ms valiosas que debes utilizar en todos tus programas
futuros.
Cuando tengas las respuestas, mustreselas a su instructor.




Depurar un
programa
Utiliza tus habilidades de
depuracin que acabas de
aprender para encontrar
los valores de dos variables
de tu programa
El archivo
file_07proveit_files contiene
las instrucciones para este
ejercicio y los archivos de
soporte que necesites.


Unidad 07 Switchboard, Oklahoma Pgina 159 de 321

07 Reto Calculadora de volumen
Recuerda los pisapapeles de cristal que vimos ayer en
la tienda de regalos? Uno era un cubo y el otro una
esfera. An me pregunto cul era el ms pesado. Dado
que estn hechos del mismo material, aquel con mayor
volumen es el ms pesado.
Creemos un programa para calcular el volumen de un
cubo y el volumen de una esfera.

Dibuja una forma que se vea como sta:



La longitud de un lado del cubo va en el primer cuadro y el radio de la esfera va en el
segundo cuadro.
En caso de que no hayas prestado atencin a la clase de geometra, a continuacin se
encuentran algunas frmulas.
El volumen de un cubo es el lado al cubo (multiplicado por s mismo 3
veces)
El volumen de una esfera es cuatro tercios Pi veces el radio al cubo.
Podras utilizar 3.14 como el valor de Pi, o bien utilizar Math.PI.

Una vez que tu programa funcione correctamente, mustraselo a tu instructor.

Calculadora de
volumen
Determina el volumen de un cubo
y una esfera.
El archivo 07_challenge_files
contiene las instrucciones para
este reto y los archivos de soporte
que puedas necesitar.
Haz clic en el botn de descarga
para bajar este archivo.


Lado del cubo Radio Esfera
Calcular
Volumen cubo Volumen esfera


Unidad 07 Switchboard, Oklahoma Pgina 160 de 321



Extension / Desviacin
Slo por diversin, puedes encontrar dos valores que produzcan los mismos volmenes,
por lo menos de 4 puntos decimales?
Si eres especialmente bueno para las matemticas, puedes agregar una segunda parte al
formato que inicie con el volumen y calcular el lado y el radio que producen ese volumen?



Unidad 07 Switchboard, Oklahoma Pgina 161 de 321


Que se usa para cambiar la secuencia en
la cul se evalan los operadores?
Dos puntos
Parntesis
ampersands
desconocido
Cul es el resultado de esta operacin?
SomeVariable = 55 & One
Que operador se usa para concatenar dos
cadenas?
Cul es el resultado de esta operacin?
56
55Uno
desconocido
And
=
&


Unidadt 08 WhatIf, Texas Pginaage 162 ofde 321

Temas en el camino a
WhatIf:
WhatIf, TX
Lgica Booleana
Operadores Booleanos
Operadores de
comparacin
Cdigo condicional
Instruccin IfThen
Ms de una instruccin If
Then
Ms de un condicional
Operadores Booleanos en
cdigo
Llegada a


Unidadt 08 WhatIf, Texas Pginaage 163 ofde 321

WhatIf, TX

En nuestro ultimo viajeOn our last trip, JenSusana
lete mostr todo sobre el uso de
operadoresshowed you all about using op para
crear ecuaciones matemticas en tsu
cdigoerators to create math equations in your
code. No s mucho de matemticas, pero s de
lgicaI'm not so much into math, but I am into
logic. La lgica es el procedimiento que usted
utilizas para tomar decisionesogic is the process
you use to make decisions. Tomamos decisiones
todos los das de nuestra vida We make decisions
everyday of our lives. Yo he tomado algunas
buenas decisiones, como cuando decid llamar a
una estacin de radioI've made some good
decisions. Like when I y me gandecided to call
the radio station and unos boletos gratis para el
concierto del grupo won those free tickets to see
the band "Whatever" in concert. Tambin he
tomado algunas malas decisiones, como meter
mi pantaln de mezclilla en la lavadora antes dI've made some bad decisions
tooe sacar de la bolsa los boletos del concierto.!. Like putting my jeans in
the washing machine before I took the concert tickets out of my pocket! En
finBuenoWell, "Whatever" siempre estar por aquwill always be around --
Los ver el ao que vieneI'll see them next year.


Nos dirigimos aWe're heading for WhatIf, Texas. WhatIf se encuentra en
medio a la mita de una granis in the middle of this big, llanura planaflat
prairie. Tal vez vas a pensarpiense que no hay mucho que hacer ah, pero
sete equivocasYou'd think there wouldn't be much to do there, but you'd be
wrong. Existen millones de posibilidades enThere are a million possibilities in
WhatIf. En el trayectoOn our way, tle mostrar cmo los programas de
computadoracin toman decisiones utilizando la frmulaI'm going to show
you how computer programs make decisions using the
"IfSiIf...ThenEntoncesThen" statement.


Estaba pensando, qu tal si nos equivocamos en el camino damos una
vuelta errnea al dirigirnos aI was just thinking. What if we made a wrong


Unidadt 08 WhatIf, Texas Pginaage 164 ofde 321

turn on our way to WhatIf? Tal vez nunca lleguemosWe might never get
there.!




Unidadt 08 WhatIf, Texas Pginaage 165 ofde 321

Tomar dDecisionesMaking Decisions
Tengo que tomar decisiones todo el tiempoI have to make decisions all the
time. Qu color de calcetines debo usarWhat color socks should I wear?
Dnde debo ponermego mi siguiente tatuajeWhere should I get my next
tattoo? DeboMe comermeo toda una pizza extra grande de anchoasShould I
eat an entire extra large anchovy pizza?? Estoy seguro de que ustedtu
tomas tambin muchas decisiones importantes I'm sure you make a lot of
important decisions too.!


En realidad, la gente tiene mucha suerteActually, people are pretty lucky.
Muchas veces que tenemos que tomar Cuando tomamos uuna decisin,
frecuentemente tenemosdisponemos de toda una variedad de opciones
posibles, como qu sabor de helado comprarWhen we make a decision, we
often have a whole lot of choices. Like what flavor of ice cream to buy, qu
tipo dewhat kind of musica escuchar o to listen to, or con quin pasearwho
to hang out with. Los programas de computadoraprogramas de
computacin no tienen tanta suerteComputer programs aren't so lucky.
stos deben tomar decisionesThey con base en si algo es Verdadero o
Falsohave to make decisions based on whether something is True or False,.
eEsto es todoThat's it. Estae enunciadodeclaracin es vVerdaderao oIs this
statement True or is it fFalsaoe? Para stasellos esto es un gran juego de 20
preguntasFor them it's one big game of 20 questions.


Por ejemplo, imagnaetese que ests en un restaurante intentando ordenar
una hamburguesa, papas fritas y cerveza de razFor example, imagine you're
in a restaurant trying to order a hamburger, fries, y el mesero slo puede
hacertele preguntas para responder con s o noand root beer and the waiter
can only ask you yes or no questions.!


Desea algo de tomarDo you want something to drink? SYes.

Desea cafDo you want coffee? No.

Desea tDo you want tea? No.

Desea refrescoDo you want soda? SYes.

Desea refresco deDo you want a cola? No.


Unidadt 08 WhatIf, Texas Pginaage 166 ofde 321


Desea cerveza de razDo you want root beer? SYes.!


Bueno, esto llev seis preguntas y ni siquiera he ordenado la hamburguesa
y las papas fritas todavaWell, that took six questions and I haven't even
ordered the hamburger and fries yet.! Avanza un poco lento pero,
finalmente, obtendr mi ordenKind of slow going but eventually, I'd get my
order.!

As es cmo un programa de computadoracin toma una decisin;That's
what it's like for a computer program to make a decision --
strictestrictamente con s oly yes or no. Este tipo deThis kind of
"pensamientothinking" or lgica se denomina lgicaogic is called Booleana
(VerdaderoTrue/Falseo) logic.


Unidadt 08 WhatIf, Texas Pginaage 167 ofde 321








Unidadt 08 WhatIf, Texas Pginaage 168 ofde 321

Lgica Booleana Logic
Como viste en tu camino al Tablero de
DistribucinSwitchboardAs you saw on
our way to Switchboard, los programas
de computadoraprogramas de
computacin son buenos para resolver
problemas matemticoscomputer
programs are good at doing math
problems. Tambin son buenos para
resolver problemas de lgicaThey are
also good at doing Booleana logic
problems. En un problema de lgicaIn a
Booleana logic problem, la respuesta es
siempre Verdadero othe answer is
always either True or Falseo, -- no haythere is no "ms o menoskind of",
"una especie desort of" onior "casialmost". Veamos, leTe mostrar algunos
ejemplosLook, I de lgica'll show you some examples of Booleana logic.



4=4
Es Is 4=4? S, es VerdaderoYes, that's True.


3=1+3
Es Is 3=1+3? No, es Falsothat's False.


3=(6+12)/(1+5)
Es Is 3=(6+12)/(1+5)? SYes, ethat's VerdaderoTrue.


Puedes ver que en cada uno de los problemas lgicos anteriores la respuesta
es ya sea Verdadero o FalsoYou can see that in each of the logic problems
above the answer is either True or False. Las respuestas no son nmeros,
colores, ni palabras. As es como un programa de computadoracin puede


Unidadt 08 WhatIf, Texas Pginaage 169 ofde 321

tomar decisionesThe answers aren't numbers, colors or words. This is how a
computer program can make decisions. Si la respuesta es VerdaderoIf the
answer is True, thel programa hace algo does something. Si la respuesta
esIf the answer is Falseo, el the programa no hace nada doesn't do
anything.




Unidadt 08 WhatIf, Texas Pginaage 170 ofde 321

Operadores Booleanos Operators
Al igual que las matemticas convencionalesJust like regular math, la lgica
Booleana tiene sus propios operadoreslogic has its own operators. Pero no
trabajan con nmeros, sino solo con operandos But they don't work on
numbers, they only work on Boolean operandos --, es decir, Verdadero y
True and Falsoe, that is. stos le permiten aadir enunciados de
Verdaderos o Falsos conjuntamente de maneraformas especialesThey let you
"add" True and False statements . stos pPueden emplearse para unir
enunciadostogether in special ways. They can be used to join Booleanos
ystatements to crear problematse more complex Booleanos ms
complejosproblems.


Existen tres operadoresThere are three Booleanos operators: ANDYAND,
ORR y, and NOTT. Los operadores ANDY y ORThe AND and OR actan sobre
dos operandos operators act on two operands. El operadorThe NOT acta en
un soloT operator acts on a single operando. Los tres dan un resultado que
es tambinAll three give a result that is also Booleano. Cada Each operatdor
tiene sus propias has its own "reglasules" en cuanto al resultado que
produce al actuar sobre los as far as what results it produces when acting on
the operandos. Veamos algunos problemas de lgicaLet's look at some
Booleana que utilizan los operadoreslogic problems that use the Booleanos
operators. Despus explicar los detalles de cmo funcionanThen I will
explain the details of how they work.


3=1+2 ANDYAND 2=1+1

Es VerdaderoThat's True.


Tenemos aqu dos problemas lgicos separadosHere we have two separate
logic pro unidos con el operador ANDYblems joined together with the AND
operator. Primero evaluamosFirst we evaluate 3=1+2, lo cual es
Verdaderowhich is True. Despus Then we evaluatemos 2=1+1, lo cual
tambin es Verdaderowhich is also True. Despus Then we evaluatemos
Verdadero YAND Verdadero True AND True que, dadas las propiedades
especiales del operador YAND, which by the special properties of the AND
operato, da una respuesta final der gives a final answer VERDADEROof


Unidadt 08 WhatIf, Texas Pginaage 171 ofde 321

TRUE. Si ambos lados de una ecuacin YAND son VerdaderosIf both sides of
an AND equation are True, la respuestathe final eanswer is VerdaderoTrue.


3=1+2 ANDYAND 5=2+2

EEs That's Falseo.


Tenemos de nuevo dos problemas lgicos separadosAgain we have two
separate logic pr unidos con el operador ANDYoblems joined together with
the AND operator. Primero evaluamosFirst we evaluate 3=1+2, lo cual es
Verdaderowhich is True. Despus evaluamosThen we evaluate 5=2+2, lo
cual eswhich is Falseo. Despus evaluamos Verdadero YAND Then we
evaluate True AND Falseo que, dadas las propiedades especiales del
operador YAND, da una respuesta final de, which by the special properties of
the AND operator gives a final answer of Falseo. Si cualquier lado de una
ecuacin YAND es Falso, la respuesta final esIf either side of an AND
equation is False, the final answer is Falsoe.





Unidadt 08 WhatIf, Texas Pginaage 172 ofde 321

Un ltimo ejemploOne last example,


3=1+2 OROR 5=2+2

EEs VerdaderoThat's True.


PrimeroFirst we evaluamoste 3=1+2, lo cual es Verdaderowhich is True.
Despus evaluamosThen we evaluate 5=2+2, lo cual eswhich is Falseo.
Despus evaluamos VerdaderoThen we evaluate True ORR Falseo que, dadas
las propiedades especiales del operador, which by the special properties of
the OOR, da una respuesta final de VerdaderoR operator gives a final answer
of True. Si cualquiera de los lados de una ecuacin OOR es VerdaderoIf
either , la respuesta final esside of an OR equation is True, the final
Verdaderoanswer is true.
Esto tal vez requiera algo de prcticaIt may take some practice, pero,
despus de haber trabajado algn tiempo con los operadoresbut after you've
worked with the Booleanos , sete acostumbrars a ellosoperators for a
while, you'll get used to them. Afortunadamente, podemos mostrar todas las
combinaciones posibles para el operador YAND en una simple
tablaFortunately, we can show all the possible combinations for the AND
operator in a simple table. No tienes que memorizarlas, puedes simplemente
hacer referencia a esta tabla cuando lo necesitasrequieraYou don't have to
memorize them; you can just refer back to this table when you need to.
Lado
iIzquierdoLeft
Side

Right
SideLado
dDerecho

Lado iIzquierdo YLeft
Side AND LLado
dDerecho Right Side
(rRespuesta fFinal
Answer)
VerdaderoTrue TrueVerdadero TrueVerdadero
TrueVerdadero Falsoe Falsoe
Falsoe TrueVerdadero Falsoe
Falseo Falsoe Falsoe
Del mismo modo, podemos mostrar todas las combinaciones posibles para el operadorIn the same way, we can show all
the possible combinations for the ORR operator.


Unidadt 08 WhatIf, Texas Pginaage 173 ofde 321

Left
SideLado
iIzquierdo
Right
SideLado
dDerecho
Lado iIzquierdoLeft Side
ORR Lado dDerecho Right
Side
(rRespuesta fFinal)
Answer)
TrueVerdadero TrueVerdadero TrueVerdadero
TrueVerdadero Falsoe TrueVerdadero
Falsoe TrueVerdadero TrueVerdadero
Falsoe Falsoe Falsoe





Unidadt 08 WhatIf, Texas Pginaage 174 ofde 321

El operadorThe NOTot no une dos cosasoperator does not join two things
together. Simplemente convierteIt si Falso en Verdadero y Verdadero en
mply turns False to True and True to Falsoe.


Right
SideLado
dDerecho
No lLado dDerechot Right Side
(rRespuesta fFinal Answer)
TrueVerdadero Falsoe
Falsoe TrueVerdadero

Aqu hay algunos ejemplos del operadorHere are some examples of the
NOTot operator.

NOTot(3=1+2) Es That's Falseo.
3=1+2 es Verdaderois True. NOTo Verdadero est True is Falseo.

NOTot(5=2+2) Es VerdaderoThat's True.
5=2+2 ies Falseo. NOTot Falso es Verdaderoe is True.





Unidadt 08 WhatIf, Texas Pginaage 175 ofde 321

Operadores de cComparacinComparison Operators

Recuerdase que, Remember, NikkiNikki ttele ha dicho que los programas
son excelentes para resolver problemas matemticosold you that programs
are great at solving math problems,, pero no buenos para plantearlos but
no good at setting them up? Bueno, lo mismo ocurre para los problemas de
lgicaWell, the same thing is true about Booleana logic problems. Los
programas de computadoraprogramas de computacin son excelentes para
resolverComputer programs are great at solv problemas de lgica ing very
complex Booleana muy complejoslogic, pero no pueden plantearlos
problems, but they can't set them up. De nuevoAgain, se es tsu trabajo
como programador,that's your job as a programmer -- plantear los
problemas de lgicato set up the Booleana para que tsu programa los
resuelvalogic problems for your program to solve. Cuando se ejecuta el
cdigoWhen the code is executed, ethel program a resuelve el
problemasolves the problem. La respuesta ser Verdadero o The answer will
be True or Falsoe. El programaThe pro tomagram makes "una decision"
dependiendo de si la respuesta al problema esg on whether the answer to
Verdadero o Falsothe problem is True or False.

TuUsted sabes que el signo de igual puede utilizarse con un operador de
asignacin, pero tambin puede utilizarse como unYou know that the equal
sign can be used as an assignment operator, but it can also be used as a
"operador de comparacinison operator". En los ejemplos anterioresIn the
examples above, el signo de igual est preguntandothe equal sign is asking
the question,: "el lado izquierdo es igual al lado derechoIs the left side
equal to the right side? VerdaderoTrue or Falseo?" Existen otros operadores
de comparacin para comparar si el lado izquierdo es mayor al lado
derechoThere are other comparison operators for comparing whether the left
side is greater than the right side (>) o si el lado izquierdo es menoror
whether the left side al is less than (<) lado derechothe right side. En cada
caso, hacen la pregunta, que debe ser respondida con Verdadero oIn each
case, they ask a question, which must be answered with True or Falseo.
VeObserve estos ejemplosLook at these examples:


3<4
Hace la preguntaAsks the question is: Is 3 es menor aless than 4?

SYes, es Verdaderothat's True.


Unidadt 08 WhatIf, Texas Pginaage 176 ofde 321



2>5
Hace la preguntaAsks the question:: Is 2 es mayor agreater than 5?

No, esthat's Falseo.


Unidadt 08 WhatIf, Texas Pginaage 177 ofde 321

A continuacin aparece una lista de los operadores de comparacin ms
comnmente utilizadosHere's a list of the most commonly used comparison
operators:


Operatdor MeaningSignificado QuestionPregunta
= Igual aequal to El lado izquierdo es igual al lado
derechoIs the left side equal to the
right side?
> greater thanMayor a Is the left sideEl lado izquierdo es
mayor al lado derechogreater than
the right side?
< less thanMenor a Is the left sideEl lado izquierdo es
menor al lado derecholess than the
right side? Falseo
>= Mayor o igual
agreater than or
equal to
Is the left sideEl lado izquierdo es
mayor o igual al lado derecho
greater than or equal to the right
side?
<= Menor o igual aless
than or equal to
Is the left sideEl lado izquierdo es
menor o igual al lado derecholess
than or equal to the right side?
<> No igual anot equal
to
Is the left sideEl lado izquierdo no
es igual al lado derechonot equal to
the right side?


Tal vez no estas familiarizadoYou
may not be familiar w con los
operadoresith the >=, <= andy <>
operators. Son dos operadores en
unoThey are two operators in one.
Contienen dos enunciadosThey
contain two Booleanos statements
connectaedos por un operador by an
ORR operator. Si cualquiera de los
enunciados es VerdaderoIf either
statement is True, entonces todo el
enunciado es Verdaderothen the
whole statement is True. PFor
ejemploxample, >= significameans:
Is the left sideEl lado izquierdo es
Naranja es igual a manzana?
No, eso es
Falsoe


Unidadt 08 WhatIf, Texas Pginaage 178 ofde 321

mayor al lado derechogreater than the right side? ORR is the left sideEl lado
izquierdo es igual al lado derechoequal to the right side? Dos preguntas
separadas unidas por el OperadorTwo separate questions joined by the
Booleano Operator ORR. ElT operadorhe <> significaoperator means: Is the
left sideEl lado izquierdo es menor al lado derecholess than the right side?
ORR is the left sideEl lado izquierdo es mayor al lado derechogreater than
the right side? El operadorThe <> pregunta realmenteoperator really asks:
Los dos lados son distintosAre the two sides not equal?


Veamos unos cuantos ejemplos, utilizando los operadores de comparacin
para plantear ecuacionesLet's look at a few examples, using the comparison
operators to set up Booleanas equations. Tal vez tengas que revisar de
nuevo las tablas para ver cmo funciona el operador OOR en cada casoYou
may have to look back at the tables to see how the OR operator works in
each case.

3<=3
3<3 ies Falseo. 3=3 ies VerdaderoTrue. Falseo ORR VerdaderoTrue =
VerdaderoTrue
VerdaderoTrue, 3 ies menor o igual aless than or equal to 3.


2>=3
2>3 ies Falseo. 2=3 ies Falseo. Falseo ORR Falseo = Falseo

Falseo, 2 is no es mayor o igual at greater than or equal to 3.


3<>4
3<4 ies VerdaderoTrue. 3>4 ies Falseo. VerdaderoTrue ORR Falseo =
VerdaderoTrue
VerdaderoTrue, 3 is no es igual at equal to 4.


3<>3
3<3 ies Falseo. 3>3 ies Falseo. Falseo ORR Falseo = Falseo
Falseo, 3 is no es igual at equal to 3. De modo queSo 3 eis igual a equal to 3



Unidadt 08 WhatIf, Texas Pginaage 179 ofde 321

Hasta ahora tele he dado ejemplos con nmerosThe examples I gave you so
far have been with numbers. Pero puedes utilizar los operadores de
comparacin para comparar cadenas de texto y otros valoresBut you can use
the comparison operators to compare text strings and other Booleanos
values. VeObserve estos ejemplosLook at these examples:


"ABC" = "DEF"

Is "ABC" = "DEF"? No, esthat's Falseo..



VerdaderoTrue = Verdadero
True
VerdaderoIs True = VerdaderoTrue? S, es
VerdaderoYes, that's True.


Verdadero True= Falseo

VerdaderoIs True= Falseo? No, esthat's
Falseo.


ConsejoRecomendacin para el
MaestroProfesorTeachers Tip
La comparacin de cadenas es de izquierda a
derechaThis is an example of a text box we can
use for the Teachers Guide.String comparison is
left to right. El primer caracter delThe first
character of operando 1 se compara con el
primeris compared to the fist character delof

Puedes usar los
operadores de
comparacin con
cadenas como si
compararas
nmeros
ABC < DEF
Es ABC < DEF?


Unidadt 08 WhatIf, Texas Pginaage 180 ofde 321

Cdigo cConditcional Code

Ahora puedes hacer que tsu programa
hagaHaz una pregunta Verdadera o
FalsaNow you can make your program
ask a True or Fal utilizando operadores
de comparacin y lgicase question
using comparison operators and
Booleana logic. As queY qu es lo que
haces con la respuestaSo what does it
do with the answer? Tomas unaIt
makes a decisiondecisin.! CCon base
en si la respuesta al problema lgico es
Verdadero oBased on whether the
answer to the logic problem is True or
Falseo, puedesit can "elegirchoose"
hacer una cosa u otrato do one thing
or another. En realidad, no tienes una
verdadera eleccinActually, it doesn't
really have a choice. Si la respuesta es VerdaderoIf the answer is True,
entonces haces algothen it does something,. sSi la respuesta esIf the answer
is Falsoe, entonces no haces nadathen it do. Aqu hay algunos ejemplos de
la vida realesn't do anything. Here are some real life examples.





Si lavo el autocoche de Mam antes de que llegue PapIf I wash Mom's car
before my Dad gets home, entonces l me pagarthen he will pay me $5.
Lleg PapDad's home. Lav el cocheautoDid I wash the car?
VerdaderoTrue. Pap me pagaDad pays me $5.

Lleg PapDad's home. Lav el cocheautoDid I wash the car? Falseo. Pap
no me pagaDad does not pay me $5.



Temas enSi el medidor de
gasolina est bajo, salgo
aqu.
Est bajo? Verdadero.
Entonces me salgo.


Unidadt 08 WhatIf, Texas Pginaage 181 ofde 321

Si le gusto aIf Paulinae thinks I'm nice, entonces me invitar a salirthen she
will ask me out.

Le gusto aDoes Paulinae think I'm nice? VerdaderoTrue. Me invita a
salirShe asks me out.

Le gusto a Paulinae?Does Pauline think I'm nice? Falso. No me invita a
salire. She does not ask me out.


Aqu hay algunos ejemplos de cmo un programa puede tomar
decisionesHere are some examples of how a program can make decisions:

Si la casilla de verificacinIf the "Tamao GiganteSuper Size" se encuentra
check box is marcadachecked, entonces mostrar la imagen grandethen
show the large picture.

La casilla de verificacinIs the "Tamao GiganteSuper Size" se
encuentracheck box marcada checked? VerdaderoTrue. Mostrar la imagen
grande Show the large picture.

La casilla de verificacin "Tamao Gigante" se encuentra marcada?Is the
"Super Size" check box checked? Falseo. No mostrar la imagen grandeDon't
show the large picture.


Si laIf the variable Galones TotalesGallons ies mayor a c greater than zero,
calcular entonces el costo de la gasolinal gasthen calculate the gas cost.

LaIs the variable Galones TotaleGallons es > 0? VerdaderoTrue. Calcular el
costo de late the gasolina cost.
LaIs the variable Galones TotaleGallons es > 0? Falsoe. NoDon't calcular el
costo de la gasolinate the gas cost.


Unidadt 08 WhatIf, Texas Pginaage 182 ofde 321

Como puedes ver mis ejemplos de la vida real y de mi programa tienen
algounas cosas en comn

You can see my real life examples and my program examples have some
things in common:. uUtilizan lgicaThey use Booleana para hacer una
pregunta paraque se contesta con responder Verdadero o logic to ask a True
or Falseo question. La pregunta para responder VerdaderoThe True or Falso
utiliza operadores de comparacin como igual
a y menor o igual a. La respuesta a la
pregunta es ya sea Verdadero o Falsoe
question uses comparison operators like equal
to and less than or equal to. The answer to the
question is either True or False. Si la respuesta
esIf the an Verdaderoswer is True, algo
sucede. Si la respuesta essomething happens. If the answer is Falseo, no
sucede nadathing happens.
EnunciadosInstrucciones IfSi


If...ThenEntoncesThen Statements
Te diste cuentaNot que mis ejemplos utilizan las palabrasDid you notice
my examples use the words "SiSiIf" (If) yand "EntoncesEntoncesThen"
(Then)? Si una cierta condicin es VerdaderaIf a certain condition is True,
entonces algo sucedethen something happens. Si la condicin esIf the
condition is Falsea, entonces no pasa nadathen nothing happens. Cuando
deseas que tsu programa tome una decisinWhen you want your program to
make a decision, escribesa una instruccin enunciadoyou write an
"IfSiIf...ThenEntoncesThen" del mismo modo statement in the same way.
IEn Visual Basic.NET la sintaxis esthe syntax is:
IfSiIf condicintion ThenEntoncesThen
enunciadoinstruccin conditcional statement
End IfTerminaEnd IfSi
El siguiente es un ejemplo deHere's an example in Visual Basic.NET:
Teachers
TipConsejoRecomendacin
para el MaestroProfesor
This is an example of a text box
we can use for the Teachers
Guide.Recominderdatorio


Unidadt 08 WhatIf, Texas Pginaage 183 ofde 321

IfSiIf myyAgeiEdadAge = 3 ThenEntoncesThen
MessageBoxCuadrodeMensajesMessageBox.ShowMostrarShow("T
engoI am 3.".)
End IfTerminaEnd IfSi
Fjese en la palabraNotice the word "IIfSif". Es una palabra claveIt deis a
Visual Basic.NET, por lo que aparece en azul keyword so it's in blue. La
condicin viene inmediatamente despus de la palabraThe condition comes
right after the word "IfSiIf". La condicin realizaHace una comparacin y
hace una pregunta para responder con Verdadero o FalsoThe condition does
a comparison and asks a True or False question. LaIs the variable
myyAgeiAEdadge = 3? Sii es un enunciado VerdaderoIf that's a True
statement, entonces hay que hacer algo then do something. Note que la
palabraNotice that the word "ThenEntoncesThen" viene inmediatamente
despus de la condicinfollows right after the condition. Tambin eEs una
palabra claveIt deis a Visual Basic.NET, por lo que tambin aparece en azul
keyword too, so it's in blue. Despus deAfter "ThenEntoncesThen" viene la
instruccinel enunciado condicional que debe ejecutarsecomes the
conditional statement to be executed. Pretendemos que esta lnea facilite la
lectura del cdigoWe indent this line to make the code easier to read. Si laIf
the condicin es Verdaderotion is True, entoncesthen th el program a
despliega un cuadro de mensaje con el textodisplays a messagebox with the
text "TengoI am 3.". Notae que las palabrasNotice that the words "End
IfEndTermina SiIf" siguen a la enunciadoinstruccin condicionalfollow the
conditional statement. stas tambin sonThese are palabras
clavekeywords too y. Las palabrasThe words "End IfTermina Si" completan
el enunciadoe the "IfIfSi" statement.


Unidadt 08 WhatIf, Texas Pginaage 184 ofde 321

Ahora intntaelo tustedNow you try it!
Iniciae una nueva Aaplicacin de Start a
new Windows denominadaApplication
named IfThenSiEntoncesIfThen.
Aadagrega un cuadro de texto a laAdd a
text box to Forma 1. Coloqueca un botn
en laPlace a button on Forma 1. Hagaz
doble clic en el botn para editar
elDouble click the button to edit the
cdigo de evento de clic del botnbutton
click event code. Aadea las siguientes
lneas de cdigodd the following lines of code.
Dim myAgeiEdadyAge AsComoAs IntegerEnteroInteger
myAgeiEdadyAge = 3
IfSiIf myAgeiEdadyAge = 3 EThenntoncesThen
TextBox1CuadrodeTextoBox1.Texto = "TengoI am 3.".
End IfEndTermina SIfi
Creae e iniciae stu proyectoBuild and start your project. Hazga clic en el
botnClick the button. Esto es lo que est sucediendoHere's what's
happening. TSu cdigo enuncia una Your code declares a variable
denominadacalled myyAgeiEdadAge y le da un valor deand sets it to a value
of 3. ElThe "enunciado IfSiIf statement" hace una pregunta de Verdadero
oasks a True or Falseo question: Is myyAgeiEdad Age= 3? La respuesta es
Verdadero porque usted acabas de dar el valorThe answer is True because
you just set myAgeiEdadyAge = 3. Dado que la respuesta para esta
pregunta es VerdaderoSince the answer to this question is True, se ejecuta
la instruccinel enunciado the conditcional despus destatement after
"ThenEntoncesThen" is executed. El cuadro de texto despliega The textbox
displays "TengoI am 3.".


Ahora cambiemos el cdigo como se muestra a continuacinNow let's
change the code as shown below:
myAgeyiEdadAge = 2
Creae e iniciae stu proyecto de nuevoBuild and start your project again.
HagaHaz clic en el botnClick the button. Qu sucedeWhat happens? Nada
Nothing? BuenoWell, eso est bienthat's good! Esta vezThis time a
myiEdadAge se le ha dado un valor deyAge is set to a value of 2. ElThe


Unidadt 08 WhatIf, Texas Pginaage 185 ofde 321

"enunciado IfSiIf statement" hace la preguntaasks t he questions Is
myAgeiEdadyAge = 3? Esta vez la respuesta es FalsoThis time the answer is
False, sde modo que la instruccinel enunciadoo the conditcional despus
destatement after "ThenEntoncesThen" is no se ejecutat executed. No pasa
nadathing happens. El The texto e in el cuadro dethe texto no cambia
porque la condicin se evala comobox is not changed because the condition
evaluates to Falseo. TuSu Your programa hizo exactamente lo que se
pretenda que hiciera did exactly what it was supposed to.


Unidadt 08 WhatIf, Texas Pginaage 186 ofde 321

Veamos otro ejemploLet's look at another example. Agrega enEn laOn
Forma 1, aada una casilla de verificacin add a checkbox. Editae el cdigo
de evento de clic del botnEdit the button click event code. Reemplaceza
el cdigoce the existente con lo siguienteing code with the following:
IfSiIf
CasilladeVerificacinCheckBoxCheckBox1.CheckedMarcadaChecke
d = VTrue ThenerdaderoTrue EntoncesThen
TextBoxCuadrodeTextoBox1.Texto="I am checkedEstoy
marcadoa.".
End IfEndTermina IfSi
Creae e iniciae tsu proyectoBuild and start your project. Marqueca la casilla
de verificacin y hagahaz clic en el botnCheck the checkbox and click the
button. LaThe condicintion se evala como Verdaderauates to True
(marcaste la casilla de verificacinyou checked the checkbox), de modo que
el so the texto en el cuadro de texto se especifica como Estoy marcadoa in
the textbox is set to "I am checked.".


Creae e iniciae tsu proyecto de nuevoBuild and start your project again. Esta
vez, quitae la marca de la casilla de verificacin y hagahaz clic en el
botnThis time, uncheck the checkbox and click the button. Qu
sucedeWhat happens? No sucede nadathing happens. Esta vez la condicin
esThis time the condition is Falsea (quitaste la marca de la casilla de
verificacinyou unchecked the checkbox), de modo que el texto so the text
no cambiais not changed. TSu programa ha tomado una decisinYour
program has made a decision (determinar la propiedad del textoto set the
text property) con base en una condicinbased on a condition (si una
casilla de verificacin est o no marcadawhether a checkbox is checked or
not).


Unidadt 08 WhatIf, Texas Pginaage 187 ofde 321



Debes poner una sangra en todas
las instrucciones condicionales
entre las lneas If...Then y End If.
Eso facilita la lectura y
comprensin de tu cdigo. An con
una sola instruccin condicional
deberas poner una sangra. Visual
Studio.NET pone la sangra
automticamente por omisin.

If CheckBox1.Checked = True
Then
MessageBox.Show(Danger!)
End If Temas en


Unidadt 08 WhatIf, Texas Pginaage 188 ofde 321

Ms de un SiIfMore Than One If
Tal vez quieresdesee que tsu programa tome numerosas decisiones al
ejecutarseChances are that you are going to want your program to make
numerous decisions when it executes. TSu Your programa podra ma
requeriry revisar el estado de una casilla de verificacinneed to check the
state of a checkbox, despus revisar el estado de unthen check the state of
a botn de radioradio button, luegothen comparar dos nmerose two
number y finalmente determinar si el usuarios, and finally determine whe
dej un campo de texto en blancother the user left a text field blank.
GuauWow!! Esto es mucho pedirle a un programaThat's a lot to ask of a
program. Puede hacerse todo estoCan all this be done?
AfortunadamenteFortunately la respuesta es , the answer is "SYes". Puedes
aadir tantaosYou can add as man enunciadosinstrucciones dey
"IfSiIf...ThenEntoncesThen" como requiera a stu cdigostatements to your
code as you need. Como cualquier otra instruccino enunciadoLike any other
statements, staos se ejecutan en el orden en el que ocurren en el
cdigothey are executed in the order in which they occur in the code.
Construyamos una aplicacin que muestre el uso de ms de una
instruccinenunciadoLet's build an application that demonstrates the use of
more than one "IfSiIf...ThenEntoncesThen" statement.

Digamos que nuestro programa tiene una casilla de verificacin
denominadaLet's say that our program has a checkbox called "Desplegar
Todas lasisplay All Alarmas". Si esta casilla de verificacin se encuentra
marcadaIf this checkbox is checked, entonces elthen the programa chambia
el Color de Fondo del la formato a rojonges the BackColor of the form to red,
chambia elnges the texto en un cuadro de texto in a textbox to "Red Alerta
Roja",y muestra un cuadro de mensaje, desplegando el texto and shows a
messagebox, displaying the text "PeligroDanger! PeligroDanger!". Una
formato en ella que podras escribir este cdigo es utilizando tres
instruccionesenunciadosOne way you could write this code is to use three
separate "IfSiIf...ThenEntoncesThen" separadaostatements. En cada unaoIn
each, la condicin revisara si la casilla de verificacinthe condition would
check to see if the "Desplegar Todas lasisplay All Alarmas" est
marcadacheckbox is checked. Si la condicin es Verdadera, se ejecuta una
enunciadoinstruccin condicionalIf the condition is True, a conditional
statement is executed.
Ahora tse lo mostrarHere, I'll show you. Iniciae una nueva aAplicacin
deStart a new Windows denominadaApplication called Disparar Alarma de
IncendioFireAlarm. Aadgrega una casilla de verificacindd a checkbox,, un


Unidadt 08 WhatIf, Texas Pginaage 189 ofde 321

cuadro de a texto y un botn de comando para la box, and a command
button to Forma 1. Chambiae elnge the Texto del Buottonn of Button1 toa
"Thhreeres IfsSise If's". HagaHaz doble clic en el Double click
Buttonuttotnn 1 parato editar el evento de clic del botnedit the button
click event. Aadea el siguiente cdigodd the following code.
IfSiIf
CasilladeVerificacinCheckBoxheckBox1.CheckedMarcadaChecked
= VTrue ThenerdaderoTrue EntoncesThen
Forma.ActiveFFormaActivaeForm.BackColorBackColordeFondo
= Systemistemaystem.DrawingDibujarrawing.Color.Redojoed
EndTermina IfSiE nd If
IIfSif
CasilladeVerificacinCheckBoxheckBox1.CheckedMarcadaChecked
= VTrue ThenerdaderoTrue EntonThences
CuadrodeTextoTexBoxBox1.Texto = "Red Alerta RojaAlerta
Roja"
End IfEndTermina IfSi
IfSiIf
CasilladeVerificacinCheckBoxCheckBox1.CheckedMarcadaChecke
d = VTrue ThenerdaderoTrue EntonThences
CuadrodeMenssajesMessageBoxgeBox.ShowMostrarShow("Peli
groPeligroDanger! PeligroPeligroDanger!")
End IfEndTermina IfSi
Creae e iniciae tsu proyectoBuild and start your project. Marqueca la casilla
de verificacin y hazgaCheck the checkbox and clic en el botn dek the
"Three Ifshres Sie If's" button. Cada uno de laos
instruccionesenunciadosEach of the "IfSiIf...ThenEntoncesThen" statemese
ejecuta a su vez y se ejecutan tres enunciadosinstrucciones condicionalesnts
executes in turn and the three conditional statements are executed. LaEl
primera instruccinenunciadoThe first "IfSiIf...ThenEntoncesThen" cambia el
color de la formato a rojostatement changes the form color to red. LaEl
segundao enunciado cambia elThe second statement changes the Texto del
cuadro de texto a of the textbox to "Red Alerta Roja". LaEl tercerao muestra
un cuadro de mensajes que despliegaThe third shows a messagebox
displaying "PeligroDanger! PeligroDanger!"


Unidadt 08 WhatIf, Texas Pginaage 190 ofde 321

08 PruebaProve ItEjercicio 01 Gift
Ideas de rRegalo

Al acercarnos aWhile nearing WhatIf, Texas,
nos detuvimos en una tienda de regaloswe
stopped at a gift shop. Si creas un programa
para ayudar a los clientes a seleccionar un
regaloIf you write a program to help customers
select gift, el dueo de la tienda tle dar una
postal original con la imagen de unl
hermosothe shop owner will give you a genuine
postcard featuring beautiful downtown centro
de WhatIf del centro.

1. Dibujae unaPaint a formato denominadoa
Ideas de Regalo called Gift Ideas.
Includyeea una etiqueta rtuloa label
GGente que comprPeople who bought y una etiqueta rtuloand a
label Tambin comprAlso bought.

2. Colocaque un Combo box Cuadro ComboPlace a Combo box (vease
la Unidadsee Unit 4) en el formatosobre la formaon the form.
Determinae la propiedad de texto en Elegir un Regalo. Llenae el
conjunto de Artculos con los regalos enumerados abajo, o utiliceza
tsus propias ideas de regalo.

3. Colocaque un cuadro dePlace a texto box. Permitea que hayaAllow
multiples lineas en el cuadroin the box.

4. Siempre que se seleccione un regalo en elWhenever a gift is selected
in the Cuadro ComboCuadro combinado Box, llenae el cuadro de texto
con por lo menos dos artculos que hayan sido tambin adquiridos por
los clientesfill the text box with at least two items that were also
purchased by customers. Puedes utilizar estasYou may use these
selectciones o elegir la tuyaa suya propiar choose your own.

1.5.
Sombrero de Diez
GalonesTen Gallon
Hat
Cinta de Sombrero de pPiel
de vVbora para
sombreroSnakeskin Hat
Band
Ideas de regalo

En este Ejercicio debers crear un
programa de seleccin de regalos.
El usuario escoge un regalo de una
lista desplegable a cuyo lado se
encuentra una lista con ideas de
regalos relacionados.

El archivo
08_ProveIt01_files
contiene

Ideas de regalo

En este ejercicio debers crear
un programa de seleccin de
regalos. El usuario escoge un
regalo de una lista desplegable
a cuyo lado se encuentra una
lista con ideas de regalos
relacionados.

El archivo 08_ProveIt01_files
contiene instrucciones para este
ejercicio y archivos de apoyo
que pudieras
necesitar.Temas en


Unidadt 08 WhatIf, Texas Pginaage 191 ofde 321

Corbata para
cChalecoBolero Tie
Bootas Lustre para Bbotas de pPiel
de aArmadillo Hide Boot
PolishLustre
Quita botasCota de Bota
Desprendible
FcilmenteEasy Off Boot
Jack
Stuffed JackalopeConejo
con cCuernos
dDisecado
Mapa Secreto de la mMina
de oOro secreta Gold Mine
Map
Oro gGenuine Gold Oreo
Postales Cards Lpiz gGrabadoEngraved
Pencil
Camiseta deBig as TTexas
T-Shirt
Chili
PeppersChilePepinillos
Picantes
Mangos en Forma de
ChilesPanhandle Chili
Salsa Picante Tornado Hot
Sauce



Unidadt 08 WhatIf, Texas Pginaage 192 ofde 321

El nmero del artculo seleccionado se encuentra en la propiedad ndice
Seleccionado


Unidadt 08 WhatIf, Texas Pginaage 193 ofde 321

The item number selected is found in the SelectedIndex property,
comenzando en cerostarting at zero.

El nombre del artculoThe name of the seleccionado se encuentra en la
propiedadted item is in the Se Artculo SeleccionadotedItem property.
Si deseas que las dosIf you want the two recommendactiones to
appearezcan en lneas on separadas del cuadro de texto, de lo que estoy
seguro, ponga la constante especial dete lines in the textbox, as I am sure
you do, put the special Visual Basic entre ellas, del siguiente modoconstant
between them, like this:

CuadrodeTextoTextBoxBox1.Texto = A &
vbNewLineuevaewLinenea & B

Por supuestoOf course, A andy B son reemplazadasare r por laseplaced by
the recommendatciones.

Cuando tsuWhen your programa funcione works correctamentely,
mustraeselo a tsu instructorshow it to your instructor.




Teachers TipConsejoRecomendacin
para el MaestroProfesor
Algunos alumnos pueden considerar queThis is an
example of a text box we can use for the
Teachers Guide.Some students may find the las
instructciones no son un clearas. Se espera que el
alumno tenga una serie de
enunciadosinstrucciones IfSiThe student is
expected to have a series of If statements. El


Unidadt 08 WhatIf, Texas Pginaage 194 ofde 321

Ms de un condicionalore Than One Conditional
Te diste cuentaNot que todas las instruccionesdos los enunciadosDid you
notice that all of the "IfSiIf...ThenEntoncesThen" del ejemplo destatements
in the Disparar FireAlarma de Incendio tenan la mismaexample had the
same condiction? Todaos utilizabanThey all used:
SiIfIf
CasilladeVerificacinCheckBoxCheckBox1.MarCheckecadaChecked
= VTrue ThenerdaderoTrue EntoncesThen
Lo nico que cambiaba era el enunciadoThe only thing different was the la
instruccin condidicionational utilizadao en cada unostatement each one
used. Parece demasiado cdigo Seems like a lot of repetitivoe code,
verdaddoesn't it? No existe una manera ms sencillahay una forma ms
fcilIsn't there an easier way? Bueno, claro que la hayWell, of course there
is! Visual Basic.NET y la mayora de los lenguajes modernos de
programacin permiten mltiples instruccionesenand most modern
programming unciadoslanguages allow multiple conditcionales para una
misma condicinstatements under the same condition. La sintaxis es la
siguienteHere's the syntax:
IfSiIf conditcion EThenntoncesThen
enunciadoinstruccin conditcional statement 1
instruccinenunciado conditcional statement 2
instruccinenunciado conditcional statement etc.
End IfEnd IfTermina Si
Sabiendo estoKnowing this, podemos rescribir el cdigo que utilizamos enwe
can re-write the code we used la aplicacin de Disparar Alarma de
Incendioin the FireAlarm application, simplificndoloying it, eliminando los
enunciados de condicin repetitivos y facilitando la comprensiting the
repetitive condition statements, and making it easier to unnderstand. Abrea
tsuOpen your aplicacin de Disparar FireAlarma de Incendio application.
Aaddea un segundo botn de comando a la a second command button to
Forma 1. Chambiae el nge the Texto del of Buttuttonotn 2 ato "UnOne SiIf".
HagaHaz dobleDouble clic en elk on Buttonotn utton2 parato editar el
evento de clicedit the click event. Agregaada el siguiente cdigodd the
following code:
IfSiIf
CasilladeVerificacinCheckBoxheckBox1.CheckedMarcadaChecked


Unidadt 08 WhatIf, Texas Pginaage 195 ofde 321

= VTrue ThenerdaderTrueo EntoncesThen
Forma.FormaActiveFormaActiveForm.BackColor.BackColordeF
ondo =
Systemistemaystem.Dibujarawingrawing.Color.RRojoojoed
CuadrodeTextoTextBoxBox1.Texto = "Alerta RojaRed Alerta
Roja"
CuadrodeMenssajesMessageBoxgeBox.ShowMostrarShow("Peli
groDanger! PeligroDanger!")
End IfEndTermina IfSi
Creae e iniciae tsu proyectoBuild and start your project. Marcaque la casilla
de verificacin y hagahaz clic en el botnCheck the check box and click the
"UnOne SiIf"One If" button. Se evala el enunciado de condicin nicaThe
single condition statement is evaluated. Como es Verdadero, todaos laos
enunciadosIt's True, so all of the instrucciones conditcionales que dependen
de l se ejecutan a su vez statements under it are executed in turn. El The
programa funciona works exactamente igual ly the same as it que como lo
haca antesdid before. Sin embargoThis time, esta vez laos tres
instruccionesenunciadoshowever, the three conditcionales comparten una
nica condicinstatements share a single condition, lo que requiere menos
cdigo y ste es ! Utilizando una nica condicin con mltiples
enusnciadosing a single condition with multiple conditcionales que dependen
de ella, requiere menos cdigo y el cdigo es ms fcil de comprender
statements under it takes less code and the code is easier to understand.


Unidadt 08 WhatIf, Texas Pginaage 196 ofde 321


Opcin mltipleMultiple Choice
Recuerdas cuando orden cerveza de raz utilizando slo preguntas para
responder s o noRemember when I ordered root beer using only yes or no
questions? Utilic unaI used a serie de preguntas para reducir las
posibilidades y responder una pregunta de opcin mltiples of questions to
narrow down the possibilities and answer a multiple choice question. Aunque
llev algo de tiempo, finalmente obtuve lo que deseabaEven though it took a
while, I eventually got what I wanted. Usted pPuedes plantear preguntas de
opcin mltipleYou en un cdigo utilizando simplemente unacan set up
multiple choice questions in code also by simply using a serie des
instruccionesenunciadosof "SIfiIf...ThenEntoncesThen" statements. Tengo un
excelente ejemplo para mostrar estoI've got a great example that
demonstrates this.

Iniciae una nueva aAplicacin deStart a new Windows
denominadaApplication called Elegir Un ChooseAColor. Aadagrega tresdd
three botones de radioradiobuttons y un botn deand a commando a la
button to Forma 1. Utilizace la vVentana dese the Propiedades para
especificar las siguientes propiedadeserties Window to set the following
properties. Chambiaie elnge the tTexto del Botn de RadioRadioButton of
RadioButton 1 ato "RojoRojoed". Chambiae elnge the tTexto del of Botn
de RadioButtonRadioButton 2 ato "AmarilloYellow". Chambie elnge the
tTexto del of Botn de RadioButtonRadioButton 3 ato "VerdeGreen".
Chambiiaenge el the tTexto del Buttonotn of Button1 toa "ColorameColor
Me". Ajustae la propiedad MarcadaSet the Checked propert dely of Botn de
RadioButtonRadioButton 1 en Verdaderto Trueo. HagaHaz doble clic en el
Buttonotn Double click Button1 para editar el cdigo de evento de clicto
edit the click event code. Aadagrega las siguientes lneas de cdigodd the
following lines of code:
Dim myyiColor AsComoAs
Systemistemaystem.DrawingibujarDrawing.Color
IfSiIf BotndeRadioButtonRadioButton1.MarcadCheckedoChecked
= VTrueerdaderoTrue ThenEntoncesThen
myyiColor =
Syistemaystem.Dibujarawingrawing.Color.RRojoojoed
End IfEndTermina IfSi
IfSiIf
BotndeRRadioButtonRadioButton2.CheckedMarcadoChecked =
VTrueerdaderoTrue ThenEntoncesThen


Unidadt 08 WhatIf, Texas Pginaage 197 ofde 321

myyiColor =
Systemistemaystem.Dibujarawingrawing.Color.AmarilloAmarillo
Yellow
End IfEndTermina SiIf
IfSiIf BotndeRadioButtonRadioButton3.CheckedMarcadoChecked
= VTrue erdaderoTrue EThentoncesThen
myyiColor =
Syistemaystem.Drawingibujarrawing.Color.VerdeVerdeGreen
End IfEndTermina IfSi

Forma.FormaActiveFormaForm.BackColordeFondoBackcolor =
myyiColor
Creae e iniciae tsu proyectoBuild and start your project. Notae que el botn
de radioNotice that the "Rojoed" se encuentra marcado. HagaHaz clic
enradiobutton el botn is checked. Click the "Colorame" Me" button. El
formatoLaThe forma y los botones se colorean de rojo and buttons are
colored red. Seleccionae unt a different botn de radioradiobutton distinto y
hazgaand clic en el botnk the "Colorame" Me" button. ElLaThe formato
yand los buotones se colorean de un color distintottons are colored a
different color!.

Observae el cdigoLook at the code. Se utiliza unaA serie de
instruccionesenunciadoss of "IfSiIf...ThenEntoncesThen" para responder una
pregunta de opcin mltiplestatements is used to answer a multiple choice
question: "QuWhich botn de radioradiobutton se encuentra marcadois
checked?" A medida que el cdigo ejecuta una ordens code executes an
order, el programa determina finalmente cul de losthe program eventual
tresly determines which of the botones de radio three radio buttons se
encuentra marcadois checked. El programa ejecuta entonces el enunciadola
instruccin condicional apropiadaoThen the program executes the
appropriate conditional statement para especificar el to set the color.


Unidadt 08 WhatIf, Texas Pginaage 198 ofde 321

Operadores
Booleanos en el Operators in el cCdigoode
Hemos hablado de cmo puedes utilizarWe talked about how you can use los
operadores Booleanos operators para unir expresiones y resolver to join
expressions t problemas complejos deo lgicagether to solve complex
Booleana logic problems. Veamos un ejemplo que utiliza el operador
BooleanoLet's look at an example that uses YAND para crear una condicin
complejathe AND Boolean operator to build a complex condition.

Vamos aWe are going to modificar nuestra aplicacin dey our Elegir Un
ChooseAColor aadiendo una casilla de verificacin que habilitar o
deshabilitar la funcionalidad del cambio de colorapplication by adding a
checkbox that will enable or disable the color change functionality.
Utilizaremos el ANDYWe'll use the AND Booleano para crear una condicin
ms compleja que requiera que to build a more complex condition which
requires that la casilla de verificacin se encuentre marcada the checkbox
para que el is checked or the color pueda cambiarsecan't be changed.


Abrea tsu aplicacinOpen your Elegir Un ChooseAColor application. En laOn
Forma 1, aadaagrega una casilla de verificacindd a checkbox. Chambiae la
propiedad delnge the tTexto a property to "HabilitarEnable Colores". Editae
el cdigo de evento de clic de botn del Buttonotn the button click event
code of Button1. Reemplaceza el cdigo con lo siguientece the code with the
following:
Dim myyiColor AsComoAs Syiystema.Drawingibujarrawing.Color
IfSiIf BotndeRadioButtonRadioButton1.CheckedMarcadoChecked
= VTrueerdaderoTrue AndYAnd
CasilladeVerificacinCheckBoxCheckBox1.CheckedMarcadaChecke
d ThenEntoncesThen
myyiColor =
Syistystemema.Dibujarawingrawing.Color.RRojoojoed
End IfEndTermina IfSi
IfSiIf BotndeRadioButtonRadioButton2.CheckedMarcadoChecked
= VTrueerdaderoTrue AndYAnd
CasilladeVerificacinCheckBoxheckBox1.CheckedMarcadaChecked
ThenEntoncesThen
myyiColor =
Syiystema.Drawingibujarawing.Color.AmarilloAmarilloYellow


Unidadt 08 WhatIf, Texas Pginaage 199 ofde 321

End IfEndTermina IfSi
IfSiIf BotndeRadioButtonRadioButton3.CheckedMarcadoChecked
= VTrue AnderdaderoTrue YAnd
CasilladeVerificacinCheckBoxheckBox1.CheckedMarcadaChecked
EThenntoncesThen
myyiColor =
Syyistema.Dibujarawingrawing.Color.VerdeVerdeGreen
End IfTerminaEn If Si
Forma.FormaActiveFormeForma.BackColordeFondoBackcolor =
myyiColor
Creae e iniciae tsu proyectoBuild and start your project. HagaHaz clic en el
botnClick the "Colorame Me" button. No sucede nadaNothing happens.!
No hay cambio de colorr change. Ahora marqueca la casilla de
verificacinNow check the "HabilitarEnable Colores" y hagahaz clic de nuevo
en el botncheckbox and click the "Colorame Me" button again. El
formatoLaThe forma y los controles se colorean de rojo and controls are
colored red. Esto es lo que est
sucediendoHere's what's happening.
Aadimosgregamos el siguiente
cdigo a la condicin deWe added
the following code to the cada
instruccinenunciado condition of
each IfSiIf...ThenEntoncesThen
statement:
AndYAnd
CasilladeVerificacinCheckBox
heckBox1.CheckedMarcadaChecke
d

Teachers TipConsejoRecomendacin para
el MaestroProfesor
Algunos alumnos tienen problemasThis is an example
of a text box we can use for the Teachers
Guide.Some students have trouble con el uso de
enunciados Si complejos with using complex
(Booleanos) If statements. Los evitan, creando en
lugar de ello programas ms complejosThey avoid
Teachers TipConsejoRecomendacin para
el MaestroProfesor
Algunos alumnos tienen problemasThis is an example
of a text box we can use for the Teachers
Guide.Some students have trouble con el uso de
enunciadosinstrucciones IfSi complejaos with using
complex (Booleanaos) If statements. Los evitan,
creando en lugar de ello programas ms


Unidadt 08 WhatIf, Texas Pginaage 200 ofde 321


Esto aadeagrega una condicinThis adds an adicionalextra condition. Ahora
las dosNow two condictiones deben ser ambas Verdaderas para que el color
cambiemust both be True for the color to change. FPor ejemploxample,
BotndeRadioButton2RadioButton2.CheckedMarcadoChecked =
VTrue AnderdaderoTrue YAnd
CasilladeVerificacinCheckBoxheckBox1.CheckedMarcadaChecked
stos deben ser VerdaderosThese must both be True. Recuerdaemember,
VerdaderoTru ANDYe AND Verdadero True = VerdaderoTrue. Si cualquiera
de las If any of the conditciones en cualquiera de los lados del operador
YAND es Falsa, entonces la expresin se eva on either side of the AND
operator are False, then the expression will evalluar comouate to Falsa y el
color no cambiare and the color will not change.
Recuerda, utiliza el
operador AND
cuando quieres que
ambos operandos
sean Verdadero.
Utiliza el operador
OR si requieres que
solo uno de los
operandos sea


Unidadt 08 WhatIf, Texas Pginaage 201 ofde 321

EntradaLlegada aEntering WhatIf
Bueno, lo hemos logradoWell, we made it! Ya estamos enHere we are in WhatIf, TX.
Nunca dud que lo lograramosI had no doubt we'd make it. En el trayecto usted
aprendiste otro tipo esencial de enunciadoinstruccin de cdigo, el enunciadoOn our
way you learned another essential type of code statement, the
"IfSiIf...ThenEntoncesThen" statement. Ahora puedes hacer que tsus programas tengan
mayores capacidadesNow you can give your programs some brains. Pueden tomar
decisiones por s mismosThey can make decisions on their own now--as que tenga
cuidado en aquello que les pides que haganso be careful what you ask them to do!

Tengo una Pruebaejercicio divertidoa para que usted loa realicehagas en elI've got a
fun Prove It for you to do on the organizador personalPDA;. cCreo que lo realmente
disfrutars de staI think you'll really enjoy this one. No olvides efectuar sutu prueba
examen deDon't forget your Verificacin antes de que nos dirijamos al cComit de
rRally para nuestro retoretoCheckpoint quiz before we head to the Rally Committee
for our challenge.



Unidadt 08 WhatIf, Texas Pginaage 202 ofde 321

08 Pruebaove ItEjercicio 02 Encuesta de aAptitud en
pProgrammming Aptitude acinSurvey

Sabemos que sete encuentras en este viaje de
Reglas de Cdigo porque has demostrado tsus
aptitudes en el saln de clasesWe know you are
on this Code Rules road trip because you
demonstrated your aptitude in the classroom.
ElThe cComit del rRally de Reglas VialesRoad
Rules Rally Committee deseara disponer de
una simple formato de encuesta para ayudar a
que otros alumnos decidan si deben tomar un
curso de programacin o nowould like a simple
survey form to help other students decide if they
should take a programming course.












Dibujae unaPaint a formato como stea like this:

Encuesta de aptitudes

En este Ejercicio debers crear
un formato de encuesta
interactivo. Usando una escala
del 1 al 10 el usuario debe
estimar su aptitud para
diferentes habilidades de
programacin. El programa
suma sus puntajes y
proporciona una evaluacin de
la aptitud de programacin.

El archivo 08_proveit02_files
contiene instrucciones para
este Ejercicio y archivos de
apoyo que podrs necesitar.



Unidadt 08 WhatIf, Texas Pginaage 203 ofde 321



Cuando se hagahaces clic en el botnWhen the Evaluarte button is clicked,
aadagrega los nmeros en los 6 cuadros de textodd the numbers in the 6
text boxes. Dado que el contenido de un cuadro de texto es una cadena, no
un nmeroSince the content of a text box is a string, not a number, usted
ttendrs que convertirloyou will have to convert it. Visual Basic.NET provee
varias formas de hacer esto. La siguiente es una de ellasides several ways to
do this. Here is one.

X = Val(TextBoxCuadrodeTextBox1.Texto)

La funcinThe Val function calcula el valor de la cadenates the value of the
string. Despus usted puedes asignarlo a una variable comoThen you can
assign it to a variable such as X.

Si el nmero es mayor aIf the number is greater than 40, assignae un
mensaje al cuadro de texto de a message to the Evaluacin, indicando
que el alumno es un excelente candidato para tomar un cursotion text
box indicating that the student is an excellent candidate for a de
programacinming course.

Si el nmero es deIf the number is from 20 a 39, entonces dilegale
al alumno que su xito en la programacin es incierto, pero que es


Unidadt 08 WhatIf, Texas Pginaage 204 ofde 321

bienvenido a intentarlo then tell the student that their programming
success is uncertain but that they are welcome to try.

Si el nmero es menor aIf the number is below 20, entonces estimule
al alumno a tomar otra carrera then encourage the student to take
another career path.

Cul es tsu propio puntajeWhat is your own score?

Cuando tsuWhen your programa isea correcto, mustraeselo a tsushow it to
your instructor.













Teachers
TipConsejoRecomendacin
para el MaestroProfesor
Al calificar estea Pruebaove
ItThis is an example of a text box
we can use for the Teachers
Guide.When grading this Prove It,
verifique que exactamentey that


Unidadt 08 WhatIf, Texas Pginaage 205 ofde 321



Unidadt 08 WhatIf, Texas Pginaage 206 ofde 321


08 RetoRetoChallenge Zap

Recuerdas elmember that juego de
arcadaarcade game que vimos en la
cCena de ayer, en donde intentaste
hacer clic en el objetivo en movimientowe
saw in the Diner last night where you try
to click on the moving target? Vamos a
crearloCremoslo conLets create it with
Visual Basic.NET. Requerir algunas cosas
que no hemos cubiertoIt will require some
things we especficamentehavent
specifically covered, as que lea con cuidado estas instruccionesso read these
instructions carefully.







Cambiae lashange the dimensiones de laof Forma 1 a una Altura deto a
Height of 250 y un Ancho deand a Width of 500550. Llamae a la
formatoName the form Zap. Aadagrega controles a la formato, para que se
vea asdd controls to the form so it looks like this:



Teachers TipConsejoRecomendacin
para el MaestroProfesor
EsteThis is an example of a text box we can use for
the Teachers Guide.This programa es ms grande
que los programas anteriores is larger than previous
programs. Puede resultar til revisarIt may be
Zap

Escribe un juego donde debes
tratar de hacer clic en un
objetivo en movimiento.
El archivo 08_challenge_files
contiene instrucciones para
este reto y los archivos de
apoyo que necesitars.Temas
en


Teachers TipConsejoRecomendacin
para el MaestroProfesor
EsteThis is an example of a text box we can use for
the Teachers Guide.This programa es ms grande
que los programas anteriores is larger than previous
programs. Puede resultar til revisarIt may be
ZapTemas en





Unidadt 08 WhatIf, Texas Pginaage 207 ofde 321




Unidadt 08 WhatIf, Texas Pginaage 208 ofde 321

ElThe propsitoobjecto del juego es hacer clic en el objetivo en movimiento
of the game is to click the moving target. El cdigo mover la imagen,
dificultando hacerle clicThe code will move the picture, making it hard to
click. El botn Inicio restablece inicializa e inicia el juegoThe Start button
initializes and starts the game;. eEl botn Detener termina el juegoThe Stop
button ends the game y. eEl botn Salir cierra el programa. Los tresThe Exit
button closes the program. The three bBotones de rRadioRadioButtons
seare utilizan para determinar el nivel de habilidadessed to set the skill level.
Aadagrega un Cuadro de iImagen para mantenercolocar el grfico
objetivodd a PictureBox to hold the target graphic.

El grfico objetivoThe target graphic, 001_Challenge_Target.gif, se descarga
junto con las instruccionesis downloaded along with the instructions. Eligeja
la imagen objetivo que hayas descargado como imagen para el Cuadro de
ImagenChoose the target image you downloaded as the picture for the
Picture Box. Seleccionaet Estirar Imagen para la propiedad SizeModoe de
EstiramientoStretchImage for the SizeMode property.

EsteThis programa utiliza un Cronmetro para hacer que el cdigo se ejecute
en intervalos de tiempo especficos uses a Timer to cause code to execute at
specific time intervals. Despus de haber dibujado ella formato, encuentrae
el control del Cronmetro en el Cuadro de hHerramientas y hagahaz doble
clicAfter you have painted the form, find the Timer control in the Toolbox
and double-click it. Se colocar debajo del laIt will be placed below the
formato. Es It is parte del la of the formato, pero e but is invisible para el
usuarioto the user.

1. Creae unaate a variable de tipoof type EnteroInteger parato countar
los aciertos the successful hits.

2. Creaaete una variable de tipoof type EnteroInteger para contar los
intentos totalesto count the total attempts.

3. En el botn Inicio hagahaz clic en evento, aadagrega el cdigo para
realizar lo siguienteIn the Start button click event, add code to do the
following:
--Ajustae stus contadores de Tirosaciertos e intentosy tTotalesSet
your Hits and Total counters en cto zero.
--Ajuste la propiedad Habilitar del cCronmetro en VerdaderoSet the
Enable property of the Timer to True.



Unidadt 08 WhatIf, Texas Pginaage 209 ofde 321

4.
Agregaada el cdigo al evento de clic del botn de Inicio para realizar
lo siguientedd code to the Start button click event to do the following:
--Si elIf Botn de RadioRadioButton Radiobutton1 ies VerdaderoTrue,
ajustae la propiedad de Intervalo del Cronmetro en set the Timer
Interval property to 900, y el ancho y altura de la imagen enand the
picture width and height to 40.
--Si elIf Botn de Radiobutton RadioButton 2 ies VerdaderoTrue,
ajustae la propiedad de Intervalo del Cronmetro enset the Timer Interval
property to 850, y el ancho y altura de la imagen enand the picture width
and height to 35.
--Si elIf Botn de RadiobuttonRadioButton 3 ies VerdaderoTrue,
ajustae la propiedad de Intervalo del Cronmetro enset the Timer Interval
property to 800, y el ancho y altura de la imagen en and the picture
width and height to 30.

5. En el evento de clic del botn DetenerIn the Stop button click event,
ajustae la propiedad Habilitar del cCronmetro enset the Enable
property of the Timer to Falseo.

6. En el evento de clic del botn Salir, finalizace el programa utilizando el
comando EndFinIn the Exit button click event, end the program using
the End command.

7. En el evento de clic en el Cuadro de ImagenIn the PictureBox click
event, aadagrega el cdigo que aumenta por un punto el marcador
delaadir uno aldd code that will add one to the contador de
Aciertosaciertos Hits counter y pngalo en el Cuadro de Texto
marcado comoand put it into the TextBox labeled "AciertosHits".

8. En el evento Cdel CronmetroIn the Timer event (hagahaz double -clic
en el cronmetro para obtener la ubicacin del cdigok the timer to
get to the code location), usted aadeagrega el siguiente cdigo para
mover el objetivoyou add the following code to move the target.
Presupone que tsu It assumes your formato tiene un tamao de is 250
porby 550 in size.

Dim MyRandomGenerator As System.Random
MyRandomGenerator = New System.Random
Dim RandomX As Integer
Dim RandomY As Integer

RandomX = MyRandomGenerator.Next(1, 550)


Unidadt 08 WhatIf, Texas Pginaage 210 ofde 321

RandomY = MyRandomGenerator.Next(1, 250)
PictureBox1.SetBounds(RandomX, RandomY, Me.Width,
Me.Height,
System.Windows.Forms.BoundsSpecified.Location)Dim
MyiGeneradorAleatorioRandomGenerator ComoAs
Syistema.AleatorioRandom
MiyRandomGeneratdorAleatorio = Nuevoew
Siystema.AleatorioRandom
Dim AleatorioRandomX ComoAs EnteroInteger
Dim AleatorioRandomY ComoAs EnteroInteger

AleatorioRandomX =
MiyRandomGeneratdorAleatorio.NextSiguiente(1, 550)
AleatorioRandomY =
MiyRandomGeneratdorAleatorio.NextSiguiente(1, 250)
CuadrodeImagenPictureBox1.FijarRebotesSetBounds(Aleato
rioRandomX, AleatorioRandomY, YoMe.AnchoWidth,
YoMe.AlturaHeight,
Syistema.Windows.Formas.RebotesEspecificadoBoundsSpeci
fied.LocationUbicacin)

9. En el evento del Cronmetro, despus del cdigo anterior,
agregaadaIn the Timer event, after the above code, add 1 a los
Intentos totales y colocaque elto the Total attempts and place the
resultado en el Cuadro de in the Texto marcado comoBox labeled
"Total".

10.10. HagaHaz dDouble -clic en el cuadro de imagen parak the picture
box to crear el eventote the de cliconclick del cuadro de imagenevent of
the picture box. Agregaadadd 1 alto the contador de AciertosHits
counter.


Extension / Desviacinisparo LateralSide Trip

Al inicio del cdigo del de cronmetro, ajustae el color de fondo de la
formato en grisAt the beginning of the timer code, set the background color
of the form to gray. Cuando se golpeealcanza el objetivo, ajustae el color de
fondo de la formato en rojoWhen the target is hit, set the background color
of the form to red.


Unidadt 08 WhatIf, Texas Pginaage 211 ofde 321


Las computadoras toman las
decsisciones basadas en
Cuando el operador AND rregresa
un valor de TrueVerdadero?Temas en
Cul es el significado de estTemas
en
Cuando el operador OR regresa un
valor de TrueVerdadero?Temas en
Cuando el lado izquierdo o el lado
derecho es TrueVerdadero

Cuando ambos lados son TrueVerdadero

No se puede determinarTemas en
Cuando el lado izquierdo o el
lado derecho es True

Cuando ambos lados son
True
Cuando el operador AND regresa un
valor de TrueTrue?Temas en
Cuando el lado izquierdo
o el lado derecho es True

Cuando ambos lados son
True
Cuadrar un nmero
No igual
Lo mismo queTemas en
Verdadero/Falso

Hacer/Hasta

Estado de Byte
Cuadrar un nmero
No igual
Lo mismo queTemas en


Cuando el lado izquierdo o el lado
derecho es TrueVerdadero


Cuando ambos lados son
TrueVerdadero
No se puede determinarTemas en



Unidad 09 - IfElse, New Mexico Pgina 212 de 321
Temas en el camino a
IfElse:

IfElse
Ampliacin de If...Then
Instrucciones If...Then
anidadas
Condiciones contrarias
If...Then...Else
Introduccin a If
Instrucciones If en C# y
J#
Operadores en C# y J#
Entrada a IfElse, NM



Unidad 09 - IfElse, New Mexico Pgina 213 de 321
IfElse, Nuevo Mxico

Cliff explic muy bien las instruccin If...Then, y ya las
entiendes. Ahora tus programas pueden tomar decisiones.
Casi es como si pensaran. Te indic cmo usar los
operadores booleanos, trabajar con lgica booleana y
programar instruccins If...Then en Visual Basic NET.
Cliff us algunos ejemplos muy buenos para demostrar el
uso de las instruccins If...Then para tomar decisiones de
opcin mltiple, y cmo usar operadores booleanos para
formar condiciones complejas.

Cliff te llevar a tu prximo destino: IfElse, Nuevo Mxico.
Los paisajes son espectaculares, aunque en esta poca del
ao hace mucho calor. Como estamos en el desierto no
habr muchas gasolineras por el camino. Si tenemos
suficiente gasolina ser un recorrido hermoso, de lo
contrario, nos espera una caminata muy larga. En cualquier caso les ensear algunos trucos
ingeniosos que harn todava ms tiles a las instruccins If...Then. Al terminar este viaje
podrs hacer que tus programas tomen casi cualquier decisin que desaes.



Unidad 09 - IfElse, New Mexico Pgina 214 de 321
Ampliacin de If...Then
Ya conoces cmo configurar una instruccin If...Then en Visual Basic.Net. Es mucho lo que se puede hacer slo con ella. Si
usas ms de una instruccin If...Then, tu programa puede tomar un sin nmero de decisiones. Hasta podr contestar
preguntas de opcin mltiple, usando una serie de instruccins If...Then. Cliff te ense tambin cmo las instruccines
condicionales mltiples pueden compartir una sola condicin. Si la condicin es Cierto, todas las instruccins condicionales
que haya bajo ella se ejecutan en orden. Esto simplifica tu programa y facilita leerlo y corregirlo.

Al usar instruccins simples If...Then, puedes escribir un programa para hacer cualquier tipo de decisin, sin importar lo
compleja que sea. Sin embargo, la escritura de ese programa se puede complicar mucho, y a veces hasta confundir algo
sin mencionar lo repetitiva que puede ser. Por eso voy a ensearte algunos trucos de programacin que simplificarn tu
vida y le agregarn una funcionalidad poderosa a la instruccin If...Then simple. Primero te mostrar cmo anidar las
instrucciones If...Then. Despus te ensear cmo codificar las If...Then...Else. Por ltimo te mostrar algunas diferencias
entre la escritura de esas instrucciones en Visual Basic.NET y C# o J#. Listos? Comencemos!



Unidad 09 - IfElse, New Mexico Pgina 215 de 321

Declaraciones If...Then anidadas

Slo para simplificar, Cliff no toc un secretillo
acerca de If...Then. En una instruccin If...Then,
puedes tener otra If...Then como instruccin
condicional. Piensa lo que significa! La segunda
instruccin If...Then slo se ejecuta si la condicin
de la primera resulta Cierto. La primera instruccin
contiene a la segunda. A esto se le llama
anidamiento porque una instruccin If...Then se
anida, o cabe dentro de otra. Primero veamos un
ejemplo de la vida real.

Si tengo $200 y si la tienda est abierta, comprar
un reproductor MP3...

En pseudo cdigo, eso se vera como sigue:
If tengo $200 Then
If la tienda est abierta Then Comprar un
reproductor MP3
End If
End If
Es como dos instruccins If...Then en una. La primera
instruccin If...Then envuelve a la segunda. La primera
contiene una condicin (si tengo $200) y una instruccin
condicional (si la tienda est abierta, comprar un reproductor MP3); esta ltima es otra
instruccin If...Then. La segunda If...Then tiene su propia condicin (si la tienda est abierta) y
su propia instruccin condicional (comprar un reproductor MP3). Como puedes ver, debo tener
$200 y la tienda debe estar abierta, porque de lo contrario no tendr el reproductor MP3. Ambas
condiciones deben ser Cierto. Si no tengo $200, la condicin de la primera instruccin If...Then
es Falso, y no importa que la tienda est abierta o no -- no habr reproductor MP3.






Recomendacin para el profesor
Algunos alumnos observarn que el ejemplo anterior se puede
escribir como instruccin If (booleana) compuesta: Si tengo $200 y
la tienda est abierta. El anidamiento es til cuando hay una serie
de instrucciones If en la parte con sangra, o despus en la unidad,
cuando se introduce la parte Else de If.
Recomendacin para el
profesor
Las sangras y el alineamiento son
vitales para evitar errores al escribir
instruccins anidadas If.



Unidad 09 - IfElse, New Mexico Pgina 216 de 321
Veamos ahora algn otro programa. Iniciaremos una
nueva aplicacin llamada Anidamiento. Agregaremos
dos casillas de verificacin y un botn de comando a
Form1. Cambia el texto del Button1 a Quin se
registra? Haz doble clic en Button1 para editar el
cdigo del evento clic. Agrega el siguiente cdigo:

If CheckBox1.Checked = True Then
If CheckBox2.Checked = True Then
MessageBox.Show("All are
checked.")
End If
End If

Crea e inicia tu aplicacin. Elige la primera casilla de
verificacin y despus haz clic en el botn Quin se
registra? Qu sucede? Bueno, nada sucede. Ahora
elige la segunda casilla de verificacin y haz clic de
nuevo en el botn Quin se registra? Esta vez un
cuadro de mensaje muestra el mensaje Ambos estn registrados. Como puedes ver, la primera
lnea del cdigo es una condicin:

If CheckBox1.Checked = True Then

Esta condicin contiene una instruccin condicional que en realidad es otra instruccin If...Then,
anidada en la primera. La instruccin If...Then anidada tiene su propia condicin:

If CheckBox2.Checked = True Then

Tambin tiene su propia instruccin condicional:

MessageBox.Show("All are checked.")

Entonces qu sucede? Si la primera condicin es Cierto (la casilla de verificacin 1 est
marcada), entonces se ejecuta la instruccin condicional. Sucede que la instruccin condicional
es una segunda instruccin If...Then. Si la segunda condicin es Cierto (la casilla de verificacin
2 est marcada), entonces se ejecuta la instruccin condicional que muestra el cuadro de
mensaje. Las dos condiciones deben ser Cierto para que aparezca el cuadro de mensaje. Esto es,
tanto la casilla de verificacin 1 como la 2 deben estar elegidas, porque de lo contrario no
aparecer el cuadro de mensaje.
Si el celular de Nikki est
encendido y acepta mis
disculpas, regresar y me
llevar



Unidad 09 - IfElse, New Mexico Pgina 217 de 321
En el cdigo anterior, observa que la segunda instruccin If...Then est contenida dentro de la
primera. El End If de la primera instruccin If...Then se encuentra despus del End If de la
segunda instruccin If...Then. La segunda est anidada, o contenida, en la primera. Puedes usar
el anidamiento para combinar varias instrucciones If...Then para que slo se ejecute una
instruccin condicional si toda una serie de condiciones es Cierto.


Puedes anidar instrucciones
If....Then anidadas. De hecho,
puedes anidar instrucciones
If...Then lo profundo que
quieres, aunque con frecuencia
cuando hay ms de tres capas de
anidamiento se vuelve confuso
y difcil para corregir errores.
Asegrate de sangrar las
instrucciones interiores>



Unidad 09 - IfElse, New Mexico Pgina 218 de 321
Condiciones opuestas
Hasta ahora nuestras condiciones han sido algo unilaterales. Si la condicin es Cierto, entonces se ejecuta la instruccin
condicional. Si la condicin es Falso, nada sucede. Y si quisiramos que pasara algo cuando la condicin sea Falso? Y si
quisiramos ejecutar otras lneas del programa?

Bien, una posibilidad es escribir otra instruccin If...Then con la condicin opuesta y su propia instruccin condicional para
ejecutar. Escribamos el cdigo! Inicia una nueva aplicacin llamada IfThenOtherwise. Agrgale un botn de comando y
dos casillas de verificacin a Form1. Cambia la propiedad de Texto de Button1 a IfThen. Ponga el siguiente cdigo en el
evento clic de Button1:
If CheckBox1.Checked = True Then
Form.ActiveForm.BackColor = System.Drawing.Color.Red
End If

If CheckBox1.Checked = False Then
Form.ActiveForm.BackColor = System.Drawing.Color.Blue
End If
Crea e inicie su proyecto. Haz clic en el botn If Then. El formato se vuelve azul. Elige la casilla de verificacin 1 y haz
clic de nuevo en el botn IfThen. El formato se vuelve roja.

Cmo trabaja este cdigo? En la primera instruccin If...Then se comprueba la condicin para ver si CheckBox1.Checked
= True. Si es Cierto, el color de fondo del formato se pone en rojo. En la segunda instruccin If...Then se comprueba la
condicin para ver si CheckBox1.Checked = False (la condicin contraria). Si es Falso, el color de fondo de la forma se
pone en azul. Es algo repetitivo, pero funciona. Un problema con este programa es que debes escribir un bloque de cdigo
casi idntico, para la condicin contraria. Esto puede ser tardado, y se presta a errores.



Unidad 09 - IfElse, New Mexico Pgina 219 de 321




Es tardado y puede haber errores al
escribir dos instrucciones If...Then. En
vez de ello, usa una nueva clase de
instruccin llamada If...Then...Else, para
simplificar tu programa.



Unidad 09 - IfElse, New Mexico Pgina 220 de 321
IfThenElse
Visual Basic.NET ofrece una alternativa que elimina las lneas repetitivas del programa, y hace que ste sea ms claro y
fcil de leer. Esta alternativa es la instruccin If...Then...Else, la cual slo necesita una condicin, pero proporciona
instrucciones condicionales separadas para cada resultado (Cierto o Falso). La instruccin If...Then...Else se usa en lugar
de escribir dos instrucciones If...Then que tengan condiciones contrarias. La sintaxis es la siguiente:
If condicin Then
instruccin condicional 1
Else
instruccin condicional 2
End If
Cmo trabaja este cdigo? Primero, se evala la condicin. Si sa es Cierto, entonces se ejecuta la instruccin condicional
1. En caso contrario (else) se ejecuta la instruccin condicional 2.

Ahora modifiquemos nuestra aplicacin IfThenOtherwise para usar una instruccin If...Then...Else y demostrar que
funciona igual que dos instrucciones If...Then independientes, pero contrarias. Agrega un segundo botn a Form1. Cambia
la propiedad de Texto del Button2 a IfThenElse. Al evento clic en botn de Button2 agrega el siguiente cdigo:
If CheckBox1.Checked = True Then
Form.ActiveForm.BackColor = System.Drawing.Color.Red
Else
Form.ActiveForm.BackColor = System.Drawing.Color.Blue
End If
Crea e inicia tu proyecto. Haz clic en el botn IfThenElse. El formato se vuelve azul. Elige la casilla de verificacin 1 y haz
clic de nuevo en el botn IfThenElse. El formato se vuelve rojo. El programa hace lo mismo cuando usa una instruccin
IfThenElse que cuando usaba dos instrucciones IfThen. El cdigo funciona porque se verifica la condicin, para ver si la
casilla de verificacin est marcada (CheckBox1.Checked = True). Si es Cierto, la primera instruccin condicional se
ejecuta y el formato se vuelve rojo. Si no es as (Else), se ejecuta la segunda instruccin condicional (la que est despus
de Else) y el formato se vuelve azul.


Veamos otro ejemplo de If...Then...Else. Vamos a
modificar la aplicacin IfThenOtherwise, para incluir
varias lneas de cdigo en las instrucciones
condicionales. Una instruccin If...Then...Else puede
tener varias lneas de cdigo para sus instrucciones
condicionales despus de las clusulas If...Then y Else.

Abre tu aplicacin IfThenOtherwise. Quita el cdigo
del evento de clic en Button2 y cmbialo por el
siguiente:

Observa que las instrucciones
condicionales despus de los
renglones If...Then...Else lleven una
sangra. Esto lo hace Visual
Studio.Net de manera automtica, y
ayuda a mantener su programa
ordenado y bien legible.



Unidad 09 - IfElse, New Mexico Pgina 221 de 321
If CheckBox1.Checked = True Then
Form.ActiveForm.BackColor = System.Drawing.Color.Red
MessageBox.Show("Soy rojo.")
TextBox1.Text = "Soy rojo."
Else
Form.ActiveForm.BackColor = System.Drawing.Color.Blue
MessageBox.Show("Soy azul.")
TextBox1.Text = "Soy azul:"
End If
Crea e inicia tu proyecto. Haz clic en el botn IfThenElse y suceden tres cosas. Ahora elige la casilla de verificacin 1 y
haz clic de nuevo en el botn IfThenElse y suceden tres cosas distintas.
Introduccin a If
Ahora usaremos las funciones de depuracin de Visual Studio.NET para entrar al cdigo en una instruccin If...Then...Else.
De este modo vers cmo funciona desde la perspectiva del cdigo.

Crea una nueva aplicacin de Windows llamada StepInIf. Agrega un slo
botn de comando a Form1. Pon la propiedad de verificacin de la casilla de
verificacin 1 en True. Cuando arranca la aplicacin se marcar la casilla de
verificacin.


Haz doble clic en el botn de comando para editar el cdigo del evento clic. Agrega el siguiente cdigo:

Dim MyValue As Integer
MiValor = 1
If CheckBox1.Checked = True Then
MyValue = 2
Else
MyValue = 3
End If

1. Pon un punto de interrupcin
en la primera lnea del cdigo
(MyValue = 1) haciendo doble
clic en la zona gris a la
izquierda del cdigo, o
haciendo clic derecho y
escogiendo Insertar punto de
interrupcin.

2. Crea e inicia el proyecto.
Cuando aparece el formato, haz
clic en el botn. El cdigo se
ejecuta hasta la lnea que tiene
el punto de interrupcin.

Recomendacin para el
profesor
Anime a los alumnos a recorrer
realmente el cdigo, y no slo
que lo lean.



Unidad 09 - IfElse, New Mexico Pgina 222 de 321


3. Oprime la tecla F11 para
ejecutar la lnea de cdigo
actual (MyValue = 1). Se
destaca el siguiente rengln del
cdigo.



Unidad 09 - IfElse, New Mexico Pgina 223 de 321

4. Oprime la tecla F11 para
ejecutar la lnea de cdigo
actual (If CheckBox1.Checked
= True Then). Como la casilla
de verificacin 1 (CheckBox1)
est elegida, el siguiente
rengln del cdigo que se debe
destacar es MyValue=2.

5. Oprime la tecla F11 para
ejecutar la lnea de cdigo
actual (MyValue = 2). Se
destaca la siguiente lnea del
cdigo.



6. Oprime la tecla F11 para
ejecutar la lnea de cdigo
actual (End If). Se destaca la
siguiente lnea del cdigo.






7. Oprime la tecla F11 para
ejecutar la lnea de cdigo
actual (End Sub). Aparece de
nuevo el formato.





Unidad 09 - IfElse, New Mexico Pgina 224 de 321
8. Deselecciona la casilla de
verificacin 1 (CheckBox1) y
haz clic en el botn. Repite el
proceso paso a paso,
oprimiendo repetidamente la
tecla F11 y viendo que
renglones de programa se
destacan a medida que se
ejecuta ese cdigo. Esta vez
se ejecuta la clusula Else
seguida por la lnea MyValue
= 3.

Muchas posibilidades! Ahora ves cmo funciona en realidad una instruccin If...Then...Else.





Unidad 09 - IfElse, New Mexico Pgina 225 de 321
Practicaremos ahora lo que hemos aprendido.

09 Ejercicio 01 Marcadores de
golf

Nos divertimos jugando golf esta maana, no es
cierto? Bien, usted se divirti, pero mi marcador fue
horrible! Calculemos los resultados.

Prepara un formato como este:



Cuando haces clic en el botn Calcular, se calcula el marcador promedio en el golf. Como el
contenido de un cuadro de texto es una cadena y no un nmero, habr que convertirlo en un
nmero. Visual Basic.Net permite varias formas de hacerlo. Veamos una.

X = Val(TextBox1.Texto)

La funcin Val calcula el valor de la cadena. Entonces puedes asignarla a una variable como X.

Para cada jugador:

Si su marcador es menor que el promedio, pon un mensaje como "Buen marcador" en la
etiqueta correspondiente; si no es as diga "Siga practicando.

La etiqueta Campos de texto debe estar libre cuando el programa se inicie.

Una vez que tu programa funcione bien, mustraselo a tu instructor.
Marcadores de golf

Debes crear un formato que
muestre los marcadores de golf y
algunos clculos relacionados.

El archivo 09_proveit01_files contiene
instrucciones para este ejercicio y todo
archivo de soporte que necesitas.




Unidad 09 - IfElse, New Mexico Pgina 226 de 321
Instrucciones If en C# y J#
Ya te mostr las sintaxis y algunos ejemplos de las
instrucciones If...Then e If...Then...Else en Visual Basic.NET.
Ahora dejar que Dirk y Jen te muestren cmo codificarlos en
C# y en J#.

C# y J# tienen instrucciones que trabajan igual que If...Then e
If...Then...Else en Visual Basic.NET; se usan en la misma forma. Sin
embargo, su sintaxis es algo diferente. Tambin tienen condiciones e instrucciones convencionales. Te mostrar un
ejemplo rpido en C# y despus te describir los detalles.
int MiEdad;
MiEdad=3;
if (MiEdad==3)
{
MessageBox.Show("Tengo 3.");
MessageBox.Show("Todava tengo 3.");
}
Primero declaramos una variable de tipo entero, llamada MiEdad, y despus la igualamos a un valor inicial. A continuacin iniciamos
nuestra instruccin con la palabra if observa que est en minsculas. Despus, nuestra condicin es (Piedad==3). La condicin se
encierra entre parntesis. Apuesto que te ests preguntando que hace aqu el doble signo igual. Bien, es el smbolo que usa C# para
comparar un operador, en lugar de un solo igual que usa Visual Basic.NET. Las instrucciones condicionales se encierran entre llaves { y
}. Para que el cdigo sea ms legible, algunos programadores ponen las llaves en renglones separados. Observa que cada una de las
instrucciones condicionales tienen al final punto y coma. Tambin observa que la palabra Then no se usa.
Y en J#? Bien, en este caso, el cdigo en J# es exactamente igual que en C#.
Recomendacin para el
profesor
Los alumnos avanzados podrn
tomar un programa terminado de
Visual Basic y escribirlo en C# o
en J#.



Unidad 09 - IfElse, New Mexico Pgina 227 de 321
Veamos ahora una instruccin If...Then...Else en C#. Busca las semejanzas y las diferencias entre esta instruccin en C#
y la misma instruccin en Visual Basic.NET.
int MiEdad;
MiEdad=3;
if (MiEdad==2)
{
MessageBox.Show("Tengo 2.");
MessageBox.Show("Todava tengo 2.");
}
else
{
MessageBox.Show("Tengo 3.");
MessageBox.Show("Todava tengo 3.");
}
Observa de nuevo que la condicin se encierra entre parntesis. Tambin observa que hay dos
grupos de instrucciones condicionales, uno despus de la condicin y otro despus de else.
Cada grupo est encerrado en llaves. Ve que cada una de las instrucciones condicionales
termina en un punto y coma. No se usa la palabra Then.

En J#, el cdigo para la instruccin If...Then...Else es exactamente igual que en C#.




Unidad 09 - IfElse, New Mexico Pgina 228 de 321
Operadores en C# y en J#
Hay un par de cosas ms que debes conocer acerca de las diferencias entre Visual Basic.NET y
C# o J# al formar instrucciones If...Then e If...Then...Else. Primero, los operadores
Booleanos usan distintos caracteres. En lugar de And, Or, y Not, C# y J# usan &&, ||, y ! Ve la
tabla siguiente, que muestra las diferencias.


Operador
booleano
Visual
Basic.NET
C# J#
AND And && &&
OR Or || ||
NOT Not ! !

El siguiente es un ejemplo del uso de los operadores booleanos AND (&&) y NOT (!) en C#

bool seFactur=true;
bool seTard=false;
bool seHizo;
seHizo = seFactur && !seTard;
MessageBox.Show(isDone.ToString());
Observa que las palabras reservadas bool (tipo booleano), true y false estn todas en minsculas. Las variables seFactur,
seTard y seHizo todas se declaran como bool (tipo booleano). Ve que el operador AND es && y que el operador NOT es !
en C#. Como C# y J# no convierten a una cadena en forma automtica, se usa el mtodo ToString.
El mismo cdigo en J# es el siguiente:
boolean seFActur=true;
boolean seTard=false;
boolean seHizo;
seHizo=seFactur && !seTard;
MessageBox.Show(System.Convert.ToString(seHizo));



Unidad 09 - IfElse, New Mexico Pgina 229 de 321
El cdigo se parece mucho al de C#, con pocas diferencias. Ve que se
muestra Boolean (tipo booleano) como palabra completa. Las variables
seFactur, seTard y seHizo todas se declaran como boolean (tipo
booleano). En el cdigo J# tuvimos que decir explcitamente convertir el
valor Booleano a una cadena, usando el mtodo System.Convert.ToString
para poder mostrarlo en un cuadro de mensaje.
Algunos de los operadores de comparacin tambin son distintos en C# y en J# respecto a los de
Visual Basic.NET. Ya viste que se usa == en lugar de = para representar es igual a. Adems,
para representar no es igual, C# y J# usan != en lugar de <>. En la tabla siguiente se muestran los
operadores de comparacin.

Operador de
comparacin
Visual
Basic.NET
C# J#
Igual a = == ==
Mayor que > > >
Menor que < < <
Mayor o igual que >= >= >=
Menor o igual que <= <= <=
No es igual a <> != !=

Ve este cdigo en J# o en C# que usa el operador no es igual a.
int MiEdad;
MiEdad=2;
if (MiEdad!=3)
{
MessageBox.Show("No tengo 3.");
}
Como puedes ver, aparece el mensaje No tengo 3 cuando se ejecuta este cdigo.



Unidad 09 - IfElse, New Mexico Pgina 230 de 321
Eso fue una muy buena explicacin. Veo muy pocas diferencias en las formas en que se
codifican If...Then e If...Then...Else en Visual Basic.NET, en C# y en J#, pero muchas
semejanzas. Hacen lo mismo y en las mismas formas, pero con una sintaxis distinta.



Llegada a IfElse, NM

Aqu estamos en IfElse, Nuevo Mxico. Aprendiste mucho en el camino? Ahora tenemos ms
herramientas de programacin para trabajar. Puedes escribir instrucciones If...Then anidadas, y
tambin codificar instrucciones If...Then...Else. Ahora tu cdigo realmente puede tomar
decisiones.

Bien, es tiempo de practicar un poco ms. Veamos una demostracin matemtica.





Unidad 09 - IfElse, New Mexico Pgina 231 de 321
09 Ejercicio 02 Cuadrado
mgico

No soy un mago profesional, como el que vimos en
el Parque de diversiones IfElse, pero conozco un
truco de magia. Puedo tomar los nmeros 1 a 9 y
ordenarlos en un conjunto (array) de 3 por 3, de tal
modo que sumen lo mismo en cualquier direccin.
Puedes escribir un programa para hacerlo?

Prepara un formato como el siguiente, o si deseas
ahorrar tiempo, usa el que hay
en 09_proveit02_template:

Cuando haces clic en el botn Calcular, se
calcula la suma de los tres renglones, de
las tres columnas y de las dos diagonales,
poniendo los resultados en los cuadros de
texto 10 a 17 (de izquierda inferior a
derecha superior).

Cuadrado mgico

Elabora un formato para llenarla con un
cuadrado mgico, y decir si el jugador tuvo
xito o fracas.

El archivo 09_proveit02_files contiene
instrucciones para este archivo ejercicio, y
todos los archivos de soporte que necesitas.

Haz clic en el botn Descargar para
descargar el archivo.



Unidad 09 - IfElse, New Mexico Pgina 232 de 321
Como el contenido de un cuadro de texto es una cadena, y no un nmero, habr que convertirlo a
un nmero. Visual Basic.Net permite varias formas de hacerlo. Veamos una.

X = Val(TextBox1.Text)

La funcin Val calcula el valor de la cadena. Despus puedes asignarla a una variable y usarla en
una instruccin If.

Cada suma debe ser igual a 15. La suma de los nueve cuadros de texto debe ser 45.

La etiqueta 2 (Label2) en la parte inferior de la forma se puede usar para decir que hubo xito,
para animar al jugador a repetir la prueba, o para indicar que un nmero se us dos veces.

Cuando tu programa quede correcto, mustralo a tu instructor.
Recomendacin para el
profesor
Si la suma de los 9 cuadros no es
45, es probable que se haya
puesto un nmero dos veces. El
alumno tambin debe de
comprobar que ningn nmero
sea mayor que 9 ni menor que 1.



Unidad 09 - IfElse, New Mexico Pgina 233 de 321
Listo para un reto?
09 Reto Volado

Cada vez que no nos ponemos de acuerdo, como por
ejemplo para ver a quin le toca tirar la basura,
lanzamos una moneda. Hagamos que la computadora
lance las monedas. Veremos si se puede adivinar si
la moneda saldr guila o sol.

Haz una forma parecida a la siguiente, o usa la
plantilla 09_challenge_template:

Cuando oprimes el botn adecuado de seleccin, se
pone el texto del cuadro de texto 1
(TextBox1.Text) en guila o en Sol".

Al hacer clic en Lanzar, se genere un
nmero aleatorio con el siguiente programa:

Dim MyRandomGenerator As System.Random
MyRandomGenerator = New System.Random
Dim RanNum As Integer

' Generar un valor aleatorio entre 0 y 2, sin incluir a 2.
RanNum = MyRandomGenerator.Next(0, 2)

Si el nmero aleatorio es cero, pon guila en el cuadro de texto 2 (TextBox2.Text). En
cualquier otro caso, pon Sol.

Si TextBox1.Text es igual a TextBox2.Text, sume 1 al nmero de victorias, y en
cualquier otro caso sume 1 a derrotas.

Ponga las victorias y las derrotas en los cuadros de texto adecuados.

Advertencia: En la Unidad 7, aprendiste que no se pueden mezclar nmeros y cadenas. Una
propiedad de Texto siempre se define como una cadena. Visual Basic.NET le permite sumar
directamente a un cuadro de texto, cuando ya contiene un nmero; pero es un mal hbito hacerlo.
Volado

En este examen vers qu tan bueno
eres para adivinar cmo caer una
moneda.

El archivo 09:challenge_files
contiene instrucciones para este reto
y los archivos de soporte que puedas
necesitar.



Unidad 09 - IfElse, New Mexico Pgina 234 de 321
Define una variable entera para victorias y otra para derrotas. Smalas. Despus las debers
pasar a los cuadros de texto.

Una vez que tu programa funcione bien, mustraselo a tu instructor.


Extensin / desviacin

Agrega campos para mostrar el porcentaje de victorias y el porcentaje de derrotas.




Unidad 09 - IfElse, New Mexico Pgina 235 de 321


Nunca se usa
Limitarse con corchetes
Sangrarse para ser ms legible
El que est despus de la instruccin Then
El que est despus de la instruccin Else
El que est despus de la instruccin Otherwise
Cuando una instruccin If est anidada en otra cuntas
declaraciones If hay?
Todas las que se deseen.
Qu debe ser una instruccin If anidada? Cuando una instruccin If es falsa qu cdigo
se ejecuta?
Cuntas lneas de cdigo puede haber despus de una
instruccin Else?



Unidad 10 Def Valley Pgina 236 de 321
Temas en el camino a Def Valley:

Def Valley
Bucles
For...Next
Entrar en un bucle
For...Next
1000 problemas de suma
Sacar la basura
Bucles en bucles
Letrero de salida
For...Next en C# y en J#
Llegada a Def Valley, CA



Unidad 10 Def Valley Pgina 237 de 321
Def Valley, California
Definitivamente, en este viaje estamos progresando. Siguiente
parada, Def Valley! Es un lugar bastante desolado, con mucha
arena, y casi nada ms. No me gustara perderme all. Uno puede
vagar durante das sin llegar a ningn lado, ms bien dando vueltas.
Creo que despus de un rato podras quedar abrumado.

En esta parte del viaje iremos en una direccin totalmente distinta.
Creo que ya adquiriste el hbito de escribir programas que tomen
decisiones, as que ahora te voy a indicar cmo escribir cdigos que
hagan bucles. Los bucles se usan para ejecutar instrucciones de
cdigo una y otra vez. Como programador, necesitas saber cmo
escribir bucles; son otra de las herramientas esenciales de la caja de
recursos de todo programador.






Unidad 10 Def Valley Pgina 238 de 321
Bucles
En la vida repetimos muchas cosas una y otra vez. Recuerdo cuando pint mi motocicleta. Le di tres manos de pintura. Fue
mucho trabajo, pero al final se vio perfecta. Mi mam dice que me tiene que decir exactamente cinco veces que saque la
basura para que lo haga. (Me he fijado, y en realidad slo me lo tiene que decir cuatro veces)

Los cdigos son iguales. A veces tu programa necesita efectuar lo mismo una y otra vez, hasta que lo haya hecho una
determinada cantidad de veces. Por eso todos los lenguajes de programacin tienen bucles. El cdigo en un bucle se
ejecuta una y otra vez. Los bucles son muy tiles; en primer lugar reducen la cantidad de programas que hay que escribir.
Al poner el cdigo dentro de un bucle, slo lo debes escribir una vez. Eso tambin ayuda a reducir errores.

Veamos un ejemplo de lo til que son los bucles en los programas. Imagina que quieres sumar todos los nmeros del 1 al
100. Lo podras hacer escribiendo una larga ecuacin. Por ejemplo,
Dim CuentaTotal As Integer
CuentaTotal = 0
CuentaTotal = 1 + 2 + 3 + 4 'etc.
Se ve tedioso! Y si en su lugar hacemos esto?
Dim CuentaTotal As Integer
CuentaTotal = 0
CuentaTotal = CuentaTotal + 1
CuentaTotal = CuentaTotal + 1
CuentaTotal = CuentaTotal + 1
CuentaTotal = CuentaTotal + 1
'etc.
Todava es mucho programa repetitivo. Tendras que repetir el mismo rengln 100 veces.

Y qu tal si ahora quieres sumar todos los nmeros del 1 al 1000? Cmo por Dios lo vas a hacer?



Unidad 10 Def Valley Pgina 239 de 321
ForNext
Aqu es donde entran los bucles. Como mencion antes, todos los
lenguajes de programacin tienen bucles que permiten ejecutar el
cdigo una y otra vez. Con frecuencia uno sabe cuntas veces se
quiere ejecutar el cdigo. En el ejemplo que present, de sumar todos
los nmeros de 1 a 1000, queremos que el cdigo que suma los
nmeros se ejecute 1000 veces. Cuando se conoce cuntas veces se
quiere ejecutar el cdigo, se usa un bucle definido. Se llama bucle
definido porque se ejecuta una cantidad definida de veces. Se usa el
bucle para indicar exactamente al cdigo cuntas veces se debe
ejecutar.

En Visual Basic.NET se forma un bucle definido con la instruccin
For...Next. El cdigo que se desea ejecutar una cantidad especfica de
veces est contenido en el bucle For...Next. La sintaxis del bucle
For...Next, en Visual Basic.NET es la siguiente:
Dim ContadorBucle As Integer
For ContadorBucle = ValorMenor To
ValorMayor
instruccin1
instruccin2
instruccin etc.
Next
Observa que las palabras For, Next y To son palabras
reservadas; aparecen en azul, y todas comienzan con mayscula. ContadorBucle es una variable que debes declarar como
tipo entero antes de poderla usar en el bucle For...Next. (No debe tener nicamente el nombre ContadorBucle.) La variable
ContadorBucle rastrea cuntas veces se ha ejecutado el bucle. Puedes ingresar el valor del ContadorBucle dentro del bucle.
Cada maana hago
40 levantadas de
pesas y 25 lagartijas
antes de pasar a la
andadora.



Unidad 10 Def Valley Pgina 240 de 321
Tanto el ValorMenor como el ValorMayor deben ser enteros (integers), variables de tipo entero, o expresiones que se
reduzcan a un entero, com o(3 + 1) o (X + 1). ValorMenor es el valor inicial del ContadorBucle. ValorMayor es el valor final
del ContadorBucle. Cada vez que se ejecuta el bucle, la variable ContadorBucle aumenta en uno. Cuando ContadorBucle es
mayor que el ValorMayor, se detiene el bucle.
Escribiremos un programa que usa un bucle definido, formado con el uso de la instruccin For...Next. Para los
principiantes, haremos un bucle que se ejecute 2 veces, y muestre el valor del contador del bucle cada vez que ste se
ejecute. Crea una nueva aplicacin de Windows llamada ForNextTwo. Agrega un botn de comando a Form1. Haz doble clic
en Button1 para editar el evento clic en botn. Agrega este cdigo:
Dim ContadorBucle As Integer
For ContadorBucle = 1 To 2
MessageBox.Show(ContadorBucle)
Next
Crea e inicia tu proyecto. Haz clic en el botn. Un cuadro de mensaje
muestra "1, el valor actual del ContadorBucle. Haz clic en Aceptar. Un
cuadro de mensaje muestra "2, el valor actual del ContadorBucle. Haz clic
en Aceptar. El bucle termin de ejecutarse, por lo que ya no aparecen ms
mensajes.

Lo que pas fue lo siguiente. En el cdigo declaras una variable llamada
ContadorBucle del tipo entero. En la instruccin For, inicializas el
ContadorBucle en 1, y pones el lmite superior de ContadorBucle en 2. La
instruccin que se debe ejecutar se coloca entre la instruccin For y la instruccin Next. Cada vez que se ejecuta el bucle,
ContadorBucle aumenta en uno. El cuadro de mensaje muestra el valor actual del ContadorBucle (1 2). Cuando el valor
de ContadorBucle llega a 3, el bucle se detiene y el cuadro de mensaje ya no se muestra. Fin del bucle.



Recomendacin para el
profesor
Los alumnos comprenden con
facilidad los bucles que usan
enteros en los puntos inicial y
final. Se les olvida que en este
ejemplo, el 1 o el 2 puede ser
una variable como X, o hasta una
expresin, como X + 3.
Recomendacin para el
profesor
Cuando termina un bucle For, la
variable del bucle siempre es 1
mayor que el valor mximo del
bucle.



Unidad 10 Def Valley Pgina 241 de 321

Entrar a un bucle For...Next
Examinaremos el cdigo For...Next que acabas de escribir usando las
herramientas de depuracin de Visual Studio.NET. Entraremos al cdigo y
veremos cmo ejecute lnea tras lnea. Aqu las instrucciones detalladas:
1. Pon un punto de interrupcin en la lnea de
cdigo que contenga la
instruccin For. Crea e inicia tu
aplicacin.


2. Se abre el formato. Haz clic
en Button1. El cdigo se
ejecuta hasta el punto de
interrupcin. El cdigo que
tiene el punto de interrupcin
est destacado.

3. Oprime la tecla F11. Se ejecuta la lnea del cdigo que est resaltada.
Recomendacin para el
profesor
Anime a los alumnos a hacer lo
que se presenta, y no slo leerlo.
La opcin predeterminada del
contador de bucle es incrementar en
uno cada vez que se ejecuta el bucle.
Puedes hacer que el contador de
bucle incremente un entero mayor si
incluyes la opcin de incremento
como se ve en el cdigo a
continuacin:
Dim ContadorBucle As Integer
For ContadorBucle = 0 to 100
Step 5
MessageBox.Show(ContadorBucle) Next
En este caso, el CondadorBucle se
incrementa en 5 cada vez. El cuadro
de mensaje muestra 0, 5, 10, 15,
etc.



Unidad 10 Def Valley Pgina 242 de 321
For ContadorBucle = 1 To 2
Mueve el cursor sobre
ContadorBucle. El valor de
ContadorBucle es 1.

4. Oprime la tecla F11. Se
ejecuta el cdigo resaltado.
MessageBox.Show(ContadorBuc
le)
El cuadro de mensaje muestra 1. Haz clic en Aceptar para cerrar el cuadro
de mensaje.

5. Oprime la tecla F11. Se
ejecuta el cdigo resaltado.

Next




6. Y se ejecuta el bucle For.
For ContadorBucle = 1 To 2
Mueve el cursor sobre el
ContadorBucl, en la instruccin
For. El valor de ContadorBucle
es 2.

7. Oprime la tecla F11. Se
ejecuta el cdigo resaltado.
MessageBox.Show(Contador
Bucle)
El cuadro de mensaje muestra
2. Haz clic en Aceptar para cerrar el cuadro de mensaje.

8. Oprime la tecla F11. Se
ejecuta el cdigo resaltado.




Unidad 10 Def Valley Pgina 243 de 321
Next




9. Y se ejecuta el bucle For.
For ContadorBucle = 1 To 2
Mueve el cursor sobre el
ContadorBucle, en la instruccin
For. El valor de ContadorBucle
es 3.

10. Oprime la tecla F11. Se
ejecuta el cdigo resaltado.
End Sub
Aparece de nuevo el formato.


Acabas de usar las herramientas de depuracin para recorrer el cdigo en un
bucle For...Next. De este modo realmente ves cmo se ejecuta el cdigo
desde el punto de vista del programa.













Unidad 10 Def Valley Pgina 244 de 321
1000 problemas de adicin
Tengo una idea. Ahora escribamos el cdigo para sumar los nmeros de 1 a 1000. Listo? Es fcil con un bucle For...Next.
Crea una nueva aplicacin de Windows llamada AddUp. Agrega un botn de comando a Form1. Cambia la propiedad de
Texto del Button1 a Sumar. Haz doble clic en el Button1 para editar el evento clic. Aade el siguiente cdigo:
Dim ContadorBucle As Integer
Dim CuentaTotal As Integer = 0

For ContadorBucle = 1 To 1000
CuentaTotal = CuentaTotal + ContadorBucle
Next
MessageBox.Show(CuentaTotal)
Crea e inicia tu aplicacin. Haz clic en el botn Sumar. El cuadro de mensaje muestra el total que se obtiene sumando
todos los nmeros del 1 al 1000. No fue rpido? Escribiste el cdigo y el programa calcul la respuesta con ms rapidez
de la que puedes obtenerla en tu calculadora.
Cmo trabaja este cdigo? Primero se declararon dos variables enteras: ContadorBucle y CuentaTotal. El ContadorBucle
rastrea cuntas veces se ha ejecutado el bucle. CuentaTotal guarda el total del problema de la suma. En la instruccin For
el valor inicial de ContadorBucle se pone en 1, y el valor final se pone en 1000. Se debe a que queremos que el bucle se
ejecute 1000 veces, para sumar todos los nmeros del 1 al 1000. La instruccin que se repite suma el valor actual de
CuentaTotal al valor actual de ContadorBucle, y vuelve a guardar este valor en CuentaTotal. Cada vez que se ejecuta el
bucle, se suma el valor de ContadorBucle a Cuenta total (0+1=1, 1+2=3, 3+3=6, 6+4=10, etc.). Despus de que
ContadorBucle llega a 1000, hemos terminado. El bucle se termina y se ejecuta la lnea de cdigo siguiente a la instruccin
Next. En este caso, un cuadro de mensaje muestra CuentaTotal.



Unidad 10 Def Valley Pgina 245 de 321













Tan pronto como termine un bucle
For...Next se ejecuta la primera lnea de
cdigo despus de la instruccin Next. En el
ejemplo de arriba, la instruccin
MessageBox.Show (CuentaTotal) se ejecuta
tan pronto como termina el bucle.



Unidad 10 Def Valley Pgina 246 de 321
Sacar la basura
Ahora veamos algunos ejemplos de bucle definido, que hacen
otras cosas adems de matemticas. Recuerda que puedes poner
cualquier cdigo que desees dentro de un bucle For...Next.
Puedes formar automticamente largas cadenas de texto, mostrar
mensajes molestos una y otra vez, o cambiar las propiedades con
base en el nuevo valor del contador del bucle. Prueba con estos
ejemplos de cdigo algunos usos distintos de bucles.

Inicia una nueva aplicacin llamada SacarBasura. Agrega un
botn de comando a Form1. Cambia la propiedad Texto del
Button1 a Mam dice. Haz doble clic en Button1 para editar el
evento clic. Aade el siguiente cdigo:
Dim MensajeMam As String
Dim i As Integer = 0
MensajeMam = "Haz el favor de sacar la basura."
For i = 1 To 5
MessageBox.Show(MensajeMam)
MensajeMam = MensajeMam & vbNewLine & MensajeMam
Next
Crea e inicia tu proyecto. Haz clic en el botn Mam dice. Aparece el mensaje de mam. Haz clic de nuevo en el botn
Mam dice. Observa cmo el mensaje de mam crece y crece. Ya voy, Ya voy! Creo que comprend. Un bucle es una
forma de unir cadenas de texto entre s.
Veamos otro ejemplo que es algo fro. Agrega otro botn de comando a
Form1. Cambia la propiedad de Texto del Button2 a Iluminar de Nuevo.
Haz doble clic en Button2 para editar el evento clic. Aade el siguiente
cdigo:
Dim i As Integer = 0
For i = 2 To 6
If i < 3 Or i > 5 Then
MessageBox.Show(i)
Form1.ActiveForm.BackColor = System.Drawing.Color.Red
Else
MessageBox.Show(i)
Form1.ActiveForm.BackColor =
System.Drawing.Color.Blue
End If
Next
Crea e inicia tu proyecto. Haz clic en el botn Iluminar de nuevo. Un cuadro de mensaje muestra el valor actual del
contador del bucle. Observa que esta vez el contador del bucle tiene un lmite inferior de 2 y un lmite superior de 6. Una
instruccin If...Then...Else dentro del bucle For...Next decide cmo iluminar el formato, basndose en el valor del contador
del bucle. Muy bonito!, eh? Puse el cuadro de mensaje para que puedas ver el valor del contador del bucle. Tambin
muestra el bucle, para que puedas ver los cambios de color.



Unidad 10 Def Valley Pgina 247 de 321



Debe sangrar el cdigo
contenido entre las
instrucciones For y Next. Al
hacerlo puede ver con
facilidad qu instrucciones se
repetirn en el ciclo. El
cdigo sangrado es ms fcil
de leer y de corregir.



Unidad 10 Def Valley Pgina 248 de 321
10 Ejercicio 01 Contar conejos

Cuidado! Casi atropellaste aquel conejo que
cruzaba la carretera. Crees que el conejo
supone que puede vivir eternamente? Oye,
esto me da una idea. Supn que los conejos s
vivieran eternamente. Digamos que hay una
isla por all, con mucha vegetacin y nada de
depredadores para los conejos. Supn que se
ponen dos conejos en la isla, y que cada par de
conejos tiene una camada de 4 conejos. As,
despus de una generacin habra 2 + 4 = 6
conejos. Despus de dos generaciones habra 6
+ 12 = 18 conejos.

Cmo crecera la poblacin de conejos en
cada generacin?


Haz una forma parecida a la siguiente, o usa la plantilla
10_proveit_template:



Contar conejos
Crea un formato para contar
conejos durante muchas
generaciones.
El archivo 10_Proveit01_files
contiene instrucciones para este
ejercicio y todos los archivos de
soporte que puedas necesitar.
Haz clic en el botn Descargar
para bajar el archivo.



Unidad 10 Def Valley Pgina 249 de 321
Muestra el nmero de la generacin, la cantidad de conejos y la cantidad de
conejos por pie cuadrado, suponiendo que la isla ocupa una milla cuadrada y
que hay 5280 pies en una milla.

Deja que el usuario elija el nmero de generaciones para mostrar.

Para facilitar la lectura de lo presentado, usa las constantes vbTab y
vbNewLine, de Visual Basic.

Para formatear la salida, usa la funcin Format.
Por ejemplo:

VariableX = Format(VariableX, ###, ###, ###, ###, ##0)
O bien
VariableY = Format(VariableY, ###, ##0.0000)

Una vez que tu programa funcione bien, mustraselo a tu instructor.





Unidad 10 Def Valley Pgina 250 de 321
Bucles en bucles
Enredmonos! Sabas que se puede poner un bucle For...Next dentro de otro? El bucle For...Next interno es el cdigo que
se ejecuta una y otra vez por el bucle For...Next externo. As que cuntas veces se ejecuta el cdigo interno? Veamos un
ejemplo de cdigo, para conocer la respuesta a esta pregunta.

Inicia una nueva aplicacin llamada BucleDeBucle. Agrega un slo botn de comando a Form1. Haz doble clic en el Button1
para editar el cdigo del evento clic. Aade el siguiente cdigo:
Dim LimiteExter As Integer = 3
Dim LimiteInter As Integer = 4
Dim ContadorExter As Integer
Dim ContadorInter As Integer
Dim Total As Integer = 0

For ContadorExter = 1 To
LimiteExter
For ContadorInter = 1 To LimiteInter
Total = Total + 1
Next
Next
MessageBox.Show("Total= " & Total)
Crea e inicia tu proyecto. Haz clic en el botn. El cuadro de mensaje muestra Total = 12. Es la cantidad total de veces
que se ejecut el bucle interno. Regresa al cdigo. Has notado que 12 es igual a 3 (la cantidad de veces que se ejecuta el
bucle externo) multiplicado por 4 (la cantidad de veces que se ejecuta el bucle interno)? Correcto! Cada vez que se
ejecuta el bucle externo, el bucle interno se ejecuta 4 veces. Como el bucle externo se ejecuta 3 veces, eso quiere decir
que el bucle interno se ejecuta un total de 4 x 3 = 12 veces.

Observa que en este ejemplo usamos dos variables, LimiteExterno y LimiteInterno, como lmites superiores de los bucles
interno y externo. Los lmites superiores e inferiores no tienen que ser nmeros enteros. Tan slo tienen que ser variables
o expresiones cuyo resultado sea del tipo entero. Tambin observa que el bucle interno tiene sangra.
Letrero de salida
Durante estos largos recorridos habr que tomar un pequeo
descanso de vez en cuando. Es cuando buscamos un letrero de
salida y salimos de la carretera para buscar un cambio de
escenario. Creo que los cdigos se deben sentir as a veces;
tambin necesitan un respiro. Imagnate sumando todos los
nmeros del 1 al 1000. Yo tambin me cansara.

A veces debes detener un bucle antes que llegue al lmite
superior del contador del bucle. Lo puedes hacer usando la
instruccin "Exit For". sta se pone en una instruccin If...Then
en el cuerpo del bucle. La condicin de la instruccin If...Then
dice al cdigo dnde salirse del bucle. Escribamos algn cdigo
que demuestre la instruccin Exit For.

Crea una nueva aplicacin de Windows llamada SalirLetrero.
Agrega un botn de comando a Form1. Cambia la propiedad
de Texto del Button1 a SalirAhora. Haz doble clic en Button1
para editar el cdigo del evento clic. Aade el siguiente cdigo:
Recomendacin para el
profesor
Pida a los alumnos que estimen el
valor del Total, antes de
codificar realmente el ejemplo.
Equipo de pits a DJ:
Se detuvo la carrera
por lluvia. Sal de la
carretera!



Unidad 10 Def Valley Pgina 251 de 321
Dim i As Integer = 0
For i = 1 To 5
MessageBox.Show("i dentro= " & i)
If i = 3 Then
Exit For
End If
Next
MessageBox.Show("i fuera= " & i)

Recomendacin para el
profesor
Exit se usa mucho en lo siguiente:
Exit For, Exit Do, Exit Sub



Unidad 10 Def Valley Pgina 252 de 321
Crea e inicia tu proyecto. Haz clic
repetidamente en el botn SalirAhora. Un
cuadro de mensaje muestra el valor del
contador de bucle. Cuando el contador de
bucle llega a 3, la condicin de la instruccin
If...Then es Cierto y se ejecuta la instruccin
Exit For. El cdigo se sale del bucle sin
terminar el resto de las iteraciones. Observa
que el cuadro de mensaje muestra i dentro =
4. Cuando se sale del bucle, se ejecuta el
cdigo que est despus de la instruccin Next. En este caso el cuadro de
mensaje muestra i externo = 3

Veamos otro ejemplo de Exit For. Agregaremos algo ms de funcionalidad a
tu aplicacin Salir Letrero. Agrega un cuadro de verificacin y otro botn de
comando a Form1. Cambia su propiedad de texto a ChexIt. Haz doble clic
en el Button2 para editar el cdigo del evento clic. Aade el siguiente
cdigo:
Dim IndiceBucle As Integer
For IndiceBucle = 1 To 5
If IndiceBucle = 4 Then
CheckBox1.Checked = True
End If
If CheckBox1.Checked = True Then
MessageBox.Show("Salir en: " & IndiceBucle)
Exit For
End If
Next
Crea e inicia tu proyecto. Haz clic en el botn ChexIt. El bucle For...Next se ejecuta hasta que el ndiceBucle = 4.
Entonces la propiedad marcada de la casilla de verificacin 1 se pone en Cierto. Como ahora la casilla de verificacin 1 est
seleccionada, un cuadro de mensaje muestra el IndiceBucle y se ejecuta una instruccin Exit For. Se sale uno del bucle.

Haz clic de nuevo en el botn ChexIt cuando todava est seleccionada la casilla de verificacin 1. Qu sucede esta vez?
La instruccin Exit For es llamada cuando el IndiceBucle = 1.



Unidad 10 Def Valley Pgina 253 de 321
For...Next en C# y J#
Como todos los lenguajes modernos de programacin, C# y J# tambin pueden escribir bucles definidos. Quiz Len y Dirk
puedan darnos algunas explicaciones para escribir bucles For...Next en esos dos lenguajes?

C# y J# tienen el equivalente al bucle For...Next de Visual Basic.NET, pero el cdigo se ve muy distinto. He aqu cmo se
escribe un bucle definido en J#:
for (int ContadorBucle = 1; ContadorBucle < 5;
ContadorBucle++)
{
MessageBox.Show(ContadorBucle.ToString());
}
Este cdigo se ve distinto a una instruccin For...Next, pero hace lo mismo.

En C# no se necesita tener una instruccin Next, y la palabra
clave for est en minscula. El cdigo que va a ejecutarse con
el bucle est entre las llaves. El cdigo entre parntesis despus
de for controla el bucle:
int ContadorBucle = 1;
declara la variable del contador de bucle e inicializa el contador de bucle al valor menor del bucle.
ContadorBucle < 4;
establece una instruccin de condicin que funciona como lmite superior.
ContadorBucle++
incrementa el bucle en 1.
Esto tambin se podra escribir como sigue:
ContadorBucle = ContadorBucle + 1
Todo en una sola lnea de cdigo.
Aqu el mismo cdigo escrito en J#. Se ve igual, pero J# usa la funcin System.Convert.ToString para
convertir el ContadorBucle de tipo entero a una cadena para mostrarla en el cuadro de mensaje.
for (int ContadorBucle = 1; ContadorBucle < 5;
ContadorBucle++)
{
MessageBox.Show(System.Convert.ToString(ContadorBucle));
}



Unidad 10 Def Valley Pgina 254 de 321
Bueno, gracias Len, por mostrarnos ese cdigo. Aun cuando se ve distinto a un bucle For...Next en Visual Basic.Net, se
sigue usando para lo mismo: ejecutar repetidamente un cdigo una cierta cantidad de veces.
Llegada a Def Valley, CA
De veras que el viaje se hizo corto! Lo bueno fue que no nos perdimos en el desierto. Podramos estar caminando en
crculo todava. En el camino te mostr cmo hacer que un cdigo se ejecute una y otra vez con un bucle For ... Next. Esta
clase de bucle se usa cuando se sabe cuntas veces se quiere que el cdigo se repita. Otra cosa que te mostr fue cmo
usar la instruccin Exit For para salir de un bucle antes que el contador del mismo llegue al lmite superior.

Ahora ya tienes otra herramienta importante ms de programacin en tu repertorio que puedes usar. Veamos si puedes
aplicar lo que has aprendido acerca del bucle For...Next cuando hagas el siguiente Ejercicio. Estoy seguro que el comit del
rally tiene un ameno examen para ti, y no olvides la prueba.





Unidad 10 Def Valley Pgina 255 de 321
10 Ejercicio 02 Nmeros primos

Espero cenar un buen prime rib hoy y no una
pizza. Prime Rib! Yumm!

Eso me acuerda de una clase de matemticas
donde estudiamos los nmeros primos. Un
nmero primo es aquel que se puede dividir
exactamente (sin residuo) entre l mismo y
entre 1. Algunos ejemplos son: 2, 3, 5, 7. Los
nmeros 4, 6, 8 y 9 no son primos, porque se
pueden dividir exactamente entre 2, o en el
caso de 9, entre 3.

Puedes escribir un programa para calcular
cada nmero primo del 2 al 5000?

Haz un formato como el siguiente, o si
deseas ahorrar tiempo, usa el que hay en
10_proveit02_template:



Cuando se hace clic en el botn Calcular, se determinan los nmeros primos
hasta el 5000.
Agrgalos al cuadro de texto.

Nmeros primos
Escribe un programa para calcular
todos los nmeros primos entre 2 y
5000.
El archivo 10_proveit02_files
contiene las instrucciones para este
ejercicio, as como todos los archivos
de soporte que puedas necesitar.



Unidad 10 Def Valley Pgina 256 de 321
He aqu algunas recomendaciones que te ayudarn.

Al leer el material del curso aprendiste que puedes tener un cdigo dentro
de un cdigo, como una instruccin If dentro de otra instruccin If. Tambin
puedes tener un bucle For dentro de otro bucle For. Puedes hacer que el
bucle externo vaya de 2 a 5000.

La variable de este bucle externo es el nmero que se va a investigar si es
primo. La variable interna podra ir desde 2 hasta la variable del bucle
externo menos 1. Por qu detenerse en este valor del bucle externo?
Porque si la variable del bucle interno es mayor que la del bucle externo, el
nmero no se podr dividir exactamente. El resultado ser una fraccin. Por
qu menos 1? Porque un nmero primo se puede dividir entre l mismo, as
que para qu investigarlo?

Podras tener una variable que vea si un nmero del bucle externo es primo
o no lo es. Podras ponerla en True antes del bucle interno para cambiarla a
False si de acuerdo con las condiciones no es primo.

Dentro del segundo bucle puedes verificar si el nmero primo potencial
dividido entre la variable del bucle interno tiene o no residuo.

Supn que los nmeros se representaran por X y Y. Cmo saber si X/Y
tiene un residuo? Hay varios modos. Como estamos tratando de probar tus
conocimientos de bucles, y no tus conocimientos matemticos, te diremos
slo uno. El modo ms fcil es con el operador Mod. Supn que definiste una
variable llamada Residuo:

Residuo = X Mod Y

Despus de tu bucle, puedes agregar el nmero primo al cuadro de texto si
la variable que est examinando sigue siendo True. Es probable que desees
tener algunos espacios entre los primos.

Una vez que tu programa quede correcto, mustraselo a su instructor.




Unidad 10 Def Valley Pgina 257 de 321
He aqu el reto que prepar el comit del rally.

10 Reto Roth IRA

Quiero ser un
programador por mucho
tiempo, pero algn da me retirar. He
pensado en formas para ahorrar, porque s
que si comienzo a ahorrar siendo joven,
despus tendr mucho ms.

He odo acerca de una Roth IRA. IRA quiere
decir Individual Retirement Account, o una
Cuenta Personal de Retiro. Roth es el nombre
de quien la patrocin en el Congreso. Una Roth
IRA maneja las inversiones de modo especial
en los impuestos. Nunca debers pagar
impuestos sobre la renta sobre las ganancias.
As que todo lo que ganes lo puedes conservar.
Cul es el pero? Debes dejar el dinero sin
tocarlo hasta la edad de 59, o hasta que lo
uses para la escuela o para la compra de la primera casa.

As que hagamos una calculadora para Roth IRA.

Haz un formato parecido al siguiente, o usa la plantilla
10_challenge_template:


Recomendacin
para el profesor
Vea la recomendacin
para el profesor en la
pgina 25.
Roth IRA

Aprender cmo hacerse rico
con un Roth IRA. Escribir una
calculadora Roth IRA.
El archivo 10_challenge_files
contiene las instrucciones para
este reto y los archivos de
soporte que necesita.



Unidad 10 Def Valley Pgina 258 de 321
Hay una edad a la que comienzas a ahorrar y una a la que terminas, la
cantidad depositada cada ao y la tasa de inters sin decimales.

Como hemos estado estudiando bucles, parece una oportunidad ideal para
usar uno. Las edades de inicio y de trmino parecen buenas para usarse en
el bucle. No olvides de que los cuadros de texto tienen cadenas, as que la
funcin Val se puede usar para convertirlas a nmeros, como

X = Val(TextBox1.Text).

Muestra la edad, el total de los depsitos desde el comienzo del ahorro, el
saldo de la cuenta IRA y la ganancia, que es la diferencia entre los depsitos
y el saldo.

Para formatear la salida, usa la funcin Format.
Por ejemplo:

VariableX = FormatCurrency(VariableX)

Recomendacin1: Suma el depsito antes de calcular el inters.
Recomendacin2: El inters es el saldo por (1 + tasa) (por ejemplo,
9% es 1.09).

Una vez que tu programa funcione bien, mustraselo a tu instructor.



Extensin / desviacin

No pagas intereses con un Roth IRA. Qu sucede si haces la misma
inversin en una cuenta bancaria ordinaria? Con una cuenta bancaria
ordinaria, tu gobierno federal quiere su tajada de tu ingreso. Supn que
Hacienda toma el 25% de las ganancias cada ao. Cunto tendrs al final
del perodo de los ahorros?






Unidad 10 Def Valley Pgina 259 de 321

Regresa al inicio de un bloque de
cdigo
Hace que falle un programa
Se ejecuta una y otra vez
La variable de contador de bucle en una
instruccin For de qu tipo debe ser?
Toma decisiones una y otra vez
Ejecuta un conjunto de instrucciones de cdigo
una cantidad especfica de veces
Define a una variable
En esta instruccin:
For ContadorBucle = 1 To 2, cul es el
valor de ContadorBucle cuando termina el
bucle?
Qu hace un bucle?
Qu hace un bucle definido?



Unidad 10 Def Valley Pgina 260 de 321

Recomendacin para el profesor
Un Roth IRA es como un 401K o un 503B, excepto que nunca se gravan las ganancias.

En general es un proyecto muy difcil para los alumnos, no por la programacin, sino por los
conceptos de inters y de impuestos, que son nuevos para ellos. A continuacin se presenta una
descripcin que ha funcionado en otras clases:
Su meta es aumentar el tamao de su cuenta bancaria, que se inicia en cero.

Esto se hace de dos maneras. Una es que puede usted poner su dinero en la cuenta. Segundo,
el banco puede agregar dinero a su cuenta, como premio por tener depsito en la cuenta.

En este proyecto suponemos que slo se pone dinero en la cuenta una vez cada ao, y que el
banco slo le paga una vez por ao. Usar usted un bucle For para hacer que los depsitos (su
dinero) y el inters (el dinero que le paga el banco) se cuenten una y otra vez durante la
cantidad adecuada de aos.

Dentro del bucle usted hace lo siguiente:
Uno, usted aumenta su dinero.
Dos, el banco agrega dinero, y aumenta el tamao de su cuenta bancaria. El aumento se hace
multiplicando la cuenta bancaria por 1 ms la tasa de inters. Si la tasa es 3%, se multiplica la
cuenta bancaria por 1.03.

Una vez ejecutado el bucle, podr formatear el resultado y ponerlo en el cuadro que le
corresponde.

A continuacin necesita sumar los depsitos totales de SU dinero. Usted hace un depsito cada
ao, incluyendo el ao de inicio. Suponga que comienza a la edad de 16 e interrumpe a la edad
de 20. Entonces usted hizo depsitos a las edades de 16, 17, 18, 19 y 20. Es igual que la edad
de retiro menos la edad de inicio ms uno.

La cantidad de inters que pag el banco es lo que haya en la cuenta bancaria menos lo que
usted deposit.

Y los impuestos? El gobierno toma una parte de todo el dinero que usted gane.
Usted no paga impuestos sobre los depsitos, porque ya los pag al ganar ese dinero cuando
trabajaba en Burger Mex o en cualquier otra parte.
S paga impuestos sobre el inters, porque ese inters es otra ganancia que antes no se haba
gravado.



Unidad 11 Whatever, Colorado Pgina 261 de 321
Temas en el camino a
Whatever:

Whatever
Bucles indefinidos
Bucle Do While..
Entrar a un bucle DoWhile...
Bucle Do Until...
Bucles indefinidos en accin
Formas alternas de bucle
Exit Do
Bucles indefinidos en J# y
C#
Llegada a Whatever, CO



Unidad 11 Whatever, Colorado Pgina 262 de 321

Whatever, Colorado
Cliff nos llevar al siguiente destino: Whatever, Colorado. Tomaremos el circuito escnico. En
nuestro ltimo viajecito explic muy bien los bucles definidos; son los que se ejecutan una
cantidad definida de veces. En este viaje voy a hacer que otra vez te muevas en crculo. Te
ensear cmo usar un bucle de una clase distinta; se llama bucle indefinido. Con un bucle
indefinido no se sabe de antemano cuntas veces se va a ejecutar. Cesa de ejecutarse cuando
se encuentra con una condicin especfica.

Vers que los bucles indefinidos son otra herramienta til que todo programador debe saber
cmo usar. Hay veces en las que un bucle definido no funciona y se necesita usar uno indefinido.





Unidad 11 Whatever, Colorado Pgina 263 de 321
Bucles indefinidos
Hay muchas cosas que se deben hacer una y otra vez, hasta que suceda otra cosa. Esa otra cosa es como la condicin
que nos detiene en nuestra tarea repetitiva. Los bucles indefinidos se siguen ejecutando hasta que determinada condicin
se vuelve Cierto o Falso, y entonces se detienen.

Por ejemplo, anoche tuvimos que dar vueltas a un estacionamiento durante una hora hasta encontrar un lugar
suficientemente grande para la camper. Para entonces haba cerrado el Rocky Mountain Sushi Bar and Grill. Tuvimos que
buscar otro lugar para comer. Mientras manejbamos buscando otro restaurante, mi estmago no cesaba de protestar. No
termin sino hasta quedar satisfecho.

Los cdigos son iguales. A veces necesitas ejecutar el mismo cdigo una y otra vez, mientras que, o hasta que, una
condicin determinada es Cierta. Por ejemplo, tu cdigo podra pedirle al usuario su clave de acceso una y otra vez hasta
que haya tecleado la correcta. O bien, mientras tu programa hace clculos contina tocando msica electrnica sensacional
como fondo.

Lo que distingue un bucle indefinido de uno definido, es que uno definido se ejecuta una cantidad especfica de veces. Por
otra parte, un bucle indefinido se ejecuta mientras que, o hasta que, se cumpla cierta condicin. En realidad, hay dos
clases de bucles indefinidos: Los bucles do while (hacer mientras) y los bucles do until (hacer hasta que). Los bucles do
while se siguen ejecutando mientras una condicin siga siendo Cierta. Los bucles do until se siguen ejecutando hasta que
una condicin se convierte en Cierta. La clave del uso de bucles indefinidos es saber elegir entre un bucle do while y uno
do until.





Unidad 11 Whatever, Colorado Pgina 264 de 321
Bucle Do While...
Un bucle Do While... ejecuta un bloque de cdigo una y otra
vez mientras que determinada condicin siga siendo Cierta.
Tan pronto como la condicin se vuelve Falsa, termina el
bucle y ya no se ejecuta el bloque de cdigo. Parte del bucle
Do While... es la condicin que se usa para controlarlo. La
sintaxis del bucle Do While..., en Visual Basic.NET es la
siguiente:
Do While (condicin)
instruccin de cdigo 1
instruccin de cdigo 2
instruccin de cdigo, etc.
Loop
Observe que las palabras Do, While y Loop son
palabras clave; aparecen en azul. La instruccin de la
condicin se encierra entre parntesis. La condicin puede
ser cualquier expresin booleana que se evale como Cierta
o Falsa; por ejemplo, X < 4. El cdigo que quieres ejecutar
en forma repetida se pone entre las instrucciones Do While y
Loop. Al iniciar cada pasada por el bucle se evala la
condicin. Si la condicin sigue siendo True, se ejecutan los
pasos de cdigo otra vez; si la condicin es Falso, el bucle
termina.
Ahora te mostrar cmo codificar un
bucle Do While... Inicia una nueva aplicacin llamada DoWhileLoop. Agrega
un botn de comando a Form1. Haz doble clic en Button1 para editar el
cdigo del evento clic. Aade el siguiente cdigo:
Dim ValorWhile As Integer
ValorWhile = 0
Do While (ValorWhile < 2)
MessageBox.Show(ValorWhile)
ValorWhile = ValorWhile + 1
Loop
Recomendacin para el
profesor
La condicin en un bucle Do
puede ser compleja, como por
ejemplo
While (A > 1 and B < C)
La banda repetir algunos
compases hasta que yo haya
terminado con esta
introduccin.



Unidad 11 Whatever, Colorado Pgina 265 de 321
Crea e inicia tu proyecto. Haz clic en Button1. Un cuadro de mensaje
muestra 0. Haz clic en Aceptar. Un cuadro de mensaje muestra 1. Haz clic
en Aceptar. Se te regresa al formato. No aparecen ms cuadros de mensaje.

Cmo trabaja este cdigo? Hemos declarado una variable llamada
ValorWhile. Al principio, ValorWhile se pone en 0. Cada vez que se recorre el
bucle, el valor de ValorWhile se aumenta en 1. Al principio del bucle la
instruccin Do While comprueba que el ValorWhile sea <2. Si esta condicin
es Cierta, se muestra el cuadro de mensaje y se incrementa el ValorWhile. Si
la condicin es Falsa, el bucle termina. Este bucle se ejecuta dos veces antes
de que la condicin sea Falsa. La primera vez, el cuadro de mensaje muestra
0; la segunda vez, 1 y la tercera vez, ValorWhile = 2, y la expresin
booleana 2 < 2 es falsa. El bucle termina y ya no se muestra el cuadro de
mensaje.

















Recomendacin para el
profesor
No hay ninguna razn publicada
para que un bucle con For
termine con Next, y uno con Do
termine con Loop. Adviertales a
los alumnos lo anterior, porque
inevitablemente habr algunos
que se equivoquen.
Debes ponerle sangra al cdigo
contenido entre las instrucciones Do
While y Loop. Al hacerlo podrs
ver con facilidad qu instrucciones
repetir el bucle. Un cdigo con
sangra es ms fcil de leer y de
depurar.



Unidad 11 Whatever, Colorado Pgina 266 de 321







Unidad 11 Whatever, Colorado Pgina 267 de 321
Entrar a un bucle Do While...
Usaremos las herramientas de depuracin de Visual Studio.Net fciles de
usar para entrar al cdigo de tu aplicacin con DoWhileLoop, y veamos
cmo se ejecuta, lnea por lnea.
1. En la ventana de cdigo pon
un punto de interrupcin en la
instruccin Do While






2. Inicia tu proyecto. El cdigo
se ejecuta hasta el punto de
interrupcin, y resalta la lnea
de cdigo con el punto de
interrupcin.




3. Oprime la tecla F11 para
ejecutar la lnea de cdigo
destacada.
Do While (ValorWhile < 2)
Mueve el cursor sobre
ValorWhile. Su valor es 0.

4. Oprime la tecla F11 para
ejecutar la lnea de cdigo
destacada.
MessageBox.Show(ValorWhile)
Un cuadro de mensaje muestra
0. Haz clic en Aceptar.
Recomendacin para el
profesor
Los alumnos deben hacerlo, y no
slo leerlo.



Unidad 11 Whatever, Colorado Pgina 268 de 321
5. Oprime la tecla F11 para
ejecutar la lnea de cdigo
destacada.
ValorWhile = ValorWhile + 1
El ValorWhile se incrementa en
1.



6. Oprime la tecla F11 para
ejecutar la lnea de cdigo
destacada.
Loop
El bucle se ejecuta de nuevo.



7. Oprime la tecla F11 para
ejecutar la lnea de cdigo
destacada.
Do While (ValorWhile < 2)
Mueve el cursor sobre
ValorWhile. Su valor es 1.



8. Oprime la tecla F11 para
ejecutar la lnea de cdigo
destacada.
MessageBox.Show(ValorWhile)
Un cuadro de mensaje muestra
1. Haz clic en Aceptar.



Unidad 11 Whatever, Colorado Pgina 269 de 321

9. Oprime la tecla F11 para
ejecutar la lnea de cdigo
destacada.
ValorWhile = ValorWhile + 1
El ValorWhile se incrementa en
2.


10. Oprime la tecla F11 para
ejecutar la lnea de cdigo
destacada.
Loop
El bucle se ejecuta de nuevo.


11. Oprime la tecla F11 para
ejecutar la lnea de cdigo
destacada.
Do While (ValorWhile < 2)
Mueve el cursor sobre
ValorWhile. Su valor es 2.
Ahora, la condicin ValorWhile <
2 es Falso, por lo que termina el bucle. Ya no aparece el cuadro de mensaje,
y el ValorWhile no se incrementa.

12. Oprime la tecla F11 para
ejecutar la lnea de cdigo
destacada.
End Sub
El evento clic te saca y aparece
de nuevo el formato.

Ahora que has visto cmo funciona el bucle Do While..., veamos la
instruccin Do Until....
Bucle Do Until...



Unidad 11 Whatever, Colorado Pgina 270 de 321
Una instruccin Do Until... ejecuta un bloque de pasos de cdigo una y otra vez hasta que una condicin se vuelva Cierta.
La instruccin condicional puede ser cualquier expresin booleana que se evale como Cierta o Falsa. La sintaxis del bucle
Do Until... en Visual Basic.NET es la siguiente:
Do Until (condicin)
instruccin de cdigo 1
instruccin de cdigo 2
instruccin de cdigo etc.
Loop
Las palabras Do, Until y Loop son palabras clave; aparecen en
azul. La condicin se evala al principio del bucle. Si sigue siendo
Falsa, se ejecutan los pasos de cdigo otra vez. Cuando la instruccin
en Do Until se evala como Cierta, el programa sale del bucle.
Ahora te mostrar un ejemplo de una instruccin de bucle Do Until... en Visual Basic.NET; la vamos a codificar. Inicia una
nueva aplicacin llamada DoUntilLoop. Agrega un botn de comando a Form1. Haz doble clic en Button1 para editar el
cdigo del evento clic. Aade las siguientes lneas de cdigo:
Dim ValorUntil As Integer
ValorUntil = 0
Do Until (ValorUntil > 1)
MessageBox.Show(ValorUntil)
ValorUntil = ValorUntil + 1
Loop
Crea e inicia tu proyecto. Haz clic en Button1. Un cuadro de mensaje muestra 0. Haz clic en Aceptar. Un cuadro de
mensaje muestra 1. Haz clic en Aceptar. El bucle termina y el formato se muestra de nuevo.


Recomendacin para el
profesor
While arranca con una condicin
Cierto, Until arranca con una
condicin Falso.



Unidad 11 Whatever, Colorado Pgina 271 de 321
Cmo trabaja este cdigo Do Until...? Primero declaramos una variable llamada ValorUntil y la inicializamos a 0. La variable ValorUntil se
usa en la comparacin para determinar si se debe ejecutar el bucle otra vez. Cada vez que se ejecuta el bucle, el valor de ValorUntil
aumenta en 1. La instruccin Do Until contiene una instruccin de comparacin, que comprueba si ValorUntil es mayor que 1. La primera
vez que se recorre, ValorUntil es 0. La instruccin booleana es Falsa, por lo que se ejecutan las instrucciones del cdigo. Aparece un
cuadro de mensaje y ValorUntil se incrementa. La segunda vez en el bucle, ValorUntil es 1. La instruccin booleana sigue siendo falsa, y se
ejecutan de nuevo los pasos del cdigo. La tercera vez que se ejecuta, ValorUntil es 2. La expresin booleana 2 > 1 es Cierta, y el bucle se
detiene.


Bucles en accin
Veamos ahora un par de ejemplos de los bucles Do While y Do Until, que usan expresiones booleanas que no dependen directamente del
valor de un contador de bucle. Nuestro primer ejemplo es un bucle Do While con una expresin booleana que comprueba si el valor de una
variable sigue siendo mayor que o igual a cero. Cuando el valor de esa variable es menor que cero el bucle termina.

Inicia una nueva aplicacin llamada BuclesEnAccin. Agrega un botn de comando a Form1. Cambia la propiedad de Texto del Button1 a
CuentaRegresiva. Haz doble clic en el Button1 para editar el evento clic. Aade el siguiente cdigo:
Dim IndiceBucle As Integer = 0
Dim ControladorWhile As Integer = 167
Do While (ControladorWhile >= 0)
IndiceBucle = IndiceBucle + 1
ControladorWhile = ControladorWhile - (23 *
IndiceBucle)
Loop
MessageBox.Show(ControladorWhile)



Unidad 11 Whatever, Colorado Pgina 272 de 321
Crea e inicia el proyecto BuclesEnAccin. Haz clic en el botn CuentaRegresiva. Un cuadro de mensaje muestra -63.
Cmo trabaja este cdigo? Definimos dos variables enteras, IndiceBucle y ControladorWhile, y establecemos sus valores
iniciales. La variable IndiceBucle se incrementa en 1 cada vez que se ejecuta el bucle y se calcula un nuevo valor de la
variable ControladorWhile, usando una expresin algo complicada. El nuevo valor de ControladorWhile se calcula tomando
el valor del IndiceBucle, multiplicndolo por 23 y restndolo del valor anterior de ControladorWhile. Cada vez que se
ejecuta el bucle, el valor de ControladorWhile se hace ms pequeo. Es difcil decir cuntas veces se ejecutar el bucle
antes de que el valor de ControladorWhile sea menor que 0 y termine el bucle. Pero en realidad eso no importa, porque la
expresin booleana que controla el bucle slo se cuida del valor de la variable ControladorWhile y no del valor del
IndiceBucle.
Nuestro segundo ejemplo muestra un bucle Do While con una expresin
booleana que depende de si est seleccionado el RadioButton3. En cada
iteracin en el bucle se verifica un Radiobutton distinto.

En tu proyecto BuclesEnAccin, agrega un segundo botn de comando a
Form1. Cambia la propiedad de Texto del Button2 a While. Agrega tres
botones de seleccin a Form1. Haz doble clic en Button1 para editar el
cdigo del evento clic. Aade el siguiente cdigo:
Dim IndiceBucle As Integer = 0
RadioButton1.Checked = True
Do While (RadioButton3.Checked = False)
IndiceBucle = IndiceBucle + 1
If IndiceBucle = 1 Then
RadioButton1.Checked =
True
ElseIf IndiceBucle = 2 Then
RadioButton2.Checked =
True
ElseIf IndiceBucle = 3 Then
RadioButton3.Checked =
True
End If
Loop
MessageBox.Show(LoopIndex)
Crea e inicia tu aplicacin. Observa que el
RadioButton1 est seleccionado. Haz clic
en el botn While. El cdigo escoge el
RadioButton3 y en un cuadro de mensaje
aparece el ndice del bucle. Si tu ojo es
rpido o si tu computadora es de veras
lenta, puedes ver momentneamente
RadioButton2 seleccionado cuando se
ejecuta el bucle.

Lo que pas fue lo siguiente. Declaramos
una variable llamada IndiceBucle para
Oye, si pongo ahora las
direccionales no se
apagarn sino hasta que
d una vuelta. Podra
Este beb es mi orgullo y mi



Unidad 11 Whatever, Colorado Pgina 273 de 321
conocer la cantidad de veces que se ejecuta el bucle. Sin embargo, no se
usa el IndiceBucle en la expresin booleana que controla el bucle Do While.
En lugar de ello, IndiceBucle se usa para seleccionar cada vez un botn de
opcin distinto. La expresin booleana para el bucle Do While comprueba si
se ha seleccionado el RadioButton3. Tan pronto como
RadioButton3.Checked=True el bucle termina.

Nuestro tercer ejemplo usa una instruccin Do Until. La expresin booleana
compara la propiedad de texto de un cuadro de texto con una variable de
cadena que cambia con cada iteracin en el bucle. Agrega un cuadro de
texto a Form1 de tu proyecto BuclesEnAccin. Deja puesta la propiedad de
texto del TextBox1 en "TextBox1". Agrega un tercer botn a Form1 y cambia
su propiedad de texto a IgualTexto. Haz doble clic en el Button3 para
editar el cdigo del evento clic. Aade el siguiente cdigo:
Dim IgualTexto As String = ""
Dim IndiceBucle As Integer = 0
Do Until (IgualTexto = TextBox1.Text)
IndiceBucle = IndiceBucle + 1
If IndiceBucle = 2 Then
IgualTexto = "Text"
End If
If IndiceBucle = 3 Then
IgualTexto = "Cuadro1"
End If
If IndiceBucle = 4 Then
IgualTexto = "CuadroTexto1"
End If
Loop
MessageBox.Show("Nmero " & LoopIndex & "
son iguales.")
Crea e inicia tu aplicacin. Haz clic en el botn Igual texto. Un cuadro de
mensaje muestra el valor de IndiceBucle cuando el texto coincide.

Este cdigo usa una instruccin Do Until. La variable IndiceBucle slo se usa
para determinar el valor de la variable IgualTexto. La expresin booleana
compara el valor de IgualTexto con la propiedad Texto del TextBox1. En la
cuarta pasada por el bucle, el IndiceBucle es 4 e IgualTexto="TextBox1". La
expresin booleana se evala en Cierto, ya que TextBox1=TextBox1, y el
bucle termina.

Y si la propiedad de Texto de TextBox1 se hubiera puesto en El pozo
Recomendacin para el
profesor
El nombre de la variable
IndiceBucle es arbitrario. Podra
haber sido ContadorBucle,
VariableBucle, X, o cualquier otra
cosa.



Unidad 11 Whatever, Colorado Pgina 274 de 321
prpura? Puedes agregar otra instruccin If...Then para que se siga
ejecutando el cdigo?



Unidad 11 Whatever, Colorado Pgina 275 de 321
11. Ejercicio 01 Tiro al blanco

Siempre me gusta visitar el tiro con arco. Es
divertido dar en el blanco, pero creo que es
ms segura una versin computarizada.
Crearemos un juego donde la computadora
trata de dar en un blanco.

Usa el cdigo y el formato que se encuentran
en la plantilla 11_proveit01_template. El
formato se ve como este:



Hemos puesto todo el cdigo del botn Otro juego, porque este botn usa
algunas funciones de juegos que no se ensean en este curso. Tu tarea es
escribir el cdigo para el botn Jugar.

El objetivo del juego es contar la cantidad de intentos que se requiere para
dar en el punto diminuto en el centro de la diana. Este punto tiene un
tamao de 1 pixel. Como el cuadro de figura tiene 200 x 200 pixeles, el
punto central est colocado exactamente en 100 por 100.

Crea un nmero aleatorio para la variable entera X, que se use para la
medicin horizontal. Crea un nmero aleatorio para la variable entera Y que
se use para la medicin vertical.
Tiro al blanco

Prepara un programa para dar en
el blanco en tiro con arco.

El archivo 11_proveit01_files
contiene instrucciones para este
ejercicio, y los archivos de
soporte que necesitas.

Haz clic en el botn Descargar
para bajar el archivo.



Unidad 11 Whatever, Colorado Pgina 276 de 321
El cdigo para crear un nmero aleatorio en el intervalo 0 a 200 es:

Dim MiGeneradorAleatorio As System.Random
MiGeneradorAleatorio = New System.Random
Dim NumAlea As Integer

' Generate random value between 0 and 200 - not
including 200.
NumAlea = MiGeneradorAleatorio.Next(0, 200)

Como ya estudiaste bucles indeterminados, es muy probable que uses uno
aqu. Terminar cuando tanto X como Y sean iguales a 100.

Cuenta la cantidad de veces que se ejecuta el bucle. Pon el resultado en el
TextBox1.

El cdigo para poner el punto de impacto de tu flecha es:

g.DrawEllipse(MyPen, New Rectangle(X, Y, 1, 1))

Una vez que tu programa funcione bien, mustraselo a tu instructor.
Recomendacin para el
profesor
Habr preguntas. Repase antes la
solucin con anotaciones para
esas preguntas.



Unidad 11 Whatever, Colorado Pgina 277 de 321
Formas alternas de bucle
Los bucles Do While y Do Until se pueden escribir de otra manera con la instruccin de condicin al final del bucle en lugar
de al principio. En estas formas alternas, la instruccin de la condicin va despus de las instrucciones de cdigo. Las
instrucciones de cdigo siempre se ejecutan cuando menos una vez. Entonces se verifica la instruccin de condicin. Estas
formas alternas son las instrucciones Do...Loop While y Do...Loop Until. He aqu un ejemplo de la instruccin Do...Loop
While:
Dim ValorWhile As Integer
ValorWhile = 0
Do
MessageBox.Show(ValorWhile)
ValorWhile = ValorWhile + 1
Loop While (ValorWhile < 2)
Y un ejemplo de la instruccin Do...Loop Until:
Dim ValorUntil As Integer
ValorUntil = 0
Do
MessageBox.Show(ValorUntil)
ValorUntil = ValorUntil + 1
Loop Until (ValorUntil > 1)
Observa que en ambos casos la instruccin de la condicin ahora forma parte de la instruccin de bucle, y no de la
instruccin Do. Las instrucciones despus de Do y antes de Loop se ejecutan cuando menos una vez. Entonces se evala la
instruccin de condicin para determinar si se repite el bucle. En el cdigo anterior, si ValorUntil hubiera comenzado como
5, el cuadro de mensaje hubiera mostrado 5 antes de llegar a la verificacin de la condicin.




Recomendacin para el
profesor
Poner la condicin al final del
bucle garantiza que habr al
menos una ejecucin del cdigo.



Unidad 11 Whatever, Colorado Pgina 278 de 321
Exit Do
Recuerdas cuando Cliff te ense cmo interrumpir un bucle For...Next usando una instruccin Exit For? Bien, puedes escaparte de las
instrucciones Do WhileLoop, Do UntilLoop, Do...Loop While y Do...Loop Until, en forma parecida. Sin embargo, en vez de usar Exit
For, usas Exit Go. Usa una instruccin If...Then para tener una expresin booleana con qu controlar la ejecucin de la instruccin Exit
Do. Si la expresin booleana se evala en Cierto, entonces se ejecuta la instruccin Exit Do y se sale uno del bucle. Usa Exit Do cuando
quieres salir de un bucle, aunque no se hayan satisfecho las condiciones booleanas.

Vamos a escribir un cdigo para salir de un bucle Do Until. Inicia una nueva aplicacin llamada ExitDo. Agrega un botn de comando a
Form1. Haz doble clic en Button1 para editar el evento clic. Agrega el siguiente cdigo, muy parecido al que tiene tu proyecto DoLoopUntil:
Dim ValorUntil As Integer
ValorUntil = 0
Do Until (ValorUntil > 10)
MessageBox.Show(ValorUntil)
ValorUntil = ValorUntil + 1
If ValorUntil = 5 Then
Exit Do
End If
Loop
MessageBox.Show("Valor salida= " & ValorUntil)
Crea e inicia tu proyecto. Haz clic en Button1. En cada recorrido por el bucle, el valor de ValorUntil se incrementar en 1, y un cuadro de
mensaje mostrar la cuenta del bucle (0, 1, 2, 3 y 4). Cada vez oprime Aceptar. Cuando ValorUntil llegue a 5, la expresin de comparacin
de la instruccin If...Then se evala en Cierto. Se ejecuta la instruccin Exit Do. El bucle termina y se reanuda la ejecucin del cdigo en la
primera lnea despus de la instruccin Loop Until. Este cdigo muestra un cuadro de mensaje que dice Valor salida= 5. Haz clic en
Aceptar para regresar al formato.

Puedes usar exactamente la misma clase de instruccin Exit Do en tu cdigo de Do While...Loop para salir del bucle, antes de que la
instruccin de comparacin se evale en Falso.

Bucles indefinidos en J# y en C#
Echaremos un vistazo a los bucles indefinidos en J# y en C#.
En C# puedes escribir un cdigo que haga lo mismo que la instruccin Do While...Loop y Do...Lop While en
Visual Basic.NET. C# no tiene equivalente para las instrucciones Do Until...Loop o Do...Loop Until.

Un bucle while (while y loop no van con maysculas) en C#, que evala la condicin al inicio se puede codificar
como sigue:
int ValorWhile=0;
While (ValorWhile<5)
{
MessageBox.Show(ValorWhile.ToString());
ValorWhile=ValorWhile+1;
}



Unidad 11 Whatever, Colorado Pgina 279 de 321
Y un cdigo C# para un bucle do...while (do, while y loop no van con mayscula) que evale la condicin al final:
int ValorWhile=0;
do
{
MessageBox.Show(ValorWhile.ToString());
ValorWhile=ValorWhile+1;
}
while(ValorWhile
C# no tiene el equivalente de Do...Until Loop de Visual Basic.NET.



Unidad 11 Whatever, Colorado Pgina 280 de 321
Veamos ahora el cdigo en J#. Como podrs ver, es muy parecido al cdigo en C#. J# no tiene equivalente para
las instrucciones Do Until...Loop o Do...Loop Until, que se usan en Visual Basic.NET. Entonces, un bucle while
(while y loop no van con mayscula) en J#, que evale la condicin al inicio se puede codificar como sigue:

int ValorWhile=0;
while (ValorWhile<5)
{
MessageBox.Show(System.Convert.ToString(ValorWhile));
ValorWhile=ValorWhile+1;
}
Y un cdigo J# para un bucle do...while (do, while y loop no van con mayscula) que evale la condicin al final:
int ValorWhile=0;
do
{
MessageBox.Show(System.Convert.ToString(ValorWhile));
ValorWhile=ValorWhile+1;
}
while (ValorWhile
J# no tiene el equivalente del bucle Do...Until Loop de Visual Basic.NET.



Unidad 11 Whatever, Colorado Pgina 281 de 321
Llegada a Whatever, Colorado
Ya estamos en Whatever! Fue otra parte rpida y estimulante de nuestro viaje. En el camino aprendiste a codificar cuatro
clases distintas de bucles indefinidos. Puedes codificar bucles indefinidos que se ejecuten mientras una condicin sea
Cierta, o hasta que una condicin sea Cierta. Puedes codificar bucles indefinidos que evalen la condicin al principio o al
final. Si se evala la instruccin de condicin al final, las instrucciones del bloque de cdigo siempre se ejecutarn al
menos una vez. Vers que esas diferentes clases de instrucciones de bucle se complementan entre s. Pueden hacer cosas
que no se pueden con un bucle For...Next.
Veamos qu tiene el viejo organizador personal para ti.
11 Ejercicio 02 En seguida

Nos divertimos antes con un proyecto de
lanzar la moneda.
He aqu otro. Alguna vez te has pregunt
cuntas veces debers lanzar una moneda
para sacar tres veces en seguida guila?
Cuntas para sacar 4? Cuntas para 5?

Usa el cdigo y el formato que se
encuentran en la plantilla
11_proveit02_template.

El formato se ve como este:
En seguida

Vas a pasar un rato ms
lanzando una moneda.

El archivo 11_proveit02_
contiene instrucciones para este
ejercicio, y todos los archivos
de soporte que necesitas.



Unidad 11 Whatever, Colorado Pgina 282 de 321
El cdigo para generar un nmero aleatorio de 0 1 es:

Dim MiGeneradorAleatorio As System.Random
MiGeneradorAleatorio = New System.Random
Dim NumAlea As Integer

' Generar valor aleatorio entre 0 y 2 -
sin incluir a 2.
NumAlea = MiGeneradorAleatorio.Next(0, 2)

Supn que el valor 1 es guila, y el valor 0 es sol. Sigue generando nmeros
aleatorios hasta que tengas tantos 1 seguidos como especifica el TexBox1.
Si sacas cero, vuelve a comenzar. Pon la cuenta de lanzamientos en el
TextBox2.

Durante las pruebas, los programadores cuidadosos ponen una instruccin if
dentro del bucle, que muestra un mensaje y detiene el bucle si el contador
rebasa algn nmero muy grande.

Una vez que tu programa funcione bien, mustraselo a tu instructor.
Recomendacin para el
profesor
Este programa puede ser un poco
ms fcil que el Ejercicio 01.



Unidad 11 Whatever, Colorado Pgina 283 de 321
Ve lo siguiente, es un reto acerca de una calculadora del promedio de
calificaciones, un regalo del comit del rally. Estoy seguro que tus
conocimientos de bucles te sern de gran utilidad en este caso.
11. Reto Calculadora del
promedio de calificaciones

Me gusta este viaje, lstima que pronto
terminar. Entonces regresar a la
escuela a preocuparme por mi promedio
de calificaciones. Sera bueno contar con
un programa para calcular el promedio
de un conjunto de calificaciones. As que
hagamos una calculadora para tal
propsito.

Crea un formato parecido al siguiente, o
usa la plantilla 11_challenge_template:



Este programa usa una funcin InputBox que se ve como la de abajo. No
tienes que crear este formato. Visual Basic.NET lo hace automticamente
por ti.

Eso es nuevo, as que te
daremos todo el cdigo que
necesites.





Calculadora del promedio de
calificaciones

Vas a calcular el promedio de una
serie de calificaciones en letras.

El archivo 11_challenge_files
contiene las instrucciones y todos los
archivos de soporte que vas a
necesitar para este examen.



Unidad 11 Whatever, Colorado Pgina 284 de 321


Define una variable que guarde cada calificacin, como la siguiente:

Dim CalifEnt As String = "No hay ninguna"

Despus, dentro de un bucle indeterminado, necesitars este cdigo:

CalifEnt = InputBox("Ponga A, B, C, D, o F", "Ingrese la
calificacin en letra", "")

El usuario ingresar todas las calificaciones que desee. Cuando termina,
ingresar ninguna calificacin o har clic en Cancelar. En todos los casos, la
variable CalifEnt estar vaca. Vaco se codifica con dos comillas juntas, sin
nada entre ellas.

A es 4 puntos
B es 3 puntos
C es 2 puntos,
D es un punto,
F es cero.

No tomes en cuenta cualquier otra letra o nmero. El usuario puede teclear
letras maysculas o minsculas.

Pon todo lo que ingresaste en el cuadro de texto de la parte inferior, como
referencia.

Cuando se hayan ingresado todas las calificaciones, calcula la calificacin
numrica promedio.

Extensin / desviacin

Convierte la calificacin numrica promedio en una calificacin de letra.

Permite usar calificaciones con ms y con menos, como B+ y C-. Usa los
nmeros que se usen en tu escuela, o usa los siguientes:

1.0 D -
1.3 D
1.7 D +
2.0 C -
2.3 C
2.7 C +
Recomendacin para el
pfofesor
El bucle termina cuando CalifEnt
= .



Unidad 11 Whatever, Colorado Pgina 285 de 321
3.0 B -
3.3 B
3.5 B +
3.8 A -
4.0 A




Unidad 11 Whatever, Colorado Pgina 286 de 321
Veamos esta prueba especial del punto de registro, para comprobar tus
conocimientos.


Un bucle Do...While se ejecuta hasta que
la condicin llega a ser cul?
Un bucle Do...Until se ejecuta hasta
que la condicin llega a ser cul?
Arriba
Abajo
En cualquier lugar, pero no en
ambos a la vez
End Do
Exit To
Stop Do
Dnde se pone la condicin en un
bucle Do...While?
Qu comando termina de inmediato
un bucle?



Unidad 12 Function, South Dakota Pgina 287 de 321

Temas en el camino a
Function:
Funcin
Qu son las subrutinas?
Escribir tus subrutinas
Llamar a tus propias
subrutinas
Escribir tus funciones
Llamar a tus propias
funciones
Subrutinas y funciones
incorporadas
Funciones de cadena
Funciones de conversin
Llegada a Function



Unidad 12 Function, South Dakota Pgina 288 de 321
Function, South Dakota

Caramba! Increble! Estamos en el
ltimo tramo de nuestro viaje. Tan slo
una escala ms y nuestra jornada por
Reglas de Cdigo se terminar. Estoy
seguro que fue divertido. Nikki y yo de
veras gozamos mostrndote los
panoramas, y ensendote lo que sabemos de Visual Basic.NET y Visual
Studio.NET en el viaje. Espero que pronto podamos viajar juntos otra vez
por Reglas de Cdigo. Casi ests listos para un curso ms avanzado.

Hemos guardado para el final el mejor destino que es Function, South
Dakota. En esta parte del viaje es donde aprenders a usar todo lo que has
aprendido hasta ahora. En este tramo te mostrar cmo escribir tus propias
subrutinas y funciones, y usar algunas de las que estn incorporadas en el
entorno .NET.

Ser una parte divertida del viaje aunque larga. Tenemos mucho que
explicar en el camino a Function, South Dakota, as que adelante!
Recomendacin para el profesor
Algunos profesores explican en forma breve esta
unidad, despus de la unidad sobre instrucciones de
asignacin, o despus de la unidad sobre aritmtica,
para regresar a ella al final del curso. Muchos
profesores la presentan al final del curso.



Unidad 12 Function, South Dakota Pgina 289 de 321
Qu son las rubrutinas?
Las subrutinas (a veces se les dice
subs) son semejantes a miniprogramas.
Se escriben para efectuar tareas
especficas en la aplicacin. Cuando
escribes una aplicacin la descompones
en partes de funcionalidad separada, y
escribes una subrutina para cada una.
Su aplicacin puede contener tantas
subrutinas como se necesiten. Debes
ser conciso en el uso de subrutinas,
crear las que se necesiten, pero a la vez
tratar de escribir unas que contengan
determinada clase de funcionalidad en
el programa.

Por qu usar subrutinas? Las
subrutinas facilitan la escritura y la
revisin de programas, porque dividen
la funcionalidad de su aplicacin en
partes ms pequeas. Es mucho ms
fcil escribir y depurar varias subrutinas
cortas que toda una aplicacin. Una vez que hayas depurado tu subrutina, se
termina y queda lista para usarse. Funcionar cada vez que necesites usarla.

Las subrutinas ahorran tiempo realmente cuando tienes un cdigo grande y
complicado al que quieres entrar desde distintas partes de tu programa.
Pueden usarse cada vez que se desee. Una vez que escribes una subrutina
se puede usar (accesar) desde cualquier parte de tu programa. Las
subrutinas hasta pueden usar otras subrutinas. Imagnelo!

Las subrutinas sirven tambin para dividir el trabajo de programacin en una
aplicacin grande. Con frecuencia, a programadores individuales se les
asigna para escribir un conjunto especfico de subrutinas para la aplicacin.
Son responsables de escribir y depurar sus subrutinas, y de asegurar que
trabajen con otras partes del programa.

Algunos usos frecuentes de las subrutinas consisten en hacer clculos,
formatear y mostrar informacin, personalizar la interfaz con el usuario,
pedirle datos al mismo y proporcionar entradas y salidas al programa.

Yo solo podra encargarme de
las paradas en pits, pero
tardara horas. Mi personal de
pits me regresa con rapidez a
la carrera.



Unidad 12 Function, South Dakota Pgina 290 de 321
Escribir subrutinas
Escribir subrutinas para una aplicacin es otra de esas reas de la
programacin que realmente me gustan. Es como un diseo de formatos; se
necesita una combinacin de creatividad y conocimientos de programacin.
Ya que son como programas pequeos las subrutinas pueden contener
cualesquiera de las instrucciones de cdigo que ya has aprendido.

Ahora har que escribas tu propia subrutina y despus te mostrar cmo
usarla en una aplicacin. Comenzaremos aprendiendo la sintaxis de escritura
de una subrutina, y despus te ensear cmo codificarla. La sintaxis es la
siguiente:
Private Sub NombreSub()
instruccin de cdigo 1
instruccin de cdigo 2
instruccin de cdigo etc.
End Sub
Observa que las palabras Private, Sub y End Sub son palabras
reservadas; aparecen en azul. La palabra reservada Private quiere decir que
a esta subrutina slo se puede entrar con otro cdigo en la Form1. El
NombreSub es el nombre de la subrutina. Puedes usar cualquier nombre que
desees pero lo mejor es escoger algo descriptivo para conocer para qu sirve
la subrutina. Nota el parntesis despus del nombre de la subrutina. Cuando
se pasa una informacin a la subrutina, las variables que poseen la
informacin se ponen entre los parntesis. Ya viste esto en todos los
subprogramas de evento que has usado en unidades anteriores del curso.
Las instrucciones de cdigo de la subrutina estn entre los renglones Sub y
End Sub y se ejecutan en orden. Puedes usar casi cualquier instruccin que
desees en la subrutina.
Recomendacin para el
profesor
Vea ejemplos de subprogramas
en el programa Tic Tac Toe.
Debe sangrar el
cdigo de su subrutina
para que sea obvio lo
que contiene.



Unidad 12 Function, South Dakota Pgina 291 de 321
Ahora te pido escribir tu propia subrutina y despus te mostrar cmo
llamarla desde el cdigo. Inicia una nueva aplicacin llamada SimpleSub.
Abre la ventana del cdigo. Busca el cdigo que diga Windows Form
Designer generated code. En la siguiente lnea agrega este cdigo:

Private Sub MiMensaje()
MessageBox.Show("Aqu est un mensaje de la subrutina
MiMensaje.)
End Sub

Como podrs ver, cuando se ejecuta el cdigo dentro de la subrutina
MiMensaje, un cuadro de mensaje mostrar el texto: Aqu est un mensaje
de la subrutina MiMensaje, pero cmo ejecutamos ese cdigo?





Recomendacin para el
profesor
Este curso preliminar no cubre
asuntos relacionados con
aplicaciones con varios formatos.
La palabra reservada Private
quiere decir que esta subrutina
slo puede ser usada por el
cdigo que hay dentro del Form1.



Unidad 12 Function, South Dakota Pgina 292 de 321
Llamar a tus propias subrutinas

Para hacer que se ejecute el cdigo en tu subrutina, necesitas escribir un
rengln de programa que llame a la subrutina. Cuando se le llama, se
ejecuta el cdigo contenido en la subrutina. La sintaxis para llamar una
subrutina es sencilla. Slo se usa el nombre de la subrutina seguido de un
par de parntesis. La sintaxis para llamar una subrutina es la siguiente:

SubName()

Ahora llamaremos esa nueva subrutina que acabas de escribir.

En tu proyecto SimpleSub, agrega un botn de comando al Form1. Cambia
la propiedad Texto del Button1 a MiMensaje. Haz doble clic en Button1
para editar el evento clic. Aade la siguiente lnea de cdigo:

MiMensaje()

Crea e inicia tu proyecto. Haz clic en el botn MiMensaje. Aparecer un
cuadro de mensaje que muestra Aqu est un mensaje de la subrutina
MiMensaje. De dnde vino? Es la lnea de cdigo contenida en tu subrutina
MiMensaje. Cuando esa subrutina fue llamada con el evento clic de botn, se
ejecut esa lnea de cdigo.

Ahora te pido agregar otra subrutina a tu proyecto SimpleSub. Mostrar un
mensaje diferente. Abre la ventana de cdigo y agrega el siguiente cdigo
despus de la instruccin End Sub de la subrutina MiMensaje:

Private Sub TuMensaje()
MessageBox.Show("Aqu est un mensaje de la subrutina
TuMensaje.)
End Sub

Esta vez llamaremos a TuMensaje desde MiMensaje, en lugar de con el
evento clic en botn. Edita la subrutina MiMensaje para que se vea como
sigue:

Private Sub MiMensaje()
MessageBox.Show("Aqu est un mensaje de la subrutina
MiMensaje.)
TuMensaje()
End Sub




Unidad 12 Function, South Dakota Pgina 293 de 321
Agregamos una llamada a la subrutina TuMensaje dentro de la subrutina
Mimensaje. Crea e inicia el proyecto SimpleSub. Haz clic en el botn
MiMensaje. Aparecen dos cuadros de mensaje. El primero muestraAqu
est un mensaje de la subrutina MiMensaje y el segundo Aqu est un
mensaje de la subrutina TuMensaje. Cmo trabaja este cdigo? El evento
clic en botn llam a la subrutina Mimensaje. Cuando se llama esa subrutina
se ejecuta el cdigo que contiene. La subrutina MiMensaje contiene dos
lneas de cdigo. La primera lnea muestra un cuadro de mensaje que dice
Aqu est un mensaje de la subrutina MiMensaje. La segunda lnea llama a
la subrutina TuMensaje, que a su vez muestra un cuadro de mensaje que
dice Aqu est un mensaje de la subrutina TuMensaje.

No fue elegante? Creaste tus dos primeras subrutinas, y llamaste una de
ellas desde el cdigo de evento clic en botn. La segunda subrutina fue
llamada desde la primera.

Escribir y llamar subrutinas con argumentos
Una de las cosas tiles acerca de Visual
Basic.NET, y de la mayor parte de otros
lenguajes modernos de programacin, es que
puedes pasar informacin a tu subrutina. Eso
es muy til porque puedes escribir una
subrutina que produzca distintos resultados o
acciones dependiendo de qu informacin
pongas en ella. La informacin que pasas a la subrutina se llama su
argumento. Cuando escribes una subrutina a la que quieres pasar
argumentos, debes definir cuntos argumentos hay y de qu tipo son.

La sintaxis para escribir una subrutina que requiera argumentos es la
siguiente:
Private Sub NombreSub(ByVal NombreArg1 As argumentType1,
ByVal NombreArg2 As argumentType2, ByVal NombreArgN As
argumentTypeN)
instruccin de cdigo 1
instruccin de cdigo 2
instruccin de cdigo etc.
End Sub
Recomendacin para el
profesor
El parmetro ByVal quiere decir
que el valor del parmetro se
pasa al subprograma, pero la
variable original permanece sin
cambio.
Recomendacin para el
profesor
Los parmetros no son un
concepto totalmente nuevo.
todos los subprogramas de evento
clic tienen parmetros.



Unidad 12 Function, South Dakota Pgina 294 de 321
Aqu los parntesis no estn vacos. Contienen la lista de argumentos y los
tipos de argumentos que se van a pasar a la subrutina. Observa que ByVal
es una palabra reservada; aparece en azul. Los tipos de argumentos son los
comunes, como Integer, String, etc. Ve que cada uno de los argumentos
est separado por una coma.
Estoy seguro que un ejemplo real aclarar
mucho esto. Abre la ventana de cdigo en tu
proyecto SimpleSub. Baja la instruccin End
Sub de la subrutina TuMensaje, aade la
nueva subrutina siguiente:

Private Sub MensajeGeneral(ByVal
MensajeEnt As String)
MessageBox.Show(MensajeEnt)
End Sub

Esta subrutina necesita que se le pase un
argumento del tipo cadena. Cuando se llama
a esta subrutina mostrar un cuadro de
mensaje que muestre el argumento de
cadena.

Ahora llamemos la subrutina MensajeGeneral,
y pasmosle un argumento de cadena.
Agrega un segundo botn a Form1 de tu
proyecto SimpleSub. Cambia la propiedad de Texto del Button2 a
CualquierMensaje. Haz doble clic en Button2 para editar el cdigo de
evento clic en botn. Aade las tres lneas siguientes de cdigo:

MensajeGeneral("Cualquier mensaje.")
MensajeGeneral("Algn otro mensaje.")
MensajeGeneral("Un mensaje distinto.")

Crea e inicia tu proyecto. Haz clic en el botn CualquierMensaje. Aparecen
tres mensajes. Cmo fue posible? El cdigo clic en botn llama tres veces a
la subrutina MensajeGeneral. Cada vez pasa una cadena de texto distinta a
la subrutina como argumento. La primera vez, la subrutina es llamada con
un argumento de cadena Cualquier Mensaje, la segunda vez con un
argumento Algn otro Mensajey la tercera vez con un argumento Un
mensaje distinto. Cuando se ejecuta el cdigo en la subrutina, el argumento
se pasa a ella y lo usa la instruccin MessageBox.Show.

Ya le dije al tcnico de asientos que use
aplicacin 20-10 para piel en esta
carrera. En un da caluroso como hoy
siempre estoy resbalndome en el
asiento con el 20-40.



Unidad 12 Function, South Dakota Pgina 295 de 321
Veamos un ejemplo ms. Esta vez quiero que escribas una subrutina que
tome dos enteros como argumentos, los sume y muestre el resultado en un
cuadro de mensaje. Listo? Agrega una nueva subrutina llamada
Sumadoras a tu proyecto SimpleSub. La subrutina Sumadoras debe verse
as:
Private Sub Sumadoras(ByVal SumaUno As Integer, ByVal
SumaDos As Integer)
Dim Total As Integer
Total = SumaUno + SumaDos
MessageBox.Show(Total)
End Sub
Observa que se necesitan dos argumentos enteros cuando se llama esta
rutina.

Ahora agrega un tercer botn de comando a Form1 de tu proyecto
SimpleSub. Cambia la propiedad Texto del Button3 a Sumadoras. Haz
doble clic en Button3 para editar el cdigo de evento clic en botn. Aade la
siguiente lnea de cdigo:
Sumadoras(34, 57)
Crea e inicia tu aplicacin. Haz clic en el
botn Sumadoras. Un cuadro de mensaje
muestra 91. Nuestro cdigo de clic en botn
llama la subrutina Sumadoras y le pasa dos
argumentos enteros, 34 y 57. La subrutina
Sumadoras ejecuta tres lneas de cdigo.
Primero declara una variable llamada Total,
despus iguala Total a la suma de SumaUno
(34) y SumaDos (57). Los argumentos
SumaUno y SumaDos contienen los valores
que se pasan a la subrutina al llamarla. Por
ltimo, la subrutina muestra el valor de Total
(que es 91).
Ahora puedes escribir tus propias subrutinas
y pasarles informacin. Ahora te voy a
mostrar cmo escribir funciones. Puedes
pasar informacin a las funciones usando argumentos, igual que como haces
con las subrutinas. Sin embargo, a diferencia de las subrutinas, tambin
puedes recibir informacin de una funcin.
Las variables declaradas en una
subrutina usando la instruccin
Dim son variables locales.
Cuando se declara una variable
en una subrutina es como cuando
se declara una variable en un
evento clic en botn, que
tambin es una subrutina. La
variable slo es accesible cuando
se ejecuta la subrutina. Cuando
termina la subrutina, la variable
ya no es accesible.



Unidad 12 Function, South Dakota Pgina 296 de 321
Escribir tus propias funciones
La diferencia principal entre subrutinas y funciones es que una funcin puede
proporcionarte informacin. Esto se llama valor de retorno. Una funcin
tiene un valor de retorno de un tiempo especfico. Cuando escribes una
funcin debes especificar el tipo del valor de retorno. Voy a mostrarte la
sintaxis de la escritura de una funcin que toma argumentos y devuelve un
valor.
Private Function NombreFuncin(ByVal NombreArg1 As
argType1, ByVal NombreArg2 As argType2, ByVal NombreArgN As
argTypeN) As
ReturnType
Instruccin de cdigo 1
Instruccin de cdigo 2
Instruccin de cdigo
etc.
NombreFuncin=ValorDevue
lto
End Function
Observe que las palabras Private, Function y End Function son palabras
reservadas; aparecen en azul. El nombre de la funcin debe ser algo
descriptivo. La lista de argumentos y tipos de argumentos est entre
parntesis, despus del nombre de la funcin. Los argumentos estn
separados por una coma. Puedes tener tantos argumentos como desees,
pero slo un valor de retorno. Debes especificar el tipo del valor de retorno
(por ejemplo, As Integer o As String). La ltima lnea de cdigo establece el
valor de retorno. Observa que este rengln de cdigo iguala el nombre de la
funcin con el valor que va a devolver la funcin.
Recomendacin para el profesor
Observe que el valor de retorno por la
funcin se coloca en el nombre de la
funcin. El alumno ha usado funciones en
programas anteriores. Pdale que recuerde
algunas de esas funciones, como Val.



Unidad 12 Function, South Dakota Pgina 297 de 321
Un ejemplo real ayudar a explicar la sintaxis. Por favor inicia una nueva
aplicacin de Windows llamada UninFunciones. Abre la ventana de cdigo y
busca la lnea de cdigo que dice Cdigo generado por Widows Form
Designer. En la siguiente lnea agrega este cdigo:
Private Function Muliplicadores(ByVal MultUno As Integer, ByVal
MultDos As Integer) As Integer
Multiplicadores = MultUno * MultDos
End Function
Esta funcin se llama Multiplicadores, y toma dos argumentos enteros
llamados MultUno y MultDos. El tipo de retorno es especfico de acuerdo con
la lista de argumentos. En este caso, se especifica como un entero (As
Integer). La funcin contiene una sola lnea de cdigo:
Multiplicadores = MultUno * MultDos
Esta lnea de cdigo multiplica los dos argumentos y establece el valor de
retorno. El nombre de la funcin, Multiplicadores, se debe usar como nombre
del valor de retorno porque si no se generar un error.

Llamemos ahora esta funcin y usemos su valor de retorno en nuestro
programa.



Unidad 12 Function, South Dakota Pgina 298 de 321
Llamar las propias funciones
Una forma de llamar una funcin con un
valor de retorno es igualar una variable
al cdigo que llama la funcin. La
variable debe ser del mismo tipo que el
valor de retorno de la funcin.

VariableDeTipoRetorno =
NombreFuncin(argumento1,argumento2
, argumentoN)

Llamaremos esa nueva funcin Multiplicadores que acaba de crear, y
usaremos su valor de retorno en nuestro cdigo. En Form1 de tu proyecto
UnionFunciones agrega un botn de comando. Cambia la propiedad Texto
del Button1 a Multiplicar. Agrega el siguiente cdigo al evento clic del
Button1:
Dim Producto As Integer
Producto = Multiplicadores(34, 57)
MessageBox.Show(Producto)
Crea e inicia tu proyecto. Haz clic en el botn Multiplicar. Un cuadro de
mensaje muestra el producto de 34x57, que es 1938. Cmo trabaja este
cdigo? El evento clic en botn declara una variable Integer llamada
Producto. El cdigo llama la funcin Multiplicadores y le pasa los argumentos
34 y 57. La funcin Multiplicadores multiplica MultUno (34) y MultDos (57), e
iguala su valor de retorno (Multiplicadores) al producto MultUno * MultDos.
El valor de retorno es de tipo Integer. En el evento clic, el producto de la
variable entera se iguala al valor de retorno de Multiplicadores y se muestra
en un cuadro de mensaje.
Tengo una idea! Lo vamos a ser de una manera ms elegante ahora que
tenemos esta gran funcin Multiplicadores que escribiste. Agrega un
segundo botn de comando a Form1 de tu proyecto UnionFunciones. Cambia
la propiedad Texto del Button2 a MultiplicarOtraVez. Agrega el siguiente
cdigo al evento clic del Button2:
Dim Producto As Integer
Producto = Multiplicadores(Multiplicadores(2, 3),
Multiplicadores(5, 7))
MessageBox.Show(Producto)



Unidad 12 Function, South Dakota Pgina 299 de 321
Crea e inicia tu proyecto. Haz clic en el botn MultiplicarOtraVez. Aparece
el nmero 210. Aqu llamamos tres veces la funcin Multiplicadores. La
primera vez llamamos Multiplicadores con los argumentos 2 y 3. El valor de
retorno (6) se usa como primer argumento cuando llamamos Multiplicadores
la tercera vez. La segunda vez llamamos Multiplicadores con los argumentos
5 y 7. El valor de retorno (35) se usa como segundo argumento cuando
llamamos Multiplicadores la tercera vez. La tercera vez llamamos
Multiplicadores con los argumentos 6 (el valor de retorno en la primera
llamada a Multiplicadores) y 35 (el valor de retorno de la segunda llamada a
Multiplicadores).

Ves cmo puedes llamar a una funcin (aunque sea la misma) para formar
otra funcin?













Las variables que se
declaran en una funcin
usando la instruccin Dim
son variables locales. Slo
son accesibles cuando se
est ejecutando el cdigo
en la funcin. Despus que
termina la funcin, las
variables locales ya no son
accesibles.



Unidad 12 Function, South Dakota Pgina 300 de 321
12 Ejercicio 01 Conversin canadiense

Confundo la izquierda y la derecha. Uno de
estos das dar vuelta a la izquierda debiendo
darla a la derecha y terminaremos en Canad.
Por si acaso, vamos a escribir un programa de
conversin para pasar de unidades
estadounidenses a canadienses, o viceversa.

Usa el cdigo y el formato que se encuentran
en la plantilla 12_proveit01_template.
El formato se ve como ste:










Cuando se hace clic en el botn Convertir a canadiense, se convierte de
izquierda a derecha. Cuando se hace clic en el botn Convertir a EUA, se
convierte de derecha a izquierda.

Usa los siguientes factores de
conversin:

1 milla = 0.621 kilmetros
1 galn = 3.79 litros
1 dlar americano = 1.27 dlares
canadienses

Has estado estudiando funciones y subrutinas autodefinidas. En este
programa DEBERS usar funciones, de lo contrario no se te acreditar nada.
Lo hicimos fcil para que no falles. Hemos escrito ya una de las 6 funciones;
debes escribir las otras 5. Hemos suministrado todo el cdigo para los dos
botones.

Cuando tu programa funcione bien, ensaselo a tu instructor.
Recomendacin para el profesor
Este programa se puede escribir sin usar
funciones; no lo permita. Compruebe el
cdigo que usen realmente los alumnos.
Recurdeles que se examina lo que han
aprendido y no slo el resultado que
obtienen.
Conversin canadiense

Escribe un programa para convertir
a unidades canadienses y viceversa.

El archivo 12_proveit01_files
contiene instrucciones para este
ejercicio, as como los archivos de
soporte que necesitars.



Unidad 12 Function, South Dakota Pgina 301 de 321

Subrutinas y funciones incorporadas
El ambiente .NET incluye muchas subrutinas y funciones ya incorporadas,
para manejar las tareas comunes. Estas funciones fueron corregidas y
probadas con mucho cuidado y estn disponibles para todos los lenguajes
.NET. Siempre que sea posible, debes usar una subrutina o funcin
incorporada, y no escribir las tuyas propias. Eso no slo ahorra tiempo, sino
normaliza su cdigo y facilita su comprensin. Adems, hay algunas
subrutinas y funciones incorporadas que no podras escribir por s mismo. En
muchas de ellas se entra al ambiente .NET subyacente y a clases Windows
API (interfaz de programacin de aplicaciones. No querrs entrar ah!

Te mostrar algunas de las subrutinas y funciones ms usadas que estn
incorporadas en el ambiente .NET y que se pueda llegar a ellas con Visual
Basic.NET. Notars que algunas de ellas parecern familiares, porque se
usaron ya en los Ejercicio anteriores. Te proporcionamos su cdigo sin
explicarlas, as que esta es la explicacin.




Unidad 12 Function, South Dakota Pgina 302 de 321
Algunas funciones de cadena
El ambiente .NET tiene muchas funciones incorporadas que se usan para
manipular las cadenas. Esas funciones te permiten recortar caracteres
adicionales, extraer subcadenas contenidas en cadenas ms grandes y
cambiar texto a maysculas o minsculas. La mayor parte de ellas se
pueden demostrar fcilmente por medio de ejemplos.

Para todas las funciones de cadena que voy a describir, la sintaxis es la
misma. Las funciones se pueden llamar con cualquier cadena. Algunas
funciones necesitan argumentos y otras no. La mayor parte de ellas
devuelven una cadena, aunque la funcin Length() devuelve un entero. La
sintaxis general para llamar las funciones incorporadas en Visual Basic.NET,
donde ValorDevuelto y algunaCadena son variables, es la siguiente:
ValorDevuelto = algunaCadena.StringFunctionName(argumento1,
argumento2, argumentoN)
Una funcin til es Length. Devuelve la longitud de la cadena como nmero
entero. He aqu un ejemplo:
MiTexto = "TextBox1"
miLongitud = MiTexto.Length ' devuelve 8, la longitud de
"TextBox1"
Las funciones ToLower y ToUpper se usan para cambiar el texto de una
cadena a caracteres todos minsculos o todos maysculos. Examina los
siguientes ejemplos:
MiTexto = "TextBox1"
MisMays = MiTexto.ToUpper devuelve "TEXTBOX1"

MiTexto = "TextBox1"
MisMinus = MiTexto.ToLower 'devuelve "textbox1"






Unidad 12 Function, South Dakota Pgina 303 de 321

A veces se quiere estar seguro que una
cadena de texto no tenga espacios antes o
despus. Esto es, se quieres quitar todos
los espacios vacos antes y despus de la
cadena de texto. Usa la funcin Trim para
hacerlo, como se ve a continuacin:

MiTexto = " TextBox1"
miLimp = MiTexto.Trim 'devuelve
"TextBox1"

MiTexto = " TextBox1 "
MiLimp = MiTexto.Trim 'devuelve
"TextBox1"

Otra funcin til es la funcin Substring, la
cual devuelve una parte de una cadena
que estaba en una cadena ms larga.
Cuando llamas la funcin Substring, le
pasas dos argumentos Integer. El primer
argumento es la posicin inicial y el segundo la longitud de la subcadena.
Observa que la primera letra en la cadena est en la posicin 0 (no en 1) y
que la segunda letra de la cadena est en la posicin 1 (no en 2).

MiTexto = "TextBox1"
MiSub = MiTexto.Substring(0, 4) 'devuelve "Text", inicia en
la posicin 0 con longitud=4

MiTexto = "TextBox1"
MiSub = MiTexto.Substring(1, 2) 'devuelve "ex", inicia en
la posicin 1, con longitud=2

La funcin Substring toma dos argumentos enteros y devuelve una cadena
de texto. El primer argumento es la posicin inicial de la bsqueda y el
segundo la longitud de la cadena que se va a devolver. Recuerda que la
primera letra est en la posicin 0 (no en 1) y la segunda en la posicin 1
(no en 2).


Sabas que puedo hacer mi
propia pizza desde el principio,
pero as puedo hacer una
ensalada y poner esto en el
horno y listo! a comer!



Unidad 12 Function, South Dakota Pgina 304 de 321
S que te mueres por ver estas funciones de cadena en accin, as que
hagamos una pequea aplicacin que demuestre cmo funcionan. Inicia una
nueva aplicacin llamada IncorPorada. Agrega dos cuadros de texto a form1.
Pon en vaco la propiedad Texto del TextBox2. Pon la propiedad Multiline de
TextBox2 en S. Pon la propiedad Scrollbars de TextBox2 en Vertical.
Estire el Texbox2 para que su altura casi sea igual a la del formato. Agrega
un botn de comando a Form1. Agrega el siguiente cdigo al evento clic en
Button1:

Dim MiTexto As String
Dim TempText As String = ""
MiTexto = TextBox1.Text
TempText = TempText & MiTexto
TempText = TempText & vbNewLine & MiTexto.ToLower
TempText = TempText & vbNewLine & MiTexto.ToUpper
TempText = TempText & vbNewLine & MiTexto.Trim
TempText = TempText & vbNewLine & MiTexto.Substring(0, 4)
TempText = TempText & vbNewLine & MiTexto.Substring(1, 2)
TempText = TempText & vbNewLine & MiTexto.Length
TextBox2.Text = TempText

Crea e inicia su aplicacin. Haz clic en Button1. El Textbox2 muestra los
resultados obtenidos con cada funcin String, usando la propiedad de texto
de TextBox1 como la cadena de texto. Ahora cambia el texto en TextBox1 y
haz clic de nuevo en el button1, y clic de nuevo en el button1.
Recomendacin para el profesor
El cdigo de arriba tendr ms sentido si el alumno
lo pone en un programa y recorre lnea por lnea
usando las herramientas de depuracin.



Unidad 12 Function, South Dakota Pgina 305 de 321
Generador de nmeros aleatorios
Muchos programas necesitan generar nmeros aleatorios. Esto sucede en
especial en aplicaciones como juegos que implican sucesos de suerte, como
lanzar una moneda o los dados. El ambiente .NET tiene una clase
System.Random que tiene las funciones para generar nmeros aleatorios.
Ahora te pido que escribas algn cdigo que simule el lanzamiento de un
dado de seis caras. En Form1 de tu proyecto IncorPorado agrega un botn
de comando. Cambia la propiedad Texto del Button2 a TiraLos. Agrega el
siguiente cdigo al evento clic del Button2:
Dim miGeneradorAleat As System.Random
Dim miEnteroAleat As Integer
miGeneradorAleat = New System.Random
miEnteroAleat = miGeneradorAleat.Next(1, 7)
MessageBox.Show(miEnteroAleat)
Crea e inicia tu aplicacin. Haz clic en el botn TiraLos. Un cuadro de
mensaje muestra un nmero aleatorio entre 1 y 6. Haz clic de nuevo en el
botn. Se muestra otro nmero aleatorio entre 1 y 6.

Cmo trabaja este cdigo? Primero declaramos una variable de nombre
miGeneradorAleat, de tipo System.Random. Despus declaramos una
variable llamada miEnteroAleat del tipo entero. La variable
miGeneradorAleat se iguala a un nuevo objeto de System.Random, usando
la palabra reservada New. Para generar un nmero aleatorio entre 1 y 6,
llamamos la funcin Next() de miGeneradorAleat. Cuando llamamos la
funcin Next() pasamos los argumentos 1 y 6, que son los lmites inferior y
superior de los nmeros aleatorios que deseamos generar. La funcin Next()
devuelve un entero aleatorio entre 1 y 6, que se asigna a la variable
miEnteroAleat. La ltima lnea de cdigo muestra el nmero aleatorio en un
cuadro de mensaje.








Unidad 12 Function, South Dakota Pgina 306 de 321
Funciones de conversin
Visual Basc.NET tiene dos funciones de conversin que pueden ser tiles
cuando se trabaja con nmeros; son la funcin Val y la funcin Int. Veamos
primero la funcin Val. sta se usa para convertir una cadena en un nmero.
Si la cadena contiene un punto decimal, Val devuelve un nmero de tipo
Double. Si la cadena no contiene un punto decimal, Val devuelve un nmero
del tipo entero. Con frecuencia se usa Val para convertir la propiedad Texto
de un cuadro de texto en un nmero que se pueda usar en clculos. Veamos
algunos ejemplos que usan la funcin Val:
Dim MiInt As Integer
MiInt = Val("123") + 123 'decuelve 246

Dim MiDoble As Double
MiDoble = Val("123.22") + 123 'devuelve 246.22

La funcin Int devuelve la parte entera de un nmero, esto es, la que est a
la izquierda del punto decimal. Ve estos ejemplos de la funcin Int, para ver
cmo trabaja:

Dim MiEnt As Integer
MiEnt = Int(123) 'devuelve 123
MiEnt = Int(123.45) 'devuelve 123






Unidad 12 Function, South Dakota Pgina 307 de 321
Subrutinas y funciones en J# y en C#
Puedes crear tus propias funciones tambin en C# y en J#. Puedes crear
funciones que necesiten pasarles argumentos y funciones que devuelvan
valores. No hay equivalente a una subrutina en J# o C#; slo se usan
funciones. Tampoco hay palabra reservada Function en C# o en J#. Las
funciones se declaran con una sintaxis especial, y por el orden de ciertas
palabras reservadas. Pidamos a Dirk y a Len que expliquen las funciones en
estos dos lenguajes.
Como dijo Cliff, en C# no hay palabras reservadas Sub ni
Function. En Visual Basic.NET se manejan de diferente manera
las subrutinas y las funciones. En C# no se distingue una
subrutina de una funcin. Veamos el cdigo para declarar una
funcin en C#, que tome dos argumentos y devuelve un valor
entero.

private static int Sumadoras_C(int sumaUno, int sumaDos)
{
int intSuma=0;
intSuma = sumaUno + sumaDos;
return intSuma;
}
Fjate que no usamos la palabra reservada Function como lo hicimos en
Visual Basic.NET. Las palabras reservadas private y static indican que
esta funcin slo se puede llamar desde el cdigo en Form1. La palabra
reservada int (despus de static) indica el tipo del valor de retorno (en
este caso un entero). Los dos argumentos que se deben suministrar cuando
se llama la funcin estn entre parntesis despus del nombre de la funcin,
Sumadoras_C. Ambos argumentos sumaUno y sumaDos son del tipo int.
Tambin nota la palabra reservada return. Indica el valor que debe
devolver la funcin (en este caso intSuma).

Podemos llamar a la funcin Sumadoras_C con el siguiente programa en C#,
que se parece a la forma en que llamamos a una funcin en Visual
Basic.NET:
int laSuma=0;
laSuma = Sumadoras_C(3,4);
MessageBox.Show(System.Convert.ToString(laSuma));



Unidad 12 Function, South Dakota Pgina 308 de 321
Llegada a Function, SD

No puedo creer que estemos ya en Function, South Dakota! es el destino en
nuestro viaje Reglas de Cdigo. Estoy seguro que fue divertido. A Nikki y a
m de veras nos gust mostrarte cmo escribir cdigo en Visual Basic.NET y
Cliff y Len aprovecharon la oportunidad de mostrar lo que saben de J# y C#.
Ahora podrs determinar algunas de las semejanzas y diferencias entre
todos estos lenguajes.

En el camino a nuestro destino te enseamos cmo escribir y llamar a tus
propias subrutinas y funciones, y usar algunas que ya estn incorporadas en
el ambiente .NET. Recuerda: usa las subrutinas cuando no tengas un valor
de retorno, y las funciones cuando s tengas un valor para devolver. Puedes
pasar argumentos a las subrutinas y las funciones cuando las llames. Los
argumentos son usados por el cdigo dentro de la subrutina o la funcin. No
se requieren los argumentos si las variables se definen en forma global
esto es, si se declaran antes de la primera subrutina.

Nos veremos despus. Espero que podamos hacer otro viaje como este en
alguna oportunidad.

Ah! No crees que nos vamos sin hacer un ltimo Ejercicio, no es as?




Unidad 12 Function, South Dakota Pgina 309 de 321
12 Ejercicio 02 Adivino

En realidad no creo que podamos ver el futuro
pero es divertido creer. Escribamos un programa
para contestar como un adivino lo hara.

Usa el cdigo y la forma que se encuentran en la
plantilla 12_proveit02_template.
El formato se ve como sigue:




Cuando se hace clic en el
botn Buscar respuesta, usa
el mtodo SubString para
contar cada letra que sea
vocal (A, E, I, O, U) en la
pregunta. Recuerda que
cuenta el tamao: a y A
son distintas. Comprueba
que se haya tecleado una pregunta. Tambin recuerda los bucles.

Recuerda que el mtodo Length devuelve la cantidad de caracteres de una
cadena. Los caracteres se numeran comenzando en cero, as que si hay 10
caracteres, estn en las posiciones 0 a 9. Recuerda que en Visual Basic.NET,
todo lo que use un nmero puede usar tambin una variable.

Con base en la cantidad de vocales, genera una respuesta a la pregunta. Usa
tu imaginacin para crear las respuestas. S y No se valen, pero son
aburridos. Debes tener cuando menos cinco respuestas diferentes. Se
permiten ms.

Una vez que tu programa funcione bien, mustraselo a tu instructor.
Adivino
Este es un programa para
contestar preguntas como lo
hara un adivino.
El archivo
12_proveit02_files contiene
instrucciones para este
ejercicio, y los archivos de
soporte que necesitars.



Unidad 12 Function, South Dakota Pgina 310 de 321
Un miembro del comit del rally
ya viene con un cheque por un
milln de dlares! No, ms bien
parece que es el ltimo reto.


12 Reto El gato y el ratn

Es el turno del reto final. El juego del gato y del
ratn es bastante ms difcil que los retos
anteriores. Como llegaste hasta aqu, sabemos
que puedes escribir este programa, donde un
gato caza a un ratn.

Usa la plantilla 12_challenge_template, que
tiene una forma como esta:



Supn que la pantalla
tiene 600 pixeles de ancho
y 300 de alto.

Mueve al gato y al ratn en caminos aleatorios cambiando el lugar de los
cuadros de imagen que tienen las imgenes del gato y del ratn, sumando
un nmero positivo o negativo a las coordenadas actuales X y Y.

Hay un evento Cronmetro que se ejecuta cada de segundo. Dentro de
este evento mueve al gato y al ratn. No lo puedes hacer en forma directa.
Para mover un cuadro de imagen debes calcular una coordenada (un
nmero) X y una Y, y luego usar esta lnea de cdigo:

Mouse.Location = New Point(X, Y)
Recomendacin para el profesor
Como era de esperarse, este examen es ms difcil
que cualquier otro en este curso. El alumno no debe
tratar de hacer de una vez todo el programa sino slo
una parte, como por ejemplo, mover al ratn.
Despus debe detener al ratn en un borde, y as
sucesivamente.
Ratn

Vas a escribir un programa
donde un gato persigue a un
ratn.

El archivo
12_challenge_files contiene
instrucciones para este
examen, y los archivos de
soporte que necesitas.



Unidad 12 Function, South Dakota Pgina 311 de 321
Despus de mover al gato y al ratn, ve si:

el ratn escap;
el gato atrap al ratn;
el ratn debe cambiar de direccin, porque est cerca del gato;
el gato o el ratn estn cerca del borde de la pantalla.

El gato es un cuadro de imagen llamado Cat, y no el PictureBox1.

El ratn est en un cuadro de imagen llamado Mouse, y no en el
PictureBox2. Si el gato est a menos de 20 pixeles del ratn, medidos desde
la esquina superior derecha del cuadro de imagen, quiere decir que atrap al
ratn. Si el ratn est a menos de 20 pixeles de algn cuadro de texto
negro, medidos desde la esquina superior izquierda del cuadro de texto, el
ratn escapa. En cualquiera de estos casos detn el reloj.

Si el ratn est a menos de 40 pixeles del gato, el ratn cambia de
direccin.

El agujero uno est en (50, 150), el agujero dos est en (530, 150).

Hay varias cosas en la plantilla que te ayudarn a escribir este programa.

La funcin HowFar devuelve la distancia entre dos puntos, si suministras las
coordenadas X y Y de los puntos. Por ejemplo,

Distance = HowFar(Cat.Location.X, Cat.Location.Y,
Mouse.Location.X,_ Mouse.Location.Y)

La funcin NewChg devuelve un nmero aleatorio que puede ser positivo o
negativo. Representa la cantidad (distancia) que deben moverse el ratn o el
gato en cada turno. Por ejemplo,

CatXChg = NewChg()


En el cdigo de evento clic en el botn Nuevo juego asigna un lugar aleatorio
inicial para el gato y el ratn. Asigna a cada uno un incremento X y uno Y.
Pon en marcha el reloj.




Unidad 12 Function, South Dakota Pgina 312 de 321
Recomendacin: muchos programadores prefieren escribir un pedazo de
cdigo y probarlo, escribir un pedazo ms y probar de nuevo. Debes escribir
este programa como sigue:

Poner el gato y el ratn.
Mover el gato.
Ver los lmites del gato.
Mover el ratn.
Ver los lmites del ratn.
Ver si escap el ratn.
Ver si el gato atrap al ratn.
Ver si el ratn se acerca al gato.

Despus de cada paso, prueba tu cdigo.

Una vez que tu programa funcione bien, mustraselo a tu instructor.

Extensin / desviacin

Registra en qu direccin se dirige la imagen. Invierta la direccin si el gato
o el ratn cambia de direccin. Usa lo siguiente, o algo parecido:

Cat.Image.RotateFlip(RotateFlipType.Rotate180FlipX)

Imagina en qu direccin se mueve el ratn, y entonces cambie los
incrementos del gato para hacer que el gato vaya en direccin del ratn. Por
ejemplo, si el gato tiene una coordenada X de 450 y el ratn est en 250, el
gato debe moverse en una direccin negativa.

Agrega un perro que persiga al gato.




Unidad 12 Function, South Dakota Pgina 313 de 321

Valores incompatibles de datos
Informacin que pasa a la subrutina
para que la use.
El conteo de la cantidad de
instrucciones de cdigo.
NombreSubrutina()
ExecuteNombreSubrutina()
Go to NombreSubrutina()
Qu es un argumento de una subrutina?
Cmo se hace para que se ejecute
una subrutina?
Cmo se seleccionan las letras
BC de la cadena =ABCD?
Cmo se convierte la cadena de una
variable X tipo cadena, en un nmero?



Unidad 12 Function, South Dakota Pgina 314 de 321


Caramba! Estos tipos s que conocen su cdigo. Estoy seguro
que con su ayuda aprendiste mucho de Visual Studio.Net en
este viaje. Y recuerda: REGLAS DE CDIGO! Hasta la
prxima....
Reglas del Cdigo Control de Tareas de Alumnos
Pgina 315 de 321
No. de tarea
Titulo de la
tarea Descripcin
Fecha
compromiso
Terminado
01 Ejercicio 01
Computacin
cotidiana
Mencionar por lo menos cuatro
ejemplos que demuestran que
las computadoras forman parte
de la vida cotidiana.

01 Ejercicio 02
Trabajos de
informtica
El uso de Internet o de otros
recursos determina el salario
inicial de los profesionistas de
la tecnologa de la informacin
en tu localidad.

01 Reto
Ninguno
No hay Reto para la unidad 01.
02 Ejercicio 01
Hello World Escribir un programa llamado
Hello World.

02 Ejercicio 02
Mi nombre es Escribir un programa llamado
Mi Nombre es.

02 Reto
Comida rpida Desplegar imgenes de comida
rpida.

03 Ejercicio 01
Empacar para el
viaje
Escribir un seudo cdigo para
describir los pasos requeridos
para empacar para tu viaje.

03 Ejercicio 02
Lavar los trastes Escribir un seudo cdigo para
describir los pasos requeridos
para lavar los trastes

03 Reto
Pecera Contar el nmero de peces de
cada color, luego calcular que
porcentaje representa cada
uno.

04 Ejercicio 01
Quin es quin Crear un formato y ajustar las
propiedades del objeto
colocado en el formato usando
la ventana. Propiedades para
que puedas aprender ms
acerca de tus compaeros de
viaje.

04 Ejercicio 02
El precio de la
Pizza
Ayudar a los clientes a evaluar
el precio de su pizza.

04 Reto
Gato Completar el programa para el
juego Gato.

05 Ejercicio 01
Arco iris
Crear un arco iris.
05 Ejercicio 02
Medidor de viaje Ajustar un control de
desplazamiento usando el
cdigo.

05 Reto
Flores Ocultar y mostrar imgenes de
flores usando el cdigo.

06 Ejercicio 01
Pedazo de Pi Mostrar el numero Pi en
diferentes formatos.

06 Ejercicio 02
Rana saltarina Escribir un programa de juego
de Rana saltarina.

06 Reto
Bicho Encontrar 10 errores en un
programa.

Reglas del Cdigo Control de Tareas de Alumnos
Pgina 316 de 321


No. de tarea Titulo de la tarea Descripcin
Fecha
compromiso
completado
07 Ejercicio 01
Costo de la gasolina Calcular el costo de la
gasolina.

07 Ejercicio 02
Depurar un programa Usar herramientas de
depuracin de Visual
Studio.NET.

07 Reto
Calculadora de
volumen
Calcular el volumen de un
cubo y de una esfera.

08 Ejercicio 01
Ideas de regalos Sugerir ideas de regalo para
los vendedores.

08 Ejercicio 02
Programacin de una
encuesta de
aptitudes
Escribir un programa de
encuesta para ayudar a
otros estudiantes a decidir si
deben tomar un curso de
programacin.

08 Reto
Zap Escribir un juego de Arcade
donde se trate de hacer clic
sobre un objetivo mvil.

09 Ejercicio 01
Puntuaciones de golf Calcular las puntuaciones de
cuatro jugadores de golf.

09 Ejercicio 02
Cuadrado mgico Juego del cuadrado mgico.
Construir un cuadro mgico
de 3 x 3.

09 Reto
Lanzar la moneda Dejar que la computadora
lance una moneda varias
veces.

10 Ejercicio 01
Contar conejos Cunto podra crecer la
poblacin de conejos si
vivieran para siempre?

10 Ejercicio 02
Nmeros primos
Calcular nmeros primos.
10 Reto
Roth IRA Escribir una calculadora de
Roth IRA.

11 Ejercicio 01
Tiro al blanco Tratar de dar en el blanco
en tiro con arco.

11 Ejercicio 02
En seguida Contar lanzamientos de
moneda idnticos
consecutivos.

11 Reto
Calculadora GPA Calcular un promedio de
calificaciones.

12 Ejercicio 01
Canadiense Convertir las unidades
canadienses de medida a
americanas y viceversa.

12 Ejercicio 02
Adivinador Con base en el nmero de
vocales en la pregunta,
generar una respuesta
aleatoria.

12 Reto
El gato y el ratn El gato persigue al ratn
hasta que lo atrapa o el
ratn escapa.

Reglas del Cdigo Control de Tareas de Alumnos
Pgina 317 de 321
Seguimiento de tareas del alumno del curso Reglas del Cdigo
No. de tarea Titulo de la tarea Fecha
compromiso
Terminado
01 Ejercicio 01 Computacin cotidiana
01 Ejercicio 02 Trabajos de informtica
01 Reto Nada
02 Ejercicio 01 Hola, mundo
02 Ejercicio 02 Mi nombre es
02 Reto Comida rpida
03 Ejercicio 01 Empacar para el viaje
03 Ejercicio 02 Lavar los platos
03 Reto Pecera
04 Ejercicio 01 Quin es quin
04 Ejercicio 02 Precio de pizza
04 Reto El gato
05 Ejercicio 01 Arco iris
05 Ejercicio 02 Medidor de viaje
05 Reto Flores
06 Ejercicio 01 Parte de Pi
06 Ejercicio 02 Salto de rana
06 Reto Bichos
07 Ejercicio 01 Costo de la gasolina
07 Ejercicio 02 Corregir un programa
07 Reto Calculadora de volumen
08 Ejercicio 01 Ideas de regalo
08 Ejercicio 02
Encuesta de aptitud en
programacin

08 Reto Zap
09 Ejercicio 01 Marcadores de golf
09 Ejercicio 02 Cuadrado mgico
09 Reto Lanzar la moneda
10 Ejercicio 01 Contar conejos
10 Ejercicio 02 Nmeros primos
10 Reto Roth IRA
11 Ejercicio 01 Tiro en blanco
11 Ejercicio 02 En seguida
11 Reto
Calculadora del promedio de
calificaciones

Reglas del Cdigo Control de Tareas de Alumnos
Pgina 318 de 321
12 Ejercicio 01 Conversin a canadiense
12 Ejercicio 02 Adivino
12 Reto El gato y el ratn

Reglas del Cdigo Control de Tareas de Alumnos
319
Reglas del Cdigo Introduccin a la programacin con Visual Studio.NET

Nombre de la tarea Descripcin Habilidades requeridas
01
Ejercicio
01 Computacin cotidiana
Mencionar por lo menos cuatro
ejemplos que demuestran que
las computadoras forman parte
de la vida cotidiana.
Internet Browser
01
Ejercicio
02 Trabajos de informtica
El uso de Internet o de otros
recursos determina el salario
inicial de los profesionistas de la
tecnologa de la informacin en
tu localidad.
Internet Browser
01 Reto Ninguno No hay Reto para la unidad 01. Ninguna
02
Ejercicio
01 Hello World
Escribir un programa llamado
Hello World.
Visual Studio
02
Ejercicio
02 Mi nombre es
Escribir un programa llamado Mi
Nombre es.
Visual Studio
02 Reto Comida rpida
Desplegar imgenes de comida
rpida.
Aadir botones a un
formato. Se da el
cdigo.
03
Ejercicio
01 Empacar para el viaje
Escribir un seudo cdigo para
describir los pasos requeridos
para empacar para tu viaje.
Procesador Word.
Pensamiento lgico.
03
Ejercicio
02 Lavar los trastes
Escribir un seudo cdigo para
describir los pasos requeridos
para lavar los trastes
Procesador Word.
Pensamiento lgico.
03 Reto Pecera
Contar el nmero de peces de
cada color, luego calcular que
porcentaje representa cada
uno.
Estudiar cdigo de
programa. Identificar
comentarios. Comparar
con el pseudocdigo.
04
Ejercicio
01 Quin es quin
Crear un formato y ajustar las
propiedades del objeto colocado
en el formato usando la
ventana. Propiedades para que
puedas aprender ms acerca de
tus compaeros de viaje.
Colocar objetos en un
formato usando Visual
Studio. Ajustar
propiedades de objeto.
Se incluye el cdigo.
04
Ejercicio
02 El precio de la Pizza
Ayudar a los clientes a evaluar
el precio de su pizza.
Colocar objetos en un
formato usando Visual
Studio. Ajustar
propiedades de objeto.
Se incluye el cdigo.
04 Reto Gato
Completar el programa para el
juego Gato.
Colocar objetos en un
formato usando Visual
Studio. Ajustar
propiedades de objeto.
Se incluye el cdigo.
Reglas del Cdigo Control de Tareas de Alumnos
320
05
Ejercicio
01 Arco iris Crear un arco iris.
Ajustar propiedades de
objeto. Se incluye la
mayor parte del cdigo.
05
Ejercicio
02 Medidor de viaje
Ajustar un control de
desplazamiento usando el
cdigo.
Ajustar propiedades de
objeto. Se incluye la
mayor parte del cdigo.
05 Reto Flores
Ocultar y mostrar imgenes de
flores usando el cdigo.
Ajustar propiedades de
objeto. Se incluye la
mayor parte del cdigo.
Nombre
de la
tarea Descripcin habilidades requeridas
06
Ejercicio
01 Pedazo de Pi
Mostrar el numero Pi en
diferentes formatos.
Definir variables.
Asignar valores a las
variables y objetos de
formato.
06
Ejercicio
02 Rana saltarina
Escribir un programa de juego
de Rana saltarina.
Asignar valores a las
variables y objetos de
formato.
06 Reto Bicho
Encontrar 10 errores en un
programa.
Depurar un programa.
Se incluye el cdigo.
07
Ejercicio
01 Costo de la gasolina Calcular el costo de la gasolina.
Usar instrucciones de
asignacin y operadores
aritmticos.
07
Ejercicio
02 Depurar un programa
Usar herramientas de
depuracin de Visual
Studio.NET.
Depurar un programa
usando herramientas
Visual Studio .Net. Se
incluye el cdigo.
07 Reto Calculadora de volumen
Calcular el volumen de un cubo
y de una esfera.
Usar instrucciones de
asignacin y operadores
aritmticos.
08
Ejercicio
01 Ideas de regalos
Sugerir ideas de regalo para los
vendedores.
Usar instrucciones
condicionales simples.
08
Ejercicio
02
Programacin de una
encuesta de aptitudes
Escribir un programa de
encuesta para ayudar a otros
alumnos a decidir si deben
tomar un curso de
programacin.
Usar instrucciones
condicionales simples.
08 Reto Zap
Escribir un juego de Arcade
donde se trate de hacer clic
sobre un objetivo mvil.
Usar instrucciones
condicionales simples,
un objeto
temporalizador, y
botones de radio. Mover
un objeto de imagen.
09
Ejercicio
01 Puntuaciones de golf
Calcular las puntuaciones de
cuatro jugadores de golf.
Usar instrucciones
condicionales
complejas y operadores
aritmticos.
Reglas del Cdigo Control de Tareas de Alumnos
321
09
Ejercicio
02 Cuadrado mgico
Juego del cuadrado mgico.
Construir un cuadro mgico de 3
x 3.
Usar instrucciones
condicionales
complejas y operadores
aritmticos.
09 Reto Lanzar la moneda
Dejar que la computadora lance
una moneda varias veces.
Usar instrucciones
condicionales complejas
y operadores
aritmticos.
10
Ejercicio
01 Contar conejos
Cunto podra crecer la
poblacin de conejos si vivieran
para siempre?
Bucles For Next.
Instrucciones
condicionales.
10
Ejercicio
02 Nmeros primos Calcular nmeros primos.
Bucles For Next.
Instrucciones
condicionales.
10 Reto Roth IRA
Escribir una calculadora de Roth
IRA.
Bucles For Next.
Instrucciones
condicionales.
11
Ejercicio
01 Tiro al blanco
Tratar de dar en el blanco en
tiro con arco.
Bucles indefinidos Do
Until.
11
Ejercicio
02 En seguida
Contar lanzamientos de moneda
idnticos consecutivos.
Bucles indefinidos Do
Until.
Nombre
de la
tarea Descripcin habilidades requeridas
11 Reto Calculadora GPA
Calcular un promedio de
calificaciones.
Bucles indefinidos Do
Until. Operadores
aritmticos.
12
Ejercicio
01 Canadiense
Convertir las unidades
canadienses de medida a
americanas y viceversa.
Usar funciones
integradas Visual Basic
.Net.
12
Ejercicio
02 Adivinador
Con base en el nmero de
vocales en la pregunta, generar
una respuesta aleatoria.
Usar funciones
integradas Visual Basic
.Net. Escribir sus
propias funciones.
12 Reto El gato y el ratn
El gato persigue al ratn hasta
que lo atrapa o el ratn escapa.
Usar habilidades de
todas las secciones del
curso.