Visual Basic Net

321
Page 1 of 321 REGLAS DEL CÓDIGO

Transcript of Visual Basic Net

Page 1: Visual Basic Net

Page 1 of 321

REGLAS DEL CÓDIGO

Page 2: Visual Basic Net

Page 2 of 321

¡Hola! ¡Bienvenido a Reglas del Código! Estas a punto de emprender una aventura de aprendizaje a campo traviesa. Acompaña a Nikki y a Cliff mientras manejan la camper en el rally de carretera Reglas del Código. Sus buenos amigos, Jen y Dirk, también participan – ¡y tú estás 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 enseñarán a programar en Visual Basic .Net usando Visual Studio .Net de

Microsoft. En este viaje aprenderás mucho de Nikki y Cliff. Ambos son guerreros del código Visual Basic .Net. Ellos te pondrán en camino presentándote la programación con Visual Studio .Net y antes de que te des cuenta escribirás tu primer programa, el tradicional Hello World. Ese es tan solo el principio. Pronto diseñarás formatos, añadirás elementos como botones y cuadros de texto y configurarás sus propiedades. Entonces comienza la diversión. Nikki y Cliff te enseñarán las bases de la programación: cómo usar variables, instrucciones de decisión, bucles y funciones. Les darás vida a los formatos y botones. Y entonces estarás programando. ¿Emocionado? Entonces ¡vámonos! Esta es una lista de todos los destinos a los que viajarás en el rally de carretera Reglas del Código. � Everywhere, Wisconsin (programación y programadores) � Ideal, Illinois (Visual Studio .Net y tu primer programa) � Pseudo, Pennsylvania (planeación y diseño 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 Código te someterá a una pequeña prueba para que puedas presumir lo que has aprendido en el trayecto. También tendrán algunos retos interesantes para que los codifiques. Estos son proyectos que querrás mostrarle a tus amigos. ¿Listo? ¡Vamonos!. Plan del curso Unidad 0: Reglas del Código • Conducir la camper • El Mapa de ruta y los destinos • Los aparatos electrónicos de Nikki

Unidad 1: La programación se encuentra en todo • Los programas en la vida cotidiana

Page 3: Visual Basic Net

Page 3 of 321

• Lo que hacen los programadores • ¿Qué es un programa? • Opciones de lenguajes de programación • Sintaxis del lenguaje de programación • Sintaxis de Visual Basic.Net

Unidad 2: Visual Studio .Net e IDE • Visual Studio.Net • Iniciar Visual Studio • Usar Visual Studio.Net • Página de inicio de IDE • Mi perfil • Crear un proyecto nuevo • Ventana de proyecto nuevo • Ventana de diseño de formato • Ventana de cuadro de herramientas • Mover y redimensionar un botón • Agregar un código al botón • Crear tu solución • Creación exitosa • Creación fallida • Iniciar tu programa • Desplegar el cuadro de mensaje • La ventana de salida • Guardar tu proyecto • Archivos y carpetas de solución para Visual Basic

Unidad 3: Pseudo-código • Tipos de instrucciones de código • ¿Qué es un pseudo-código? • Comentarios de código • Pseudo-código como comentario • Sangría y espacio en blanco

Unidad 4: Formatos • Aplicaciones de Windows • Diseño del formato • Uso del formato • Propiedades del formato • Controles y propiedades del formato • Desencadenar eventos • Cuadros de mensaje

Unidad 5: Propiedades y métodos • Propiedades • Dónde inicia el código • Leer propiedades con el código • Configurar propiedades con el código

Page 4: Visual Basic Net

Page 4 of 321

• IntelliSense y notación de punto • Métodos • Llamar métodos con el código

Unidad 6: Asignaciones y variables • Asignaciones • Tipos • Tipos primitivos • ¿Qué son las variables? • ¿Por qué usar variables? • Declarar variables • ¿Dónde declaras las variables? • Inicializar las variables • Usar las variables • Entenderse con las variables • Otros tipos de variables

Unidad 7: Operadores • Operadores • Operadores aritméticos • Operadores de cadena • El operador Not • Usar operadores en instrucciones de asignación • Operadores aritméticos en acción • El operador Not y los operadores concatenados en acción • Depuración del código • Entrar al código

Unidad 8: If sencillo • Tomar decisiones • Lógica booleana • Operadores booleanos • Operadores de comparación • Ejecutar un código condicional • Instrucciones If…Then • Más de una instrucción If…Then • Más de una oración condicional • Opción múltiple • Operadores booleanos en el código

Unidad 9: If complejo • Ampliación de If….Then • Instrucciones If…Then anidados • Condiciones contrarias • If…Then…Else • Entrar a una instrucción If…Then…Else • Instrucciones If en C# y J# • Operadores booleanos y operadores de comparación en C# y J#

Page 5: Visual Basic Net

Page 5 of 321

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

Unidad 11: Bucles infinitos • Bucles infinitos • Bucle Do While… • Entrar al Bucle Do While… • Bucle Do Until… • Bucles en acción • 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 números aleatorios • Funciones de conversión • Subrutinas y funciones en J# y

Page 6: Visual Basic Net

Page 6 of 321

Lista de tareas de Reglas del Código No. de tarea

Titulo de la tarea Descripción

01 Ejercicio 01 Computación cotidiana

Mencionar por lo menos cuatro ejemplos que demuestran que las computadoras forman parte de la vida cotidiana.

01 Ejercicio 02 Trabajos de informática

El uso de Internet o de otros recursos determina el salario inicial de los profesionistas de la tecnología de la información 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 rápida Desplegar imágenes de comida rápida. 03 Ejercicio 01

Empacar para el viaje

Escribir un seudo código para describir los pasos requeridos para empacar para tu viaje.

03 Ejercicio 02 Lavar los trastes Escribir un seudo código para describir los pasos requeridos para lavar los trastes

03 Reto Pecera Contar el número de peces de cada color, luego calcular que porcentaje representa cada uno.

04 Ejercicio 01 Quién es quién

Crear un formato y ajustar las propiedades del objeto colocado en el formato usando la ventana. Propiedades para que puedas aprender más acerca de tus compañeros 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 código.

05 Reto Flores Ocultar y mostrar imágenes de flores usando el código.

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: Visual Basic Net

Page 7 of 321

No. de tarea Titulo de la tarea Descripción 07 Ejercicio 01 Costo de la gasolina Calcular el costo de la gasolina. 07 Ejercicio 02

Depurar un programa

Usar herramientas de depuración 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

Programación de una encuesta de aptitudes

Escribir un programa de encuesta para ayudar a otros alumnos a decidir si deben tomar un curso de programación.

08 Reto Zap Escribir un juego de Arcade donde se trate de hacer clic sobre un objetivo móvil.

09 Ejercicio 01

Puntuaciones de golf

Calcular las puntuaciones de cuatro jugadores de golf.

09 Ejercicio 02 Cuadrado mágico

Juego del cuadrado mágico. Construir un cuadro mágico de 3 x 3.

09 Reto Lanzar la moneda Dejar que la computadora lance una moneda varias veces.

10 Ejercicio 01 Contar conejos

¿Cuánto podría crecer la población de conejos si vivieran para siempre?

10 Ejercicio 02 Números primos Calcular números 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 idénticos 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 número de vocales en la pregunta, generar una respuesta aleatoria.

12 Reto El gato y el ratón El gato persigue al ratón hasta que lo atrapa o el ratón escapa.

Page 8: Visual Basic Net

Page 8 of 321

Seguimiento de tareas del estudiante de Reglas de código No. de tarea Titulo de la tarea Fecha

compromiso Completado

01 Ejercicio 01 Computación cotidiana 01 Ejercicio 02 Trabaja? 01 Exámen Ninguno 02 Ejercicio 01 Hello World 02 Ejercicio 02 MiNombreEs 02 Exámen Comida rápida 03 Ejercicio 01 Empacar para el viaje 03 Ejercicio 02 Lavar los trastes 03 Exámen Pecera 04 Ejercicio 01 Quién es quién 04 Ejercicio 02 El precio de la pizza 04 Exámen Gato 05 Ejercicio 01 Arco iris 05 Ejercicio 02 Medidor de viaje 05 Exámen Flores 06 Ejercicio 01 Pedazo de Pi 06 Ejercicio 02 Salta rana 06 Exámen Splat 07 Ejercicio 01 Gas Cost 07 Ejercicio 02 Depurar un programa 07 Exámen Calculadora de volumen 08 Ejercicio 01 Ideas para regalos 08 Ejercicio 02

Encuesta de aptitudes de programación

08 Exámen Zap 09 Ejercicio 01 Resultados de golf

Page 9: Visual Basic Net

Page 9 of 321

09 Ejercicio 02 Cuadrado mágico 09 Exámen Volado 10 Ejercicio 01 Contar conejos 10 Ejercicio 02 Números primos 10 Exámen Roth IRA 11 Ejercicio 01 Blanco 11 Ejercicio 02 En fila 11 Exámen Calculadora GPA 12 Ejercicio 01 Conversión canadiense 12 Ejercicio 02 El adivino 12 Exámen El gato y el ratón

Page 10: Visual Basic Net

Unidad 1 - Everywhere, Wisconsin Pág. 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 programación Sintaxis del lenguaje de programación Sintaxis de Visual Basic.NET Llegada a Everywhere

Page 11: Visual Basic Net

Unidad 1 - Everywhere, Wisconsin Pág. 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 máquinas de escribir. ¡Una vez tuvo un error en su programa y los robots hicieron todas estas máquinas 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 todavía más sorprendente cuantas se han diseñado o probado por medio de programas de computadora. No sólo las calculadoras, los robots y las computadoras usan programas. Muchos aparatos y artículos de entretenimiento e incluso coches son programables.

Page 12: Visual Basic Net

Unidad 1 - Everywhere, Wisconsin Pág. 12 de 321

Esta camper, por ejemplo. Contiene como un millón de elementos que probablemente fueron diseñados en una computadora. Es probable que la forma aerodinámica fue modelada y probada en un túnel de viento simulado en una computadora. Los asientos, la cocina y las camas probablemente fueron diseñados en una computadora y después 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 fábrica de mi padrastro. Hay mucho más, como el sistema de posicionamiento global, el microondas, y el estéreo en la camper. Todos se pueden programar y ajustar por medio de un control remoto. Esto significa que contienen programas para controlar lo que efectúan cuando oprimes un botón. Estos programas están permanentemente grabados en los procesadores que contienen las tarjetas electrónicas, pero primero alguien tuvo que escribirlos. Además, piensa en la música electrónica 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 cálculo 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 información, filtrarla, y presentarla de diferentes maneras. Y muchos se escriben para investigar problemas difíciles como la inteligencia artificial, el calentamiento global, y la genética. Además hay todo tipo de programas especializados que se usan para diseñar partes, dibujar gráficos, 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 línea, y de realidad virtual. Lo increíble es que hay personas que escriben programas sólo por diversión. Un profesor que tenía en la preparatoria escribió un programa que creaba automáticamente nuestra tarea de matemáticas. Su hermana escribió un programa que compone versos haiku y que los traduce al islandés. Leí un artículo de un hombre que construyó un robot Lego y lo programó para que

Costuras de las llantas Horno de micro ondas

Diseño de la Aire acondicionado carrocería

Código integrado

Diseño habilitado por código

Page 13: Visual Basic Net

Unidad 1 - Everywhere, Wisconsin Pág. 13 de 321

armara el cubo de Rubik. No se por qué lo hizo, tal vez fue sólo para demostrarse que lo podía hacer. Quiero programar video juegos tridimensionales en línea e interactivos, o tal vez escribir programas de actuaría para analizar las estadísticas de mortalidad para una compañía de seguros. Creo que tengo un ejercicio sobre programación de computadora en mi organizador personal.

01 Ejercicio 01 Computación 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

Recomendación para el profesor Lego y el cubo de Rubik http://jpbrown.i8.com/cubesolver.html

Computación cotidiana En este ejercicio explorarás algunas formas en las que la programación 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, quiénes serían los músicos, qué canciones tocaríamos y en dónde tocaríamos.

Page 14: Visual Basic Net

Unidad 1 - Everywhere, Wisconsin Pág. 14 de 321

sientan frente a la computadora y tecleen códigos mientras comen pizza fría y toman refrescos cafeínados toda la noche. Aunque ese es la profesión de mis sueños, hay mucho más que eso detrás de un programador. Los buenos programas no se hacen de la noche a la mañana. Se requiere mucha planeación cuidadosa y trabajo de diseño para crear un programa de computación que haga lo que se supone que debe hacer. También debe ser fácil de modificar, libre de errores y simple de usar. Para grandes proyectos de programación puede haber equipos de cientos de programadores bien capacitados, organizados y administrados. Entonces, aunque escribir un código es parte del trabajo de un programador, él o ella también hacen muchas otras cosas: • deciden qué hará el programa; • diseñan la interfase del usuario; • deciden qué lenguaje de programación usar; • diseñan la arquitectura del programa y como funcionarán en conjunto partes del mismo; • establecen los estilos de codificación y de diseño; • deciden quién escribirá el código para las partes del programa; • administran el programa de desarrollo y llevan un registro de cuanto tiempo les toma escribir el código; • capacitan a los programadores para usar herramientas de desarrollo; • configuran y administran las computadoras y la red que usan los programadores; • ¡¡¡Escriben el código!!! • documentan el código; • diseñan la base de datos para almacenar información que el programa necesita o crea; • manejan el diseño artístico y de gráficos; • manejan la entrada de información a la base de datos; • prueban el código para asegurarse de que funcione; • empacan el código para que poder instalarlo en la computadora o servidor del usuario; • toman decisiones respecto a características nuevas; • resuelvan los errores encontrados por los usuarios; • capacitan a los usuarios para usar el programa; • escriben la documentación y material de capacitación para el programa.

Como puedes ver, "escribir el código" es sólo una de las muchas actividades de los programadores. Mi organizador personal tiene otro ejercicio acerca de los trabajos de programación.

Recomendación para el profesor Los elementos en la lista representan múltiples opciones de carrera. Algunos son sobresalientes para escribir códigos; otros, para decidir qué código tiene que escribirse. Algunos son mejores para probar que el código escrito funcione perfectamente. Y algunos administran los esfuerzos de todos estos profesionales de la computación.

Page 15: Visual Basic Net

Unidad 1 - Everywhere, Wisconsin Pág. 15 de 321

01 Ejercicio 02 Trabajos de informática Con la ayuda del Internet u otros recursos, determina el salario inicial para los profesionistas de informática en tu área. Compara los salarios para varias categorías tales como Programador, Analista de Sistemas, Desarrollador de Páginas Web, etc. ¿Qué es un programa?

Un programa de computación está conformado por líneas de código escritas en un lenguaje de programación parecido al inglés. Para escribir un programa puedes escoger entre varios lenguajes de diferentes capacidades según 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 programación. Por ejemplo, puedes escribir un programa que juegue gato, otro que muestre imagines en forma de presentación, y otro que muestre la orbita de un cohete alrededor de un planeta y todo con el mismo lenguaje. El código que tú escribes es lo que distingue a estos programas y les da su funcionalidad. Dicho código define lo que el programa hará. Determina que ocurre cuando oprimas un botón o seleccionas un elemento de una lista. Tu código representa la "inteligencia" del programa; define cómo éste tomará

Trabajos de programación En este ejercicio investigarás los salarios iniciales de los programadores y otros profesionales de la computación. El archivo 01_proveit02_files tiene instrucciones para este ejercicio y cualquier archivo de apoyo que necesites.

Page 16: Visual Basic Net

Unidad 1 - Everywhere, Wisconsin Pág. 16 de 321

decisiones, cuántas veces realizará una acción, y qué cálculos realizará. Puedes escribir un código para hacer cálculos matemáticos, escribir texto, responder a acciones del usuario, recabar datos, o desplegar información. Escribir un código puede ser un reto pero también es divertido y satisfactorio. Cuando aprendes un lenguaje de programación, 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 matemáticas.

Page 17: Visual Basic Net

Unidad 1 - Everywhere, Wisconsin Pág. 17 de 321

Opciones de lenguaje de programación

Mi abuelo podía hablar cuatro idiomas: japonés, español, swahili e inglés, además de un quinto idioma cuando se volvió totalmente loco. Los lenguajes de computación 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. ¿Sabías que se están creando nuevos lenguajes de programación todo el tiempo? Durante los pasados 50 años 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 años. Un lenguaje de programación nuevo se crea tomando las mejores características de uno o más lenguajes existentes, y combinándolas. Los lenguajes de programación de hoy reflejan los avances en el equipo de computación y la evolución de los programas anteriores. Los primeros lenguajes de programación tenían que programarse en términos que la computadora pudiera comprender. Esto significaba escribir programas usando solamente unos y ceros. ¡Qué tedioso! Finalmente se crearon programas llamados compiladores que convertían el código, escrito en un idioma que se parece más al inglés, en los unos y ceros que la computadora podía comprender. Casi todos los lenguajes de programación modernos son compilados. Es decir, están escritos en lenguajes de programación similares al inglés y que después se compilan o cambian a un código que la máquina puede leer. En el transcurso de los años se han creado diferentes lenguajes de programación para resolver problemas específicos. FORTRAN, por ejemplo, fue desarrollado para resolver problemas numéricos y realizar cálculos. Las siglas FORTRAN quieren decir ‘lenguaje de traducción de fórmulas’ (FORmula TRANslating language). COBOL quiere decir ‘lenguaje común orientado a los negocios’ (Common Business-Oriented Language) y fue desarrollado primordialmente para aplicaciones de negocios en las que tenían que procesarse grandes cantidades de datos no numéricos. LISP, que quiere

Ve esto: En Canadá hay dos idiomas oficiales, pero en los dos esta señal dice ¡DETENGA SU COCHE!

Page 18: Visual Basic Net

Unidad 1 - Everywhere, Wisconsin Pág. 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 más ventajas primarias en comparación con los anteriores. A continuación algunos ejemplos: • C: código rápido y eficiente • Java: independencia de plataforma • BASIC: facilidad de uso • Visual Basic: diseño de interfase de usuario por medio de formatos • Perl: manipulación de texto

Cuando inicias un proyecto nuevo de programación tienes que definir qué lenguaje vas a usar. ¿Tiene el lenguaje la funcionalidad que necesitas? ¿Es de fácil programación? ¿Ya lo conoces? ¿Ya está instalado en tu computadora? Mi lenguaje favorito es Visual Basic.NET. Es poderoso y fácil de usar. Se que a Cliff le gusta Visual Basic.NET también. A Jen le gusta el programa J# (se pronuncia J sharp), el cual tiene sus raíces en el lenguaje de programación Java. Dirk está aprendiendo C# (se pronuncia C sharp) el cual tiene sus orígenes en los lenguajes de programación C y C++. En este viaje aprenderás Visual Basic.NET, pero Jen y Dirk también te enseñarán algunas cosas acerca de J# and C#. No está de más conocer más que un solo lenguaje de programación!

Page 19: Visual Basic Net

Unidad 1 - Everywhere, Wisconsin Pág. 19 de 321

Sintaxis del lenguaje de programación

Si viajas por el mundo tal vez necesites encontrar a alguien que hable inglés. En cualquier idioma hay un modo de preguntar "¿habla inglés?" Por ejemplo: Inglés: Do you speak English? Alemán: Sprechen Sie Englisch? Español: ¿Habla inglés? Portugués: Você fala inglês? Lenguaje de niños: ¿Ha-fa bla-fas in-fin gle-fes? En los ejemplos anteriores, no sólo las palabras son diferentes, su organización es distinta también: los sustantivos, verbos y objetos no tienen el mismo orden. La palabras y su organización constituyen la sintaxis del lenguaje. La sintaxis define las reglas para hacer una oración correcta en el idioma dado. Al igual que los idiomas, cada lenguaje de programación tiene su propia sintaxis, la cual es el vocabulario, gramática, elección de palabras y estructura que lo constituye. La sintaxis define las reglas para escribir líneas correctas de código y combinar estas líneas en un programa válido. Por ejemplo, todos los lenguajes de programación modernos pueden ejecutar una orden "If..then..else". Una tal orden es una forma en la que un programa puede elegir basándose en la información que tiene. Mira, déjame enseñarte algunos ejemplos de códigos en mi computadora portátil 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 código, sólo busca las similitudes y diferencias que definen su sintaxis.

Page 20: Visual Basic Net

Unidad 1 - Everywhere, Wisconsin Pág. 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…

Page 21: Visual Basic Net

Unidad 1 - Everywhere, Wisconsin Pág. 21 de 321

Aprender un lenguaje de programación consiste en aprender su sintaxis, estructura, y reglas. Tienes que aprender la puntuación del lenguaje, así como qué palabras son "reservadas", porque sólo se usan como comandos para el lenguaje. Las palabras reservadas, también 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 mayoría de los lenguajes de programación. Se usan para crear órdenes de código que toman decisiones. Cuando aprendes un lenguaje de programación debes aprender su sintaxis y también su funcionalidad y capacidades. Recuerda que no todos los lenguajes pueden hacer todo. Sin embargo, todos los que son modernos tienen características y funcionalidad en común que siempre podemos esperar encontrar.

Page 22: Visual Basic Net

Unidad 1 - Everywhere, Wisconsin Pág. 22 de 321

Sintaxis de Visual Basic.NET

Visual Basic.NET es un lenguaje poderoso y fácil de aprender. Conforme aprendes a programar en Visual Basic.NET, conocerás las palabras reservadas, la estructura, y los objetos fundamentales que constituyen el lenguaje. Primero tienes que comprender algunos de los elementos básicos de la sintaxis del lenguaje. Hice una breve lista de algunos elementos clave de la sintaxis en Visual Basic.NET: • Las líneas de código no tienen un indicador de fin de línea como un punto y coma (;) • Las líneas de comentario inician con un apóstrofe (') • Las llaves { y } no se usan para contener bloques de código • Visual Basic.NET NO diferencia entre mayúsculas y minúsculas. Escribir MyCase es exactamente lo mismo que escribir myCase o MYCASE.

Oye, Dirk, ¿Cuáles son algunas de las diferencias sintácticas clave en C#? Bueno, en C# cada línea termina con un punto y coma. Además, los bloques de código están contenidos entre llaves, { y }. Una línea de comentario inicia con dos diagonales // y C# sí diferencia entre mayúsculas y minúsculas. MyCase es diferente de myCase y de MYCASE. Oigan, no se olviden de J#. J# y C# comparten la misma sintaxis básica. Por ejemplo, J# usa un punto y coma para indicar el fin de una línea de código y los bloques de código se ponen entre llaves. Las líneas de comentario en J# inician con // y J# también diferencia entre mayúsculas y minúsculas.

Recomendación para el profesor Visual Basic es un buen primer lenguaje para aprender ya que es más benévolo que la mayoría. El tamaño de la letra no importa. Las líneas de código no necesitan marcarse de manera especial. La estructura es más bien intuitiva.

Page 23: Visual Basic Net

Unidad 1 - Everywhere, Wisconsin Pág. 23 de 321

Llegada a Everywhere

Bienvenido a Everywhere, Wisconsin. Tienes que contestar la pequeña prueba para prepararte para el Comité del rally. En el curso impreso la prueba no es interactiva. En la versión en línea de este curso la computadora revisa las respuestas. Aquí la tienes. ¡Suerte!

Una diferencia importante entre los diferentes lenguajes de programación es:

Por lo general un lenguaje de computadora está constituido por: ¿Qué hace la compilación de un programa?

Hay miles de lenguajes de computación distintos porque:

Sintaxis Traducción Ortografía

Reune datos en un agrupamiento interno Asocia objetos de formato con la página del código. Convierte el texto escrito por un programador en un código que la computadora puede entender

Los científicos de la computación tienen que mantenerse ocupados. Cada uno se ha creado para resolver problemas específicos. Cada marca de computadora requiere un lenguaje único

Tablas de traducción Líneas de código escritas en un lenguaje de programación similar al inglés Símbolos matemáticos creados por computadoras

Page 24: Visual Basic Net

Unidad 2 - Ideal, Illinois Pág. 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 diseño de formato Ventana de cuadro de herramientas Agregar un código a un botón Construir tu solución Iniciar tu programa Archivos y carpetas de soluciones

Page 25: Visual Basic Net

Unidad 2 - Ideal, Illinois Pág. 25 de 321

Visual Studio.NET y el IDE

Hola, ¿cómo te va hasta ahora? ¿Pudiste contestar todas las preguntas del comité del rally? Puede ser que sean más difíciles conforme avancemos, pero para ese entonces también sabrás más. Estoy seguro de que no tendrás 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 enseñar lo que necesitarás para pasar la prueba de manejo de IDE. El IDE son las siglas en inglés de ‘Ambiente de Desarrollo Integrado’ proporcionado por Visual Studio.NET de Microsoft. Lo usarás para escribir tu primer programa de Visual Basic.NET. Puedes usarlo para escribir programas en otros lenguajes también. Después de que aprendas sobre IDE y pases el examen de manejo, estarás listo para manejar también y ayudarnos con las pruebas del rally. Después de todo, no queremos que alguien más maneje todo el tiempo ¿o sí? No sería muy divertido.

Page 26: Visual Basic Net

Unidad 2 - Ideal, Illinois Pág. 26 de 321

Visual Studio.NET

¿Sabías que es posible escribir un código de computación usando un simple procesador de palabras como el bloc de notas o Microsoft Word? Eso, claro, si quieres hacer las cosas de la manera más complicada. En su lugar, la mayoría de los programadores como Nikki y yo usamos herramientas de software para ayudarnos a desarrollar programas con más facilidad. Y eso es lo que vas a hacer tú también, usando Visual Studio.NET de Microsoft. Visual Studio.NET Microsoft es una herramienta de desarrollo que ayuda a escribir programas en varios lenguajes de programación .NET diferentes. Por ejemplo, cuando agregues un botón a un formato, Visual Studio.NET automáticamente agrega algún código para este botón. Es obvio que Visual Studio.NET no puede escribir todo el código; después de todo, no sabe lo que se supone que tu programa va a hacer. Sin embargo, puede reducir la cantidad de código que tienes que escribir y el tiempo necesario para hacerlo. Visual Studio.NET te facilita la vida también de otros modos. Automáticamente colorea tu código según su significado. Por ejemplo, los comentarios siempre están en verde y las palabras claves en azul. Incluso los errores en sintaxis están subrayados con una línea roja ondulante. Esto te ayuda a identificar y corregir errores antes de que operes tu código. Visual Studio.NET te ayuda a mantener tu código organizado al almacenarlo en archivos independientes. De esta manera puedes dividir tu código en unidades funcionales. Por ejemplo, un archive independiente será usado para almacenar el código para cada uno de tus formatos. Visual Studio.NET facilita la compilación y operación de tu programa con sólo hacer clic unas cuantas veces en el ratón. Puedes usar sus funciones auxiliares de depuración para buscar errores en tu programa y desplegar información 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 (creación de páginas web)

Page 27: Visual Basic Net

Unidad 2 - Ideal, Illinois Pág. 27 de 321

Durante nuestro viaje a nuestro próximo destino, te mostraré como usar Visual Studio.NET para escribir tu primer programa. Usarás Visual Basic.NET como tu lenguaje de programación primario durante este viaje, pero también te mostraremos ejemplos del código C# y J# a lo largo del camino. Prepárate porque vas a escribir tu primer programa. Iniciar Visual Studio

Para iniciar Visual Studio: 1. Oprime el botón de inicio 2. Selecciona Programas 3. Selecciona la carpeta Microsoft Visual Studio.Net 2003 4. Selecciona la aplicación Microsoft Visual Studio.Net 2003

También hay un icono en mi Escritorio que yo puedo usar para abrir Visual Studio. El icono es una forma rápida de iniciar Visual Studio.NET, sólo haz doble clic sobre él.

Recomendación para el profesor Asegúrese de mostrarles a sus alumnos el método 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 ubicación correcta.

Recuerda, la ubicación de Visual Studio puede variar de una computadora a otra. Si estás usando una computadora en la escuela o la computadora de alguien más, Visual Studio puede encontrarse en un lugar distinto. Pregúntale a tu profesor o al representante del departamento de cómputo, si no puedes encontrar el modo de abrir Visual Studio.NET.

Page 28: Visual Basic Net

Unidad 2 - Ideal, Illinois Pág. 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 sólo lee; ¡haz lo que estás leyendo! Página de inicio IDE

La primera página que debes ver cuando abres Visual Studio.NET es la página de inicio. La pestaña Proyectos es seleccionada de manera predeterminada. Por lo general, verías 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 pestaña Mi perfil es donde puedes personalizar Visual Studio.NET para que se adapte a tu estilo de trabajo. 1. Haz clic en la pestaña Mi perfil.

Page 29: Visual Basic Net

Unidad 2 - Ideal, Illinois Pág. 29 de 321

Mi Perfil

Mi perfil es donde puedes seleccionar qué tipo de desarrollador eres y personalizar tu configuración 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 omisión] Configuración de la ventana: Visual Studio Predeterm. Filtro de ayuda: sin filtro 3. Selecciona Ayuda interna para la configuración Mostrar ayuda. 4. Selecciona Mostrar página de inicio para la configuración de Al inicio. 5. Selecciona la pestaña Proyectos en la parte superior de la Página de inicio para continuar.

Page 30: Visual Basic Net

Unidad 2 - Ideal, Illinois Pág. 30 de 321

Crear un proyecto nuevo

Ahora que haz terminado la configuración del ambiente Visual Studio.NET, exploraremos la pestaña de Proyectos. Puedes iniciar un nuevo proyecto o abrir un proyecto existente desde esta pestaña. Para abrir un proyecto existente debes hacer clic en el botón Abrir proyecto en la parte inferior de la pantalla. Después 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 enseñar a crear un proyecto nuevo para el programa Hello World; después escribiremos el programa. Hello World es el primer programa típico que escribe la mayoría de los programadores. El objetivo es crear un recuadro de mensaje que diga "Hello World."

1. Haz clic en el botón Proyecto nuevo para crear un proyecto nuevo. Se abre la ventana de diálogo Proyecto nuevo.

Page 31: Visual Basic Net

Unidad 2 - Ideal, Illinois Pág. 31 de 321

Ventana de Proyecto nuevo

En la pestaña Proyecto nuevo verás 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 aplicación de Windows (las reglas del código sólo usarán aplicaciones de Windows, así es que ni siquiera hay que preocuparse por las otras plantillas). En esta pestaña no sólo seleccionarás el tipo de proyecto y la plantilla sino también 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 ubicación para guardar tu proyecto. 5. Haz clic en el botón ‘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. Súper, ¿no? Recomendación para el profesor

Cada escuela tiene sus propias reglas acerca de la ubicación para guardar los proyectos de los alumnos. Sea muy específico 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.

Page 32: Visual Basic Net

Unidad 2 - Ideal, Illinois Pág. 32 de 321

Ventana de diseño de formato

La mayoría de las veces construirás aplicaciones de Windows que inician con un formato. Éstos son la parte del programa que el usuario ve. Podrás poner objetos en el formato, como botones y cajas de texto. Cuando se hace clic en un botón, el código se ejecutará para realizar el proceso requerido para ese botón. Un formato en blanco puede verse en la ventana principal en el lado izquierdo de la pantalla. Esta se llama ventana de diseño 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. Después habrá tiempo para ponerse creativo con los formatos. Por ahora, déjame mostrarte un par de cosas sencillas que hacer.

Page 33: Visual Basic Net

Unidad 2 - Ideal, Illinois Pág. 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.

Recomendación 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 página del código y reduce los errores de codificación.

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 mayoría de las ventanas de Visual Studio.NET, en Ver’ en el Menú principal y seleccionar la ventana apropiada del menú. Puedes ocultarla de manera automática al hacer clic en el icono de tachuela ubicado en la esquina derecha de la ventana. Cuando ocultas una ventana de manera automática, esta desaparece y aparecerá una barra de tareas en la orilla derecha de la pantalla que muestra pestañas para la ventana oculta. Si mueves el cursor sobre la pestaña, la ventana oculta aparecerá. La función de auto-ocultar es una excelente manera de ahorrar espacio de pantalla si tienes una ventana con un código mayor. Si pulsas el icono de tachuela otra vez, se deshabilitará el comando auto-ocultar.

Page 34: Visual Basic Net

Unidad 2 - Ideal, Illinois Pág. 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, abrirás 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 crearás formatos que se verán geniales.

1. Selecciona Ver de la barra del Menú principal 2. Selecciona Cuadro de herramientas y abre esta ventana. 3. Haz doble clic en Botón para añadir un botón al formato (El botón que añadiste puede estar escondido detrás del Cuadro de herramientas; la moveremos en un instante)

Page 35: Visual Basic Net

Unidad 2 - Ideal, Illinois Pág. 35 de 321

Mover y redimensionar un botón

Ahora que haz añadido un botón a un formato, te voy a enseñar qué fácil es mover o redimensionarlo.

1. Haz clic en el botón y arrástralo 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 botón izquierdo del ratón, arrastra el punto de redimensionamiento para estirar o reducir el tamaño del botón. Fue fácil ¿no? Ahora vas a añadir el código al botón para hacer que haga algo cuando el usuario lo oprime.

Page 36: Visual Basic Net

Unidad 2 - Ideal, Illinois Pág. 36 de 321

Agregar un código al botón

Cuando creamos el botón, Visual Studio.NET automáticamente agrega varias líneas de código a la ventana de código. Ve el siguiente ejemplo. Public Class For m1 Inherits System.Windows.Forms.Form Window Forms Designer Generated Code Private Sub Botón 1_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button 1.Click

End S ub

Parece que está en chino, ¿verdad? Pero no te preocupes, te ayudaremos a traducir conforme avancemos. Por ahora sólo encuentra el ‘Button 1_Click’. Esta parte del código se usa cuando el usuario hace clic en el botón. Si hacemos clic ahora, no pasa nada. Necesitamos decirle a nuestra aplicación qué hacer cuando se oprima el botón. De eso trata la programación. ¿Estás listo para comenzar?

1. Después de hacer doble clic en ‘Button 1’, se abre la ventana de código 2. Haz clic en la línea en blanco arriba de ‘End Sub’ 3. Introduce la siguiente línea de

código exactamente como se muestra a continuación

Recomendación para el profesor Muchos ejemplos de código en el curso son una sola línea en Visual Basic pero ésta se ajusta cuando se despliega en el curso. Para continuar una línea de código en una segunda línea en Visual Basic, finaliza la primera línea con un espacio seguido por un guión bajo ( _ ).

Page 37: Visual Basic Net

Unidad 2 - Ideal, Illinois Pág. 37 de 321

MessageBox.Show("Hello, World.") Esta línea de código se ejecuta cuando el usuario oprima el botón en el formato. Crear tu solución

Es hora de crear tu solución. Aquí es donde el código 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 solución del menú desplegable

Recomendación para el profesor Las versiones de Visual Basic anteriores a .NET no requerían que se seleccione Crear antes de la ejecución. .NET siempre requiere que se seleccione Crear.

Page 38: Visual Basic Net

Unidad 2 - Ideal, Illinois Pág. 38 de 321

Creación exitosa

Una vez que termina la operación Crear, la ventana de salida se abre y despliega un mensaje, el cual indica si tu creación fue exitosa o si hubo errores. Si la creación fue exitosa, verás el siguiente mensaje en la ventana de salida: ------ Build started: Project: HelloWorld, Confi guration: Debug .NET ------ Preparing resources... Updating references... Performing main compilation... Building satellite assemblies... ---------------------- Done ---------------------- Build: 1 succeeded, 0 failed, 0 skipped

Page 39: Visual Basic Net

Unidad 2 - Ideal, Illinois Pág. 39 de 321

Creación 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, Conf iguration: Debug .NET ------ Preparing resources... Updating references... Performing main compilation... C:\VBNETProjects\HelloWorld\Form1.vb(59) : error B C30451: Name 'mMessageBox' is not declared. Building satellite assemblies... ---------------------- Done ---------------------- Build: 0 succeeded, 1 failed, 0 skipped

Cuando puede, Visual Basic también subraya la ubicación del error. Al hacer doble clic en el mensaje de error, el cursor señala el error. Además se abre una ventana de lista de tareas que te mostrará los errores específicos. Si tu creación contiene errores, regresa y revisa que hayas escrito la línea de código para el botón exactamente como se muestra. Después sigue los pasos para crear la solución que te mostramos antes.

Page 40: Visual Basic Net

Unidad 2 - Ideal, Illinois Pág. 40 de 321

Iniciar tu programa

Tu programa ahora está compilado sin errores. Estás 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 botón que agregaste.) 3. Haz clic en el botón. Ya sabía

que lo harías.

Recomendación para el profesor Cuando se selecciona ‘Iniciar’, Visual Basic efectúa Crear antes de la ejecución. Si hay errores de creación, 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.

Page 41: Visual Basic Net

Unidad 2 - Ideal, Illinois Pág. 41 de 321

Desplegar el cuadro de mensaje

Cuando haces clic en el botón, un cuadro de mensaje aparece desplegando el texto "Hello World". Después 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 botón OK para cerrar el cuadro de mensaje. (El cuadro de mensaje desaparece pero tu formato sigue ahí. Puedes hacer clic en el botón 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.

Page 42: Visual Basic Net

Unidad 2 - Ideal, Illinois Pág. 42 de 321

La ventana de salida

Una vez que el programa finaliza, se muestra la información de depuración. Tienes que avanzar hacia abajo para ver toda la información.

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.

Recomendación para el profesor Los alumnos principiantes no usarán la información de depuración. Se menciona aquí para que no se sorprendan cuando vean esta información.

Recomendación para el profesor Visual Basic guardará automáticamente el proyecto cada vez que se efectúe Crear.

Page 43: Visual Basic Net

Unidad 2 - Ideal, Illinois Pág. 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.

Page 44: Visual Basic Net

Unidad 2 - Ideal, Illinois Pág. 44 de 321

Archivos y carpetas de solución

Cuando creas una aplicación 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 continuación para ver una organización típica de archivos y carpetas.

Con Windows Explorer navega a la ubicación 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 solución que mantiene un registro de todas las otras partes de la solución. Una solución puede hacer referencia a múltiples proyectos, pero tu solución HelloWorld contiene sólo 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 código asociado. Haz doble clic en la carpeta papelera para expandirla. Contiene el archivo de código ejecutable Visual Basic llamado HelloWorld.exe. Este archivo puede ejecutarse en otra computadora aún si no dispone de Visual Studio.NET.

Para ejecutar un archivo ejecutable en otra computadora, ésa debe contar con ciertos archivos que permitirán la ejecución de la aplicación .NET. Estos archivos ya están instalados en las computadoras con el sistema operativo Windows XP. Pueden descargarse e instalarse en computadoras con otros sistemas operativos.

Page 45: Visual Basic Net

Unidad 2 - Ideal, Illinois Pág. 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 estás 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 página de Inicio selecciona el botón Proyecto nuevo. Tal vez necesites cerrar la ventana de salida para verlo. O, puedes ir a Archivo / Nuevo / Proyecto. En Form1 coloca un botón y un cuadro de texto. Deja los nombres del botón y del cuadro como sus nombres predeterminados. Haz doble clic en Botón 1 para abrir la página del código. En el subprograma Botón 1_Click, introduce esta línea del código: TextBox1.Text = "tu nombre" Reemplaza tu nombre con tu nombre. Asegúrate de que aparezcan las comillas. Crea e inicia tu programa. Una vez que funcione correctamente, muéstraselo 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.

Page 46: Visual Basic Net

Unidad 2 - Ideal, Illinois Pág. 46 de 321

02 Reto Comida rápida Ya que al parecer nos estamos deteniendo en cada restaurante de comida rápida que vemos, vamos a divertirnos con un programa. Ya sabes como agregar un botón a un formato, crear una aplicación y ejecutarla. La plantilla 02_challenge_template es una aplicación completa, salvo que necesita cuatro botones llamados Botón 1 – Botón 4.

El formato debe verse como sigue una vez que hayas agregado los botones. Crea la aplicación. Después escoge Depurar / Iniciar sin depurar, o puedes escoger Depurar / Iniciar. ¿Qué ocurre cuando haces clic en cada botón? Cuando funcione correctamente, muéstraselo a tu instructor.

Recomendación para el profesor El alumno añade botones a un programa existente donde éstos se quitaron, pero donde el programa en sí está completo.

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

Page 47: Visual Basic Net

Unidad 2 - Ideal, Illinois Pág. 47 de 321

Extensión / Desviación En una unidad posterior te mostraremos como cambiar el texto en un botón. ¿Puedes descubrir tú solo como cambiar el texto del botón usando la ventana Propiedades? Bienvenido a Ideal. Aquí hay otra pequeña prueba para prepararte para el comité del rally. En el curso impreso la prueba no es interactiva. En la versión en línea de este curso la computadora revisa las respuestas. Aquí la tienes. ¡Suerte!

Page 48: Visual Basic Net

Unidad 2 - Ideal, Illinois Pág. 48 de 321

Propiedades Cuadro de herramientas Salida

La página de proyectos

La página de recursos en línea

La página 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 más proyectos; éstos pueden contener formatos, y los formatos objetos y códigos.

Antes de ejecutar un programa debes:

Page 49: Visual Basic Net

Unidad 03 – Pseudo, Pennsylvania Pág. 49 de 321

Temas en el camino a Pseudo: Tipos de instrucciones de código ¿Qué es un pseudo código? Comentarios de código Pseudo código como comentario Sangría y espacio en blanco Llegada a Pseudo

Page 50: Visual Basic Net

Unidad 03 – Pseudo, Pennsylvania Pág. 50 de 321

Tipos de órdenes de código Cliff hizo un excelente trabajo al presentar Visual Studio.NET. ¿No te pareció fantástico escribir tu primer programa? Se que no haz escrito muchos códigos todavía, pero lo harás más adelante. Por ahora quiero mostrarte como planear y organizar tu programa incluso antes de que comiences a escribir el código. ¿Sabías que puedes escribir un programa antes de que sepas un lenguaje de computación? Muchos programadores escriben sus programas en un "pseudo código" primero y después los traducen a un lenguaje real de programación. Esto les ayuda a determinar el flujo lógico del programa y lo que tienen que hacer. El pseudo código consiste de instrucciones sencillas escritas en inglés (o tu idioma nativo) las cuales explican lo que el programa tiene que hacer. Una vez escrito el pseudo código es más fácil escribir el código real. El pseudo código brinda una estructura o lineamiento para el programa. Antes de que te enseñe como usar un pseudo código, quiero mostrarte algunos de los tipos de instrucciones básicas que constituyen un programa de computación. Todos los lenguajes de programación usan los mismos tipos de instrucción de código básicos, aunque la sintaxis para escribirlos sea diferente en cada lenguaje. Cuando se combina, estas instrucciones básicas te permiten escribir programas muy complejos. ¿Recuerdas la línea de código que introdujiste para el botón en el programa Hello World? Era:

MessageBox.Show("Hello, World.")

Este código despliega información para el usuario. Es un tipo de instrucción básica conocido como alerta, mensaje, o instrucción. Todos los lenguajes de programación tienen un tipo de instrucción básica similar usado para brindarle información al usuario, aunque la sintaxis dependerá del lenguaje. Hay otros tipos de instrucciones fundamentales que usan todos los lenguajes de programación.

Page 51: Visual Basic Net

Unidad 03 – Pseudo, Pennsylvania Pág. 51 de 321

A continuación te muestro unos ejemplos. Las variables son usadas para almacenar información tales como números o texto. Representan información o resultados de cálculos. Las instrucciones de asignación establecen lo que está almacenado en una variable. El valor puede ser un número, texto, otra variable o un valor calculado. Las instrucciones de comparación se usan para comparar un valor o variable con un número, u otro valor o variable. Hacen una pregunta cuya respuesta siempre es "cierto" o "falso". Las instrucciones de decisión se usan para elegir. El proceso de decisión se basa en una comparación. Si la respuesta a la comparación es "cierto", entonces se realiza la primera elección, si es "falso", la segunda. Las instrucciones de decisión a menudo se denominan instrucciones de ramificación porque el flujo del programa puede ir ya sea en una dirección o en otra. Las instrucciones de bucle se usan para hacer cosas una y otra vez. Las instrucciones de bucle reducen la cantidad de código que tienes que escribir cuando tu programa está realizando la misma acción repetidamente. Conforme aprendas a programar, aprenderás a usar estas instrucciones básicas para que tu programa haga lo que tú quieres que haga. Para poder usar Visual Basic.NET (o cualquier otro lenguaje de programación) tu trabajo será aprender la sintaxis particular requerida por el lenguaje de programación para escribir y usar estas instrucciones básicas.

¡Es fantástico estar aquí esta noche! Le decía al encargado de seguridad en la entrada que si estoy en la ciudad y es noche de aficionados me encontrarán en este escenario.

Page 52: Visual Basic Net

Unidad 03 – Pseudo, Pennsylvania Pág. 52 de 321

¿Que es un pseudo código? Como ya lo dije antes, los programadores a menudo escriben sus programas en pseudo código. La palabra pseudo significa "en lugar de". Por ejemplo, algunos autores usan un pseudónimo en lugar de su nombre real. Un pseudo código no está escrito en un lenguaje real de programación sino que consiste de instrucciones sencillas que describen lo que el programa va a hacer. Podrías escribir un pseudo código en inglés, español, latín o cualquier otro idioma, porque una computadora ni siquiera tiene que leer o comprender tu pseudo código. Éste tiene que ser claro para que tú y otros programadores lo entiendan, porque brinda el marco o instrucciones para escribir el código real de tu programa. Tu pseudo código se escribe usando los diferentes tipos de instrucciones básicas: asignación, comparación, decisión, etc.

Una gran ventaja de diseñar tu propio programa usando un pseudo código es que no tienes que preocuparte acerca de qué lenguaje de programación vas a usar. Primero, encuentra la lógica y estructura usando el pseudo código. Después "traduce" tu pseudo código al lenguaje de programación que quieres usar.

Recomendación para el profesor El concepto principal en esta unidad es que el programador debe planear qué código escribir antes de iniciar la codificación en sí.

Page 53: Visual Basic Net

Unidad 03 – Pseudo, Pennsylvania Pág. 53 de 321

Déjame darte un ejemplo de como usar el pseudo código para diseñar un programa. Digamos que quisiera escribir un programa para calcular el costo promedio de la gasolina en dólares por galón para todo nuestro viaje. ¿Qué tendría que hacer el programa? Para contestar esta pregunta, diseñaré el programa usando un pseudo código. Estos son los pasos que mi programa tendría 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 dólares) 2. Sumar el número 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 dólares) y dividirla entre la segunda variable (total de galones) y asignar el resultado a una tercera variable (dólares por galón). 4. Desplegar un mensaje que da el costo promedio en dólares por galón. El pseudo código claramente muestra lo que mi programa necesitará hacer. Ahora puedo escribir el código para realizar las tareas delineadas en el pseudo código.

Page 54: Visual Basic Net

Unidad 03 – Pseudo, Pennsylvania Pág. 54 de 321

Déjame darte un ejemplo distinto con más pasos. Puede ser para un robot programable que cambia llantas. 1. Determinar que llanta está ponchada. (instrucción de comparación) 2. Determinar el tamaño de la llanta ponchada (instrucción de comparación) 3. Si hay una llanta de refacción del tamaño correcto entonces proceder; 4. de otro modo, conseguir la refacción en una tienda de llantas. (instrucción de comparación y decisión) 5. Levantar la camper usando un gato hidráulico. 6. Quitar el tapón con un desarmador para exponer las tuercas. 7. Quitar las tuercas usando una llave de cruz hasta haber removido todas. (instrucción 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 estén en su lugar. (instrucción de bucle) 11. Colocar el tapón y ponerlo en su lugar con un martillo. 12. Bajar el gato hidráulico. En el pseudo código anterior hay una mezcla de instrucciones de asignación, de comparación, de decisión y de bucle. Por ejemplo, debes recordar el tamaño de la llanta ponchada; eso es una instrucción de asignación. Debes comparar el tamaño de la llanta ponchada con el tamaño de las llantas que tienes en existencia; esa es una instrucción de comparación. Una instrucción de decisión se usa con la instrucción de comparación. Si tienes una llanta del tamaño 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 número de veces hasta que se hayan quitado todas las tuercas y después hasta que se hayan apretado de nuevo.

Poner llanta nueva. Colocar de nuevo las tuercas y apretarlas. Colocar el tapón.

Page 55: Visual Basic Net

Unidad 03 – Pseudo, Pennsylvania Pág. 55 de 321

¿Por qué no intentas escribir un pseudo código usando mi organizador personal? 03 Ejercicio 01 Empacar para el viaje Escribe en pseudo código los pasos requeridos para empacar lo que vas a llevar para tu viaje. Tu solución debe tener por lo menos siete pasos. Si cada paso comienza con una instrucción condicional, no entendiste el pseudo código.

Recomendación para el profesor Es sorprendente cuántos alumnos escriben un pseudo código que consiste en el 100% de instrucciones condicionales en vez de contener una mezcla de acciones y acciones condicionales. Un pseudo código sin instrucciones condicionales también es correcto.

Empacar para el viaje En este ejercicio deberás escribir un pseudo código 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.

Page 56: Visual Basic Net

Unidad 03 – Pseudo, Pennsylvania Pág. 56 de 321

Comentarios de código Los lenguajes de programación modernos, incluyendo Visual Studio.NET, permiten añadir comentarios a tu código. É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 código. Te ayudan a recordar lo que hace. También ayudan a otros programadores a comprenderlo. Siempre debes comentar tu código. Los comentarios son muestra de un buen programador. Un buen programador se toma el tiempo para comprender y documentar a fondo el código que ha escrito. Debes agregar comentarios a tu código cuando haces un cambio o añades una función. También haz comentarios sobre partes de tu código que son difíciles de comprender o que realizan un cálculo particularmente difícil o complejo.

Recomendación para el profesor Hay muchas razones para examinar el código en sí que los alumnos escriben en vez de ver simplemente el resultado de ejecutar el programa. • Incítelos a hacer comentarios • Motive buenos nombres de datos • Detecte si un alumno está copiando el código de otro. Copiar es fácil y es tentador. Busque similitudes de técnica, ya que puede aplicarse la función de Encontrar-reemplazar a los nombres de variables para disfrazar el código.

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

Page 57: Visual Basic Net

Unidad 03 – Pseudo, Pennsylvania Pág. 57 de 321

En Visual Basic.NET comenzarás una línea de comentario con una sola comilla ('). Cualquier línea de código 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 'Función agregada para calcular el promedio de millas por galón. Oye, podrás usar una sola comilla para los comentarios en Visual Basic.NET, pero en C# y J#, usamos una doble diagonal (//) al principio de nuestras líneas de comentario. Por ejemplo, //Función agregada para calcular el promedio de millas por galón.

Page 58: Visual Basic Net

Unidad 03 – Pseudo, Pennsylvania Pág. 58 de 321

Los comentarios tienen otra función importante además de documentar tu código. Dado que no se ejecutan, pueden usarse como un método para evitar que ciertas líneas del código se ejecuten. Esto se llama "comentar para excluir” una línea de código. Comentar para excluir es un método que puede usarse para ayudarte a encontrar errores en tu código. Si tienes un error en tu programa, puedes marcar líneas o bloques completos de código como si fueran comentarios para evitar su ejecución hasta que el error deje de ocurrir. El último código 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 código. Date cuenta de que hay tres líneas de código. La segunda línea se comenta para excluirla poniendo una sola comilla en su inicio. Por lo tanto, no se ejecutará, pero la primera y tercera líneas sí.

MessageBox.Show("Soy de" 'MessageBox.Show("una ciudad fantástica llamada") MessageBox.Show("San Francisco." )

Page 59: Visual Basic Net

Unidad 03 – Pseudo, Pennsylvania Pág. 59 de 321

Pseudo código como comentario Y ahora, un uso más del may versátil comentario. Estoy seguro que te mueres por saber. Puedes usar los comentarios para diseñar y arreglar tu programa. Es fácil. Ya escribiste el pseudo código que describe lo que tu código va a hacer. Aprovéchalo. Copia y pega tu pseudo código en tu programa y pon una sola comilla al principio de cada línea de tu pseudo código para convertirla en comentario. Ahora, escribe el código real de Visual Basic.NET bajo cada línea de pseudo código y tu programa no sólo estará completo, sino que también tendrá comentarios. Así de simple. He aquí un ejemplo basado en el pseudo código que escribí para calcular la cantidad promedio en dólares por galón de gasolina para nuestro viaje. Nota que el pseudo código proporciona los comentarios. 'Suma todo el dinero que pagamos de gasolina y asigna este monto a una variable (total de dólares)

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 dólares), divídela entre la segunda variable (total de galones) y asigna el resultado a una tercera variable (dólares por galón). Dim dollarsPerGallon As Double dollarsPerGallon = totalDollars / totalGallons 'Despliega un mensaje dando el costo promedio en dólares por galón. MessageBox.Show (dollarPerGallon)

Page 60: Visual Basic Net

Unidad 03 – Pseudo, Pennsylvania Pág. 60 de 321

Sangrías y espacios en blanco Aunque tal vez no comprendas todo el código 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 código. En segundo lugar, fíjate que se agregó una línea en blanco antes de cada comentario. Esta línea en blanco divide los comentarios y el código en grupos de acuerdo a su función. Las líneas en blanco hacen la lógica de tu programa clara y tu programa, de fácil comprensión. En la mayoría de los casos Visual Basic.NET agrega automáticamente espacios en blanco y sangrías para hacer que tu código sea más fácil de leer. Sin embargo, puedes añadir espacios en blanco adicionales y sangrías como tú quieras. Mi opinión al respecto es que los uses para hacer tu código y comentarios más fáciles de leer. A Visual Basic.NET y a los demás lenguajes .NET no les importan las líneas en blanco o las sangrías. De hecho las ignoran cuando se compila el programa. Aunque a Visual Basic.NET no le importen, estas líneas en blanco y las sangrías les facilitan a los demás leer tu código. (Y tú eres la persona que más se beneficiará de ello.) Recomendación para el profesor Aliente el uso de líneas en blanco entre los bloques de código. Esto beneficia tanto al alumno como al profesor.

Por omisión, Visual Basic.NET aplica la sangría de manera automática a tus instrucciones de código basado en la sintaxis de tu código. Aunque puedes inhabilitar la aplicación automática de sangría, se recomienda que la uses.

Page 61: Visual Basic Net

Unidad 03 – Pseudo, Pennsylvania Pág. 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 automático. Escribe un pseudo código explicando los pasos necesarios para lavar los trastes. Si no tienes experiencia en el tema, tendrás que investigar al respecto. Tu solución debe tener por lo menos siete pasos.

Lavar los trastes En este ejercicio escribirás un pseudo-código 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.

Page 62: Visual Basic Net

Unidad 03 – Pseudo, Pennsylvania Pág. 62 de 321

03 Reto Pecera ¿Ves la pecera en el aparador de esa tienda de mascotas? Rápido, antes de que cambie el semáforo. 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 página del código. Tu tarea es ver la página del código, y luego copiar todos los comentarios en un documento de Word o de texto. ¿El resultado se ve como pseudo código? Entrégale la lista de comentarios a tu instructor. Extensión / Desviación ¿Hay demasiados comentarios? ¿Demasiado pocos? ¿Por qué?

La pecera En este Reto estudiarás 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.

Page 63: Visual Basic Net

Unidad 03 – Pseudo, Pennsylvania Pág. 63 de 321

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

¿Cuál de las siguientes instrucciones se usa para algo varias veces?

Las instrucciones de decisión

Los errores de programa pueden evitarse al incluir lo siguiente en tu programa

Involucran una comparación

Realizan una acción cuando una comparación es cierta y otra falsa

ambas

Un lenguaje de programación Instrucciones sencillas que describen lo que el programa va a hacer El nombre del autor

Comentarios

Espaciado

Ambos

Instrucción de comparación Instrucción de bucle Instrucción de asignación

Un pseudo-código es:

Page 64: Visual Basic Net

Unidad 04 – Formsville, Virginia 64

Controles y propiedades de formato

Temas en el camino a Formsville: Aplicaciones de Windows Diseño del formato Uso del formato Propiedades del formato Controles y propiedades del formato Desencadenar eventos Cuadros de mensajes Entrando a Formsville

Page 65: Visual Basic Net

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 había gran cosa que ver, pero ciertamente había mucho papeleo que hacer. Tenías que llenar un formato de 10 páginas tan sólo para pasar por el pueblo. En la actualidad, Formsville es fantástica. Hay tantas cosas emocionantes que hacer que podrías pasar un año 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 querías crear y escogiste una aplicación de Windows. Una aplicación de Windows es un tipo de programa que tiene una interfase de usuario que brinda un formato para que tu usuario interactúe 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 información de introducción del usuario una vez que se abrieron. Mmmmm. Es un tanto aburrido, si me preguntas.

Page 66: Visual Basic Net

Unidad 04 – Formsville, Virginia 66

Controles y propiedades de formato

Diseño del formato A mí me gustan los juegos, y eso significa acción interactiva, por lo que todos los programas que escribo son aplicaciones de Windows. Las aplicaciones de Windows usan formatos para que diseñes lo que el usuario ve y como interactúa con tu programa. Cuando creas por primera vez una aplicación de Visual Basic de Windows, Visual Studio agrega automáticamente 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 interactúe con tu programa. Digamos que tu aplicación tiene un "formato de llanta ponchada" para introducir la información acerca de una llanta ponchada. He aquí una descripción de los controles que necesitas en el formato de llanta ponchada y lo que hacen: • En un cuadro de texto, introduce el número de las placas del coche. • De un grupo de botones de selección 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 tamaño de la llanta • Haz clic en un botón que busque en el inventario de las llantas • En un cuadro de texto despliega una lista de las llantas disponibles incluyendo el fabricante, número de modelo, tamaño, número de inventario y costo. Así que el formato de llanta ponchada tiene dos cuadros de texto, cuatro botones de selección, una lista desplegable, una casilla de verificación, y un botón. Puedes organizarlos en el formato en muchas formas diferentes y es ahí donde la diversión y al creatividad comienza.

Page 67: Visual Basic Net

Unidad 04 – Formsville, Virginia 67

Controles y propiedades de formato

Para mí, uno de los aspectos más agradables de la programación es el diseño 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 también. 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 fácil de usar y no puede tener elementos innecesarios. Cuando diseño un formato me pregunto continuamente: "¿Cuál es el objetivo de este formato? ¿Qué se supone que haga?" También 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 lógica. Tengo que pensar en el orden en que el usuario introducirá la información e interactuará con el programa. Algunas veces tengo que notificar al usuario que no ha introducido toda la información requerida, o que parte de la información es errónea. Cuando estás diseñando 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 diseñas un formato, tienes que recordar que todas las aplicaciones de Windows tienen una apariencia y un ambiente estándar. Un usuario espera que tu aplicación siga ciertos lineamientos de diseño y se comporte de cierta manera. Por ejemplo, la primera elección del menú de una aplicación de Windows es "Archivo", y bajo "Archivo" se encontrará una elección de menú llamada "Salir" que el usuario selecciona para cerrar el programa. Un usuario estaría muy sorprendido y molesto si hace clic en un botón llamado "Calcular resultados" y tu programa cambia el color del formato principal a rojo y traduce todos los títulos de los botones al latín.

Page 68: Visual Basic Net

Unidad 04 – Formsville, Virginia 68

Controles y propiedades de formato

Uso del formato Como sabes, cuando creas una nueva aplicación de Windows, Visual Studio agrega automáticamente un formato llamado Form1.vb. Este es el formato principal, o formato de inicio, de tu aplicación. 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 navegación a distintas partes de la aplicación. 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 información o interactuar con el programa de otras maneras. Por lo general tienen un propósito específico, como visualizar la puntuación del boliche, introducir una lista de efectos secundarios o elegir configuraciones de programa. Después de que el usuario ha introducido o visualizado la información en uno de estos formatos, éste se cierra por lo general y regresa al formato principal. Aunque Visual Studio solo agrega Form1, tú puedes añadir 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 diálogo común. Una vez que el usuario leyó el mensaje, cierra el cuadro de mensaje haciendo clic en el botón OK. Comencemos. Vas a diseñar tu propio formato: un formato de llanta ponchada. Después agregarás algunos controles de formato y establecerás sus propiedades. Te mostraré como responden los controles de formato a acciones tales como hacer clic en un botón y volveremos a ver un formato integrado especial: nuestro viejo amigo el cuadro de mensajes.

Recomendación para el profesor Form1.vb puede cambiarse de nombre con una denominación más descriptiva. Esto es deseable para las aplicaciones complejas.

Recomendación para el profesor Los alumnos estarán tentados a leer el material pero no a llevar a cabo realmente lo que está descrito en el texto. Se beneficiarán más cuando hagan realmente lo que dice el texto del curso, lo cual indica, confirma y refuerza que comprendieron el material del curso.

Page 69: Visual Basic Net

Unidad 04 – Formsville, Virginia 69

Controles y propiedades de formato

Propiedades del formato Cuando creas una aplicación nueva de Windows, Form1 se agrega automáticamente. Tiene un tamaño predeterminado de 300 por 300 píxeles. ¿Cómo sabía el tamaño de Form1?, te preguntarás. Bueno, hay una manera sencilla de verificarlo usando la ventana de propiedades. Lo que es más, puedes cambiar el tamaño del formato en la misma ventana. Te mostraré los pasos. Primero, tienes que crear una nueva aplicación 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 omisión. 2. Recorre la lista de propiedades de Form1 y ubica el rubro Tamaño. Nota que éste tiene un signo de más junto a él, lo que indica que puede expandirse para desplegar otras propiedades.

Page 70: Visual Basic Net

Unidad 04 – Formsville, Virginia 70

Controles y propiedades de formato

3. Haz clic en el signo de más ubicado junto a Tamaño. Se despliegan las propiedades Altura y Ancho. La altura de Form1 es de 300 y el ancho es de 300. Vamos a cambiar el tamaño 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 número 450. Oprime la tecla Enter ¡listo! Acabas de cambiar el ancho del formato. Nota cómo el ancho del formato cambió en cuanto oprimiste la tecla Enter. Nota también cómo el valor del ancho ubicado junto al rubro tamaño se estableció al mismo tiempo.

Page 71: Visual Basic Net

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 están en él. En la ventana de propiedades, ve a Color de fondo de Form1. Haz clic en la palabra Control. Un botón de flecha hacia abajo aparecerá a la derecha; haz clic en él. Se abre una ventana de paleta de colores. Selecciona la pestaña 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 solución y comienza tu proyecto. Ve el nuevo y extravagante color de fondo de tu formato. Además, fíjate 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 familiarízate con la lista. Ésta ventana te permite cambiar las propiedades del formato en el momento de diseñarlo. Como verás, la ventana de propiedades no es sólo para formatos. También te permite cambiar las propiedades de los botones, cuadros de texto y otros controles del mismo.

Page 72: Visual Basic Net

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 más comunes y como configurar sus propiedades mas útiles. Comencemos con los títulos. Etiquetas El control de formato Etiqueta se usa para etiquetar controles individuales o grupos de controles en tu formato. También se usa comúnmente para dar instrucciones o indicar el orden para introducir información 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. Arrástrala a una ubicación adecuada deteniendo el botón izquierdo del ratón y moviendo el ratón. 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 bórralo con la tecla de retroceso. Teclea las palabras Introducir licencia. Cuadro de texto Un cuadro de texto puede usarse para desplegar información para el usuario o recabar información 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 Sólo lectura a Falso para que el usuario pueda introducir texto en el cuadro de texto. Falso debe ser el valor predeterminado.

Recomendación 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 característica de un objeto, como el ancho o el color.

Page 73: Visual Basic Net

Unidad 04 – Formsville, Virginia 73

Controles y propiedades de formato

Los cuadros de texto a menudo se usan para desplegar una gran cantidad de información. 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 Multilínea a Verdadero. Pon la altura a 100 píxeles y el ancho a 100 píxeles. Si Multilinea se establece a falso, no podrás 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 selección Los botones de selección se usan para ofrecerle al usuario opciones. Éste puede seleccionar un solo botón de selección de un grupo de botones. Es como una prueba de opción múltiple. En la ventana Cuadro de herramientas haz doble clic en el control de formato de botón de selección. Se agrega el botón de selección RadioButton1 al formato. Selecciona RadioButton1 en tu formato, oprime el botón derecho del ratón y selecciona Copiar del menú. Haz clic en cualquier lugar en Form1, oprime el botón derecho del ratón, y selecciona Pegar del menú. Como por arte de magia, se agrega RadioButton2. Repite la operación Pegar para agregar RadioButton3 y RadioButton4. Selecciona RadioButton1 y abre la ventana de Propiedades. Escoge la propiedad Texto y cámbialo de "RadioButton1" a izquierdo, delantero. Cambia las propiedades de texto de los otros botones de selección: RadioButton2 a izquierdo, posterior, RadioButton3 derecho, delantero, RadioButton4 a "(derecho, posterior). Casilla de verificación Un cuadro de texto puede usarse para desplegar información para el usuario o para recabar información 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 Sólo lectura a Falso para que el usuario pueda introducir texto en el cuadro de texto. Falso debe ser el valor predeterminado. Las casillas de verificación también se usan ofrecerle al usuario opciones. Un usuario puede seleccionar una o más casillas de verificación de un grupo. En la ventana Cuadro de herramientas haz doble clic en el control de formato de casilla de verificación. Se agrega CheckBox1 al formato. Abre la ventana de propiedades y cambia Texto’ a "Rush Job" (trabajo urgente.)

Page 74: Visual Basic Net

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 tamaño de llanta. Ve a elementos y haz clic en la palabra Colección. Un botón de elipsis (botón con tres puntos en él) aparece a la derecha. Haz clic en el botón ellipsis y se abre una ventana en donde puedes introducir una lista de elementos que aparecerán en la combobox. Debes colocar cada elemento de la lista en una línea independiente. Después de haber introducido un elemento, haz clic en Entrar para crear una línea nueva. En la ventana introduce 12, oprime Entrar, introduce 13, oprime Entrar, introduce 14; oprime Entrar e introduce 15. Haz clic en el botón ‘OK’ para cerrar la ventana. Botones de comando Un cuadro de texto puede usarse para desplegar información para el usuario o para recabar información 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 Sólo lectura en Falso para que el usuario pueda introducir texto en el cuadro de texto. Falso debe de ser el valor predeterminado. Agrégale un botón 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 botón de elipsis. Haz clic en el botón 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 solución 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 selección, un botón de selección diferente, la casilla de verificación? Introduce algún 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 aplicación.

Page 75: Visual Basic Net

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 código Visual Basic.NET al formato y los controles de formato. Asegúrate de familiarizarte con las varias propiedades de cada control de formato que agregaste. Puedes reorganizar los controles de formato para hacer el formato más claro y fácil de usar. Puedes agregar títulos que le digan al usuario para qué se utilizan los diferentes controles y dar instrucciones sobre qué tipo de información se necesita. ¿Cómo crees que deben organizarse los controles en el formato? ¿Qué control debe estar al principio y cuál al final?

Recomendación para el profesor El alumno debe usar la ventana de propiedades para revisar las propiedades de cada control.

Page 76: Visual Basic Net

Unidad 04 – Formsville, Virginia 76

Controles y propiedades de formato

Un formato y muchos objetos de formato tienen las mismas propiedades. Algunas de las más comunes son: • Color de fondo • Habilitado • Color frontal • Ubicación • Nombre • Tamaño (altura, ancho) • Texto • Visible En J# y C# el diseño de formato es exactamente igual que en VB.NET. Se facilita gracias a Visual Studio.NET. Sólo abrimos el Cuadro de herramientas y arrastramos los controles de formato hacia el formato. Después abrimos la ventana de propiedades y las configuramos.

Page 77: Visual Basic Net

Unidad 04 – Formsville, Virginia 77

Controles y propiedades de formato

04 Ejercicio 01 Quién es quién ¿Te gustaría saber más acerca de la gente con la que estás 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 código suministrado, aprenderás más acerca de tus compañeros de viaje. Puedes obtener el código de base 04_ proveit_01_template code (solución) de tu instructor o del sitio de internet del curso si es que lo estás tomando en línea. Coloca la solución 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í. También deberás actualizar elementos en la ventana de propiedades como se describe a continuación.

Quién es quién Debes crear un formato para desplegar las biografías de Nikki, Cliff, Jen, Dirk y DJ Vu. Tendrás el código 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 botón Descargar para descargar el archivo.

Page 78: Visual Basic Net

Unidad 04 – Formsville, Virginia 78

Controles y propiedades de formato

1. Haz clic una vez en el formato para resaltarlo y después usa la ventana de propiedades para cambiar el nombre del formato a ‘Whoswho’. 2. Coloca dos casillas de verificación en el formato. Deja los nombres predeterminados como CheckBox1 y CheckBox2. Cambia las propiedades de Texto a Mostrar imagen y Mostrar biografía. 3. Coloca cinco botones de selección 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 más en el tamaño. 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 líneas de biografía. Visual Basic no te permitirá ajustar la altura de un cuadro de texto hasta que colocas PRIMERO la propiedad Multilínea en Verdadero. Visual Basic sabe que si sólo tienes una línea no hay razón 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 más líneas de biografía de las que pueden caber en el cuadro. 7. Coloca un botón de comando llamado Button1. Ajusta la propiedad Texto a Salir. Una vez que hayas creado tu formato, crea la solución. Si no hay errores de creación, escoge Depurar / Iniciar para ejecutar tu programa. Si tu programa funciona correctamente, muéstraselo a tu instructor.

Recomendación para el profesor El alumno coloca objetos en un programa parcialmente terminado. No debe escribe ningún código.

Page 79: Visual Basic Net

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 botón, 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 también generan eventos. Tú usas estos eventos para ejecutar el código VB.NET asociado con ellos. El código VB.NET produce que tu programa haga lo que se supone que tiene que hacer. Cuando escribiste la aplicación HelloWorld, hiciste doble clic en el botón y la ventana de código se abrió para que pudieras introducir el código en la acción Button1_Click. La acción Button1_Click es el evento predeterminado para un botón. Cada control de formato tiene un evento predeterminado. Cuando estás en modo de diseño, haz doble clic en el control de formato y la ventana de código se abrirá para el evento predeterminado. Por ejemplo: • Para un botón el evento predeterminado es hacer clic en él. • Para un cuadro de texto el evento predeterminado es Cambio de texto. • Para un botón de selección el evento predeterminado es marcado cambiado. • Para una casilla de verificación , el evento predeterminado es Marcado cambiado) • Para un ComboBox , el evento predeterminado es SelectedIndexChanged (Índice seleccionado cambiado. Para mostrarte cómo funciona esto, les agregaremos algunos códigos a los eventos predeterminados de los controles de formato del "formato de llanta ponchada". El código mostrará un cuadro de mensaje que despliega el tipo de control que envió la acción. En modo de diseño, haz doble clic en cada uno de los controles de formato que agregaste. La ventana de código se abrirá para la acción predeterminada de cada control. Pega la siguiente línea de código en cada de sección de evento.

MessageBox.Show(sender.GetType.Name)

Crea tu solución 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.

Page 80: Visual Basic Net

Unidad 04 – Formsville, Virginia 80

Controles y propiedades de formato

Si el formato de llanta ponchada fuera parte de una aplicación real, agregarías un código a las acciones predeterminadas para brindarle la funcionalidad que requiere tu programa. Por ejemplo, cuando haces clic en el botón Conseguir las llantas, se desplegará en el cuadro de texto una lista de llantas disponibles.

Recomendación para el profesor Puede suceder que un alumno haga doble clic en el control equivocado, como una etiqueta, creando un código de evento por clic. Por lo general, cuando un alumno borra un código innecesario, no hay problema. A veces, VB crea un código además del código de evento por clic. Ese código también debe borrarse para completar un proceso de creación. Una creación marcará el error para que sea fácil de encontrar.

Page 81: Visual Basic Net

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 descubrirás 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 información 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 línea de código 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 método 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 código para un cuadro de mensaje en C#. Es el mismo que en J# también. {

MessageBox.Show("Hello World"); }

Page 82: Visual Basic Net

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 más de un evento predeterminado. La mayoría 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 ratón • Salida de ratón • ¡y muchos más!

Para ver todos los eventos para un control de formato, selecciona el control. Haz clic con el botón derecho y selecciona Ver código del menú emergente. La ventana de código 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 código asociado con ellos.

Page 83: Visual Basic Net

Unidad 04 – Formsville, Virginia 83

Controles y propiedades de formato

Cuadros de mensajes

A menudo descubrirás 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 información 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 línea de código 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 método 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 código para un cuadro de mensaje en C#. Es el mismo que en J# también.{ MessageBox.Show("Hello World");

}

Recomendación para el profesor Un cuadro de mensaje tiene un formato más complejo que despliega botones que el usuario puede pulsar (Ej. si, no, cancelar). El programador puede revisar para ver que elección hizo el usuario. Los cuadros de mensaje complejo no se usan en este curso. Por ejemplo, Dim ElecciónUsuario como Integral ElecciónUsuario = MessageBox.Show ("pregunta aquí?", vbYesNo, "título aquí") Si ElecciónUsuario = vbYes entonces ‘ "si" código aquí o ‘ "no" código aquí Terminar condicional

Page 84: Visual Basic Net

Unidad 04 – Formsville, Virginia 84

Controles y propiedades de formato

Entrada a Formsville Buen trabajo en la creación de ese formato de llanta ponchada! Ahora ves porque me gusta tanto el diseño de formatos. Se que estás listo para Formsville. Intenta resolver estos Ejercicios, contesta la pequeña prueba, y estarás en camino de convertirte en un diseñador profesional de formatos. 04 Ejercicio 02 Precio de la Pizza ¿Qué sería 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 diseñar el formato de cualquier manera. Te daremos el código. 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 selección, dos títulos y 8 casillas de verificación.

Precio de la pizza Crearás un formato para desplegar el precio de una pizza. Te damos el código de Visual Basic.NET. El archivo 04_proveit02_files tiene las instrucciones para este ejercicio y los archivos de apoyo que necesitarás. Haz clic en el botón ‘Download’ para descargar el archivo

Page 85: Visual Basic Net

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 dólares por una pizza regular, $1 dólar más por cada carne adicional, y $0.50 centavos por cada ingrediente vegetal extra. Una pizza mediana cuesta 25% más y una grande 50% más que una regular. Una vez creado tu formato, crea la solución. Si no hay errores de creación, elige Depurar/iniciar para ejecutar tu programa. Si tu programa funciona correctamente, muéstraselo a tu instructor. Extensión / desviación Muestra el precio formateado con apariencia de dinero. Visual Basic.NET tiene una función conveniente para esto. Coloque una variable dentro de la función 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. Recomendación para el profesor La función ‘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. Sólo significa que el elemento en el cuadro de texto es formateado al momento en que se aplica la función. Si el contenido del cuadro de texto es reemplazado posteriormente, el formato desaparece, salvo que se aplique nuevamente al momento de la actualización.

Page 86: Visual Basic Net

Unidad 04 – Formsville, Virginia 86

Controles y propiedades de formato

04 Reto Gato Ya que casi todos en el viaje usan la computadora portátil, los juegos de computadora son una forma de pasar el tiempo cuando el paisaje es aburrido. Tu misión, si decides aceptarla, es escribir el clásico juego de gato usando Visual Basic.NET. Dirk encontró el código para el programa en un portal de internet poco conocido pero falta el código del formato. Debes “pintar” el formato para que corresponda al código. Si haces eso correctamente, tendrás un juego de gato listo para jugar. Tu instructor te dará el código de base 04_challenge_template code o lo obtendrás en el portal de internet si estás tomando el curso en línea. Coloca la solución 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 opción, 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í. También deberás actualizar elementos en la ventana de propiedades como se describe abajo. 1. Haz clic en el formato para enfocarlo. Cambia el título del formato a ‘Gato’. 2. Crea 9 títulos llamados Label1 a Label9. Organízalos 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 código está incluido. Cuando pintes el formato correctamente, tendrás listo el juego llamado gato. El archivo 04_challenge_files tiene las instrucciones para este Reto y los archivos de apoyo que necesitarás. Haz clic en el botón Descargar para descargar el archivo. Después haz doble clic en el archivo para accesar las instrucciones y archivos necesarios.

Page 87: Visual Basic Net

Unidad 04 – Formsville, Virginia 87

Controles y propiedades de formato

derecho. Puedes ahorrar mucho tiempo haciendo un título, configurando las propiedades, y después copiando y pegando el titulo 8 veces más. 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 título llamado Label10 a continuación 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 títulos 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’. Colócalos junto a los títulos creados en el paso 4. 6. Crea un botón llamado Button1, como se muestra. Cambia este texto a “Jugar de nuevo”. 7. Crea un botón llamado Button2, como se muestra. Cambia su texto a “Fin”. Una vez que hayas creado tu formato, crea la solución. Si no hay errores de creación, elige Depurar/iniciar para ejecutar tu programa. Si tu programa funciona correctamente, muéstraselo a tu instructor.

Recomendación para el profesor Las letras ‘L’ grandes en la página previa representan la primera letra de un título que tiene una fuente grande.

Page 88: Visual Basic Net

Unidad 04 – Formsville, Virginia 88

Controles y propiedades de formato

Extension / Desviación • Cambia el color de fondo del formato. • Cambia la fuente de todos los botones, cuadros de texto, etc. a una fuente más 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 pequeña 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 información?

Cambian las propiedades de un cuadro de texto Actualizan la carpeta fuente Hacen que se ejecute el código

Profundidad

Propiedades

Ventanas hijas

Cuadro de texto

Etiqueta

Botón de comando

Controles

Objetos

Tanto controles como objetos

Un formato y sus controles tienen:

INTENTA LA PRUEBA DE NUEVO

Page 89: Visual Basic Net

Unidad 05 – Proper, Georgia 89

Temas en el camino a Proper Propiedades Dónde inicia el código Leer propiedades con el código Configurar propiedades con el código Métodos IntelliSense y notación de punto Llamar métodos con el código. Entrada a Proper

Page 90: Visual Basic Net

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 diseño 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. Deberás tener muy buenos modales cuando lleguemos allá, durante el camino te enseñaré más cosas respecto a las propiedades, te enseñaré como leerlas y configurarlas usando el código Visual Basic.NET. Después de aprender sobre dichas propiedades, te enseñaré un poco acerca de los métodos y como accesarlos también.

Page 91: Visual Basic Net

Unidad 05 – Proper, Georgia 91

Dónde inicia el código Es divertido diseñar un formato y configurar los controles correspondientes usando la ventana de propiedades, pero esto es sólo el principio, la ventana de propiedades es muy fácil de usar, pero no es muy versátil. ¿Qué pasa si tu usuario desea cambiar el color de fondo del formato cuando está usando tu programa? ¿Qué pasa si necesita cambiar el tamaño o estilo de fuente? ¿Cómo sabe tu programa si un usuario ha marcado algún cuadro de verificación o ha hecho clic en un botón de opción en particular? Dado que tus usuarios no tendrán que accesar la ventana de propiedades cuando ejecutan tu programa, ¿Cómo podrían hacer estas cosas? Bien, la respuesta es por medio del código Visual Basic.NET, con él puedes hacer todo esto y mucho más usando el código. Tú mismo escribes código para leer las propiedades de los controles de formato. Tú mismo escribes más códigos para configurar sus propiedades. Es así de simple y es muy poderoso. En mi opinión, es aquí donde empieza realmente la programación.

Usa la ventana de propiedades para configurar las propiedades iniciales de tu formato y los controles de formato cuando lo estás diseñado. Usa el código para cambiar las propiedades durante la ejecución del programa.

Page 92: Visual Basic Net

Unidad 05 – Proper, Georgia 92

¿A dónde va todo este código? Escribirás tu código en la página correspondiente de tu formato. En la mayoría de los casos lo colocarás en las secciones de eventos de tus controles de formato. ¿Recuerdas el botón clic por evento? Cuando un usuario realiza una acción, como la de pulsar un botón, el código que escribes para la sección de evento se ejecuta y la propiedad de un control de formato se lee o se configura. Cuando agregas un código a los eventos de los controles del formato, estás realizando los primeros pasos para convertir un formato en un programa funcional. ¿Recuerdas el formato de llanta ponchada que diseñaste? El formato no puede hacer nada hasta que le hayas agregado un código.

A continuación te daré unos cuantos ejemplos de como leer las propiedades de los controles de formato usando el código Visual Basic.NET. Posteriormente te daré unos ejemplos de cómo configurarlas.

Para editar la sección de eventos predeterminada de un control, selecciona el control en tu formato y haz doble clic en él. La ventana de código se abre y el código de la sección de evento está listo para su edición. Puedes escoger una sección de evento diferente de una lista desplegable en el extremo superior derecho de la ventana de código.

Page 93: Visual Basic Net

Unidad 05 – Proper, Georgia 93

Lectura de las propiedades con el código Vamos a ver algunos ejemplos reales respecto a la forma de leer propiedades con el código Visual Basic.NET. Para iniciar, te mostraré unos ejemplos de como leer algunas propiedades sencillas que normalmente se configuran usando la ventana de propiedades. Después de esto te daré unos ejemplos más de cómo leer algunas propiedades que los usuarios pueden cambiar cuando estén usando tu programa. Ahora, sigamos adelante. Crea una nueva aplicación de Windows llamada Leer propiedades, abre el cuadro de herramientas y agrega un botón 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 código de evento del botón de clic. Teclea este código:

MessageBox.Show(Button1.Text) Crea e inicia tu aplicación. Haz clic en el botón 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 código leyó la propiedad de texto de Button1 y después desplegó su valor usando un mensaje. Esto es fantástico. Este es otro ejemplo. Agrega otro botón a Form1. Usa la ventana de propiedades para cambiar la propiedad de texto de Button2 a Tamaño del formato. Haz doble clic en el Button2 para editar el código de evento del botón de clic. Teclea la siguiente línea de código en el evento del clic de botón.

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

Crea e inicia tu proyecto. Haz clic en el botón tamaño de formato. Un cuadro de mensaje despliega: 300,300 (o un valor aproximado, asumiendo que dejaste el formato en su tamaño original) tu código ha desplegado la altura y ancho de Form1, separado por una coma, lo cuál está muy bien y fue realmente sencillo. ¿Qué otras propiedades puede leer el código Visual Basic.NET? Bueno, en realidad, el código Visual Basic.NET puede leer todas las propiedades de un formato o control de formato, los cuales están en la lista de la ventana de propiedades. Tu código 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 diseñas el formato y no cambian cuando el programa se ejecuta. Por lo tanto, el hecho de leerlas con el código no es tan útil ni emocionante.

Page 94: Visual Basic Net

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 verificación. De esta manera tu programa obtiene información de tu usuario. ¿Qué número de placas introdujo Len? ¿Qué llanta está ponchada? ¿Qué tamaño de llanta escogió Cliff? Aquí hay un ejemplo más práctico. Vamos a escribir un código que muestre si un cuadro de verificación está marcado o no. Abre el cuadro de herramientas y agrega un cuadro de verificación a Form1. Agrega un tercer botón a Form1. Abre la ventana de propiedades y cambia el texto del Button3 a verifícame. Haz doble clic en el Button3 para editar el código de evento de clic. Teclea la siguiente línea de código en el evento de clic:

MessageBox.Show(CheckBox1.Checked) Crea e inicia tu proyecto. Haz clic en el botón verifícame. ¿Qué despliega el cuadro de mensaje? Marca el cuadro de verificación y haz clic en el botón Verifícame otra vez. ¿Ahora qué despliega el cuadro de mensaje? Cada vez que haces clic en el botón, el cuadro de mensaje despliega la propiedad actual del cuadro de verificación. Debe decir cierto.

Recomendación para el profesor El alumno debe saber como leer y cambiar las propiedades usando el código, hasta que aprenda también las instrucciones condicionales, hay serias limitaciones sobre que tan interesante puede ser un programa.

Esa es A3, B2 y mi favorita, B9.

Page 95: Visual Basic Net

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 botón a Form1. Cambia el texto de Button4 a leer el texto. Haz clic en Button4 para editar el código del evento de clic. Teclea la siguiente línea de código. 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 botón Leer texto. ¿Qué despliega el cuadro de mensaje? Cambia el texto en TextBox1 y haz clic en el botón 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 código 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 línea, el código se ve igual que en Visual Basic.NET. También, en J# y C# TextBox1 inicia con ‘t’ minúscula. Los ejemplos que expuse anteriormente, demuestran cómo se usa el código Visual Basic.NET

para leer propiedades de controles del formato. Pero eso sólo es una parte de la historia, porque el código Visual Basic.NET también se usa para configurar propiedades.

Page 96: Visual Basic Net

Unidad 05 – Proper, Georgia 96

Configuración de propiedades con código Es fantástico poder leer las propiedades de los controles mediante el código Visual Basic.NET. De este modo nuestro código puede capturar las configuraciones que hacen los usuarios cuando usan el programa. Tu programa puede realizar diferentes acciones o ejecutar un código 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 verificación de trabajo urgente cuando el usuario inicia el programa. Quiero que el programa despliegue todos los tamaños disponibles de las llantas en un cuadro de texto cuando el usuario hace clic en el botón Conseguir las llantas. Quiero que la lista de tamaños de llantas disponibles se cargue automáticamente en la lista desplegable una vez que el usuario introduzca un número de placas del vehículo. ¡Por supuesto que el código Visual Basic.NET me permite hacer todo eso! Configurar las propiedades de controles es tan fácil como leerlas. Para configurar una propiedad usando el código Visual Basic.NET usamos una instrucción de asignación. ¿Recuerdas que hablamos de las instrucciones de asignación de camino a Pseudo, PA? Una instrucción de asignación configura a un elemento con otro. El código para una instrucción de asignación se ve como una ecuación sencilla con un signo de igualdad en ella.

TextBox1.Text = "Code Rules" El lado derecho de la ecuación (la parte a la derecha del signo de igual) se evalúa primero. Después el lado izquierdo de la ecuación (la parte a la izquierda del signo de igual) se configura con este valor.

Recomendación 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 después es asignado a la variable en el lado izquierdo. Sólo la variable del lado izquierdo se cambia.

Page 97: Visual Basic Net

Unidad 05 – Proper, Georgia 97

Estos son algunos ejemplos sobre la forma de configurar propiedades usando el código Visual Basic.NET. El primer ejemplo configura el contenido de un cuadro de texto. Esta es una grandiosa forma de desplegar información para el usuario, puede usarse en vez de que siempre emerja un cuadro de mensaje. Inicia una nueva aplicación de Windows y dale el nombre de ‘ConfiguraPropiedades’. Agrega dos cuadros de texto y un botón a Form1. Usa la ventana de propiedades para configurar el texto del Button1 con Configurar texto. Configura el texto de TextBox1 y TextBox2 dejándolo en blanco, haciendo doble clic en sus propiedades de texto y oprimiendo la tecla de retroceso. Haz doble clic en Button1 para editar el código de evento del botón de clic. Agrega la siguiente línea de código: TextBox2.Text = TextBox1.Text

Crea e inicia tu proyecto. Teclea texto en TextBox1 y haz clic el botón 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 código Visual Basic.NET lee la propiedad de texto de TextBox1 y después configura la propiedad de texto de TextBox2 con este valor. Eso es práctico. Vamos a agregar un código para que un cuadro de verificación esté seleccionado automáticamente y un segundo cuadro de verificación estará automáticamente sin seleccionarse cuando el usuario abra la aplicación. Agrega un cuadro de verificación a Form1 y configura su propiedad de texto con trabajo urgente usando la ventana de propiedades. Agrega un segundo cuadro de verificación 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 código de evento de carga de Form1_Load para su edición. El código del evento de carga de formato se ejecuta cuando el formato se crea por primera vez y se despliega antes de que cualquier otro código de programa haya sido ejecutado. Agrega las siguientes líneas de código: CheckBox1.Checked = True CheckBox2.Checked = False Crea e inicia tu proyecto. ¿Cuál de las casillas de verificación está marcada? Tu código configuró automáticamente la propiedad de ‘checked’ para las dos casillas de verificación cuando se cargó el formato.

Page 98: Visual Basic Net

Unidad 05 – Proper, Georgia 98

Yo sé que el tamaño de llanta más común es el 14. Entonces, vamos a usar el código para elegir automáticamente 14 en nuestro cuadro combinado de tamaño 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 línea nueva para cada elemento en la lista. Haz doble clic en Form1 (no en ComboBox1) para editar el código de carga de formato. Agrega la siguiente línea de código:

ComboBox1.SelectedItem = "14" Crea e inicia tu proyecto. ¿Qué elemento está seleccionado en el cuadro combinado? Pensemos que me equivoque, descubrí que el tamaño de llanta más común es 13. ¿Cómo cambiarías el código para seleccionar automáticamente 13 en el cuadro combinado? En J# y C# puedes configurar las propiedades igual que en Visual Basic.NET. El código a continuación muestra cómo configurar la propiedad de ‘verificada’ de una cuadro de verificación 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 inicialización configura ciertos valores antes de que el formato se despliegue para el usuario. Por ejemplo, podríamos agregar código al evento de carga de formato para configurar el tamaño del formato y su color de fondo así como seleccionar ciertos botones de opción antes de que se despliegue el formato.

Page 99: Visual Basic Net

Unidad 05 – Proper, Georgia 99

Inspirado por un lindo arco iris que vimos desde el asiento frontal de la camper, nuestros compañeros decidieron ver quien podía imitar la vida con un programa artístico. Tu tarea es demostrar que puedes manipular también las propiedades usando código 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. También actualizarás elementos en la ventana del código como se describe a continuaión.

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 estándar al Button1. Nombra Personalizar colores al Button2.

Arco iris de colores. Diseñarás un formato que despliegue un arco iris de colores. Modificarás un código existente para hacer que el programa funcione y lo agregarás 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.

Page 100: Visual Basic Net

Unidad 05 – Proper, Georgia 100

4. Haz doble clic en el Button1 para ver el código que ya te dimos. Verás 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 código: MyPen.Color = System.Drawing.Color.Black

Con este código MyPen.Color = System.Drawing.Color.Red

En cuanto se teclea el punto después 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 código que ya se te asignó. En vez de negro, escoge los siete colores que quieras. Una vez que hayas creado tu formato, crea la solución. Si no hay errores de creación, escoge Depurar/ Iniciar para ejecutar tu programa. Si tu programa funciona correctamente, muéstraselo a tu instructor. Prueba extra Si quieres, puedes hacer cambios a los parámetros de Dibujar arco para la opción personalizar con el propósito de obtener otros resultados interesantes. Recomendación para el profesor

La función Dibujar arco es en realidad un óvalo circunscrito por un rectángulo invisible. Los parámetros especifican el tamaño del rectángulo, donde inicia el arco y hasta donde llega el arco. El hecho de cambiar los parámetros puede producir algunos efectos interesantes.

Page 101: Visual Basic Net

Unidad 05 – Proper, Georgia 101

IntelliSense y notación de punto Ahora sabes como escribir un código Visual Basic.NET para leer y configurar todas las propiedades de los formatos y los controles de formato. Sí, apuesto que puedo adivinar cuál es tu siguiente pregunta. Ya que cada formato y control tiene tantas propiedades, ¿cómo llevo un control de todas ellas? No es muy conveniente estar cambiando de la ventana de código a la Ventana de propiedades cada vez que necesitamos saber qué propiedad pertenece a un control en particular. ¿No hay otro modo más fácil? En efecto, sí lo hay. Se llama IntelliSense. Es una parte de Visual Studio. IntelliSense ahorra mucho tiempo cuando estás escribiendo un código en la ventana de código. 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 más 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 código. Con IntelliSense no tienes que memorizar todas las propiedades de todos los controles. ¡Te ahorra capturar mucha información! Yo lo uso todo el tiempo.

Recomendación para el profesor De ser posible, haga una demostración de Intellisense. Señale 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 continuación

Page 102: Visual Basic Net

Unidad 05 – Proper, Georgia 102

Inicia una nueva aplicación de Windows llamada IntelliSense. Agrega un cuadro de texto y un botón a Form1. Haz doble clic en el botón para abrir el código 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 más 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 más 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 código después de TextBox1. Ahora escribe ="Clifford". El código ahora debe decir:

TextBox1.Text = "Clifford" ¿No fue fácil y rápido? IntelliSense ayuda a eliminar errores de captura y también de sintaxis. Es el mejor.

Page 103: Visual Basic Net

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 señalando un elemento en una lista. El icono que representa un método es un cuadro púrpura o diamante púrpura. (En un minuto te explicaré los métodos.) Dependiendo del control, también 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 Notación de punto, una vez que tecleas el nombre del control, como TextBox1, tienes que teclear un punto (.). Después tecleas el nombre de la propiedad. El punto es lo que conecta el control con su propiedad. Esta es la sintaxis básica para referir una propiedad de un formato o control usando notación de punto:

FormName.FormProperty ControlName.ControlProperty Ya viste muchos ejemplos pero aquí hay otros más:

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 están resaltadas en la lista Intellisense, una recomendación aparece junto a ella. La recomendación te da información acerca de la propiedad de, como si se trata de una propiedad de sólo lectura que no puede configurarse. La recomendación también da información acerca de los parámetros de configuración de la propiedad, tales como una cadena (texto) o un entero.

Page 104: Visual Basic Net

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 tendrás 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 también está disponible. Funciona igual que Visual Basic.NET. Solo teclea el nombre de tu control y después un punto (.). IntelliSense despliega una lista de propiedades y métodos disponibles. Debido a que J#, C# y Visual Basic.NET están basados en el marco de trabajo .NET, la lista de propiedades y métodos 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 métodos.

Page 105: Visual Basic Net

Unidad 05 – Proper, Georgia 105

Métodos Probablemente ya te diste cuenta de que algunas de las propiedades en la lista desplegada por

IntelliSense tienen un icono de diamante púrpura junto a ellas. Estas no son propiedades sino métodos. Las propiedades son características del control, tales como el color, número de asientos, libras de cromo y caballaje del motor son características de los autos. Los métodos tienen más similitud con las acciones del control, tales como girar a la derecha, parar, y acelerar hasta el fondo son acciones de los autos. Los métodos no pueden accesarse mediante la ventana de propiedades. Para desplegar los métodos debe usarse un código. Por ejemplo, la mayoría de los controles de formato tienen un método para ocultar y mostrar. Cuando usas el método ocultar de un control, el control deja de ser visible aunque está en el formato. Cuando usas el método mostrar, el control se hace visible. Algunos métodos te permiten producir una acción que normalmente sería realizada por un usuario. Por ejemplo, un botón tiene un método Hacer clic el cuál permite que tu código hacer clic en un botón, simulando la acción de un usuario. Algunos métodos requieren que incluyas cierta información cuando los usas. Esta información afecta la forma en que se realiza el método y los resultados. Estos datos se llaman argumentos

del método. Un método puede requerir uno o más argumentos. Algunos de ellos pueden ser opcionales. Por ejemplo, el método 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 método para mostrar el cuadro de mensaje pero tal vez no te diste cuenta que estabas usando un método con un argumento.

MessageBox.Show("Hola Mundo") En el código que está sobre el texto "Hello World" se encuentra un argumento del método para mostrar. El argumento determina lo que se despliega en el cuadro de mensaje. Recuerda, la diferencia principal entre las propiedades y los métodos es que éstos realizan una acción. Los métodos tienen que usarse partiendo del código y no pueden accesarse a partir de la Ventana de propiedades. Algunos métodos pueden requerir uno o más parámetros (argumentos) cuando se usan. Algunos métodos devuelven un valor que puedes usar en tu código. Llamar métodos con el código La sintaxis para llamar un método es casi idéntica a la sintaxis de configuración o lectura de una propiedad. Usa la notación de punto para conectar el control de formato con su método. Algunos

No, eso es falso

Page 106: Visual Basic Net

Unidad 05 – Proper, Georgia 106

métodos, 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 método es: ControlName.MethodName (argument1, argument2, etc.) Recuerda que usaste el método mostrar del cuadro de mensaje cuando diste un argumento: MessageBox.Show(“Hello World”)

Como puedes ver, una gran diferencia entre llamar un método y leer (o configurar) una propiedad es que no hay un signo de igual en el código empleado para llamar un método. Ahora veamos algunos de mis métodos favoritos y como puedes usarlos partiendo del código. Te daré unos ejemplos de como ocultar y mostrar controles de formato, borrar el texto en un cuadro de texto y establecer la ubicación del cursor. Para empezar, inicia una aplicación nueva de Windows llamada Métodos. 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 línea de código.

TextBox1.Show() En el evento de clic de Button2 agrega la siguiente línea de código.

TextBox1.Hide() Crea e inicia tu aplicación. Haz clic en los botones "Show" y "Hide". Cada vez que haces clic en un botón estás usando un método del control del botón. Agrega un tercer botón a Form1. Configura el texto de Button3 con "Reset" agrega el siguiente código al evento de clic de Button3.

TextBox1.ResetText() TextBox1.Focus()

El método ResetText elimina el texto del cuadro de texto. El método ‘Focus’ coloca el cursor en el cuadro de texto. Crea e inicia tu aplicación. Teclea el texto en el cuadro de texto y haz clic en el botón ‘Reset’. El texto se elimina del cuadro de texto y el cursor se coloca automáticamente en el cuadro de texto, listo para teclear datos.

Recomendación para el profesor Una alternativa común para TextBox1.ResetText() es el no asignar nada TextBox1.Text = “” y el interior de las comillas está vacío.

Page 107: Visual Basic Net

Unidad 05 – Proper, Georgia 107

Como habrás adivinado, los métodos se usan en J# y C# igual que en Visual Basic.NET. Este es un código de J# que elimina el texto de un cuadro de texto y pone el cursor en el cuadro de texto. El código C# se ve exactamente igual. { TextBox1.ResetText(); TextBox1.Focus(); }

Page 108: Visual Basic Net

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 métodos de controles de formato usando código Visual Basic.NET. Como viste, la mayor parte del código pasa a las secciones de eventos de los controles de formato. Para abrir el código para la sección de eventos sólo haz doble clic en el control, la ventana de código se abre y la sección de evento está lista para edición. Para leer o configurar una propiedad, o usar un método, teclea el nombre de un control y después teclea un punto (.). IntelliSense muestra una lista de propiedades y métodos disponibles para el control. Selecciona el que quieras y oprime la tecla de tabulador para agregarlo a tu código. Tenemos tiempo suficiente para un Ejercicio o dos y una prueba antes de que nos pongamos algo más elegante y vayamos al Peach 'n Bass Café. ¿Listo?

Page 109: Visual Basic Net

Unidad 05 – Proper, Georgia 109

05 Ejercicio 02 Medidor de viaje El fantástico mapa de viaje inspiró a Nikki a preguntar si alguien podría 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 código VB real, no sólo 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í. También deberá actualizar los elementos en la ventana de código como se describe a continuación. 1. Haz clic en el formato y cambia el nombre del

formato a Medidor de viaje. 2. Crea 13 botones de opción. Que el ancho de cada botón sea 150 píxeles. Tal vez quieras usar la función copiar y pegar. 3. Alinéalos verticalmente y después sepáralos uniformemente. ¿Sabías 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 código. Puedes agregar un código 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

Page 110: Visual Basic Net

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 botón llamado fin. Haz doble clic para obtener la página de código asociado. Coloca la palabra fin en el evento del clic de botón. 6. Coloca una barra vertical de desplazamiento en tu página. Tal vez tengas que recorrer el cuadro de herramientas usando el triángulo 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 más delgado, cambia el parámetro máximo para la barra de desplazamiento a 1000. 7. Ahora puedes escribir el código. Haz doble clic en el primer botón de opción. Coloca esta línea de código en el evento de clic. VScrollBar1.Value = 0 Este mueve el indicador de desplazamiento a la posición cero, para el rango de 0 – 1000. Para cada botón de opción, usa una línea de código similar, haciendo cada valor 83 veces mayor que el valor previo. El último valor debe ser 1000. Una vez creado tu formato, crea la solución. Si no hay errores de creación, elige Depurar / Iniciar para ejecutar tu programa. Si tu programa funciona correctamente, muéstraselo a tu instructor.

Page 111: Visual Basic Net

Unidad 05 – Proper, Georgia 111

05 Reto Flores Cuando pasamos por un campo de flores me pongo de buen humor. Creo que deberíamos 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 página de código. Justo arriba del código hay dos listas desplegables. De la lista desplegable izquierda, escoge Label1.

Recomendación para el profesor Algunos alumnos configurarán ‘MouseHover’ para el cuadro de imagen. Las instrucciones hacen que el ratón se coloque sobre el título que tiene el nombre de la flor, no sobre la flor.

En este reto crearás un formato para mostrar flores. Escribirás un código 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

Page 112: Visual Basic Net

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 títulos, 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 ratón se mantiene sobre la descripción. Una vez que tu programa funciona correctamente, muéstraselo a tu instructor. Extensión / desviación Cuando una flor haya sido seleccionada, cambia el color de fondo del formato.

Page 113: Visual Basic Net

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 código de programa para:

¿Cómo haces que el código seleccione un cuadro de verificación ?

Todas las instrucciones de asignación de Visual Basic:

¿Qué línea de código lee y despliega la propiedad de seleccionado de un botón de opción?

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 dirección porque son iguales

Page 114: Visual Basic Net

Unidad 06 – XY, Arkansas Página 114 de 321

Temas en el camino a XY XY Asignaciones Tipos Tipos primitivos ¿Qué son las variables? Variables de declaración Variables de inicialización El uso de variables Otro tipo de variables La llegada a XY

Page 115: Visual Basic Net

Unidad 06 – XY, Arkansas Página 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 vivía aquí. ¿Por qué ex-novia? Es que no nos entendíamos muy bien. Creo que era demasiado voluble. En el camino a XY, te enseñaré 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 cómo utilizarlas en tu código, el cuál utiliza variables para almacenar información de tipos diferentes. Las variables constituyen un bloque básico de creación para la escritura de un código. Yo estoy seguro que aprenderás rápido y comenzarás a basarte en las variables tanto como lo hacemos Nikki y yo para escribir un código.

Page 116: Visual Basic Net

Unidad 06 – XY, Arkansas Página 116 de 321

Asignaciones

Nikki nos hizo primero escribir un código en Visual Basic.NET que es realmente útil. Ahora ustedes saben cómo leer y configurar las propiedades mediante un código. ¿Sabías que cuando asignas una propiedad estás utilizando una instrucción de asignación? Hablamos de ellas en el camino a Pseudo, PA. Las instrucciones de asignación asignan una cosa a otra. El código para una instrucción de asignación parece una simple ecuación que contiene un signo de igual.

TextBox1.Text = “Code Rules”

Ahora rige esta instrucción de asignación. Algo que tú debes saber acerca de las instrucciones de asignación es que el lado derecho de la ecuación (la parte que se encuentra a la derecha del signo de igual) se evalúa primero. Después, el lado izquierdo de la ecuación (la parte que se encuentra a la izquierda del signo de igual) se asigna a este valor. Parece algo retrógrada, pero es así como funciona el programa. En la ecuación que se presenta a continuación, “Code Rules” se evalúa primero. Después TextBox1.Text se asigna a ese valor.

TextBox1.Text = “Code Rules”

Page 117: Visual Basic Net

Unidad 06 – XY, Arkansas Página 117 de 321

Tipos

Otra cosa que siempre debes tener en mente es que el la parte izquierda de la ecuación espera que su parte derecha sea de true type (texto, número, color, etc.) te lo explicaré mediante la siguiente línea de código como ejemplo:

TextBox1.Texto = “Code Rules Rocks”

Aquí, el lado izquierdo de la ecuación es la propiedad de Texto de TextBox1, que sólo puedes asignarse al texto, de modo que el lado derecho también 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 ningún error. El siguiente código 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 erro r

El siguiente código es correcto porque al lado derecho de la ecuación evalúa un tipo entero y a la Propiedad de altura sólo le puedes asignar un valor entero.

TextBox1.Height = 200

Este código es incorrecto porque incluye un decimal.

TextBox1.Height = 200.5

Recuerda, cuando estás utilizando instrucciones de asignación, el lado derecho de la ecuación debe ser del tipo correcto -- tiene que ser del tipo que lado izquierdo de la ecuación está esperando.

Recomendación para el profesor Con frecuencia, Visual Basic convertirá exitosamente un tipo de datos mal correlacionado. No se puede garantizar una conversión exitosa así que se deben especificar los datos correctos para las variables como una costumbre para lograr una buena programación. J# y C# son más sensibles a errores de correlación.

Page 118: Visual Basic Net

Unidad 06 – XY, Arkansas Página 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 estás usando un código 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 código para definir una propiedad que requiere un tipo cadena, acuérdate te colocar el text en sí entre comillas. Button1.Text = “Click Here”

Page 119: Visual Basic Net

Unidad 06 – XY, Arkansas Página 119 de 321

Tipos primitivos El entorno de .NET soporta a varios tipos básicos, a los cuáles se les conoce como primitivos. Tu ya has utilizado el tipo de cadena para asignar la propiedad de Texto de un botón. 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 más comúnmente son: Cadena (texto), Entero (números enteros), Sencillo (números decimales) y Booleano (True o False), estos tipos primitivos son comunes en todos los lenguajes de programación de .NET, incluyendo Visual Basic.NET, C#, y J#. A continuación 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 números enteros sin puntos decimales Sencillo 55.12 Números con puntos decimales Booleana True Sólo puede ser True o False

Recomendación para el profesor La mayoría de los alumnos tienen problemas con el concepto de que un número, como el entero 1, el cuál no es lo mismo que el carácter de cadena “1”. El formato binario del entero es 00000001 y el formato binario del carácter de cadena 00110001, obviamente no son iguales. Visual Basic complica el asunto porque intenta realizar conversiones según sean necesarias. Por ejemplo, Dim A as Integer = 1 Dim B as string = “1” Si (A = B) Entonces El código anterior regresa un valor de True a pesar del hecho que la representación interna es diferente. Remind students not to directly do arithmetic using the Text property of a textbox.

Page 120: Visual Basic Net

Unidad 06 – XY, Arkansas Página 120 de 321

Ve estos ejemplos de código de instrucciones de asignación 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# también son lenguajes de .NET, tienen los mismos tipos primitivos como Visual Basic.NET--cadenas, enteros, sencillos, Booleanos y todos los demás.

Cuando selecciones una propiedad o método de la lista del IntelliSense, también se desplegará un “tip” de ayuda, el cuál te dirá a que tipo de propiedad debe configurarse o qué tipo de argumentos de método debe ser: Button1.Text = “Presiona aqui”

Page 121: Visual Basic Net

Unidad 06 – XY, Arkansas Página 121 de 321

¿Qué son las variables?

Las variables son utilizadas por tu código para almacenar información que podrá necesitar en algún momento más adelante. Las variables en el código son como las variables en las matemáticas. 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 código, tu programa utiliza a las variables para "recordar" la información. Si tu código no utilizó alguna variable, entonces tu programa tendría que detenerse constantemente y pedirle al usuario que teclee la información cada vez que la necesite. Imagínate que tu programa requiriera saber la edad del usuario en tres momentos diferentes ¿No sería 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 solicitaría sólo una vez que el usuario teclee su edad, ésta se guardaría en una variable que el código utilizaría cada vez que el programa necesitara saberla.

Page 122: Visual Basic Net

Unidad 06 – XY, Arkansas Página 122 de 321

¿Por qué utilizar las variables?

Como pudiste ver, las variables nos ayudan a ahorrar tiempo real, reduciendo también el volumen de información que un usuario debe teclear. También nos ayudan a reducir los errores. Si tuviste que teclear un número de varias cifras una y otra vez, existe una mayor posibilidad de que en algún momento cometieras por lo menos un error. Además de ahorrar información 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 también para hacer comparaciones que determinan el orden en el que se ejecuta el código. Se emplean también para contar cosas, como, por ejemplo, cuántas veces se ha realizado un cálculo. Un componente fundamental en la programación es aprender cómo almacenar información en las variables, las cuáles se utilizan en todos los lenguajes de programación. Son absolutamente necesarias para realizar ciertos tipos de cálculos y llevara a cabo ciertas acciones en tu código.

Page 123: Visual Basic Net

Unidad 06 – XY, Arkansas Página 123 de 321

Declaración de variables Antes de que tu programa pueda utilizar una variable, debes declararla. Para declarar una variable debes escribir una línea de código que establece el nombre de la variable y le asigna un tipo específico. Debes declarar todas las variables en Visual Basic.NET. De todos modos es un buen ejercicio porque te hace pensar acerca de cómo se utilizará dicha variable y acerca de su tipo. Declarar tus variables acelera el tiempo de compilación y logra que el programa se ejecute más eficazmente. También evita que escribas mal el nombre de la variable cuando se utiliza en tu código. Para declarar una variable en código de Visual Basic.NET, utilizas una instrucción "Dim".

La instrucción Dim tiene la siguiente sintaxis:

Dim VariableName As VariableType

Aquí hay algunos ejemplos de cómo 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 sólo puedes asignarle a una Cadena. La segunda variable, MyWeight, se declara como una variable de tipo Entero, es decir que sólo puede asignarse a un Entero. La variable PanComido sólo puede asignarse a al tipo Booleana y la variable de DVDprice sólo puede asignarse al tipo Sencillo.

Page 124: Visual Basic Net

Unidad 06 – XY, Arkansas Página 124 de 321

En C# y J# declaras las variables de una manera un poco diferente. Primero, escribes el tipo de variable, después 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;

Recomendación 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. Más tarde se les olvida lo que significan las variables, originando errores causados por haber utilizado un nombre equivocado. Además, 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 convención de nombres estándar llamada “camel case”, de esta forma, cada palabra de la variable empieza con mayúscula, por ejemplo: CamelCase, MyName, MaximaVelocidadWinnwbago, LimiteVelocidadLocal. Visual Basic pone con mayúscula la primera letra. Mientras que J# y C# no lo hacen. Button1.Text=”Click Here”

Page 125: Visual Basic Net

Unidad 06 – XY, Arkansas Página 125 de 321

¿En dónde se declaran las variables?

Puedes declarar las variables que quieras en tu código de Visual Basic.NET. Se pueden declarar como cualquiera de los tipos permitidos por el entorno de .NET. Nikki y yo aplicamos una práctica de codificación estándar al escribir un código. Declaramos todas nuestras variables al inicio de nuestro código. De esta manera sabemos en dónde buscarlas y fácilmente podemos ver de qué tipo son. También permite que nuestro código se quede limpio y organizado. Si necesitamos crear otra variable al escribir nuestro código, regresamos al inicio del mismo y la declaramos junto con el resto de las variables. No declaramos variables nuevas a la mitad de nuestro código. Puedes declarar las variables de modo que sean variables globales o variables locales. Hasta ahora, todo el código que hemos escrito han estado en los manejadores de eventos de controles de forma --como el código de manejador de eventos para el botón de clic. Todas las variables que declaramos en el código del manejador de eventos han sido variables locales. A las variables locales sólo puedes leerlas o cambiarlas por medio del código del manejador de eventos en el que las declaraste. Ningún otro manejador de eventos u otro código del formato puede tener acceso a ellas. Los valores de las variables locales sólo se guardan cuando se están ejecutando en el código del manejador de eventos, después 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 botón de clic. Para declarar variables locales, configura la instrucción Dim en tu código del manejador de eventos esta variable debe declararse primero, antes de que escribas cualquier otro código. 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 código del formato. Las variables globales se pueden acceder por todos los manejadores de eventos y todo el resto del código 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 número 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 códigos del formato, debes poner la instrucción Dim en el cuerpo del mismo. El mejor lugar para declarar variables globales en el código de una forma es justo después de la instrucción que dice:

Windows Form Designer generated code

Esta línea de código está encerrada en un cuadro y tiene un signo de más a su izquierda. Declara sus variables justo después de esta línea. Ve este ejemplo:

Windows Form Designer generated

Recomendación para el profesor MyName se declara dentro de un Sub (subprograma). En cuanto se ejecuta la instrucción End Sub (finalizar subprograma), se borra MyName.

Page 126: Visual Basic Net

Unidad 06 – XY, Arkansas Página 126 de 321

code Dim TotalButtonClicks As Single

La variable TotalButtonClicks es una variable global. TotalButtonClicks se puede leer o configurar por otro código del formato como, por ejemplo, el código en los manejadores de eventos. Si declaras todas tus variables aquí en el cuerpo del formato, todas serán globales. Sus valores se puedes leer o configurar por todos los códigos del formato y los manejadores de eventos.

Page 127: Visual Basic Net

Unidad 06 – XY, Arkansas Página 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 cómo el número Pi podrá aparecer en diferentes formatos. Pinte una forma como esta:

En el evento de botón 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 Sólo 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, muéstraselo a su instructor.

Pedazo de Pi En este ejercicio verás 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.

Page 128: Visual Basic Net

Unidad 06 – XY, Arkansas Página 128 de 321

Iniciar las variables

Una vez que una variable se haya declarado, puedes utilizarla en tu código. Una de las primeras cosas que deberá hacer tu código es asignar la variable a un valor inicial. Puedes asignar la variable a cualquier valor que desees mientras que sea el tipo correcto. Sólo puedes asignar la variable a un valor que tenga el mismo tipo que la variable misma. Cuando asignas una variable a un valor, estás utilizando una instrucción de asignación. 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 método abreviado que puedes utilizar para declarar tu variable y asignar su valor inicial mediante una sola línea de código. 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 código en dónde quieras emplear el valor que guardaste en ella. Ve estos ejemplos.

Dim MiNombre as String MiNombre = "Joe Cooker" MessageBox.Show(MiNombre)

Page 129: Visual Basic Net

Unidad 06 – XY, Arkansas Página 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 asignación 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", estás en lo correcto, la variable MyName se asigna a Bill, después 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 código en J# o C#. Puedes ver algunas similitudes y también ciertas diferencias. Ve cómo 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 código no se compilará.

Dim MiNombre as String Dim DVDPrice As Single

Page 130: Visual Basic Net

Unidad 06 – XY, Arkansas Página 130 de 321

MiNombre = "Paul Bunion" DVDprice = MiNombre

Recuerda, tus variables se declaran como un tipo específico. Sólo se les puedes asignar valores del mismo tipo.

Page 131: Visual Basic Net

Unidad 06 – XY, Arkansas Página 131 de 321

Aumentar de velocidad con las variables

Te platiqué acerca de los tipos de variables, porqué se utilizan las variables y cómo declarar y asignarlas. ¿Qué más hay acerca de ellas? ¡Escribiremos un programa con las variables! Inicia una nueva Aplicación de Windows en Visual Studio.NET. Asigna el nombre XACTLY a la aplicación. Abre la Ventana de Herramientas y agrega un botón 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 código de evento de clic en botón. Ingresa las siguientes líneas de código:

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 aplicación. Haz clic en el botón "Show XY". Tu código 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 código y ejecuta tu programa nuevamente. Ahora vamos a modificar este programa. Agrega un tercer cuadro de texto. Despeja la Propiedad de Texto del TextBox3. Asegúrate que la Propiedad de ReadOnly de TextBox3 esté asignada a False.

Recomendación para el profesor Esta unidad se pueden comprender más fácilmente si el alumno le sigue creando el mismo código en su propia aplicación de Visual Studio, según se solicite.

Page 132: Visual Basic Net

Unidad 06 – XY, Arkansas Página 132 de 321

Haz doble clic en Button1 para editar el código de evento de clic. Modifica tu código 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 aplicación. teclea algún texto en el TextBox3. Haz clic en el botón de "Show XY". ¿Qué es lo que pasa? Tu código 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 había asignado a la propiedad de Texto del TextBox3). La variable YName se asigna a XName (que apenas se asignó al valor almacenado en XName) Después, el código asigna la propiedad de Texto del TextBox1 a XName a la propiedad de Texto del TextBox2 a YName. Este código muestra cómo asignar el valor almacenado en una variable a aquel de una variable diferente.

Aquí hay un último ejemplo para Show cómo se utilizan las variables globales. Inicia una nueva Aplicación de Windows denominada TotalButtonClicks. Agrega tres Botones al formato1. En la ventana de Código encontrarás el código:

Windows Form Designer generated code

Justo después de esta línea de código, agrega el siguiente código:

Dim TotalButtonClicks as Integer

Page 133: Visual Basic Net

Unidad 06 – XY, Arkansas Página 133 de 321

Haz doble clic en el Button1 y agrega el siguiente código al manejador de eventos de clic.

TotalButtonClicks = TotalButtonClicks + 1 MessageBox.Show(TotalButtonClicks)

Agrega el mismo código a los manejadores de eventos de clic para el Button2 y Button3. Crea e inicia tu aplicación. Haz clic en todos los botones en cualquier orden. Cada vez el número total de clics en botones se despliega en un cuadro de mensaje. Este código funciona porque declaramos una variable global denominada TotalButtonClicks en el código de forma. La variable global se utiliza para guardar el número total de clics en botones. Cada vez que el usuario haga clic en un botón, 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 además 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 códigos que proporcionan una funcionalidad básica de los lenguajes .NET. La parte más difícil 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 algún código que emplee una propiedad o un método 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 aplicación de ShowXY y agrega un segundo botón al formato1. Cambia la propiedad de Texto del Button2 a "Color". Haz doble clic en el Button2 para editar el código de eventos de clic en botones. Agrega el siguiente código:

Dim MiColor as System.Drawing.Color MiColor = System.Drawing.Color.Blue Format1.ActiveForm.BackColor = MiColor

Crea e inicia tu aplicación. Haz clic en el Button2.

Tu código declaró una variable denominada MiColor del tipo System.Drawing.Color. La variable MiColor fue asignada a

System.Drawing.Color.Blue, un System.Drawing.Color válido. 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.

Page 134: Visual Basic Net

Unidad 06 – XY, Arkansas Página 134 de 321

Puedes explorar las clases del Sistema por tu cuenta. La mejor manera es teclear System. (punto) en la Ventana de Código. IntelliSense

despliega una lista de todas las propiedades y métodos disponibles para la clase del Sistema. Selecciona una propiedad o un método y

teclea otro punto para ver si tiene sus propias propiedades y métodos. Hay mucho que explorar.

Page 135: Visual Basic Net

Unidad 06 – XY, Arkansas Página 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. Después de eso, haz la prueba e iremos a que nos perforen la tarjeta del rally. Ahora que has aprendido acerca de las variables, serás realmente capaz de ayudarnos con el Reto del Rally.

06 Ejercicio 02 Rana saltarina Inspirado por el estanque de ranas que vimos en la mañana, creo que deberíamos 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 botón Leap, el contenido del cuadro de texto arriba del botón se asigna al cuadro que se encuentra dos cuadros a la derecha. No olvides vaciar el cuadro actual. Cuando tu programa funcione correctamente, muéstraselo 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.

Page 136: Visual Basic Net

Unidad 06 – XY, Arkansas Página 136 de 321

06 Reto Bicho Splat, Otro bicho aplastado en el parabrisas. Me recuerda algo. Necesitamos practicar la búsqueda de bichos en un programa. La mayoría 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 línea de código 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 código correcto cuando la línea con error tiene una elección completamente inapropiada. Abre el archivo denominado splat.sln. Aplástalo. Cuando tu programa trabaje correctamente, muéstraselo a tu instructor.

Extensión / Desviación ¿Quién es Commodore Grace Hopper? ¿Por qué preguntaríamos eso en este Reto?

Recomendación para el profesor La plantilla contiene muchos errores intencionales. Se espera que el alumno corrija el código. No se requiere una corrección particular. Por ejemplo, si X = 123.4 es incorrecto, X = 123 es una corrección inaceptable pero también lo es X = 1234

Recomendación para el profesor Commodore Hopper descubrió el primer bicho de la Tecnología de Información – un auténtico bicho en los tubos de vacío de una de las primeras computadoras.

Bicho Encontrarás 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.

Page 137: Visual Basic Net

Unidad 06 – XY, Arkansas Página 137 de 321

En una instrucción de evaluación, cuántos elementos se pueden asignar al lado izquierdo del signo de igual?

Cualquier número

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

Page 138: Visual Basic Net

Unidad 07 – Switchboard, Oklahoma Página 138 de 321

Temas en el camino a Switchboard Switchboard, OK Operadores Operadores aritméticos Operadores de cadena El operador NOT en asignación Instrucciones Operadores en acción Código de depuración Llegada a Switchboard

Page 139: Visual Basic Net

Unidad 07 – Switchboard, Oklahoma Página 139 de 321

Switchboard, OK

Estamos listos para seguir avanzando. Siguiente parada, ¡Switchboard, Oklahoma! Cliff ya te ha enseñado cómo utilizar los instrucciones de asignación y las variables, de modo que ahora cuentas ya con algunas herramientas de programación básicas que puedes emplear. Ahora te enseñaré sobre los operadores en nuestro trayecto a Switchboard. El uso de los operadores es otra de esas herramientas básicas de programación que debes tener en su caja de herramientas. Una vez que aprendas cómo utilizar los operadores en Visual Basic.NET, podrás utilizarlos en cualquier lenguaje de programación. El uso de los operadores es fácil, cuando nos acerquemos a Switchboard, te mostraré cómo utilizar algunas de las herramientas de depuración que forman parte de Visual Studio.NET. Éstas te ayudarán a que tu código esté libre de errores, de modo que se pueda compilar en todo momento.

Page 140: Visual Basic Net

Unidad 07 – Switchboard, Oklahoma Página 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, multiplicación y la división. Has estado empleando los operadores desde el primer grado. Es simplemente que no los llamabas de este modo. En programación, existen otros operadores también, para realizar cálculos matemáticos complejos y unir cadenas de texto. Los operadores generalmente actúan sobre dos valores, aunque algunos actúan exclusivamente sobre un valor único. Los valores se denominan operandos. La siguiente es la sintaxis básica para el uso de los operadores: operando 1, operador, operando 2: Por ejemplo, 3 + 4 En la expresión 3 + 4 hay dos operandos (3 y 4) unidos por un operador (+) El operador realiza una operación (es este caso, suma) sobre los dos operandos (3 y 4) Usar los operadores es fácil y también divertido, puedes crear ecuaciones muy complejas empleando los operadores. Comencemos revisando los operadores aritméticos—suma, resta, multiplicación y división. Después te mostraré cómo unir cadenas de texto y echaremos un vistazo a un operador especial denominado NOT.

Page 141: Visual Basic Net

Unidad 07 – Switchboard, Oklahoma Página 141 de 321

Operadores aritméticos

Reglas matemáticas, me agradan las matemáticas. Me encantaría hacer problemas matemáticos todo el día, pero en ocasiones me canso y comienzo a cometer errores. Los programas de computadora son excelentes para hacer problemas matemáticos. 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 pequeño 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 cómo utilizar los operadores aritméticos en tu código. De esta forma puedes decirle a tu programa qué problema matemático deseas que resuelva. Dado que las computadoras son tan buenas para las matemáticas, todos los lenguajes de programación tienen un conjunto estándar de operadores aritméticos. Como estas operaciones son tan comunes, los símbolos utilizados para representar estos operadores en el código son básicamente los mismos en todos los lenguajes de programación. Esto lo facilita aún más.

Page 142: Visual Basic Net

Unidad 07 – Switchboard, Oklahoma Página 142 de 321

La siguiente es una lista de los operadores aritméticos más comunes y los símbolos que se utilizan cotidianamente en comparación con los símbolos utilizados en el código. Nota que el único que es diferente es el de la multiplicación. En el código, usas * en lugar de una x para representar el operador de multiplicación. Operador Símbolo Cotidiano Símbolo de Código

Suma + + Resta - - Multiplicación x * División / /

Veamos un par de ejemplos de operadores aritméticos en código.

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, multiplicación y división.

Page 143: Visual Basic Net

Unidad 07 – Switchboard, Oklahoma Página 143 de 321

Operadores de Cadena

Sí, reglas matemáticas, pero no todos los programas que vayas a crear se relacionan con cálculos. En ocasiones tu programa solo requiere trabajar con cadenas de texto. ¿Sabías que en Visual Basic.NET y otros lenguajes de programación pueden “sumar” texto? En realidad, no es como la suma regular de números. La “suma” de texto se denomina “concatenación”, que es simplemente un nombre atractivo para llamarle a la unión de dos cadenas de texto juntas. En Visual Basic.NET, el operador de concatenación es un signo de conjunción (&) Lo usas justo como el operador de suma, pero con cadenas en vez de números. Los siguientes son un par de ejemplos: ”Bill” & “Mike ”1” & “2”

En C# y J# no utilizamos un signo de conjunción

(&) para unir cadenas de texto. Utilizamos un

signo de más (+). Observa esta línea de código

nombre completo = “Bill “ + “Bob”;

Recomendación para el profesor Dado que Visual Basic intentó ser flexible, en ocasiones aceptará un signo de más (+) en lugar de uno de conjunción (&) cuando ambos operandos se definen como cadenas. Ésta es una mala técnica de codificación. Estimule a los alumnos a utilizar siempre el signo de conjunción.

Cuando unes dos cadenas de textos utilizando el operador de concatenación, Visual Basic no puede agregar automáticamente ningún espacio, tendrás que deci rle

Page 144: Visual Basic Net

Unidad 07 – Switchboard, Oklahoma Página 144 de 321

El Operador NOT

El operador NOT es un operador especial que sólo opera sobre un único operando. Además, el operando debe evaluarse según 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.

Atención, en C# utilizamos un signo de exclamación (!) en lugar de NOT. Revisa este código C#

TextBox3.Visibl

e = !(TextBox1.Visible); .

Cuando ?

Page 145: Visual Basic Net

Unidad 07 – Switchboard, Oklahoma Página 145 de 321

Instrucciones de asignación

¿Así que cómo utilizas los operadores en el código? La mayor parte del tiempo utilizas un enunciado de asignación. Recuerda, un enunciado de asignación tiene el aspecto de una ecuación con un signo de igual en él. Los operadores y operandos se colocan del lado derecho del signo de igual. La expresión al lado derecho del signo de igual se evalúa, después el lado izquierdo de la ecuación se determina en este valor. Aquello que se encuentra del lado derecho de la ecuación debe evaluarse según el mismo tipo que el lado izquierdo para que el código realice la compilación. A continuación se proporcionan un par de ejemplos de uso de los operadores aritméticos y el operador de concatenación en instrucciones de asignación.

Dim FormWidth as Integer FormWidth = 200 + 300 Dim FormHeight as Integer FormHeight = 1000 / 2 Dim Winnebagoname as String Winnebagoname = “Códe” & “Bus”

Page 146: Visual Basic Net

Unidad 07 – Switchboard, Oklahoma Página 146 de 321

Los operadores en acción Los ejemplos que acabo de proporcionarte eran bastante simples, con sólo dos operandos y un único operador en cada enunciado de asignación. Sin embargo, en el mundo real de la codificación, frecuentemente deberás traducir fórmulas o hacer cálculos que implican muchos operadores y operandos. Afortunadamente, con la mayoría de los lenguajes de programación, puede añadir tantos operandos y operadores como requieras para concatenar texto o convertir fórmulas a código. Además, puedes utilizar variables como operandos. ¡Exacto! Los operadores funcionan sobre las variables también—siempre y cuando sean del tipo correcto. Aún más, puedes incluso determinar una variable en una expresión que contenga a la variable misma. Así que veamos unos cuantos ejemplos que son un poco más 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é paréntesis para asegurarme que los costos se sumaran y que los galones se sumaran también 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) / (MarchGal lons+ AprilGallons)

Población

Page 147: Visual Basic Net

Unidad 07 – Switchboard, Oklahoma Página 147 de 321

Recomendación para el profesor Revise el orden de las operaciones. Cuando no hay paréntesis, la división y multiplicación se realizan antes que la suma y resta. Promueva el uso de paréntesis para asegurar que los cálculos se realicen como pretende el programador. NOT hay problema en utilizar demasiados paréntesis.

Puedes usar el paréntesis en tu código tal y como lo haces en problemas normales de asociación. Cuando pones algo entre paréntesis, se evalúa primero, por ejemplo: (5+7)/(1+5)=2 En esta operación, (5+7) se evalúa primero, (1+5) después, y al último se ejecuta la operación de división. La respuesta en 2. Sin los paréntesis, obtenemos una respuesta diferente: 5+7/1+5=17 Usa el paréntesis en tu código cuando quieras decirle al programa el orden el cuál

Page 148: Visual Basic Net

Unidad 07 – Switchboard, Oklahoma Página 148 de 321

Operadores de comparación

Recuerda, ¿mencioné que puedes especificar una variable para una expresión que contiene a la variable misma? ¿Cómo es eso, preguntarías? 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 líneas del código enuncian la variable del MileCounter y establecen su valor inicial en 100. La tercera línea del código toma el valor actual del MileCounter (100) y le suma 200 para obtener 300. Recuerda, el lado derecho de la ecuación siempre se evalúa primero. Después el lado izquierdo de la ecuación (MileCounter) se especifica en el valor del lado derecho de la ecuación (300). La cuarta línea del código 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 ecuación es irrelevante cómo se calcula el resultado del lado derecho de la ecuación, siempre y cuando los tipos coincidan. En lo concerniente al lado izquierdo de la ecuación, la variable del MileCounter del lado derecho es sólo una variable más, no ella misma. Determinar una variable para una expresión, la cual contiene a la variable misma, es una práctica de codificación común 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 técnica es perfecta para contar o añadir una serie de valores. ¿Sabías que la línea de código más común es probablemente variable = variable + 1, que se utiliza para contar algo? Frecuentemente se utiliza para contar el número de veces que se completa un ciclo. Te diré más sobre los circuitos a medida que avancemos en nuestro trayecto.

Los operadores NOT y de concatenación en acción

Demasiadas matemáticas ahí. Ahora voy a mostrarte un ejemplo rápido del operador de concatenación en acción y después uno del operador NOT. A continuación 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 concatenación no agrega espacio automáticamente.

Mi último ejemplo te muestra cómo 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.

Recomendación para el profesor Revise la diferencia entre asignar un valor y agregar un valor. TextBox1.text = “Hello” en comparación con TextBox1.Text= TextBox1.Text & “Joe”

Page 149: Visual Basic Net

Unidad 07 – Switchboard, Oklahoma Página 149 de 321

TextBox1.Visible = True TextBox2.Visible = NOT (TextBox1.Visible)

No sé por qué querría utilizar esa última línea de código.

Page 150: Visual Basic Net

Unidad 07 – Switchboard, Oklahoma Página 150 de 321

07 Ejercicio 01 Costo de la gasolina ¿Puedes calcular el costo de la gasolina para el siguiente tramo de nuestro viaje? Inténtalo. 1. Crea un formato que tu mismo(a) diseñes. 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 galón (MPG) para el vehículo o Precio por galón de gasolina o Costo total de la gasolina requerida

• cuatro rótulos para identificar cada cuadro de texto. • un botón de comando marcado para iniciar el cálculo. 2. Después 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 solución. Si no hay errores en ella, elige Depurar / Inicio para ejecutar tu programa. Si tu programa funciona correctamente, muéstraselo a tu instructor. Extensión / Desviación Dale un formato al costo total que tenga la apariencia de dinero. Estudia el siguiente código. X = 123.45 X = FormatCurrency(X)

Recomendación para el profesor Costo = (distancia / MPG) * precio

Costo de la gasolina En este ejercicio usarás lo que haz aprendido acerca de los operadores para diseñar 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

Page 151: Visual Basic Net

Unidad 07 – Switchboard, Oklahoma Página 151 de 321

Código de depuración Estás haciendo un gran trabajo! Hasta ahora has creado bastantes códigos, también has creado y operado muchos proyectos. Tal vez no todos tus proyectos hayan realizado la compilación a la primera, pero seguramente estás mejorando al descubrir cuál es el problema con tu código y resolverlo. De modo que ahora te daré algunos consejos que te ayudarán a resolver tus problemas aún más rápido. Resolver los problemas de un código se denomina depuración. La depuración es un paso necesario para hacer que un programa se ejecute sin errores y produzca los resultados correctos. Antes que nada te mostraré cómo Visual Studio te ayuda a depurar tu código a medida que lo estás creando. 1. Primero crea una nueva Aplicación de Windows denominada Depurar Vista. Agrega un botón y un cuadro de texto a format1. Haz doble clic en el Botón 1 y agrega el siguiente código. MyName = “Bill” TextBox1.Text = MyName

2. Nota que incluso antes de que Crearas tu proyecto, Visual Studio.NET puso una línea azul en zig zag bajo MyName en la primera y segunda líneas del código. ¿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 algún problema con el código antes de que realices la compilación. 3. Crea y ejecuta tu proyecto. La Ventana de Resultados muestra que hubo un error. La Lista de Tareas te muestra

Recomendación para el profesor Adentrarse en un programa línea por línea al mismo tiempo que se visualiza el contenido de las variables, resulta extremadamente valioso. Hay demasiados alumnos que ignoran esta lección. Cuando después tienen problemas con su código, 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 código.

Page 152: Visual Basic Net

Unidad 07 – Switchboard, Oklahoma Página 152 de 321

por qué falló. Ves dos líneas en la lista de tareas que te notifican que no se has enunciado el nombre en ‘MyName’.

Page 153: Visual Basic Net

Unidad 07 – Switchboard, Oklahoma Página 153 de 321

4. Haz doble clic en “Nombrar” si ‘MyName’ no se enuncia en la Lista de Tareas. Te llevará al lugar del código en dónde se encuentra el error. 5. Notas que la variable MyName se encuentra resaltada—éste es el problema que debes resolver. Agrega la siguiente línea de código al evento de clic del Botón 1 para resolver el problema.

Dim MyName as String La línea azul en zig zag desaparecerá. 6. Crea ejecuta tu proyecto. Se compilará sin errores. has depurado tu programa con éxito.

Page 154: Visual Basic Net

Unidad 07 – Switchboard, Oklahoma Página 154 de 321

Entrar al código En ocasiones los errores en tu código no serán errores que Visual Studio.NET pueda detectar y advertirte sobre ello. Tu programa se compila sin errores, pero los resultados o efectos no están muy bien. En este caso, sus errores pueden ser errores de lógica o flujo del programa, en lugar de errores de sintaxis. Éstos son errores que has incorporado en el diseño del programa, pero que no son considerados por Visual Studio.NET como errores en el código, dado que la sintaxis es correcta. En casos como éste, resulta útil poder “adentrarse” en tu código, línea por línea, para ver cómo se está ejecutando y qué camino está tomando. Por lo general estableces un “punto de quiebre” en el código, después “te adentras” en el código para ver cómo ejecuta línea por línea. El punto de quiebre actúa como un signo de alto—la ejecución se detiene en la línea del código que has marcado con un punto de quiebre. Después oprime la tecla F11 para ejecutar cada línea del código a su vez. Ahora te mostraré cómo funciona. 1. Encuentra la siguiente línea de código en el evento de clic del Botón 1:

MyName = “Bill” Ubica el cursor en algún lugar sobre esta línea de código. Haz clic con el botón derecho del ratón y seleccione Insertar Punto de Quiebre del menú desplegable. 2. Nota que la línea de código se resalta en color café y que aparece un círculo color café en el margen izquierdo de esta línea de código. Crea y ejecuta tu programa. Cuando aparezca el formato haz clic en el Botón.

Page 155: Visual Basic Net

Unidad 07 – Switchboard, Oklahoma Página 155 de 321

3. El código ejecuta y hace correr la línea de código que marcaste con el punto de quiebre (MyName = “Bill”) Esta línea de código no se ha ejecutado aún. La línea de código se resalta en amarillo y el círculo café que se encuentra junto tiene ahora una flecha amarilla dentro. 4. En la Ventana de código desplaza el cursor sobre la variable MyName. Aparecerá un consejo mostrándote 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 código 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 Introducción en el código, ejecutando la línea actual (MyName = “Bill”) y resaltando la siguiente línea en amarillo. 6. En la Ventana de Código, desplaza el cursor sobre la variable MyName. El consejo muestra MyName = Bill porque acabamos de fijar el valor de esta variable.

Page 156: Visual Basic Net

Unidad 07 – Switchboard, Oklahoma Página 156 de 321

7. En la Ventana de código 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 Introducción en el código, ejecutando la línea actual (Cuadro de Texto 1.Texto = MyName) y resaltando la siguiente línea en amarillo. 8. En la Ventana de Código, 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 código 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 más. El formato aparece de Nuevo porque el programa ha terminado de ejecutar el código en el evento de clic del botón. Haz clic en la X que se encuentra en el extremo del formato para cerrarlo. 10. En la Ventana de Código, haz clic en el inicio de la línea de código con el punto de quiebre. Haz clic con el botón derecho del ratón y selecciona Eliminar Punto de Quiebre del menú desplegable.

Page 157: Visual Basic Net

Unidad 07 – Switchboard, Oklahoma Página 157 de 321

Ya has finalizado la sesión de depuración. Resulta bastante práctico adentrarse en tu código línea por línea. Puedes seguir la ruta que tu programa emplea a medida que ejecutas tu código. En ocasiones tal vez descubras que le has dicho accidentalmente a su programa que ejecute tu código en el orden incorrecto, o que ha utilizado una variable errónea en un enunciado de asignación. Adentrarse en tu código te muestra en dónde se ha desviado erróneamente tu programa. A medida que te introduces en el código, puedes monitorear los valores de las propiedades y variables moviendo tu cursor sobre ellos en la Ventana de Código. Los valores se actualizan después que se ejecuta cada línea del código. Estas técnicas de depuración se vuelven más importantes a medida que tu código se hace más complejo. Un código complejo es más difícil de depurar. Pronto aprenderás cómo controlar el orden en que se ejecuta tu código utilizando instrucciones “If” y “bucles”. Las herramientas de depuración son extremadamente valiosas para rastrear cómo 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 cómodo utilizando los operadores para decirle a tu código cómo hacer problemas matemáticos y unir cadenas. Puedes incluso utilizar las herramientas de depuración de Visual Studio.NET como ayuda para diagnosticar problemas. Creo que encontrarás que las Pruebas son más divertidas y desafiantes a medida que avancemos. Intenta realizar aquellas que se encuentran en el PDA. Mantente actualizado resolviendo la prueba y después Cliff nos llevará a nuestro siguiente destino.

Recomendación para el profesor Para reforzar esta habilidad, haga que cada uno de los alumnos demuestre individualmente su dominio en la técnica utilizando un programa previamente creado.

Page 158: Visual Basic Net

Unidad 07 – Switchboard, Oklahoma Página 158 de 321

07 Ejercicio 02 Depurar un programa Practiquemos ahora las habilidades de depuración 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 ningún código en lo absoluto. Sólo debes encontrar el archivo denominado DebugMe.sln y después 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 matemáticas, las respuestas a tres preguntas.

1. ¿Qué valor introdujiste en el cuadro de texto del formato? 2. ¿Cuál es el valor final de la variable denominada Respuesta Uno? 3. ¿Cuál es el valor final de la variable denominada Respuesta Dos? El código de este programa se ha hecho deliberadamente confuso y complicado para que no tengas la tentación de intentar descubrir cómo es que llega el programa a sus respuestas. Todo lo que tienes que hacer es colocar e círculo de depuración de punto de quiebre de color café en el margen vertical izquierdo, adentrarte en el código, después colocar el cursor sobre la variable en donde deseas ver el valor DESPUÉS que se haya ejecutado esa línea de código. Ésta es una de las herramientas más valiosas que debes utilizar en todos tus programas futuros. Cuando tengas las respuestas, muéstreselas a su instructor.

Depurar un programa Utiliza tus habilidades de depuración 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.

Page 159: Visual Basic Net

Unidad 07 – Switchboard, Oklahoma Página 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. Aún me pregunto cuál era el más pesado. Dado que están hechos del mismo material, aquel con mayor volumen es el más 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 atención a la clase de geometría, a continuación se encuentran algunas fórmulas. • 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. Podrías utilizar 3.14 como el valor de Pi, o bien utilizar Math.PI.

Una vez que tu programa funcione correctamente, muéstraselo 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 botón de descarga para bajar este archivo. Lado del cubo Radio Esfera

Calcular Volumen cubo Volumen esfera

Page 160: Visual Basic Net

Unidad 07 – Switchboard, Oklahoma Página 160 de 321

Extension / Desviación Sólo por diversión, ¿puedes encontrar dos valores que produzcan los mismos volúmenes, por lo menos de 4 puntos decimales? Si eres especialmente bueno para las matemáticas, ¿puedes agregar una segunda parte al formato que inicie con el volumen y calcular el lado y el radio que producen ese volumen?

Page 161: Visual Basic Net

Unidad 07 – Switchboard, Oklahoma Página 161 de 321

¿Que se usa para cambiar la secuencia en la cuál se evalúan los operadores?

Dos puntos Paréntesis ampersands desconocido

¿Cuál es el resultado de esta operación? SomeVariable = “55” & “One”

¿Que operador se usa para concatenar dos cadenas?

¿Cuál es el resultado de esta operación?

56 55Uno desconocido

And = &

Page 162: Visual Basic Net

Unidadt 08 – WhatIf, Texas Páginaage 162 ofde 321

Temas en el camino a WhatIf: WhatIf, TX Lógica Booleana Operadores Booleanos Operadores de comparación Código condicional Instrucción If…Then Más de una instrucción If …Then Más de un condicional Operadores Booleanos en código Llegada a

Page 163: Visual Basic Net

Unidadt 08 – WhatIf, Texas Páginaage 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 matemáticas en tsu códigoerators to create math equations in your code. No sé mucho de matemáticas, pero sí de lógicaI'm not so much into math, but I am into logic. La lógica es el procedimiento que usted utilizas para tomar decisionesogic is the process you use to make decisions. Tomamos decisiones todos los días de nuestra vida We make decisions everyday of our lives. Yo he tomado algunas buenas decisiones, como cuando decidí llamar a una estación de radioI've made some good decisions. Like when I y me ganédecided 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. También he tomado algunas malas decisiones, ¡como meter mi pantalón 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 aquíwill always be around --– Los veré el año 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é cómo los programas de computadoración toman decisiones utilizando la fórmulaI'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 errónea al dirigirnos aI was just thinking. What if we made a wrong

Page 164: Visual Basic Net

Unidadt 08 – WhatIf, Texas Páginaage 164 ofde 321

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

Page 165: Visual Basic Net

Unidadt 08 – WhatIf, Texas Páginaage 165 ofde 321

Tomar dDecisiones Making 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? ¿Dónde 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 también 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 decisión, 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 múusica escuchar o to listen to, or con quién pasearwho to hang out with. Los programas de computadoraprogramas de computación 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 enunciadodeclaración 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, imagínaetese que estás en un restaurante intentando ordenar una hamburguesa, papas fritas y cerveza de raízFor example, imagine you're in a restaurant trying to order a hamburger, fries, ¡y el mesero sólo 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? SíYes. ¿Desea caféDo you want coffee? No. ¿Desea téDo you want tea? No. ¿Desea refrescoDo you want soda? SíYes. ¿Desea refresco deDo you want a cola? No.

Page 166: Visual Basic Net

Unidadt 08 – WhatIf, Texas Páginaage 166 ofde 321

¿Desea cerveza de raízDo you want root beer? ¡SíYes.! Bueno, esto llevó seis preguntas ¡y ni siquiera he ordenado la hamburguesa y las papas fritas todavíaWell, 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 cómo un programa de computadoración toma una decisión;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 lógica se denomina lógicaogic is called Booleana (VerdaderoTrue/Falseo) logic.

Page 167: Visual Basic Net

Unidadt 08 – WhatIf, Texas Páginaage 167 ofde 321

Page 168: Visual Basic Net

Unidadt 08 – WhatIf, Texas Páginaage 168 ofde 321

Lógica Boolean a Logic

Como viste en tu camino al Tablero de DistribuciónSwitchboardAs you saw on our way to Switchboard, los programas de computadoraprogramas de computación son buenos para resolver problemas matemáticoscomputer programs are good at doing math problems. También son buenos para resolver problemas de lógicaThey are also good at doing Booleana logic problems. En un problema de lógicaIn a Booleana logic problem, la respuesta es siempre Verdadero othe answer is always either True or Falseo, --– no haythere is no "más o menoskind of", "una especie desort of" onior "casialmost". Veamos, leTe mostraré algunos ejemplosLook, I de lógica'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)? SíYes, ethat's VerdaderoTrue. Puedes ver que en cada uno de los problemas lógicos 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 números, colores, ni palabras. Así es como un programa de computadoración puede

Page 169: Visual Basic Net

Unidadt 08 – WhatIf, Texas Páginaage 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.

Page 170: Visual Basic Net

Unidadt 08 – WhatIf, Texas Páginaage 170 ofde 321

Operadores Boolean os Operators Al igual que las matemáticas convencionalesJust like regular math, la lógica Booleana tiene sus propios operadoreslogic has its own operators. Pero no trabajan con números, 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 “añadir” 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 más complejosproblems. Existen tres operadoresThere are three Booleanos operators: ANDYAND, ORR y, and NOTT. Los operadores ANDY y ORThe AND and OR actúan sobre dos operandos operators act on two operands. El operadorThe NOT actúa en un soloT operator acts on a single operando. Los tres dan un resultado que es tambiénAll 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 lógicaLet's look at some Booleana que utilizan los operadoreslogic problems that use the Booleanos operators. Después explicaré los detalles de cómo 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 lógicos 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. Después Then we evaluatemos 2=1+1, lo cual también es Verdaderowhich is also True. Después 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

Page 171: Visual Basic Net

Unidadt 08 – WhatIf, Texas Páginaage 171 ofde 321

TRUE. Si ambos lados de una ecuación 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 lógicos 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. Después evaluamosThen we evaluate 5=2+2, lo cual eswhich is Falseo. Después 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 ecuación YAND es Falso, la respuesta final esIf either side of an AND equation is False, the final answer is Falsoe.

Page 172: Visual Basic Net

Unidadt 08 – WhatIf, Texas Páginaage 172 ofde 321

Un último ejemploOne last example, 3=1+2 ORÓOR 5=2+2 EEs VerdaderoThat's True. PrimeroFirst we evaluamoste 3=1+2, lo cual es Verdaderowhich is True. Después evaluamosThen we evaluate 5=2+2, lo cual eswhich is Falseo. Después 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 ecuación 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 prácticaIt may take some practice, pero, después de haber trabajado algún tiempo con los operadoresbut after you've worked with the Booleanos , sete acostumbrarás 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.

Page 173: Visual Basic Net

Unidadt 08 – WhatIf, Texas Páginaage 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

Page 174: Visual Basic Net

Unidadt 08 – WhatIf, Texas Páginaage 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.

Page 175: Visual Basic Net

Unidadt 08 – WhatIf, Texas Páginaage 175 ofde 321

Operadores de cComparación Comparison Operators ¿Recuerdase que, Remember, NikkiNikki ttele ha dicho que los programas son excelentes para resolver problemas matemáticosold 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 lógicaWell, the same thing is true about Booleana logic problems. Los programas de computadoraprogramas de computación son excelentes para resolverComputer programs are great at solv problemas de lógica 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 lógicato set up the Booleana para que tsu programa los resuelvalogic problems for your program to solve. Cuando se ejecuta el códigoWhen 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 decisióon" 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 asignación, pero también 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 comparaciónison 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 comparación 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? SíYes, es Verdaderothat's True.

Page 176: Visual Basic Net

Unidadt 08 – WhatIf, Texas Páginaage 176 ofde 321

2>5 Hace la preguntaAsks the question:: ¿Is 2 es mayor agreater than 5? No, esthat's Falseo.

Page 177: Visual Basic Net

Unidadt 08 – WhatIf, Texas Páginaage 177 ofde 321

A continuación aparece una lista de los operadores de comparación más comúnmente 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 side¿El lado izquierdo es mayor al lado derechogreater than the right side? < less thanMenor a Is the left side¿El lado izquierdo es menor al lado derecholess than the right side? Falseo >= Mayor o igual agreater than or equal to

Is the left side¿El 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 side¿El lado izquierdo es menor o igual al lado derecholess than or equal to the right side? <> No igual anot equal to Is the left side¿El 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 side¿El lado izquierdo es

¿Naranja es igual a manzana?

No, eso es Falsoe

Page 178: Visual Basic Net

Unidadt 08 – WhatIf, Texas Páginaage 178 ofde 321

mayor al lado derechogreater than the right side? ORR is the left side¿El 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 side¿El lado izquierdo es menor al lado derecholess than the right side? ORR is the left side¿El 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 comparación 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 cómo 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

Page 179: Visual Basic Net

Unidadt 08 – WhatIf, Texas Páginaage 179 ofde 321

Hasta ahora tele he dado ejemplos con númerosThe examples I gave you so far have been with numbers. Pero puedes utilizar los operadores de comparación 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. ConsejoRecomendación para el MaestroProfesorTeacher’s Tip La comparación de cadenas es de izquierda a derechaThis is an example of a text box we can use for the Teacher’s 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 comparación con cadenas como si compararas números

“ABC” < “DEF”

¿Es “ABC” < “DEF”?

Page 180: Visual Basic Net

Unidadt 08 – WhatIf, Texas Páginaage 180 ofde 321

Código cCondi tcional 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 comparación y lógicase 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 decisióondecisión.! CCon base en si la respuesta al problema lógico 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 elecciónActually, 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 PapáIf I wash Mom's car before my Dad gets home, entonces él me pagaráthen he will pay me $5. Llegó PapáDad's home. ¿Lavé el cocheautoDid I wash the car? VerdaderoTrue. Papá me pagaDad pays me $5. Llegó PapáDad's home. ¿Lavé el cocheautoDid I wash the car? Falseo. Papá no me pagaDad does not pay me $5.

Temas en Si el medidor de gasolina está bajo, salgo aquí.

¿Está bajo? Verdadero . Entonces me salgo.

Page 181: Visual Basic Net

Unidadt 08 – WhatIf, Texas Páginaage 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 cómo un programa puede tomar decisionesHere are some examples of how a program can make decisions: Si la casilla de verificaciónIf the "Tamaño GiganteSuper Size" se encuentra check box is marcadachecked, entonces mostrar la imagen grandethen show the large picture. ¿La casilla de verificaciónIs the "Tamaño GiganteSuper Size" se encuentracheck box marcada checked? VerdaderoTrue. Mostrar la imagen grande Show the large picture. ¿La casilla de verificación "Tamaño 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.

Page 182: Visual Basic Net

Unidadt 08 – WhatIf, Texas Páginaage 182 ofde 321

Como puedes ver mis ejemplos de la vida real y de mi programa tienen algounas cosas en común You can see my real life examples and my program examples have some things in common:. uUtilizan lógicaThey 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 comparación 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...ThenEntonces Then 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 condición es VerdaderaIf a certain condition is True, entonces algo sucedethen something happens. Si la condición esIf the condition is Falsea, entonces no pasa nadathen nothing happens. Cuando deseas que tsu programa tome una decisiónWhen you want your program to make a decision, escribesa una instrucción enunciadoyou write an "IfSiIf...ThenEntoncesThen" del mismo modo statement in the same way. IEn Visual Basic.NET la sintaxis esthe syntax is: IfSi If condi ción tion ThenEntonces Then enunciado instrucción condi t c ional statemen t End If Termina End IfSi

El siguiente es un ejemplo deHere's an example in Visual Basic.NET:

Teacher’s TipConsejoRecomendación para el MaestroProfesor This is an example of a text box we can use for the Teacher’s Guide.Recominderdatorio –

Page 183: Visual Basic Net

Unidadt 08 – WhatIf, Texas Páginaage 183 ofde 321

IfSi If myyAgeiEdad Age = 3 ThenEntonces Then MessageBoxCuadrodeMensajes MessageBox . ShowMostrar Show(" Tengo I am 3. " . ) End If Termina End IfSi

Fíjese 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 condición viene inmediatamente después de la palabraThe condition comes right after the word "IfSiIf". La condición realizaHace una comparación 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 después de la condiciónfollows right after the condition. También eEs una palabra claveIt deis a Visual Basic.NET, por lo que también aparece en azul keyword too, so it's in blue. Después deAfter "ThenEntoncesThen" viene la instrucciónel enunciado condicional que debe ejecutarsecomes the conditional statement to be executed. Pretendemos que esta línea facilite la lectura del códigoWe indent this line to make the code easier to read. Si laIf the condición 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 enunciadoinstrucción condicionalfollow the conditional statement. Éstas también sonThese are palabras clavekeywords too y. Las palabrasThe words "End IfTermina Si" completan el enunciadoe the "IfIfSi" statement.

Page 184: Visual Basic Net

Unidadt 08 – WhatIf, Texas Páginaage 184 ofde 321

¡Ahora inténtaelo túustedNow you try it! Iniciae una nueva Aaplicación de Start a new Windows denominadaApplication named IfThenSiEntoncesIfThen. Añadagrega un cuadro de texto a laAdd a text box to Forma 1. Coloqueca un botón en laPlace a button on Forma 1. Hagaz doble clic en el botón para editar elDouble click the button to edit the código de evento de clic del botónbutton click event code. Añadea las siguientes líneas de códigodd the following lines of code. Dim myAgeiEdad yAge AsComoAs IntegerEntero Integer myAgeiEdad yAge = 3 IfSi If myAgeiEdad yAge = 3 EThenntonces Then TextBox1Cuadrode Text oBox1.Text o = " Tengo I am 3 . " . End If EndTermina SIfi

Creae e iniciae stu proyectoBuild and start your project. Hazga clic en el botónClick the button. Esto es lo que está sucediendoHere's what's happening. TSu código 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 instrucciónel enunciado the conditcional después destatement after "ThenEntoncesThen" is executed. El cuadro de texto despliega The textbox displays "TengoI am 3.". Ahora cambiemos el código como se muestra a continuaciónNow let's change the code as shown below:

myAgeyiEdad Age = 2

Creae e iniciae stu proyecto de nuevoBuild and start your project again. HagaHaz clic en el botónClick 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

Page 185: Visual Basic Net

Unidadt 08 – WhatIf, Texas Páginaage 185 ofde 321

"enunciado IfSiIf statement" hace la preguntaasks t h¿e questions Is myAgeiEdadyAge = 3? Esta vez la respuesta es FalsoThis time the answer is False, sde modo que la instrucciónel enunciadoo the conditcional después 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 condición se evalúa comobox is not changed because the condition evaluates to Falseo. TuSu Your programa hizo exactamente lo que se pretendía que hiciera did exactly what it was supposed to.

Page 186: Visual Basic Net

Unidadt 08 – WhatIf, Texas Páginaage 186 ofde 321

Veamos otro ejemploLet's look at another example. Agrega enEn laOn Forma 1, añada una casilla de verificación add a checkbox. Editae el código de evento de clic del botónEdit the button click event code. Reemplaceza el códigoce the existente con lo siguienteing code with the following: IfSi If CasilladeVerificación CheckBox CheckBox 1. CheckedMarcada Checked = VTrue Thenerdadero True Entonces Then TextBoxCuadrode Text oBox1.Text o=" I am checked Estoy marcad oa. " . End If EndTermina IfSi

Creae e iniciae tsu proyectoBuild and start your project. Marqueca la casilla de verificación y hagahaz clic en el botónCheck the checkbox and click the button. LaThe condicióntion se evalúa como Verdaderauates to True (marcasteó la casilla de verificaciónyou 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 verificación y hagahaz clic en el botónThis time, uncheck the checkbox and click the button. ¿Qué sucedeWhat happens? No sucede nadathing happens. Esta vez la condición esThis time the condition is Falsea (quitasteó la marca de la casilla de verificaciónyou unchecked the checkbox), de modo que el texto so the text no cambiais not changed. TSu programa ha tomado una decisiónYour program has made a decision (determinar la propiedad del textoto set the text property) con base en una condiciónbased on a condition (si una casilla de verificación está o no marcadawhether a checkbox is checked or not).

Page 187: Visual Basic Net

Unidadt 08 – WhatIf, Texas Páginaage 187 ofde 321

Debes poner una sangría en todas las instrucciones condicionales entre las líneas If...Then y End If. Eso facilita la lectura y comprensión de tu código. Aún con una sola instrucción condicional deberías poner una sangría. Visual Studio.NET pone la sangría automáticamente por omisión. If CheckBox1.Checked = True Then MessageBox.Show(“Danger!”)

End If Temas en

Page 188: Visual Basic Net

Unidadt 08 – WhatIf, Texas Páginaage 188 ofde 321

Más 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 podría ma requeriry revisar el estado de una casilla de verificaciónneed to check the state of a checkbox, después revisar el estado de unthen check the state of a botón de radioradio button, luegothen comparar dos númerose 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 "SíYes". Puedes añadir tantaosYou can add as man enunciadosinstrucciones dey "IfSiIf...ThenEntoncesThen" como requiera a stu códigostatements to your code as you need. Como cualquier otra instruccióno enunciadoLike any other statements, éstaos se ejecutan en el orden en el que ocurren en el códigothey are executed in the order in which they occur in the code. Construyamos una aplicación que muestre el uso de más de una instrucciónenunciadoLet's build an application that demonstrates the use of more than one "IfSiIf...ThenEntoncesThen" statement. Digamos que nuestro programa tiene una casilla de verificación denominadaLet's say that our program has a checkbox called "Desplegar Todas lasisplay All Alarmas". Si esta casilla de verificación 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 podrías escribir este código es utilizando tres instruccionesenunciadosOne way you could write this code is to use three separate "IfSiIf...ThenEntoncesThen" separadaostatements. En cada unaoIn each, la condición revisaría si la casilla de verificaciónthe condition would check to see if the "Desplegar Todas lasisplay All Alarmas" está marcadacheckbox is checked. Si la condición es Verdadera, se ejecuta una enunciadoinstrucción condicionalIf the condition is True, a conditional statement is executed. Ahora tse lo mostraréHere, I'll show you. Iniciae una nueva aAplicación deStart a new Windows denominadaApplication called Disparar Alarma de IncendioFireAlarm. Añadgrega una casilla de verificacióndd a checkbox,, un

Page 189: Visual Basic Net

Unidadt 08 – WhatIf, Texas Páginaage 189 ofde 321

cuadro de a texto y un botón de comando para la box, and a command button to Forma 1. Chambiae elnge the Texto del Buottonón of Button1 toa "Thhreeres If’sSi’se If's". HagaHaz doble clic en el Double click Buttonuttotónn 1 parato editar el evento de clic del botónedit the button click event. Añadea el siguiente códigodd the following code.

IfSi If CasilladeVerificación CheckBox heckBox 1. CheckedMarcada Checked = VTrue Thenerdadero True Entonces Then Form a. ActiveF FormaActiv aeForm. BackColor Back Color deFondo = S ystemistema ystem . Drawing Dibujar rawing .Color.R edojo ed EndTermina IfSi E nd If I IfSi f CasilladeVerificación CheckBox heckBox 1. CheckedMarcada Checked = VTrue Thenerdadero True Enton Thences Cuadrode Text oTexBox Box1.Text o = " Red Alert a Roja Alerta Roja " End If EndTermina IfSi IfSi If CasilladeVerificación CheckBox CheckBox 1. CheckedMarcada Checked = VTrue Thenerdadero True Enton Thences Cuadrode Menssa jes MessageBox geBox . ShowMostrar Show(" ¿Peligro¡Peligro Danger ! ¡Peligro¡Peligro Danger !") End If EndTermina IfSi

Creae e iniciae tsu proyectoBuild and start your project. Marqueca la casilla de verificación y hazgaCheck the checkbox and clic en el botón dek the "Three If’shres 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 instrucciónenunciadoThe 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!"

Page 190: Visual Basic Net

Unidadt 08 – WhatIf, Texas Páginaage 190 ofde 321

08 Prueba Prove It Ejercicio 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 dueño 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 rótuloa label “G“Gente que compróPeople who bought” y una etiqueta rótuloand a label “También compróAlso bought”. 2. Colocaque un Combo box Cuadro ComboPlace a Combo box (veéase la Unidadsee Unit 4) en el formatosobre la formaon the form. Determinae la propiedad de texto en “Elegir un Regalo”. Llenae el conjunto de Artículos con los regalos enumerados abajo, o utiliceza tsus propias ideas de regalo. •3. Colocaque un cuadro dePlace a texto box. Permitea que hayaAllow muúltiples líineas 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 artículos que hayan sido también 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 vVíbora para sombreroSnakeskin Hat Band

Ideas de regalo En este Ejercicio deberás crear un programa de selección 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 deberás crear un programa de selección 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

Page 191: Visual Basic Net

Unidadt 08 – WhatIf, Texas Páginaage 191 ofde 321

Corbata para cChalecoBolero Tie Bootas Lustre para Bbotas de pPiel de aArmadillo Hide Boot PolishLustre Quita botasCota de Bota Desprendible FácilmenteEasy 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 Lápiz gGrabadoEngraved Pencil Camiseta deBig as TTexas T-Shirt Chili PeppersChilePepinillos Picantes

Mangos en Forma de ChilesPanhandle Chili Salsa Picante Tornado Hot Sauce

Page 192: Visual Basic Net

Unidadt 08 – WhatIf, Texas Páginaage 192 ofde 321

El número del artículo seleccionado se encuentra en la propiedad Índice Seleccionado

Page 193: Visual Basic Net

Unidadt 08 – WhatIf, Texas Páginaage 193 ofde 321

The item number selected is found in the SelectedIndex property, comenzando en cerostarting at zero. El nombre del artículoThe name of the seleccionado se encuentra en la propiedadted item is in the Se Artículo SeleccionadotedItem property. Si deseas que las dosIf you want the two recommendactiones to appearezcan en líneas 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: Cuadrode Text oTextBox Box1.Text o = “A” &

vbNewLineueva ewLine ínea & “B”

Por supuestoOf course, A andy B son reemplazadasare r por laseplaced by the recommendatciones. Cuando tsuWhen your programa funcione works correctamentely, muéstraeselo a tsu instructorshow it to your instructor.

Teacher’s TipConsejoRecomendación para el MaestroProfesor Algunos alumnos pueden considerar queThis is an example of a text box we can use for the Teacher’s Guide.Some students may find the las instructciones no son un clearas. Se espera que el alumno tenga una serie de enunciadosinstrucciones “IfSi”The student is expected to have a series of If statements. El

Page 194: Visual Basic Net

Unidadt 08 – WhatIf, Texas Páginaage 194 ofde 321

Más de un condicional ore 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 tenían la mismaexample had the same condictióon? Todaos utilizabanThey all used: Si If If CasilladeVerificación CheckBox CheckBox 1. MarChecke ca daChecked = VTrue Thenerdadero True Entonces Then

Lo único que cambiaba era el enunciadoThe only thing different was the la instrucción condidicionational utilizadao en cada unostatement each one used. Parece demasiado código Seems like a lot of repetitivoe code, ¿verdaddoesn't it? ¿No existe una manera más sencillahay una forma más fácilIsn't there an easier way? Bueno, ¡claro que la hayWell, of course there is! Visual Basic.NET y la mayoría de los lenguajes modernos de programación permiten múltiples instruccionesenand most modern programming unciadoslanguages allow multiple conditcionales para una misma condiciónstatements under the same condition. La sintaxis es la siguienteHere's the syntax: IfSi If condi t c i óon EThenntonces Then enunciado instrucción condi t c ional statement 1 instrucciónenunciado condi t c ional statement 2 instrucciónenunciado condi t c ional statement etc. End If End IfTermina Si

Sabiendo estoKnowing this, podemos rescribir el código que utilizamos enwe can re-write the code we used la aplicación de Disparar Alarma de Incendioin the FireAlarm application, simplificándoloying it, eliminando los enunciados de condición repetitivos y facilitando la comprensióting the repetitive condition statements, and making it easier to unnderstand. Abrea tsuOpen your aplicación de Disparar FireAlarma de Incendio application. Añaddea un segundo botón de comando a la a second command button to Forma 1. Chambiae el nge the Texto del of Buttuttonotón 2 ato "UnOne SiIf". HagaHaz dobleDouble clic en elk on Buttonotón utton2 parato editar el evento de clicedit the click event. Agregañada el siguiente códigodd the following code: IfSi If CasilladeVerificación CheckBox heckBox 1. Checked Marcada Checked

Page 195: Visual Basic Net

Unidadt 08 – WhatIf, Texas Páginaage 195 ofde 321

= VTrue Thenerdader True o Entonces Then Form a. FormaActiv eFormaActiveForm.BackColor . Back Color deFondo = Systemi stema ystem .D ibuja r awing rawing .Color. RRojoojo ed Cuadrode Text oTextBox Box1.Text o = " Alerta Roja Red Alert a Roja " Cuadrode Menssajes MessageBox geBox . ShowMostrar Show(" ¡Peligro Danger ! ¡Peligro Danger !") End If EndTermina IfSi

Creae e iniciae tsu proyectoBuild and start your project. Marcaque la casilla de verificación y hagahaz clic en el botónCheck the check box and click the "UnOne SiIf"One If" button. Se evalúa el enunciado de condición ú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 hacía antesdid before. Sin embargoThis time, esta vez laos tres instruccionesenunciadoshowever, the three conditcionales ¡comparten una única condiciónstatements share a single condition, lo que requiere menos código y éste es ! Utilizando una única condición con múltiples enusnciadosing a single condition with multiple conditcionales que dependen de ella, requiere menos código y el código es más fácil de comprender statements under it takes less code and the code is easier to understand.

Page 196: Visual Basic Net

Unidadt 08 – WhatIf, Texas Páginaage 196 ofde 321

Opción múltiple Multiple Choice

¿Recuerdas cuando ordené cerveza de raíz utilizando sólo 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 opción múltiples 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 opción múltipleYou en un código 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 aAplicación deStart a new Windows denominadaApplication called Elegir Un ChooseAColor. Añadagrega tresdd three botones de radioradiobuttons y un botón 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 Botón de RadioRadioButton of RadioButton 1 ato "RojoRojoed". Chambiae elnge the tTexto del of Botón de RadioButtonRadioButton 2 ato "AmarilloYellow". Chambie elnge the tTexto del of Botón de RadioButtonRadioButton 3 ato "VerdeGreen". Chambiiaenge el the tTexto del Buttonotón of Button1 toa "ColoréameColor Me". Ajustae la propiedad MarcadaSet the Checked propert dely of Botón de RadioButtonRadioButton 1 en Verdaderto Trueo. HagaHaz doble clic en el Buttonotón Double click Button1 para editar el código de evento de clicto edit the click event code. Añadagrega las siguientes líneas de códigodd the following lines of code:

Dim myyi Color AsComoAs Systemistema ystem . Drawing ibujar Drawing .Color IfSi If Botónde Radio Button RadioButton 1. Marcad Checked oChecked = VTrueerdadero True ThenEntonces Then m yyi Color = Syi stem aystem .D ibuja r awing rawing .Color. RRojoojo ed End If EndTermina IfSi IfSi If BotóndeR Radio Button RadioButton 2. CheckedMarcado Checked = VTrueerdadero True ThenEntonces Then

Page 197: Visual Basic Net

Unidadt 08 – WhatIf, Texas Páginaage 197 ofde 321

m yyi Color = Systemist emaystem .D ibuja r awing rawing .Color. AmarilloAmarilloYellow End If EndTermina Si If IfSi If Botónde Radio Button RadioButton 3. CheckedMarcado Checked = VTrue erdadero True EThentonces Then m yyi Color = Syi stem aystem .D rawin gibujar rawing .Color. VerdeVerde Green End If EndTermina IfSi Forma. FormaActiv eFormaForm. Back Color deFondo Backcolor = myyi Color

Creae e iniciae tsu proyectoBuild and start your project. Notae que el botón de radioNotice that the "Rojoed" se encuentra marcado. HagaHaz clic enradiobutton el botón is checked. Click the "Coloréame" Me" button. El formatoLaThe forma y los botones se colorean de rojo and buttons are colored red. Seleccionae unt a different botón de radioradiobutton distinto y hazgaand clic en el botónk the "Coloréame" Me" button. El¡LaThe formato yand los buotones se colorean de un color distintottons are colored a different color!. Observae el códigoLook at the code. Se utiliza unaA serie de instruccionesenunciadoss of "IfSiIf...ThenEntoncesThen" para responder una pregunta de opción múltiplestatements is used to answer a multiple choice question: "¿QuéWhich botón de radioradiobutton se encuentra marcadois checked?" A medida que el código ejecuta una ordens code executes an order, el programa determina finalmente cuál 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 instrucción condicional apropiadaoThen the program executes the appropriate conditional statement para especificar el to set the color.

Page 198: Visual Basic Net

Unidadt 08 – WhatIf, Texas Páginaage 198 ofde 321

Operadores

Boolean os en el Operators in el cCódigo ode

Hemos hablado de cómo puedes utilizarWe talked about how you can use los operadores Booleanos operators para unir expresiones y resolver to join expressions t problemas complejos deo lógicagether 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 condición complejathe AND Boolean operator to build a complex condition. Vamos aWe are going to modificar nuestra aplicación dey our Elegir Un ChooseAColor añadiendo una casilla de verificación que habilitará o deshabilitará la funcióonalidad 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 condición más compleja que requiera que to build a more complex condition which requires that la casilla de verificación se encuentre marcada the checkbox para que el is checked or the color pueda cambiarsecan't be changed. Abrea tsu aplicaciónOpen your Elegir Un ChooseAColor application. En laOn Forma 1, añadaagrega una casilla de verificacióndd a checkbox. Chambiae la propiedad delnge the tTexto a property to "HabilitarEnable Colores". Editae el código de evento de clic de botón del Buttonotón the button click event code of Button1. Reemplaceza el código con lo siguientece the code with the following:

Dim myyi Color AsComoAs S yi ystem a.D rawing ibujar rawing .Color IfSi If Botónde Radio Button RadioButton 1. CheckedMarcado Checked = VTrueerdadero True AndYAnd CasilladeVerificación CheckBox CheckBox 1. CheckedMarcada Checked ThenEntonces Then m yyi Color = Syi st ystem ema.D ibuja r awing rawing .Color. RRojoojo ed End If EndTermina IfSi IfSi If Botó ndeRadio Button RadioButton 2. CheckedMarcado Checked = VTrueerdadero True AndYAnd CasilladeVerificación CheckBox heckBox 1. CheckedMarcada Checked ThenEntonces Then m yyi Color = Syi ystem a.D rawing ibuja r awing .Color. AmarilloAmarillo Yellow

Page 199: Visual Basic Net

Unidadt 08 – WhatIf, Texas Páginaage 199 ofde 321

End If EndTermina IfSi IfSi If Botónde Radio Button RadioButton 3. CheckedMarcado Checked = VTrue Anderdadero True YAnd CasilladeVerificación CheckBox heckBox 1. CheckedMarcada Checked EThenntonces Then m yyi Color = Syyi stem a.D ibuja r awing rawing .Color. VerdeVerde Green End If Termina En If Si Forma. FormaActiv eFormeForma . Back Color deFondo Backcolor = myyi Color

Creae e iniciae tsu proyectoBuild and start your project. HagaHaz clic en el botónClick the "Coloréame Me" button. ¡No sucede nadaNothing happens.! No hay cambio de colorr change. Ahora marqueca la casilla de verificaciónNow check the "HabilitarEnable Colores" y hagahaz clic de nuevo en el botóncheckbox and click the "Coloréame 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. Añadimosgregamos el siguiente código a la condición deWe added the following code to the cada instrucciónenunciado condition of each IfSiIf...ThenEntoncesThen statement: AndYAnd CasilladeVerificación CheckBoxheckBo x1. CheckedMarcada Checked

Teacher’s TipConsejoRecomendación para el MaestroProfesor Algunos alumnos tienen problemasThis is an example of a text box we can use for the Teacher’s 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 más complejosThey avoid

Teacher’s TipConsejoRecomendación para el MaestroProfesor Algunos alumnos tienen problemasThis is an example of a text box we can use for the Teacher’s 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 más

Page 200: Visual Basic Net

Unidadt 08 – WhatIf, Texas Páginaage 200 ofde 321

Esto añadeagrega una condiciónThis 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,

Botónde Radio Button 2RadioButton 2. CheckedMarcado Checked = VTrue Anderdadero True YAnd CasilladeVerificación CheckBox heckBox 1. CheckedMarcada Checked

É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 expresión se eva on either side of the AND operator are False, then the expression will evalluará comouate to Falsa y el color no cambiaráe and the color will not change.

Recuerd a, utiliza el operador AND cuando quieres que ambos operandos sean Verdadero. Utiliza el operador OR si requieres que solo uno de los operandos sea

Page 201: Visual Basic Net

Unidadt 08 – WhatIf, Texas Páginaage 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 lograríamosI had no doubt we'd make it. En el trayecto usted aprendióste otro tipo esencial de enunciadoinstrucción de código, 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 s ome 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 disfrutarás de éstaI think you'll really enjoy this one. No olvides efectuar sutu prueba examen deDon't forget your Verificación antes de que nos dirijamos al cComité de rRally para nuestro retoretoCheckpoint quiz before we head to the Rally Committee for our challenge .

Page 202: Visual Basic Net

Unidadt 08 – WhatIf, Texas Páginaage 202 ofde 321

08 Pruebaove It Ejercicio 02 Encuesta de aAptitud en pProgra mmming Aptitude ación Survey Sabemos que sete encuentras en este viaje de Reglas de Código porque has demostrado tsus aptitudes en el salón 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 desearía disponer de una simple formato de encuesta para ayudar a que otros alumnos decidan si deben tomar un curso de programación 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 deberás crear un formato de encuesta interactivo. Usando una escala del 1 al 10 el usuario debe estimar su aptitud para diferentes habilidades de programación. El programa suma sus puntajes y proporciona una evaluación de la aptitud de programación. El archivo 08_proveit02_files contiene instrucciones para este Ejercicio y archivos de apoyo que podrás necesitar.

Page 203: Visual Basic Net

Unidadt 08 – WhatIf, Texas Páginaage 203 ofde 321

Cuando se hagahaces clic en el botónWhen the Evaluarte button is clicked, añadagrega los números 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 númeroSince the content of a text box is a string, not a number, usted ttendrás 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( TextBoxCuadrode Text Box1.Text o)

La funciónThe Val function calcula el valor de la cadenates the value of the string. Después usted puedes asignarlo a una variable comoThen you can assign it to a variable such as X. �• Si el número es mayor aIf the number is greater than 40, assignae un mensaje al cuadro de texto de a message to the Evaluación, 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 programaciónming course. �• Si el número es deIf the number is from 20 –a 39, entonces diílegale al alumno que su éxito en la programación es incierto, pero que es

Page 204: Visual Basic Net

Unidadt 08 – WhatIf, Texas Páginaage 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 número 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. ¿Cuál es tsu propio puntajeWhat is your own score? Cuando tsuWhen your programa isea correcto, muéstraeselo a tsushow it to your instructor.

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

Page 205: Visual Basic Net

Unidadt 08 – WhatIf, Texas Páginaage 205 ofde 321

Page 206: Visual Basic Net

Unidadt 08 – WhatIf, Texas Páginaage 206 ofde 321

08 RetoReto Challenge 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

crearloCreémoslo conLet’s create it with Visual Basic.NET. Requerirá algunas cosas que no hemos cubiertoIt will require some things we específicamentehaven’t 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. Añadagrega controles a la formato, para que se vea asídd controls to the form so it looks like this:

Teacher’s TipConsejoRecomendación para el MaestroProfesor EsteThis is an example of a text box we can use for the Teacher’s Guide.This programa es más 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 necesitarás. Temas en

Teacher’s TipConsejoRecomendación para el MaestroProfesor EsteThis is an example of a text box we can use for the Teacher’s Guide.This programa es más grande que los programas anteriores is larger than previous programs. Puede resultar útil revisarIt may be

ZapTemas en

Page 207: Visual Basic Net

Unidadt 08 – WhatIf, Texas Páginaage 207 ofde 321

Page 208: Visual Basic Net

Unidadt 08 – WhatIf, Texas Páginaage 208 ofde 321

ElThe propósitoobjecto del juego es hacer clic en el objetivo en movimiento of the game is to click the moving target. El código moverá la imagen, dificultando hacerle clicThe code will move the picture, making it hard to click. El botón Inicio restablece inicializa e inicia el juegoThe Start button initializes and starts the game;. eEl botón Detener termina el juegoThe Stop button ends the game y. eEl botón 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. Añadagrega un Cuadro de iImagen para mantenercolocar el gráfico objetivodd a PictureBox to hold the target graphic. El gráfico 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 Cronómetro para hacer que el código se ejecute en intervalos de tiempo específicos uses a Timer to cause code to execute at specific time intervals. Después de haber dibujado ella formato, encuentrae el control del Cronómetro 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 botón Inicio hagahaz clic en evento, añadagrega el código 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 cCronómetro en VerdaderoSet the Enable property of the Timer to True.

Page 209: Visual Basic Net

Unidadt 08 – WhatIf, Texas Páginaage 209 ofde 321

4. Agregañada el código al evento de clic del botón de Inicio para realizar lo siguientedd code to the Start button click event to do the following: --Si elIf Botón de RadioRadioButton Radiobutton1 ies VerdaderoTrue, ajustae la propiedad de Intervalo del Cronómetro 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 Botón de Radiobutton RadioButton 2 ies VerdaderoTrue, ajustae la propiedad de Intervalo del Cronómetro 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 Botón de RadiobuttonRadioButton 3 ies VerdaderoTrue, ajustae la propiedad de Intervalo del Cronómetro 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 botón DetenerIn the Stop button click event, ajustae la propiedad Habilitar del cCronómetro enset the Enable property of the Timer to Falseo. 6. En el evento de clic del botón 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, añadagrega el código que aumenta por un punto el marcador delañadirá uno aldd code that will add one to the contador de Aciertosaciertos Hits counter y póngalo en el Cuadro de Texto marcado comoand put it into the TextBox labeled "AciertosHits". •8. En el evento Cdel CronómetroIn the Timer event (hagahaz double -clic en el cronómetro para obtener la ubicación del códigok the timer to get to the code location), usted añadeagrega el siguiente código para mover el objetivoyou add the following code to move the target. Presupone que tsu It assumes your formato tiene un tamaño 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)

Page 210: Visual Basic Net

Unidadt 08 – WhatIf, Texas Páginaage 210 ofde 321

RandomY = MyRandomGenerator.Next(1, 250) PictureBox1.SetBounds(RandomX, RandomY, Me.Width, Me.Height, System.Windows.Forms.BoundsSpecified.Location) Dim MyiGeneradorAleatorio RandomGenerator ComoAs Syi stem a. Aleatorio Random Mi yRandomGenera t dor Aleatorio = Nuevo ew

Si ystem a. Aleatorio Random Dim Aleatorio RandomX ComoAs Entero Integer Dim Aleatorio RandomY ComoAs Entero Integer

Aleatorio RandomX =

Mi yRandomGenera t dor Aleatorio . Next Siguiente (1, 550) Aleatorio RandomY =

Mi yRandomGenera t dor Aleatorio . Next Siguiente (1, 250) CuadrodeImagen PictureBox 1. FijarRebotes SetBounds ( Aleatorio RandomX, Aleatorio RandomY, YoMe. Ancho Width , YoMe. Altura Height , Syi stem a.Windows.Form as. RebotesEspecificado BoundsSpecified . Location Ubicación )

•9. En el evento del Cronómetro, después del código anterior, agregañadaIn 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. Agregañadadd 1 alto the contador de AciertosHits counter.

Extensióon / Desviaciónisparo LateralSide Trip Al inicio del código del de cronómetro, 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.

Page 211: Visual Basic Net

Unidadt 08 – WhatIf, Texas Páginaage 211 ofde 321

¿Las computadoras toman las decsisciones basadas en ¿Cuáando el operador AND rregresa

un valor de TrueVerdadero ?Temas en

¿Cuál es el significado de est Temas 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 determinar Temas en

Cuando el lado izquierdo o el lado derecho es True

Cuando ambos lados son True

¿Cuáando 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 número

No igual

Lo mismo que Temas en

Verdadero/Falso

Hacer/Hasta Estado de Byte

Cuadrar un número

No igual

Lo mismo que Temas en

Cuando el lado izquierdo o el lado derecho es TrueVerdadero

Cuando ambos lados son TrueVerdadero

No se puede determinar Temas en

Page 212: Visual Basic Net

Unidad 09 - IfElse, New Mexico Página 212 de 321

Temas en el camino a IfElse: IfElse Ampliación de If...Then Instrucciones If...Then anidadas Condiciones contrarias If...Then...Else Introducción a If Instrucciones If en C# y J# Operadores en C# y J# Entrada a IfElse, NM

Page 213: Visual Basic Net

Unidad 09 - IfElse, New Mexico Página 213 de 321

IfElse, Nuevo México Cliff explicó muy bien las instrucción If...Then, y ya las entiendes. Ahora tus programas pueden tomar decisiones. Casi es como si pensaran. Te indicó cómo usar los operadores booleanos, trabajar con lógica booleana y programar instruccións If...Then en Visual Basic NET. Cliff usó algunos ejemplos muy buenos para demostrar el uso de las instruccións “If...Then” para tomar decisiones de opción múltiple, y cómo usar operadores booleanos para formar condiciones complejas. Cliff te llevará a tu próximo destino: IfElse, Nuevo México. Los paisajes son espectaculares, aunque en esta época del año 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 enseñaré algunos trucos ingeniosos que harán todavía más útiles a las instruccións “If...Then”. Al terminar este viaje podrás hacer que tus programas tomen casi cualquier decisión que desaes.

Page 214: Visual Basic Net

Unidad 09 - IfElse, New Mexico Página 214 de 321

Ampliación de If...Then

Ya conoces cómo configurar una instrucción If...Then en Visual Basic.Net. Es mucho lo que se puede hacer sólo con ella. Si usas más de una instrucción If...Then, tu programa puede tomar un sin número de decisiones. Hasta podrá contestar preguntas de opción múltiple, usando una serie de instruccións If...Then. Cliff te enseñó también cómo las instrucciónes condicionales múltiples pueden compartir una sola condición. Si la condición es Cierto, todas las instruccións condicionales que haya bajo ella se ejecutan en orden. Esto simplifica tu programa y facilita leerlo y corregirlo. Al usar instruccións simples If...Then, puedes escribir un programa para hacer cualquier tipo de decisión, 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 enseñarte algunos trucos de programación que simplificarán tu vida y le agregarán una funcionalidad poderosa a la instrucción If...Then simple. Primero te mostraré cómo anidar las instrucciones If...Then. Después te enseñaré cómo 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!

Page 215: Visual Basic Net

Unidad 09 - IfElse, New Mexico Página 215 de 321

Declaraciones If...Then anidadas Sólo para simplificar, Cliff no tocó un secretillo acerca de If...Then. En una instrucción If...Then, puedes tener otra If...Then como instrucción condicional. ¡Piensa lo que significa! La segunda instrucción If...Then sólo se ejecuta si la condición de la primera resulta Cierto. La primera instrucción contiene a la segunda. A esto se le llama “anidamiento” porque una instrucción 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 código, eso se vería como sigue: If tengo $200 Then If la tienda está abierta Then Compraré un reproductor MP3 End If End If Es como dos instruccións If...Then en una. La primera instrucción If...Then envuelve a la segunda. La primera contiene una condición (si tengo $200) y una instrucción condicional (si la tienda está abierta, compraré un reproductor MP3); esta última es otra instrucción If...Then. La segunda If...Then tiene su propia condición (si la tienda está abierta) y su propia instrucción 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 condición de la primera instrucción If...Then es Falso, y no importa que la tienda esté abierta o no -- no habrá reproductor MP3.

Recomendación para el profesor Algunos alumnos observarán que el ejemplo anterior se puede escribir como instrucción 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 sangría, o después en la unidad, cuando se introduce la parte Else de If.

Recomendación para el profesor Las sangrías y el alineamiento son vitales para evitar errores al escribir instruccións anidadas If.

Page 216: Visual Basic Net

Unidad 09 - IfElse, New Mexico Página 216 de 321

Veamos ahora algún otro programa. Iniciaremos una nueva aplicación llamada Anidamiento. Agregaremos dos casillas de verificación y un botón de comando a Form1. Cambia el texto del Button1 a “¿Quién se registra?” Haz doble clic en Button1 para editar el código del evento clic. Agrega el siguiente código: If CheckBox1.Checked = True Then If CheckBox2.Checked = True Then MessageBox.Show("All are checked.") End If End If

Crea e inicia tu aplicación. Elige la primera casilla de verificación y después haz clic en el botón “¿Quién se registra?” ¿Qué sucede? Bueno, nada sucede. Ahora elige la segunda casilla de verificación y haz clic de nuevo en el botón “¿Quién se registra?” Esta vez un cuadro de mensaje muestra el mensaje “Ambos están registrados.” Como puedes ver, la primera línea del código es una condición:

If CheckBox1.Checked = True Then Esta condición contiene una instrucción condicional que en realidad es otra instrucción If...Then,

anidada en la primera. La instrucción If...Then anidada tiene su propia condición: If CheckBox2.Checked = True Then También tiene su propia instrucción condicional: MessageBox.Show("All are checked.") Entonces ¿qué sucede? Si la primera condición es Cierto (la casilla de verificación 1 está marcada), entonces se ejecuta la instrucción condicional. Sucede que la instrucción condicional es una segunda instrucción If...Then. Si la segunda condición es Cierto (la casilla de verificación 2 está marcada), entonces se ejecuta la instrucción 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 verificación 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á

Page 217: Visual Basic Net

Unidad 09 - IfElse, New Mexico Página 217 de 321

En el código anterior, observa que la segunda instrucción If...Then está contenida dentro de la primera. El End If de la primera instrucción If...Then se encuentra después del End If de la segunda instrucción If...Then. La segunda está anidada, o contenida, en la primera. Puedes usar el anidamiento para combinar varias instrucciones If...Then para que sólo se ejecute una instrucción 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 más de tres capas de anidamiento se vuelve confuso y difícil para corregir errores. Asegúrate de sangrar las instrucciones interiores>

Page 218: Visual Basic Net

Unidad 09 - IfElse, New Mexico Página 218 de 321

Condiciones opuestas

Hasta ahora nuestras condiciones han sido algo unilaterales. Si la condición es Cierto, entonces se ejecuta la instrucción condicional. Si la condición es Falso, nada sucede. ¿Y si quisiéramos que pasara algo cuando la condición sea Falso? ¿Y si quisiéramos ejecutar otras líneas del programa? Bien, una posibilidad es escribir otra instrucción If...Then con la condición opuesta y su propia instrucción condicional para ejecutar. ¡Escribamos el código! Inicia una nueva aplicación llamada IfThenOtherwise. Agrégale un botón de comando y dos casillas de verificación a Form1. Cambia la propiedad de Texto de Button1 a “IfThen.” Ponga el siguiente código en el evento clic de Button1:

If CheckBox1.Checked = True Then Form.ActiveForm.BackColor = System.Drawing.Colo r.Red End If If CheckBox1.Checked = False Then Form.ActiveForm.BackColor = System.Drawing.Colo r.Blue End If

Crea e inicie su proyecto. Haz clic en el botón “If Then.” El formato se vuelve azul. Elige la casilla de verificación 1 y haz clic de nuevo en el botón “IfThen”. El formato se vuelve roja. ¿Cómo trabaja este código? En la primera instrucción If...Then se comprueba la condición para ver si CheckBox1.Checked = True. Si es Cierto, el color de fondo del formato se pone en rojo. En la segunda instrucción If...Then se comprueba la condición para ver si CheckBox1.Checked = False (la condición 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 código casi idéntico, para la condición contraria. Esto puede ser tardado, y se presta a errores.

Page 219: Visual Basic Net

Unidad 09 - IfElse, New Mexico Página 219 de 321

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

Page 220: Visual Basic Net

Unidad 09 - IfElse, New Mexico Página 220 de 321

If…Then…Else Visual Basic.NET ofrece una alternativa que elimina las líneas repetitivas del programa, y hace que éste sea más claro y fácil de leer. Esta alternativa es la instrucción If...Then...Else, la cual sólo necesita una condición, pero proporciona instrucciones condicionales separadas para cada resultado (Cierto o Falso). La instrucción If...Then...Else se usa en lugar de escribir dos instrucciones If...Then que tengan condiciones contrarias. La sintaxis es la siguiente:

If condición Then instrucción condicional 1 Else instrucción condicional 2 End If

¿Cómo trabaja este código? Primero, se evalúa la condición. Si ésa es Cierto, entonces se ejecuta la instrucción condicional 1. En caso contrario (else) se ejecuta la instrucción condicional 2. Ahora modifiquemos nuestra aplicación IfThenOtherwise para usar una instrucción If...Then...Else y demostrar que funciona igual que dos instrucciones If...Then independientes, pero contrarias. Agrega un segundo botón a Form1. Cambia la propiedad de Texto del Button2 a “IfThenElse.” Al evento clic en botón de Button2 agrega el siguiente código:

If CheckBox1.Checked = True Then Form.ActiveForm.BackColor = System.Drawing.Colo r.Red Else Form.ActiveForm.BackColor = System.Drawing.Colo r.Blue End If

Crea e inicia tu proyecto. Haz clic en el botón “IfThenElse.” El formato se vuelve azul. Elige la casilla de verificación 1 y haz clic de nuevo en el botón “IfThenElse”. El formato se vuelve rojo. El programa hace lo mismo cuando usa una instrucción IfThenElse que cuando usaba dos instrucciones IfThen. El código funciona porque se verifica la condición, para ver si la casilla de verificación está marcada (CheckBox1.Checked = True). Si es Cierto, la primera instrucción condicional se ejecuta y el formato se vuelve rojo. Si no es así (Else), se ejecuta la segunda instrucción condicional (la que está después de Else) y el formato se vuelve azul.

Veamos otro ejemplo de If...Then...Else. Vamos a modificar la aplicación IfThenOtherwise, para incluir varias líneas de código en las instrucciones condicionales. Una instrucción If...Then...Else puede tener varias líneas de código para sus instrucciones condicionales después de las cláusulas If...Then y Else. Abre tu aplicación IfThenOtherwise. Quita el código del evento de clic en Button2 y cámbialo por el siguiente:

Observa que las instrucciones condicionales después de los renglones If...Then...Else lleven una sangría. Esto lo hace Visual Studio.Net de manera automática, y ayuda a mantener su programa ordenado y bien legible.

Page 221: Visual Basic Net

Unidad 09 - IfElse, New Mexico Página 221 de 321

If CheckBox1.Checked = True Then Form.ActiveForm.BackColor = System.Drawing.Colo r.Red MessageBox.Show("Soy rojo.") TextBox1.Text = "Soy rojo." Else Form.ActiveForm.BackColor = System.Drawing.Colo r.Blue MessageBox.Show("Soy azul.") TextBox1.Text = "Soy azul:" End If

Crea e inicia tu proyecto. Haz clic en el botón “IfThenElse” y suceden tres cosas. Ahora elige la casilla de verificación 1 y haz clic de nuevo en el botón “IfThenElse” y suceden tres cosas distintas.

Introducción a If Ahora usaremos las funciones de depuración de Visual Studio.NET para entrar al código en una instrucción If...Then...Else. De este modo verás cómo funciona desde la perspectiva del código. Crea una nueva aplicación de Windows llamada StepInIf. Agrega un sólo botón de comando a Form1. Pon la propiedad de verificación de la casilla de verificación 1 en True. Cuando arranca la aplicación se marcará la casilla de verificación. Haz doble clic en el botón de comando para editar el código del evento clic. Agrega el siguiente código:

Dim MyValue As Integer MiValor = 1 If CheckBox1.Checked = True Then MyValue = 2 Else MyValue = 3 End If 1. Pon un punto de interrupción en la primera línea del código (MyValue = 1) haciendo doble clic en la zona gris a la izquierda del código, o haciendo clic derecho y escogiendo Insertar punto de interrupción. 2. Crea e inicia el proyecto.

Cuando aparece el formato, haz clic en el botón. El código se ejecuta hasta la línea que tiene el punto de interrupción.

Recomendación para el profesor Anime a los alumnos a recorrer realmente el código, y no sólo que lo lean.

Page 222: Visual Basic Net

Unidad 09 - IfElse, New Mexico Página 222 de 321

3. Oprime la tecla F11 para ejecutar la línea de código actual (MyValue = 1). Se destaca el siguiente renglón del código.

Page 223: Visual Basic Net

Unidad 09 - IfElse, New Mexico Página 223 de 321

4. Oprime la tecla F11 para ejecutar la línea de código actual (If CheckBox1.Checked = True Then). Como la casilla de verificación 1 (CheckBox1) está elegida, el siguiente renglón del código que se debe destacar es MyValue=2. 5. Oprime la tecla F11 para ejecutar la línea de código actual (MyValue = 2). Se destaca la siguiente línea del código. 6. Oprime la tecla F11 para ejecutar la línea de código actual (End If). Se destaca la siguiente línea del código. 7. Oprime la tecla F11 para ejecutar la línea de código actual (End Sub). Aparece de nuevo el formato.

Page 224: Visual Basic Net

Unidad 09 - IfElse, New Mexico Página 224 de 321

8. Deselecciona la casilla de verificación 1 (CheckBox1) y haz clic en el botón. 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 código. Esta vez se ejecuta la cláusula Else seguida por la línea MyValue = 3. ¡Muchas posibilidades! Ahora ves cómo funciona en realidad una instrucción If...Then...Else.

Page 225: Visual Basic Net

Unidad 09 - IfElse, New Mexico Página 225 de 321

Practicaremos ahora lo que hemos aprendido. 09 Ejercicio 01 Marcadores de golf ¿Nos divertimos jugando golf esta mañana, 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 botón Calcular, se calcula el marcador promedio en el golf. Como el contenido de un cuadro de texto es una cadena y no un número, habrá que convertirlo en un número. Visual Basic.Net permite varias formas de hacerlo. Veamos una.

X = Val(TextBox1.Texto) La función 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, muéstraselo a tu instructor.

Marcadores de golf Debes crear un formato que muestre los marcadores de golf y algunos cálculos relacionados. El archivo 09_proveit01_files contiene instrucciones para este ejercicio y todo archivo de soporte que necesitas.

Page 226: Visual Basic Net

Unidad 09 - IfElse, New Mexico Página 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 cómo 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. También tienen condiciones e instrucciones convencionales. Te mostraré un ejemplo rápido en C# y después te describiré los detalles.

int MiEdad; MiEdad=3; if (MiEdad==3) { MessageBox.Show("Tengo 3."); MessageBox.Show("Todavía tengo 3."); }

Primero declaramos una variable de tipo entero, llamada MiEdad, y después la igualamos a un valor inicial. A continuación iniciamos

nuestra instrucción con la palabra “if” – observa que está en minúsculas. Después, nuestra condición es (Piedad==3). La condición se

encierra entre paréntesis. Apuesto que te estás preguntando que hace aquí el doble signo igual. Bien, es el símbolo 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 código sea más legible, algunos programadores ponen las llaves en renglones separados. Observa que cada una de las

instrucciones condicionales tienen al final punto y coma. También observa que la palabra “Then” no se usa.

¿Y en J#? Bien, en este caso, el código en J# es exactamente igual que en C#.

Recomendación para el profesor Los alumnos avanzados podrán tomar un programa terminado de Visual Basic y escribirlo en C# o en J#.

Page 227: Visual Basic Net

Unidad 09 - IfElse, New Mexico Página 227 de 321

Veamos ahora una instrucción “If...Then...Else” en C#. Busca las semejanzas y las diferencias entre esta instrucción en C# y la misma instrucción en Visual Basic.NET.

int MiEdad; MiEdad=3; if (MiEdad==2) { MessageBox.Show("Tengo 2."); MessageBox.Show("Todavía tengo 2."); } else { MessageBox.Show("Tengo 3."); MessageBox.Show("Todavía tengo 3."); }

Observa de nuevo que la condición se encierra entre paréntesis. También observa que hay dos grupos de instrucciones condicionales, uno después de la condición y otro después 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 código para la instrucción If...Then...Else es exactamente igual que en C#.

Page 228: Visual Basic Net

Unidad 09 - IfElse, New Mexico Página 228 de 321

Operadores en C# y en J# Hay un par de cosas más 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 están todas en minúsculas. 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 automática, se usa el método ToString.

El mismo código en J# es el siguiente:

boolean seFActuró= true; boolean seTardó= false; boolean seHizo; seHizo=seFacturó && !seTardó; MessageBox.Show(System.Convert.ToString(seHizo));

Page 229: Visual Basic Net

Unidad 09 - IfElse, New Mexico Página 229 de 321

El código 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 código J# tuvimos que decir explícitamente “convertir el valor Booleano a una cadena, usando el método System.Convert.ToString” para poder mostrarlo en un cuadro de mensaje.

Algunos de los operadores de comparación también 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”. Además, para representar no es igual, C# y J# usan != en lugar de <>. En la tabla siguiente se muestran los operadores de comparación. Operador de comparación 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 código 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 código.

Page 230: Visual Basic Net

Unidad 09 - IfElse, New Mexico Página 230 de 321

Eso fue una muy buena explicación. 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 México. ¿Aprendiste mucho en el camino? Ahora tenemos más herramientas de programación para trabajar. Puedes escribir instrucciones If...Then anidadas, y también codificar instrucciones If...Then...Else. Ahora tu código realmente puede tomar decisiones. Bien, es tiempo de practicar un poco más. Veamos una demostración matemática.

Page 231: Visual Basic Net

Unidad 09 - IfElse, New Mexico Página 231 de 321

09 Ejercicio 02 Cuadrado mágico No soy un mago profesional, como el que vimos en el Parque de diversiones IfElse, pero conozco un truco de magia. Puedo tomar los números 1 a 9 y ordenarlos en un conjunto (array) de 3 por 3, de tal modo que sumen lo mismo en cualquier dirección. ¿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 botón 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 mágico Elabora un formato para llenarla con un cuadrado mágico, 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 botón Descargar para descargar el archivo.

Page 232: Visual Basic Net

Unidad 09 - IfElse, New Mexico Página 232 de 321

Como el contenido de un cuadro de texto es una cadena, y no un número, habrá que convertirlo a un número. Visual Basic.Net permite varias formas de hacerlo. Veamos una.

X = Val(TextBox1.Text) La función Val calcula el valor de la cadena. Después puedes asignarla a una variable y usarla en una instrucción 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 número se usó dos veces. Cuando tu programa quede correcto, muéstralo a tu instructor.

Recomendación para el profesor Si la suma de los 9 cuadros no es 45, es probable que se haya puesto un número dos veces. El alumno también debe de comprobar que ningún número sea mayor que 9 ni menor que 1.

Page 233: Visual Basic Net

Unidad 09 - IfElse, New Mexico Página 233 de 321

¿Listo para un reto? 09 Reto ······Volado Cada vez que no nos ponemos de acuerdo, como por ejemplo para ver a quién 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 botón adecuado de selección, se

pone el texto del cuadro de texto 1 (TextBox1.Text) en “Águila” o en “Sol". Al hacer clic en Lanzar, se genere un número 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 inclu ir a 2. RanNum = MyRandomGenerator.Next(0, 2) • Si el número 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 número 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 números 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 número; pero es un mal hábito hacerlo.

Volado En este examen verás qué tan bueno eres para adivinar cómo caerá una moneda. El archivo 09:challenge_files contiene instrucciones para este reto y los archivos de soporte que puedas necesitar.

Page 234: Visual Basic Net

Unidad 09 - IfElse, New Mexico Página 234 de 321

Define una variable entera para victorias y otra para derrotas. Súmalas. Después las deberás pasar a los cuadros de texto. Una vez que tu programa funcione bien, muéstraselo a tu instructor. Extensión / desviación Agrega campos para mostrar el porcentaje de victorias y el porcentaje de derrotas.

Page 235: Visual Basic Net

Unidad 09 - IfElse, New Mexico Página 235 de 321

Nunca se usa

Limitarse con corchetes

Sangrarse para ser más legible

El que está después de la instrucción Then El que está después de la instrucción Else El que está después de la instrucción Otherwise

Cuando una instrucción If está anidada en otra ¿cuántas declaraciones If hay?

Todas las que se deseen.

¿Qué debe ser una instrucción If anidada? Cuando una instrucción If es falsa ¿qué código se ejecuta?

¿Cuántas líneas de código puede haber después de una instrucción Else?

Page 236: Visual Basic Net

Unidad 10 – Def Valley Página 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

Page 237: Visual Basic Net

Unidad 10 – Def Valley Página 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 más. No me gustaría perderme allá. Uno puede vagar durante días sin llegar a ningún lado, más bien dando vueltas. Creo que después de un rato podrías quedar abrumado. En esta parte del viaje iremos en una dirección totalmente distinta. Creo que ya adquiriste el hábito de escribir programas que tomen decisiones, así que ahora te voy a indicar cómo escribir códigos que hagan bucles. Los bucles se usan para ejecutar instrucciones de código una y otra vez. Como programador, necesitas saber cómo escribir bucles; son otra de las herramientas esenciales de la caja de recursos de todo programador.

Page 238: Visual Basic Net

Unidad 10 – Def Valley Página 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 sólo me lo tiene que decir cuatro veces) Los códigos 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 programación tienen bucles. El código 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 código dentro de un bucle, sólo lo debes escribir una vez. Eso también ayuda a reducir errores. Veamos un ejemplo de lo útil que son los bucles en los programas. Imagina que quieres sumar todos los números del 1 al 100. Lo podrías hacer escribiendo una larga ecuación. 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.

Todavía es mucho programa repetitivo. Tendrías que repetir el mismo renglón 100 veces. ¿Y qué tal si ahora quieres sumar todos los números del 1 al 1000? ¿Cómo por Dios lo vas a hacer?

Page 239: Visual Basic Net

Unidad 10 – Def Valley Página 239 de 321

For…Next

Aquí es donde entran los bucles. Como mencioné antes, todos los lenguajes de programación tienen bucles que permiten ejecutar el código una y otra vez. Con frecuencia uno sabe cuántas veces se quiere ejecutar el código. En el ejemplo que presenté, de sumar todos los números de 1 a 1000, queremos que el código que suma los números se ejecute 1000 veces. Cuando se conoce cuántas veces se quiere ejecutar el código, 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 código cuántas veces se debe ejecutar. En Visual Basic.NET se forma un bucle definido con la instrucción For...Next. El código que se desea ejecutar una cantidad específica 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 instrucción1 instrucción2 instrucción etc. Next

Observa que las palabras “For”, “Next” y “To” son palabras reservadas; aparecen en azul, y todas comienzan con mayúscula. 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 cuántas veces se ha ejecutado el bucle. Puedes ingresar el valor del ContadorBucle dentro del bucle.

Cada mañana hago 40 levantadas de pesas y 25 lagartijas antes de pasar a la

andadora.

Page 240: Visual Basic Net

Unidad 10 – Def Valley Página 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 instrucción 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 aplicación de Windows llamada ForNextTwo. Agrega un botón de comando a Form1. Haz doble clic en Button1 para editar el evento clic en botón. Agrega este código:

Dim ContadorBucle As Integer For ContadorBucle = 1 To 2 MessageBox.Show(ContadorBucle) Next

Crea e inicia tu proyecto. Haz clic en el botón. 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 más mensajes. Lo que pasó fue lo siguiente. En el código declaras una variable llamada ContadorBucle del tipo entero. En la instrucción For, inicializas el ContadorBucle en 1, y pones el límite superior de ContadorBucle en 2. La instrucción que se debe ejecutar se coloca entre la instrucción For y la instrucción 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.

Recomendación 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 expresión, como X + 3.

Recomendación para el profesor Cuando termina un bucle For, la variable del bucle siempre es 1 mayor que el valor máximo del bucle.

Page 241: Visual Basic Net

Unidad 10 – Def Valley Página 241 de 321

Entrar a un bucle For...Next Examinaremos el código For...Next que acabas de escribir usando las herramientas de depuración de Visual Studio.NET. Entraremos al código y veremos cómo ejecute línea tras línea. Aquí las instrucciones detalladas:

1. Pon un punto de interrupción en la línea de código que contenga la instrucción For. Crea e inicia tu aplicación. 2. Se abre el formato. Haz clic en Button1. El código se ejecuta hasta el punto de interrupción. El código que tiene el punto de interrupción está destacado. 3. Oprime la tecla F11. Se ejecuta la línea del código que está resaltada.

Recomendación para el profesor Anime a los alumnos a hacer lo que se presenta, y no sólo leerlo.

La opción 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 opción de incremento como se ve en el código a continuación: 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.

Page 242: Visual Basic Net

Unidad 10 – Def Valley Página 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 código resaltado. MessageBox.Show(ContadorBucle)

El cuadro de mensaje muestra 1. Haz clic en Aceptar para cerrar el cuadro de mensaje. 5. Oprime la tecla F11. Se ejecuta el código resaltado. Next

6. Y se ejecuta el bucle For. For ContadorBucle = 1 To 2

Mueve el cursor sobre el ContadorBucl, en la instrucción For. El valor de ContadorBucle es 2. 7. Oprime la tecla F11. Se ejecuta el código resaltado. MessageBox.Show(ContadorBucle) El cuadro de mensaje muestra 2. Haz clic en Aceptar para cerrar el cuadro de mensaje. 8. Oprime la tecla F11. Se ejecuta el código resaltado.

Page 243: Visual Basic Net

Unidad 10 – Def Valley Página 243 de 321

Next

9. Y se ejecuta el bucle For. For ContadorBucle = 1 To 2

Mueve el cursor sobre el ContadorBucle, en la instrucción For. El valor de ContadorBucle es 3. 10. Oprime la tecla F11. Se ejecuta el código resaltado. End Sub

Aparece de nuevo el formato. Acabas de usar las herramientas de depuración para recorrer el código en un bucle For...Next. De este modo realmente ves cómo se ejecuta el código desde el punto de vista del programa.

Page 244: Visual Basic Net

Unidad 10 – Def Valley Página 244 de 321

1000 problemas de adición

Tengo una idea. Ahora escribamos el código para sumar los números de 1 a 1000. ¿Listo? Es fácil con un bucle For...Next. Crea una nueva aplicación de Windows llamada AddUp. Agrega un botón de comando a Form1. Cambia la propiedad de Texto del Button1 a “Sumar.” Haz doble clic en el Button1 para editar el evento clic. Añade el siguiente código:

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 aplicación. Haz clic en el botón “Sumar.” El cuadro de mensaje muestra el total que se obtiene sumando todos los números del 1 al 1000. ¿No fue rápido? Escribiste el código y el programa calculó la respuesta con más rapidez de la que puedes obtenerla en tu calculadora.

¿Cómo trabaja este código? Primero se declararon dos variables enteras: ContadorBucle y CuentaTotal. El ContadorBucle rastrea cuántas veces se ha ejecutado el bucle. CuentaTotal guarda el total del problema de la suma. En la instrucción 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 números del 1 al 1000. La instrucción 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.). Después de que ContadorBucle llega a 1000, hemos terminado. El bucle se termina y se ejecuta la línea de código siguiente a la instrucción Next. En este caso, un cuadro de mensaje muestra CuentaTotal.

Page 245: Visual Basic Net

Unidad 10 – Def Valley Página 245 de 321

Tan pronto como termine un bucle For...Next se ejecuta la primera línea de código después de la instrucción Next. En el ejemplo de arriba, la instrucción MessageBox.Show (CuentaTotal) se ejecuta tan pronto como termina el bucle.

Page 246: Visual Basic Net

Unidad 10 – Def Valley Página 246 de 321

Sacar la basura

Ahora veamos algunos ejemplos de bucle definido, que hacen otras cosas además de matemáticas. Recuerda que puedes poner cualquier código que desees dentro de un bucle For...Next. Puedes formar automáticamente 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 código algunos usos distintos de bucles. Inicia una nueva aplicación llamada SacarBasura. Agrega un botón de comando a Form1. Cambia la propiedad Texto del Button1 a “Mamá dice”. Haz doble clic en Button1 para editar el evento clic. Añade el siguiente código:

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 & Mensaje Mamá Next

Crea e inicia tu proyecto. Haz clic en el botón “Mamá dice”. Aparece el mensaje de mamá. Haz clic de nuevo en el botón “Mamá dice”. Observa cómo 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 frío. Agrega otro botón 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. Añade el siguiente código: 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.C olor.Red Else MessageBox.Show(i) Form1.ActiveForm.BackColor = System.Drawing.Color.Blue End If Next

Crea e inicia tu proyecto. Haz clic en el botón “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 límite inferior de 2 y un límite superior de 6. Una instrucción If...Then...Else dentro del bucle For...Next decide cómo iluminar el formato, basándose 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. También muestra el bucle, para que puedas ver los cambios de color.

Page 247: Visual Basic Net

Unidad 10 – Def Valley Página 247 de 321

Debe sangrar el código contenido entre las instrucciones For y Next. Al hacerlo puede ver con facilidad qué instrucciones se repetirán en el ciclo. El código sangrado es más fácil de leer y de corregir.

Page 248: Visual Basic Net

Unidad 10 – Def Valley Página 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. Supón que los conejos sí vivieran eternamente. Digamos que hay una isla por allí, con mucha vegetación y nada de depredadores para los conejos. Supón que se ponen dos conejos en la isla, y que cada par de conejos tiene una camada de 4 conejos. Así, después de una generación habría 2 + 4 = 6 conejos. Después de dos generaciones habría 6 + 12 = 18 conejos. ¿Cómo crecería la población de conejos en cada generación? 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 botón Descargar para bajar el archivo.

Page 249: Visual Basic Net

Unidad 10 – Def Valley Página 249 de 321

Muestra el número de la generación, 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 número 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 función Format. Por ejemplo:

VariableX = Format(VariableX, “###, ###, ###, ###, ##0”)

O bien VariableY = Format(VariableY, ###, ##0.0000”)

Una vez que tu programa funcione bien, muéstraselo a tu instructor.

Page 250: Visual Basic Net

Unidad 10 – Def Valley Página 250 de 321

Bucles en bucles

¡Enredémonos! ¿Sabías que se puede poner un bucle For...Next dentro de otro? El bucle For...Next interno es el código que se ejecuta una y otra vez por el bucle For...Next externo. Así que ¿cuántas veces se ejecuta el código interno? Veamos un ejemplo de código, para conocer la respuesta a esta pregunta. Inicia una nueva aplicación llamada BucleDeBucle. Agrega un sólo botón de comando a Form1. Haz doble clic en el Button1 para editar el código del evento clic. Añade el siguiente código:

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 botón. El cuadro de mensaje muestra “Total = 12”. Es la cantidad total de veces que se ejecutó el bucle interno. Regresa al código. ¿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 límites superiores de los bucles interno y externo. Los límites superiores e inferiores no tienen que ser números enteros. Tan sólo tienen que ser variables o expresiones cuyo resultado sea del tipo entero. También observa que el bucle interno tiene sangría.

Letrero de salida

Durante estos largos recorridos habrá que tomar un pequeño 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 códigos se deben sentir así a veces; también necesitan un respiro. Imagínate sumando todos los números del 1 al 1000. Yo también me cansaría. A veces debes detener un bucle antes que llegue al límite superior del contador del bucle. Lo puedes hacer usando la instrucción "Exit For". Ésta se pone en una instrucción If...Then en el cuerpo del bucle. La condición de la instrucción If...Then dice al código dónde salirse del bucle. Escribamos algún código que demuestre la instrucción Exit For. Crea una nueva aplicación de Windows llamada SalirLetrero. Agrega un botón de comando a Form1. Cambia la propiedad de Texto del Button1 a “SalirAhora.” Haz doble clic en Button1 para editar el código del evento clic. Añade el siguiente código:

Recomendación 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!

Page 251: Visual Basic Net

Unidad 10 – Def Valley Página 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)

Recomendación para el profesor Exit se usa mucho en lo siguiente:Exit For, Exit Do, Exit Sub

Page 252: Visual Basic Net

Unidad 10 – Def Valley Página 252 de 321

Crea e inicia tu proyecto. Haz clic repetidamente en el botón “SalirAhora”. Un cuadro de mensaje muestra el valor del contador de bucle. Cuando el contador de bucle llega a 3, la condición de la instrucción If...Then es Cierto y se ejecuta la instrucción Exit For. El código 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 código que está después de la instrucción Next. En este caso el cuadro de mensaje muestra i externo = 3 Veamos otro ejemplo de Exit For. Agregaremos algo más de funcionalidad a tu aplicación Salir Letrero. Agrega un cuadro de verificación y otro botón de comando a Form1. Cambia su propiedad de texto a “ChexIt”. Haz doble clic en el Button2 para editar el código del evento clic. Añade el siguiente código: 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 botón “ChexIt.” El bucle For...Next se ejecuta hasta que el ÍndiceBucle = 4. Entonces la propiedad marcada de la casilla de verificación 1 se pone en Cierto. Como ahora la casilla de verificación 1 está seleccionada, un cuadro de mensaje muestra el IndiceBucle y se ejecuta una instrucción Exit For. Se sale uno del bucle. Haz clic de nuevo en el botón “ChexIt” cuando todavía está seleccionada la casilla de verificación 1. ¿Qué sucede esta vez? La instrucción Exit For es llamada cuando el IndiceBucle = 1.

Page 253: Visual Basic Net

Unidad 10 – Def Valley Página 253 de 321

For...Next en C# y J#

Como todos los lenguajes modernos de programación, C# y J# también 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 código se ve muy distinto. He aquí cómo se escribe un bucle definido en J#:

for ( int ContadorBucle = 1; ContadorBucle < 5; ContadorBucle++) { MessageBox.Show(ContadorBucle.ToString()); }

Este código se ve distinto a una instrucción For...Next, pero hace lo mismo. En C# no se necesita tener una instrucción Next, y la palabra clave “for” está en minúscula. El código que va a ejecutarse con el bucle está entre las llaves. El código entre paréntesis después 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 instrucción de condición que funciona como límite superior.

ContadorBucle++

incrementa el bucle en 1. Esto también se podría escribir como sigue: ContadorBucle = ContadorBucle + 1

Todo en una sola línea de código.

Aquí el mismo código escrito en J#. Se ve igual, pero J# usa la función 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(ContadorBuc le)); }

Page 254: Visual Basic Net

Unidad 10 – Def Valley Página 254 de 321

Bueno, gracias Len, por mostrarnos ese código. Aun cuando se ve distinto a un bucle For...Next en Visual Basic.Net, se sigue usando para lo mismo: ejecutar repetidamente un código 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. Podríamos estar caminando en círculo todavía. En el camino te mostré cómo hacer que un código se ejecute una y otra vez con un bucle For ... Next. Esta clase de bucle se usa cuando se sabe cuántas veces se quiere que el código se repita. Otra cosa que te mostré fue cómo usar la instrucción Exit For para salir de un bucle antes que el contador del mismo llegue al límite superior. Ahora ya tienes otra herramienta importante más de programación 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.

Page 255: Visual Basic Net

Unidad 10 – Def Valley Página 255 de 321

10 Ejercicio 02 Números primos Espero cenar un buen prime rib hoy y no una pizza. ¡Prime Rib! ¡Yumm! Eso me acuerda de una clase de matemáticas donde estudiamos los números primos. Un número primo es aquel que se puede dividir exactamente (sin residuo) entre él mismo y entre 1. Algunos ejemplos son: 2, 3, 5, 7. Los números 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 número 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 botón Calcular, se determinan los números primos hasta el 5000. Agrégalos al cuadro de texto.

Números primos Escribe un programa para calcular todos los números 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.

Page 256: Visual Basic Net

Unidad 10 – Def Valley Página 256 de 321

He aquí algunas recomendaciones que te ayudarán. Al leer el material del curso aprendiste que puedes tener un código dentro de un código, como una instrucción If dentro de otra instrucción If. También 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 número que se va a investigar si es primo. La variable interna podría 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 número no se podrá dividir exactamente. El resultado será una fracción. ¿Por qué menos 1? Porque un número primo se puede dividir entre él mismo, así que ¿para qué investigarlo? Podrías tener una variable que vea si un número del bucle externo es primo o no lo es. Podrías 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 número primo potencial dividido entre la variable del bucle interno tiene o no residuo. Supón que los números se representaran por X y Y. ¿Cómo saber si X/Y tiene un residuo? Hay varios modos. Como estamos tratando de probar tus conocimientos de bucles, y no tus conocimientos matemáticos, te diremos sólo uno. El modo más fácil es con el operador Mod. Supón que definiste una variable llamada Residuo:

Residuo = X Mod Y Después de tu bucle, puedes agregar el número 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, muéstraselo a su instructor.

Page 257: Visual Basic Net

Unidad 10 – Def Valley Página 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 algún día me retiraré. He pensado en formas para ahorrar, porque sé que si comienzo a ahorrar siendo joven, después tendré mucho más. He oído 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 deberás pagar impuestos sobre la renta sobre las ganancias. Así que todo lo que ganes lo puedes conservar. ¿Cuál 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:

Recomendación para el profesor Vea la recomendación para el profesor en la página 25.

Roth IRA Aprenderá cómo 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.

Page 258: Visual Basic Net

Unidad 10 – Def Valley Página 258 de 321

Hay una edad a la que comienzas a ahorrar y una a la que terminas, la cantidad depositada cada año y la tasa de interés sin decimales. Como hemos estado estudiando bucles, parece una oportunidad ideal para usar uno. Las edades de inicio y de término parecen buenas para usarse en el bucle. No olvides de que los cuadros de texto tienen cadenas, así que la función Val se puede usar para convertirlas a números, como X = Val(TextBox1.Text).

Muestra la edad, el total de los depósitos desde el comienzo del ahorro, el saldo de la cuenta IRA y la ganancia, que es la diferencia entre los depósitos y el saldo. Para formatear la salida, usa la función Format. Por ejemplo: VariableX = FormatCurrency(VariableX)

• Recomendación1: Suma el depósito antes de calcular el interés. • Recomendación2: El interés es el saldo por (1 + tasa) (por ejemplo, 9% es 1.09). Una vez que tu programa funcione bien, muéstraselo a tu instructor.

Extensión / desviación No pagas intereses con un Roth IRA. ¿Qué sucede si haces la misma inversión en una cuenta bancaria ordinaria? Con una cuenta bancaria ordinaria, tu gobierno federal quiere su tajada de tu ingreso. Supón que Hacienda toma el 25% de las ganancias cada año. ¿Cuánto tendrás al final del período de los ahorros?

Page 259: Visual Basic Net

Unidad 10 – Def Valley Página 259 de 321

Regresa al inicio de un bloque de código Hace que falle un programa Se ejecuta una y otra vez

La variable de contador de bucle en una instrucción For ¿de qué tipo debe ser?

Toma decisiones una y otra vez Ejecuta un conjunto de instrucciones de código una cantidad específica de veces Define a una variable

En esta instrucción: For ContadorBucle = 1 To 2 , ¿cuál es el valor de ContadorBucle cuando termina el bucle?

¿Qué hace un bucle?

¿Qué hace un bucle definido?

Page 260: Visual Basic Net

Unidad 10 – Def Valley Página 260 de 321

Recomendación 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 difícil para los alumnos, no por la programación, sino por los conceptos de interés y de impuestos, que son nuevos para ellos. A continuación se presenta una descripción que ha funcionado en otras clases: Su meta es aumentar el tamaño 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 depósito en la cuenta. En este proyecto suponemos que sólo se pone dinero en la cuenta una vez cada año, y que el banco sólo le paga una vez por año. Usará usted un bucle For para hacer que los depósitos (su dinero) y el interés (el dinero que le paga el banco) se cuenten una y otra vez durante la cantidad adecuada de años. Dentro del bucle usted hace lo siguiente: Uno, usted aumenta su dinero. Dos, el banco agrega dinero, y aumenta el tamaño de su cuenta bancaria. El aumento se hace multiplicando la cuenta bancaria por 1 más la tasa de interés. 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 continuación necesita sumar los depósitos totales de SU dinero. Usted hace un depósito cada año, incluyendo el año de inicio. Suponga que comienza a la edad de 16 e interrumpe a la edad de 20. Entonces usted hizo depósitos a las edades de 16, 17, 18, 19 y 20. Es igual que la edad de retiro menos la edad de inicio más uno. La cantidad de interés 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 depósitos, porque ya los pagó al ganar ese dinero cuando trabajaba en Burger Mex o en cualquier otra parte. Sí paga impuestos sobre el interés, porque ese interés es otra ganancia que antes no se había gravado.

Page 261: Visual Basic Net

Unidad 11 – Whatever, Colorado Página 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 acción Formas alternas de bucle Exit Do Bucles indefinidos en J# y C# Llegada a Whatever, CO

Page 262: Visual Basic Net

Unidad 11 – Whatever, Colorado Página 262 de 321

Whatever, Colorado Cliff nos llevará al siguiente destino: Whatever, Colorado. Tomaremos el circuito escénico. 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 círculo. Te enseñaré cómo usar un bucle de una clase distinta; se llama bucle indefinido. Con un bucle indefinido no se sabe de antemano cuántas veces se va a ejecutar. Cesa de ejecutarse cuando se encuentra con una condición específica. Verás que los bucles indefinidos son otra herramienta útil que todo programador debe saber cómo usar. Hay veces en las que un bucle definido no funciona y se necesita usar uno indefinido.

Page 263: Visual Basic Net

Unidad 11 – Whatever, Colorado Página 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 condición que nos detiene en nuestra tarea repetitiva. Los bucles indefinidos se siguen ejecutando hasta que determinada condición 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 había cerrado el Rocky Mountain Sushi Bar and Grill. Tuvimos que buscar otro lugar para comer. Mientras manejábamos buscando otro restaurante, mi estómago no cesaba de protestar. No terminó sino hasta quedar satisfecho. Los códigos son iguales. A veces necesitas ejecutar el mismo código una y otra vez, mientras que, o hasta que, una condición determinada es Cierta. Por ejemplo, tu código podría pedirle al usuario su clave de acceso una y otra vez hasta que haya tecleado la correcta. O bien, mientras tu programa hace cálculos continúa tocando música electrónica sensacional como fondo. Lo que distingue un bucle indefinido de uno definido, es que uno definido se ejecuta una cantidad específica de veces. Por otra parte, un bucle indefinido se ejecuta mientras que, o hasta que, se cumpla cierta condición. 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 condición siga siendo Cierta. Los bucles do until se siguen ejecutando hasta que una condición se convierte en Cierta. La clave del uso de bucles indefinidos es saber elegir entre un bucle do while y uno do until.

Page 264: Visual Basic Net

Unidad 11 – Whatever, Colorado Página 264 de 321

Bucle Do While...

Un bucle Do While... ejecuta un bloque de código una y otra vez mientras que determinada condición siga siendo Cierta. Tan pronto como la condición se vuelve Falsa, termina el bucle y ya no se ejecuta el bloque de código. Parte del bucle Do While... es la condición que se usa para controlarlo. La sintaxis del bucle Do While..., en Visual Basic.NET es la siguiente:

Do While (condición) instrucción de código 1 instrucción de código 2 instrucción de código, etc. Loop

Observe que las palabras “Do”, “While” y “Loop” son palabras clave; aparecen en azul. La instrucción de la condición se encierra entre paréntesis. La condición puede ser cualquier expresión booleana que se evalúe como Cierta o Falsa; por ejemplo, X < 4. El código que quieres ejecutar en forma repetida se pone entre las instrucciones Do While y Loop. Al iniciar cada pasada por el bucle se evalúa la condición. Si la condición sigue siendo True, se ejecutan los pasos de código otra vez; si la condición es Falso, el bucle termina.

Ahora te mostraré cómo codificar un bucle Do While... Inicia una nueva aplicación llamada DoWhileLoop. Agrega un botón de comando a Form1. Haz doble clic en Button1 para editar el código del evento clic. Añade el siguiente código: Dim ValorWhile As Integer ValorWhile = 0 Do While (ValorWhile < 2) MessageBox.Show(ValorWhile) ValorWhile = ValorWhile + 1 Loop

Recomendación para el profesor La condición 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 introducción.

Page 265: Visual Basic Net

Unidad 11 – Whatever, Colorado Página 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 más cuadros de mensaje. ¿Cómo trabaja este código? 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 instrucción Do While comprueba que el ValorWhile sea <2. Si esta condición es Cierta, se muestra el cuadro de mensaje y se incrementa el ValorWhile. Si la condición es Falsa, el bucle termina. Este bucle se ejecuta dos veces antes de que la condición sea Falsa. La primera vez, el cuadro de mensaje muestra 0; la segunda vez, 1 y la tercera vez, ValorWhile = 2, y la expresión booleana 2 < 2 es falsa. El bucle termina y ya no se muestra el cuadro de mensaje.

Recomendación para el profesor No hay ninguna razón 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 sangría al código contenido entre las instrucciones “Do While” y “Loop”. Al hacerlo podrás ver con facilidad qué instrucciones repetirá el bucle. Un código con sangría es más fácil de leer y de depurar.

Page 266: Visual Basic Net

Unidad 11 – Whatever, Colorado Página 266 de 321

Page 267: Visual Basic Net

Unidad 11 – Whatever, Colorado Página 267 de 321

Entrar a un bucle Do While...

Usaremos las herramientas de depuración de Visual Studio.Net fáciles de usar para entrar al código de tu aplicación con DoWhileLoop, y veamos cómo se ejecuta, línea por línea.

1. En la ventana de código pon un punto de interrupción en la instrucción Do While 2. Inicia tu proyecto. El código se ejecuta hasta el punto de interrupción, y resalta la línea de código con el punto de interrupción. 3. Oprime la tecla F11 para ejecutar la línea de código destacada. Do While (ValorWhile < 2)

Mueve el cursor sobre ValorWhile. Su valor es 0. 4. Oprime la tecla F11 para ejecutar la línea de código destacada. MessageBox.Show(ValorWhile)

Un cuadro de mensaje muestra 0. Haz clic en Aceptar.

Recomendación para el profesor Los alumnos deben hacerlo, y no sólo leerlo.

Page 268: Visual Basic Net

Unidad 11 – Whatever, Colorado Página 268 de 321

5. Oprime la tecla F11 para ejecutar la línea de código destacada. ValorWhile = ValorWhile + 1

El ValorWhile se incrementa en 1. 6. Oprime la tecla F11 para ejecutar la línea de código destacada. Loop

El bucle se ejecuta de nuevo. 7. Oprime la tecla F11 para ejecutar la línea de código destacada. Do While (ValorWhile < 2)

Mueve el cursor sobre ValorWhile. Su valor es 1. 8. Oprime la tecla F11 para ejecutar la línea de código destacada. MessageBox.Show(ValorWhile)

Un cuadro de mensaje muestra 1. Haz clic en Aceptar.

Page 269: Visual Basic Net

Unidad 11 – Whatever, Colorado Página 269 de 321

9. Oprime la tecla F11 para ejecutar la línea de código destacada. ValorWhile = ValorWhile + 1

El ValorWhile se incrementa en 2. 10. Oprime la tecla F11 para ejecutar la línea de código destacada. Loop

El bucle se ejecuta de nuevo. 11. Oprime la tecla F11 para ejecutar la línea de código destacada. Do While (ValorWhile < 2)

Mueve el cursor sobre ValorWhile. Su valor es 2. Ahora, la condición 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 línea de código destacada. End Sub

El evento clic te saca y aparece de nuevo el formato. Ahora que has visto cómo funciona el bucle Do While..., veamos la instrucción Do Until.... Bucle Do Until...

Page 270: Visual Basic Net

Unidad 11 – Whatever, Colorado Página 270 de 321

Una instrucción Do Until... ejecuta un bloque de pasos de código una y otra vez hasta que una condición se vuelva Cierta. La instrucción condicional puede ser cualquier expresión booleana que se evalúe como Cierta o Falsa. La sintaxis del bucle Do Until... en Visual Basic.NET es la siguiente:

Do Until (condición) instrucción de código 1 instrucción de código 2 instrucción de código etc. Loop

Las palabras “Do”, “Until” y “Loop” son palabras clave; aparecen en azul. La condición se evalúa al principio del bucle. Si sigue siendo Falsa, se ejecutan los pasos de código otra vez. Cuando la instrucción en Do Until se evalúa como Cierta, el programa sale del bucle.

Ahora te mostraré un ejemplo de una instrucción de bucle Do Until... en Visual Basic.NET; la vamos a codificar. Inicia una nueva aplicación llamada DoUntilLoop. Agrega un botón de comando a Form1. Haz doble clic en Button1 para editar el código del evento clic. Añade las siguientes líneas de código:

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.

Recomendación para el profesor While arranca con una condición Cierto, Until arranca con una condición Falso.

Page 271: Visual Basic Net

Unidad 11 – Whatever, Colorado Página 271 de 321

¿Cómo trabaja este código Do Until...? Primero declaramos una variable llamada ValorUntil y la inicializamos a 0. La variable ValorUntil se

usa en la comparación 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 instrucción Do Until contiene una instrucción de comparación, que comprueba si ValorUntil es mayor que 1. La primera

vez que se recorre, ValorUntil es 0. La instrucción booleana es Falsa, por lo que se ejecutan las instrucciones del código. Aparece un

cuadro de mensaje y ValorUntil se incrementa. La segunda vez en el bucle, ValorUntil es 1. La instrucción booleana sigue siendo falsa, y se

ejecutan de nuevo los pasos del código. La tercera vez que se ejecuta, ValorUntil es 2. La expresión booleana 2 > 1 es Cierta, y el bucle se

detiene.

Bucles en acción

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 expresión 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 aplicación llamada BuclesEnAcción. Agrega un botón de comando a Form1. Cambia la propiedad de Texto del Button1 a

“CuentaRegresiva”. Haz doble clic en el Button1 para editar el evento clic. Añade el siguiente código:

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)

Page 272: Visual Basic Net

Unidad 11 – Whatever, Colorado Página 272 de 321

Crea e inicia el proyecto BuclesEnAcción. Haz clic en el botón “CuentaRegresiva”. Un cuadro de mensaje muestra -63. ¿Cómo trabaja este código? 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 expresión algo complicada. El nuevo valor de ControladorWhile se calcula tomando el valor del IndiceBucle, multiplicándolo por 23 y restándolo del valor anterior de ControladorWhile. Cada vez que se ejecuta el bucle, el valor de ControladorWhile se hace más pequeño. Es difícil decir cuántas 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 expresión booleana que controla el bucle sólo se cuida del valor de la variable ControladorWhile y no del valor del IndiceBucle.

Nuestro segundo ejemplo muestra un bucle Do While con una expresión booleana que depende de si está seleccionado el RadioButton3. En cada iteración en el bucle se verifica un Radiobutton distinto. En tu proyecto BuclesEnAcción, agrega un segundo botón de comando a Form1. Cambia la propiedad de Texto del Button2 a “While.” Agrega tres botones de selección a Form1. Haz doble clic en Button1 para editar el código del evento clic. Añade el siguiente código: 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 aplicación. Observa que el RadioButton1 está seleccionado. Haz clic en el botón “While.” El código escoge el RadioButton3 y en un cuadro de mensaje aparece el índice del bucle. Si tu ojo es rápido o si tu computadora es de veras lenta, puedes ver momentáneamente 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 apagarán sino hasta que dé una vuelta. Podría

¡Este bebé es mi orgullo y mi

Page 273: Visual Basic Net

Unidad 11 – Whatever, Colorado Página 273 de 321

conocer la cantidad de veces que se ejecuta el bucle. Sin embargo, no se usa el IndiceBucle en la expresión booleana que controla el bucle Do While. En lugar de ello, IndiceBucle se usa para seleccionar cada vez un botón de opción distinto. La expresión 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 instrucción Do Until. La expresión booleana compara la propiedad de texto de un cuadro de texto con una variable de cadena que cambia con cada iteración en el bucle. Agrega un cuadro de texto a Form1 de tu proyecto BuclesEnAcción. Deja puesta la propiedad de texto del TextBox1 en "TextBox1". Agrega un tercer botón a Form1 y cambia su propiedad de texto a “IgualTexto”. Haz doble clic en el Button3 para editar el código del evento clic. Añade el siguiente código: 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("Número " & LoopIndex & " son iguales.")

Crea e inicia tu aplicación. Haz clic en el botón “Igual texto.” Un cuadro de mensaje muestra el valor de IndiceBucle cuando el texto coincide. Este código usa una instrucción Do Until. La variable IndiceBucle sólo se usa para determinar el valor de la variable IgualTexto. La expresión 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 expresión booleana se evalúa en Cierto, ya que “TextBox1”=”TextBox1”, y el bucle termina. ¿Y si la propiedad de Texto de TextBox1 se hubiera puesto en “El pozo

Recomendación para el profesor El nombre de la variable IndiceBucle es arbitrario. Podría haber sido ContadorBucle, VariableBucle, X, o cualquier otra cosa.

Page 274: Visual Basic Net

Unidad 11 – Whatever, Colorado Página 274 de 321

púrpura”? ¿Puedes agregar otra instrucción “If...Then” para que se siga ejecutando el código?

Page 275: Visual Basic Net

Unidad 11 – Whatever, Colorado Página 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 más segura una versión computarizada. Crearemos un juego donde la computadora trata de dar en un blanco. Usa el código y el formato que se encuentran en la plantilla 11_proveit01_template. El formato se ve como este:

Hemos puesto todo el código del botón Otro juego, porque este botón usa algunas funciones de juegos que no se enseñan en este curso. Tu tarea es escribir el código para el botón 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 tamaño 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 número aleatorio para la variable entera X, que se use para la medición horizontal. Crea un número aleatorio para la variable entera Y que se use para la medición 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 botón Descargar para bajar el archivo.

Page 276: Visual Basic Net

Unidad 11 – Whatever, Colorado Página 276 de 321

El código para crear un número 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 código 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, muéstraselo a tu instructor.

Recomendación para el profesor Habrá preguntas. Repase antes la solución con anotaciones para esas preguntas.

Page 277: Visual Basic Net

Unidad 11 – Whatever, Colorado Página 277 de 321

Formas alternas de bucle Los bucles Do While y Do Until se pueden escribir de otra manera con la instrucción de condición al final del bucle en lugar de al principio. En estas formas alternas, la instrucción de la condición va después de las instrucciones de código. Las instrucciones de código siempre se ejecutan cuando menos una vez. Entonces se verifica la instrucción de condición. Estas formas alternas son las instrucciones Do...Loop While y Do...Loop Until. He aquí un ejemplo de la instrucción 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 instrucción 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 instrucción de la condición ahora forma parte de la instrucción de bucle, y no de la instrucción Do. Las instrucciones después de Do y antes de Loop se ejecutan cuando menos una vez. Entonces se evalúa la instrucción de condición para determinar si se repite el bucle. En el código anterior, si ValorUntil hubiera comenzado como 5, el cuadro de mensaje hubiera mostrado 5 antes de llegar a la verificación de la condición.

Recomendación para el profesor Poner la condición al final del bucle garantiza que habrá al menos una ejecución del código.

Page 278: Visual Basic Net

Unidad 11 – Whatever, Colorado Página 278 de 321

Exit Do

¿Recuerdas cuando Cliff te enseñó cómo interrumpir un bucle For...Next usando una instrucción Exit For? Bien, puedes escaparte de las

instrucciones Do While…Loop, Do Until…Loop, Do...Loop While y Do...Loop Until, en forma parecida. Sin embargo, en vez de usar “Exit

For”, usas “Exit Go”. Usa una instrucción If...Then para tener una expresión booleana con qué controlar la ejecución de la instrucción Exit

Do. Si la expresión booleana se evalúa en Cierto, entonces se ejecuta la instrucción 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 código para salir de un bucle Do Until. Inicia una nueva aplicación llamada ExitDo. Agrega un botón de comando a

Form1. Haz doble clic en Button1 para editar el evento clic. Agrega el siguiente código, 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 expresión de comparación

de la instrucción If...Then se evalúa en Cierto. Se ejecuta la instrucción Exit Do. El bucle termina y se reanuda la ejecución del código en la

primera línea después de la instrucción Loop Until. Este código 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 instrucción Exit Do en tu código de Do While...Loop para salir del bucle, antes de que la

instrucción de comparación se evalúe 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 código que haga lo mismo que la instrucción 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 mayúsculas) en C#, que evalúa la condición al inicio se puede codificar

como sigue:

int ValorWhile=0; While (ValorWhile<5) { MessageBox.Show(ValorWhile.ToString()); ValorWhile=ValorWhile+1; }

Page 279: Visual Basic Net

Unidad 11 – Whatever, Colorado Página 279 de 321

Y un código C# para un bucle do...while (do, while y loop no van con mayúscula) que evalúe la condición 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.

Page 280: Visual Basic Net

Unidad 11 – Whatever, Colorado Página 280 de 321

Veamos ahora el código en J#. Como podrás ver, es muy parecido al código 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 mayúscula) en J#, que evalúe la condición al inicio se puede codificar como sigue:

int ValorWhile=0; while (ValorWhile<5) {

MessageBox.Show(System.Convert.ToString(ValorWh ile)); ValorWhile=ValorWhile+1; }

Y un código J# para un bucle do...while (do, while y loop no van con mayúscula) que evalúe la condición al final:

int ValorWhile=0; do { MessageBox.Show(System.Convert.ToString(ValorWh ile)); ValorWhile=ValorWhile+1; } while (ValorWhile

J# no tiene el equivalente del bucle Do...Until Loop de Visual Basic.NET.

Page 281: Visual Basic Net

Unidad 11 – Whatever, Colorado Página 281 de 321

Llegada a Whatever, Colorado

¡Ya estamos en Whatever! ¡Fue otra parte rápida 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 condición sea Cierta, o hasta que una condición sea Cierta. Puedes codificar bucles indefinidos que evalúen la condición al principio o al final. Si se evalúa la instrucción de condición al final, las instrucciones del bloque de código siempre se ejecutarán al menos una vez. Verás 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ó cuántas veces deberás lanzar una moneda para sacar tres veces en seguida águila? ¿Cuántas para sacar 4? ¿Cuántas para 5? Usa el código 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 más lanzando una moneda. El archivo 11_proveit02_ contiene instrucciones para este ejercicio, y todos los archivos de soporte que necesitas.

Page 282: Visual Basic Net

Unidad 11 – Whatever, Colorado Página 282 de 321

El código para generar un número 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)

Supón que el valor 1 es águila, y el valor 0 es sol. Sigue generando números 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 instrucción if dentro del bucle, que muestra un mensaje y detiene el bucle si el contador rebasa algún número muy grande. Una vez que tu programa funcione bien, muéstraselo a tu instructor.

Recomendación para el profesor Este programa puede ser un poco más fácil que el Ejercicio 01.

Page 283: Visual Basic Net

Unidad 11 – Whatever, Colorado Página 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 serán de gran utilidad en este caso. 11. Reto Calculadora del promedio de calificaciones

Me gusta este viaje, lástima que pronto terminará. Entonces regresaré a la escuela a preocuparme por mi promedio de calificaciones. Sería bueno contar con un programa para calcular el promedio de un conjunto de calificaciones. Así que hagamos una calculadora para tal propósito. Crea un formato parecido al siguiente, o usa la plantilla 11_challenge_template:

Este programa usa una función InputBox que se ve como la de abajo. No tienes que crear este formato. Visual Basic.NET lo hace automáticamente por ti. Eso es nuevo, así que te daremos todo el código 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.

Page 284: Visual Basic Net

Unidad 11 – Whatever, Colorado Página 284 de 321

Define una variable que guarde cada calificación, como la siguiente:

Dim CalifEnt As String = "No hay ninguna"

Después, dentro de un bucle indeterminado, necesitarás este código: CalifEnt = InputBox("Ponga A, B, C, D, o F", "Ingre se la calificación en letra", "")

El usuario ingresará todas las calificaciones que desee. Cuando termina, ingresará ninguna calificación o hará clic en Cancelar. En todos los casos, la variable CalifEnt estará vacía. Vacío 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 número. El usuario puede teclear letras mayúsculas o minúsculas. 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 calificación numérica promedio. Extensión / desviación Convierte la calificación numérica promedio en una calificación de letra. Permite usar calificaciones con más y con menos, como B+ y C-. Usa los números 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 +

Recomendación para el pfofesor El bucle termina cuando CalifEnt = “”.

Page 285: Visual Basic Net

Unidad 11 – Whatever, Colorado Página 285 de 321

3.0 B - 3.3 B 3.5 B + 3.8 A - 4.0 A

Page 286: Visual Basic Net

Unidad 11 – Whatever, Colorado Página 286 de 321

Veamos esta prueba especial del punto de registro, para comprobar tus conocimientos.

Un bucle Do...While se ejecuta hasta que la condición llega a ser ¿cuál?

Un bucle Do...Until se ejecuta hasta que la condición llega a ser ¿cuál?

Arriba Abajo

En cualquier lugar, pero no en ambos a la vez

End Do Exit To Stop Do

¿Dónde se pone la condición en un bucle Do...While?

¿Qué comando termina de inmediato un bucle?

Page 287: Visual Basic Net

Unidad 12 – Function, South Dakota Página 287 de 321

Temas en el camino a Function: Función ¿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 conversión Llegada a Function

Page 288: Visual Basic Net

Unidad 12 – Function, South Dakota Página 288 de 321

Function, South Dakota

¡Caramba! ¡Increíble! Estamos en el último tramo de nuestro viaje. Tan sólo una escala más y nuestra jornada por Reglas de Código se terminará. Estoy seguro que fue divertido. Nikki y yo ¡de veras gozamos mostrándote los panoramas, y enseñándote 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 Código. Casi estás listos para un curso más avanzado. Hemos guardado para el final el mejor destino que es Function, South Dakota. En esta parte del viaje es donde aprenderás a usar todo lo que has aprendido hasta ahora. En este tramo te mostraré cómo escribir tus propias subrutinas y funciones, y usar algunas de las que están 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!

Recomendación para el profesor Algunos profesores explican en forma breve esta unidad, después de la unidad sobre instrucciones de asignación, o después de la unidad sobre aritmética, para regresar a ella al final del curso. Muchos profesores la presentan al final del curso.

Page 289: Visual Basic Net

Unidad 12 – Function, South Dakota Página 289 de 321

¿Qué son las rubrutinas? Las subrutinas (a veces se les dice subs) son semejantes a miniprogramas. Se escriben para efectuar tareas específicas en la aplicación. Cuando escribes una aplicación la descompones en partes de funcionalidad separada, y escribes una subrutina para cada una. Su aplicación 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 revisión de programas, porque dividen la funcionalidad de su aplicación en partes más pequeñas. Es mucho más fácil escribir y depurar varias subrutinas cortas que toda una aplicación. 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 código 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. ¡Imagínelo! Las subrutinas sirven también para dividir el trabajo de programación en una aplicación grande. Con frecuencia, a programadores individuales se les asigna para escribir un conjunto específico de subrutinas para la aplicación. 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 cálculos, formatear y mostrar información, personalizar la interfaz con el usuario,

pedirle datos al mismo y proporcionar entradas y salidas al programa.

Yo solo podría encargarme de las paradas en pits, pero

tardaría horas. Mi personal de pits me regresa con rapidez a

la carrera.

Page 290: Visual Basic Net

Unidad 12 – Function, South Dakota Página 290 de 321

Escribir subrutinas

Escribir subrutinas para una aplicación es otra de esas áreas de la programación que realmente me gustan. Es como un diseño de formatos; se necesita una combinación de creatividad y conocimientos de programación. Ya que son como programas pequeños las subrutinas pueden contener cualesquiera de las instrucciones de código que ya has aprendido. Ahora haré que escribas tu propia subrutina y después te mostraré cómo usarla en una aplicación. Comenzaremos aprendiendo la sintaxis de escritura de una subrutina, y después te enseñaré cómo codificarla. La sintaxis es la siguiente: Private Sub NombreSub()

instrucción de código 1 instrucción de código 2 instrucción de código 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 sólo se puede entrar con otro código 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 paréntesis después del nombre de la subrutina. Cuando se pasa una información a la subrutina, las variables que poseen la información se ponen entre los paréntesis. Ya viste esto en todos los subprogramas de evento que has usado en unidades anteriores del curso. Las instrucciones de código de la subrutina están entre los renglones Sub y End Sub y se ejecutan en orden. Puedes usar casi cualquier instrucción que desees en la subrutina.

Recomendación para el profesor Vea ejemplos de subprogramas en el programa Tic Tac Toe.

Debe sangrar el código de su subrutina para que sea obvio lo que contiene.

Page 291: Visual Basic Net

Unidad 12 – Function, South Dakota Página 291 de 321

Ahora te pido escribir tu propia subrutina y después te mostraré cómo llamarla desde el código. Inicia una nueva aplicación llamada SimpleSub. Abre la ventana del código. Busca el código que diga “Windows Form Designer generated code”. En la siguiente línea agrega este código: Private Sub MiMensaje() MessageBox.Show("Aquí está un mensaje de la sub rutina MiMensaje.”) End Sub

Como podrás ver, cuando se ejecuta el código dentro de la subrutina MiMensaje, un cuadro de mensaje mostrará el texto: “Aquí está un mensaje de la subrutina MiMensaje”, pero ¿cómo ejecutamos ese código?

Recomendación para el profesor Este curso preliminar no cubre asuntos relacionados con aplicaciones con varios formatos.

La palabra reservada Private quiere decir que esta subrutina sólo puede ser usada por el código que hay dentro del Form1.

Page 292: Visual Basic Net

Unidad 12 – Function, South Dakota Página 292 de 321

Llamar a tus propias subrutinas

Para hacer que se ejecute el código en tu subrutina, necesitas escribir un renglón de programa que “llame” a la subrutina. Cuando se le “llama”, se ejecuta el código contenido en la subrutina. La sintaxis para llamar una subrutina es sencilla. Sólo se usa el nombre de la subrutina seguido de un par de paréntesis. 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 botón de comando al Form1. Cambia la propiedad Texto del Button1 a “MiMensaje.” Haz doble clic en Button1 para editar el evento clic. Añade la siguiente línea de código:

MiMensaje()

Crea e inicia tu proyecto. Haz clic en el botón “MiMensaje.” Aparecerá un cuadro de mensaje que muestra “Aquí está un mensaje de la subrutina MiMensaje”. ¿De dónde vino? Es la línea de código contenida en tu subrutina MiMensaje. Cuando esa subrutina fue llamada con el evento clic de botón, se ejecutó esa línea de código. Ahora te pido agregar otra subrutina a tu proyecto SimpleSub. Mostrará un mensaje diferente. Abre la ventana de código y agrega el siguiente código después de la instrucción End Sub de la subrutina MiMensaje:

Private Sub TuMensaje() MessageBox.Show("Aquí está un mensaje de la sub rutina TuMensaje.”) End Sub Esta vez llamaremos a TuMensaje desde MiMensaje, en lugar de con el evento clic en botón. Edita la subrutina MiMensaje para que se vea como sigue: Private Sub MiMensaje() MessageBox.Show("Aquí está un mensaje de la sub rutina MiMensaje.”) TuMensaje() End Sub

Page 293: Visual Basic Net

Unidad 12 – Function, South Dakota Página 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 botón “MiMensaje.” Aparecen dos cuadros de mensaje. El primero muestra“Aquí está un mensaje de la subrutina MiMensaje” y el segundo “Aquí está un mensaje de la subrutina TuMensaje”. ¿Cómo trabaja este código? El evento clic en botón llamó a la subrutina Mimensaje. Cuando se llama esa subrutina se ejecuta el código que contiene. La subrutina MiMensaje contiene dos líneas de código. La primera línea muestra un cuadro de mensaje que dice “Aquí está un mensaje de la subrutina MiMensaje”. La segunda línea 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 código de evento clic en botón. 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 programación, es que puedes pasar información a tu subrutina. Eso es muy útil porque puedes escribir una subrutina que produzca distintos resultados o acciones dependiendo de qué información pongas en ella. La información que pasas a la subrutina se llama su “argumento”. Cuando escribes una subrutina a la que quieres pasar argumentos, debes definir cuántos 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 ) instrucción de código 1 instrucción de código 2 instrucción de código etc. End Sub

Recomendación para el profesor El parámetro ByVal quiere decir que el valor del parámetro se pasa al subprograma, pero la variable original permanece sin cambio.

Recomendación para el profesor Los parámetros no son un concepto totalmente nuevo. todos los subprogramas de evento clic tienen parámetros.

Page 294: Visual Basic Net

Unidad 12 – Function, South Dakota Página 294 de 321

Aquí los paréntesis no están vacíos. 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 código en tu proyecto SimpleSub. Baja la instrucción End Sub de la subrutina TuMensaje, añade 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 pasémosle un argumento de cadena. Agrega un segundo botón a Form1 de tu proyecto SimpleSub. Cambia la propiedad de Texto del Button2 a “CualquierMensaje.” Haz doble clic en Button2 para editar el código de evento clic en botón. Añade las tres líneas siguientes de código: MensajeGeneral("Cualquier mensaje.") MensajeGeneral("Algún otro mensaje.") MensajeGeneral("Un mensaje distinto.") Crea e inicia tu proyecto. Haz clic en el botón “CualquierMensaje. Aparecen tres mensajes. ¿Cómo fue posible? El código clic en botón 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 “Algún otro Mensaje”y la tercera vez con un argumento “Un mensaje distinto”. Cuando se ejecuta el código en la subrutina, el argumento se pasa a ella y lo usa la instrucción MessageBox.Show.

Ya le dije al técnico de asientos que use aplicación 20-10 para piel en esta carrera. En un día caluroso como hoy siempre estoy resbalándome en el asiento con el 20-40.

Page 295: Visual Basic Net

Unidad 12 – Function, South Dakota Página 295 de 321

Veamos un ejemplo más. 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 botón de comando a Form1 de tu proyecto SimpleSub. Cambia la propiedad Texto del Button3 a “Sumadoras”. Haz doble clic en Button3 para editar el código de evento clic en botón. Añade la siguiente línea de código: Sumadoras(34, 57)

Crea e inicia tu aplicación. Haz clic en el botón “Sumadoras.” Un cuadro de mensaje muestra 91. Nuestro código de clic en botón llama la subrutina Sumadoras y le pasa dos argumentos enteros, 34 y 57. La subrutina Sumadoras ejecuta tres líneas de código. Primero declara una variable llamada Total, después 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 información. Ahora te voy a mostrar cómo escribir funciones. Puedes pasar información a las funciones usando argumentos, igual que como haces con las subrutinas. Sin embargo, a diferencia de las subrutinas, también puedes recibir información de una función.

Las variables declaradas en una subrutina usando la instrucción Dim son variables locales. Cuando se declara una variable en una subrutina es como cuando se declara una variable en un evento clic en botón, que también es una subrutina. La variable sólo es accesible cuando se ejecuta la subrutina. Cuando termina la subrutina, la variable ya no es accesible.

Page 296: Visual Basic Net

Unidad 12 – Function, South Dakota Página 296 de 321

Escribir tus propias funciones

La diferencia principal entre subrutinas y funciones es que una función puede proporcionarte información. Esto se llama valor de retorno. Una función tiene un valor de retorno de un tiempo específico. Cuando escribes una función debes especificar el tipo del valor de retorno. Voy a mostrarte la sintaxis de la escritura de una función que toma argumentos y devuelve un valor.

Private Function NombreFunción( ByVal NombreArg1 As argType1 , ByVal NombreArg2 As argType2 , ByVal NombreArgN As argTypeN ) As ReturnType Instrucción de código 1 Instrucción de código 2 Instrucción de código etc. NombreFunción=ValorDevue lto End Function

Observe que las palabras “Private”, “Function” y “End Function” son palabras reservadas; aparecen en azul. El nombre de la función debe ser algo descriptivo. La lista de argumentos y tipos de argumentos está entre paréntesis, después del nombre de la función. Los argumentos están separados por una coma. Puedes tener tantos argumentos como desees, pero sólo un valor de retorno. Debes especificar el tipo del valor de retorno (por ejemplo, As Integer o As String). La última línea de código establece el valor de retorno. Observa que este renglón de código iguala el nombre de la función con el valor que va a devolver la función.

Recomendación para el profesor Observe que el valor de retorno por la función se coloca en el nombre de la función. El alumno ha usado funciones en programas anteriores. Pídale que recuerde algunas de esas funciones, como Val.

Page 297: Visual Basic Net

Unidad 12 – Function, South Dakota Página 297 de 321

Un ejemplo real ayudará a explicar la sintaxis. Por favor inicia una nueva aplicación de Windows llamada UniónFunciones. Abre la ventana de código y busca la línea de código que dice “Código generado por Widows Form Designer”. En la siguiente línea agrega este código: Private Function Muliplicadores( ByVal MultUno As Integer , ByVal MultDos As Integer ) As Integer Multiplicadores = MultUno * MultDos End Function

Esta función se llama Multiplicadores, y toma dos argumentos enteros llamados MultUno y MultDos. El tipo de retorno es específico de acuerdo con la lista de argumentos. En este caso, se especifica como un entero (As Integer). La función contiene una sola línea de código: Multiplicadores = MultUno * MultDos

Esta línea de código multiplica los dos argumentos y establece el valor de retorno. El nombre de la función, Multiplicadores, se debe usar como nombre del valor de retorno porque si no se generará un error. Llamemos ahora esta función y usemos su valor de retorno en nuestro programa.

Page 298: Visual Basic Net

Unidad 12 – Function, South Dakota Página 298 de 321

Llamar las propias funciones

Una forma de llamar una función con un valor de retorno es igualar una variable al código que llama la función. La variable debe ser del mismo tipo que el valor de retorno de la función. VariableDeTipoRetorno = NombreFunción(argumento1,argumento2, argumentoN) Llamaremos esa nueva función Multiplicadores que acaba de crear, y usaremos su valor de retorno en nuestro código. En Form1 de tu proyecto UnionFunciones agrega un botón de comando. Cambia la propiedad Texto del Button1 a “Multiplicar.” Agrega el siguiente código 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 botón “Multiplicar.” Un cuadro de mensaje muestra el producto de 34x57, que es 1938. ¿Cómo trabaja este código? El evento clic en botón declara una variable Integer llamada Producto. El código llama la función Multiplicadores y le pasa los argumentos 34 y 57. La función 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 más elegante ahora que tenemos esta gran función Multiplicadores que escribiste. Agrega un segundo botón de comando a Form1 de tu proyecto UnionFunciones. Cambia la propiedad Texto del Button2 a “MultiplicarOtraVez.” Agrega el siguiente código al evento clic del Button2:

Dim Producto As Integer Producto = Multiplicadores(Multiplicadores(2, 3), Multiplicadores(5, 7)) MessageBox.Show(Producto)

Page 299: Visual Basic Net

Unidad 12 – Function, South Dakota Página 299 de 321

Crea e inicia tu proyecto. Haz clic en el botón “MultiplicarOtraVez”. Aparece el número 210. Aquí llamamos tres veces la función 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 cómo puedes llamar a una función (aunque sea la misma) para formar otra función?

Las variables que se declaran en una función usando la instrucción Dim son variables locales. Sólo son accesibles cuando se está ejecutando el código en la función. Después que termina la función, las variables locales ya no son accesibles.

Page 300: Visual Basic Net

Unidad 12 – Function, South Dakota Página 300 de 321

12 Ejercicio 01 Conversión canadiense Confundo la izquierda y la derecha. Uno de estos días daré vuelta a la izquierda debiendo darla a la derecha y terminaremos en Canadá. Por si acaso, vamos a escribir un programa de conversión para pasar de unidades estadounidenses a canadienses, o viceversa. Usa el código y el formato que se encuentran en la plantilla 12_proveit01_template. El formato se ve como éste:

Cuando se hace clic en el botón Convertir a canadiense, se convierte de izquierda a derecha. Cuando se hace clic en el botón Convertir a EUA, se convierte de derecha a izquierda. Usa los siguientes factores de conversión: 1 milla = 0.621 kilómetros 1 galón = 3.79 litros 1 dólar americano = 1.27 dólares canadienses Has estado estudiando funciones y subrutinas autodefinidas. En este programa DEBERÁS usar funciones, de lo contrario no se te acreditará nada. Lo hicimos fácil para que no falles. Hemos escrito ya una de las 6 funciones; debes escribir las otras 5. Hemos suministrado todo el código para los dos botones. Cuando tu programa funcione bien, enséñaselo a tu instructor.

Recomendación para el profesor Este programa se puede escribir sin usar funciones; no lo permita. Compruebe el código que usen realmente los alumnos. Recuérdeles que se examina lo que han aprendido y no sólo el resultado que obtienen.

Conversión 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 necesitarás.

Page 301: Visual Basic Net

Unidad 12 – Function, South Dakota Página 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 están disponibles para todos los lenguajes .NET. Siempre que sea posible, debes usar una subrutina o función incorporada, y no escribir las tuyas propias. Eso no sólo ahorra tiempo, sino normaliza su código y facilita su comprensión. Además, hay algunas subrutinas y funciones incorporadas que no podrías escribir por sí mismo. En muchas de ellas se entra al ambiente .NET subyacente y a clases Windows API (interfaz de programación de aplicaciones. ¡No querrás entrar ahí! Te mostraré algunas de las subrutinas y funciones más usadas que están incorporadas en el ambiente .NET y que se pueda llegar a ellas con Visual Basic.NET. Notarás que algunas de ellas parecerán familiares, porque se usaron ya en los Ejercicio anteriores. Te proporcionamos su código sin explicarlas, así que esta es la explicación.

Page 302: Visual Basic Net

Unidad 12 – Function, South Dakota Página 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 más grandes y cambiar texto a mayúsculas o minúsculas. La mayor parte de ellas se pueden demostrar fácilmente 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 función 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(arg umento1, argumento2, argumentoN)

Una función útil es Length. Devuelve la longitud de la cadena como número 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 minúsculos o todos mayúsculos. Examina los siguientes ejemplos: MiTexto = "TextBox1" MisMays = MiTexto.ToUpper devuelve "TEXTBOX1" MiTexto = "TextBox1" MisMinus = MiTexto.ToLower 'devuelve "textbox1"

Page 303: Visual Basic Net

Unidad 12 – Function, South Dakota Página 303 de 321

A veces se quiere estar seguro que una cadena de texto no tenga espacios antes o después. Esto es, se quieres quitar todos los espacios vacíos antes y después de la cadena de texto. Usa la función Trim para hacerlo, como se ve a continuación: MiTexto = " TextBox1" miLimp = MiTexto.Trim 'devuelve "TextBox1" MiTexto = " TextBox1 " MiLimp = MiTexto.Trim 'devuelve "TextBox1"

Otra función útil es la función Substring, la cual devuelve una parte de una cadena que estaba en una cadena más larga. Cuando llamas la función Substring, le pasas dos argumentos Integer. El primer argumento es la posición inicial y el segundo la longitud de la subcadena. Observa que la primera letra en la cadena está en la posición 0 (no en 1) y que la segunda letra de la cadena está en la posición 1 (no en 2). MiTexto = "TextBox1" MiSub = MiTexto.Substring(0, 4) 'devuelve "Text", inicia en la posición 0 con longitud=4 MiTexto = "TextBox1" MiSub = MiTexto.Substring(1, 2) 'devuelve "ex", inicia en la posición 1, con longitud=2

La función Substring toma dos argumentos enteros y devuelve una cadena de texto. El primer argumento es la posición inicial de la búsqueda y el segundo la longitud de la cadena que se va a devolver. Recuerda que la primera letra está en la posición 0 (no en 1) y la segunda en la posición 1 (no en 2).

Sabías 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!

Page 304: Visual Basic Net

Unidad 12 – Function, South Dakota Página 304 de 321

Sé que te mueres por ver estas funciones de cadena en acción, así que hagamos una pequeña aplicación que demuestre cómo funcionan. Inicia una nueva aplicación llamada IncorPorada. Agrega dos cuadros de texto a form1. Pon en vacío 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 botón de comando a Form1. Agrega el siguiente código 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 aplicación. Haz clic en Button1. El Textbox2 muestra los resultados obtenidos con cada función 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.

Recomendación para el profesor El código de arriba tendrá más sentido si el alumno lo pone en un programa y recorre línea por línea usando las herramientas de depuración.

Page 305: Visual Basic Net

Unidad 12 – Function, South Dakota Página 305 de 321

Generador de números aleatorios Muchos programas necesitan generar números 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 números aleatorios. Ahora te pido que escribas algún código que simule el lanzamiento de un dado de seis caras. En Form1 de tu proyecto IncorPorado agrega un botón de comando. Cambia la propiedad Texto del Button2 a “TiraLos”. Agrega el siguiente código 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 aplicación. Haz clic en el botón “TiraLos”. Un cuadro de mensaje muestra un número aleatorio entre 1 y 6. Haz clic de nuevo en el botón. Se muestra otro número aleatorio entre 1 y 6. ¿Cómo trabaja este código? Primero declaramos una variable de nombre miGeneradorAleat, de tipo System.Random. Después 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 número aleatorio entre 1 y 6, llamamos la función Next() de miGeneradorAleat. Cuando llamamos la función Next() pasamos los argumentos 1 y 6, que son los límites inferior y superior de los números aleatorios que deseamos generar. La función Next() devuelve un entero aleatorio entre 1 y 6, que se asigna a la variable miEnteroAleat. La última línea de código muestra el número aleatorio en un cuadro de mensaje.

Page 306: Visual Basic Net

Unidad 12 – Function, South Dakota Página 306 de 321

Funciones de conversión

Visual Basc.NET tiene dos funciones de conversión que pueden ser útiles cuando se trabaja con números; son la función Val y la función Int. Veamos primero la función Val. Ésta se usa para convertir una cadena en un número. Si la cadena contiene un punto decimal, Val devuelve un número de tipo Double. Si la cadena no contiene un punto decimal, Val devuelve un número del tipo entero. Con frecuencia se usa Val para convertir la propiedad Texto de un cuadro de texto en un número que se pueda usar en cálculos. Veamos algunos ejemplos que usan la función Val: Dim MiInt As Integer MiInt = Val("123") + 123 'decuelve 246 Dim MiDoble As Double MiDoble = Val("123.22") + 123 'devuelve 246.22

La función Int devuelve la parte entera de un número, esto es, la que está a la izquierda del punto decimal. Ve estos ejemplos de la función Int, para ver cómo trabaja: Dim MiEnt As Integer MiEnt = Int(123) 'devuelve 123 MiEnt = Int(123.45) 'devuelve 123

Page 307: Visual Basic Net

Unidad 12 – Function, South Dakota Página 307 de 321

Subrutinas y funciones en J# y en C#

Puedes crear tus propias funciones también 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#; sólo 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 función. Veamos el código para declarar una función 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; }

Fíjate que no usamos la palabra reservada Function como lo hicimos en Visual Basic.NET. Las palabras reservadas “private” y “static” indican que esta función sólo se puede llamar desde el código en Form1. La palabra reservada “int” (después 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 función están entre paréntesis después del nombre de la función, Sumadoras_C. Ambos argumentos sumaUno y sumaDos son del tipo int. También nota la palabra reservada “return”. Indica el valor que debe devolver la función (en este caso intSuma). Podemos llamar a la función Sumadoras_C con el siguiente programa en C#, que se parece a la forma en que llamamos a una función en Visual Basic.NET:

int laSuma=0; laSuma = Sumadoras_C(3,4); MessageBox.Show(System.Convert.ToString(laSuma));

Page 308: Visual Basic Net

Unidad 12 – Function, South Dakota Página 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 Código. Estoy seguro que fue divertido. A Nikki y a mí de veras nos gustó mostrarte cómo escribir código en Visual Basic.NET y Cliff y Len aprovecharon la oportunidad de mostrar lo que saben de J# y C#. Ahora podrás determinar algunas de las semejanzas y diferencias entre todos estos lenguajes. En el camino a nuestro destino te enseñamos cómo escribir y llamar a tus propias subrutinas y funciones, y usar algunas que ya están 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 código dentro de la subrutina o la función. 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 después. 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í?

Page 309: Visual Basic Net

Unidad 12 – Function, South Dakota Página 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 haría. Usa el código y la forma que se encuentran en la plantilla 12_proveit02_template. El formato se ve como sigue:

Cuando se hace clic en el botón Buscar respuesta, usa el método SubString para contar cada letra que sea vocal (A, E, I, O, U) en la pregunta. Recuerda que cuenta el tamaño: “a” y “A” son distintas. Comprueba que se haya tecleado una pregunta. También recuerda los bucles. Recuerda que el método Length devuelve la cantidad de caracteres de una cadena. Los caracteres se numeran comenzando en cero, así que si hay 10 caracteres, están en las posiciones 0 a 9. Recuerda que en Visual Basic.NET, todo lo que use un número puede usar también una variable. Con base en la cantidad de vocales, genera una respuesta a la pregunta. Usa tu imaginación para crear las respuestas. “Sí” y “No” se valen, pero son aburridos. Debes tener cuando menos cinco respuestas diferentes. Se permiten más. Una vez que tu programa funcione bien, muéstraselo a tu instructor.

Adivino Este es un programa para contestar preguntas como lo haría un adivino. El archivo 12_proveit02_files contiene instrucciones para este ejercicio, y los archivos de soporte que necesitarás.

Page 310: Visual Basic Net

Unidad 12 – Function, South Dakota Página 310 de 321

Un miembro del comité del rally ya viene con un cheque ¡por un millón de dólares! No, más bien parece que es el último reto.

12 Reto El gato y el ratón Es el turno del reto final. El juego del gato y del ratón es bastante más difícil que los retos anteriores. Como llegaste hasta aquí, sabemos que puedes escribir este programa, donde un gato caza a un ratón. Usa la plantilla 12_challenge_template, que tiene una forma como esta:

Supón que la pantalla tiene 600 pixeles de ancho y 300 de alto. Mueve al gato y al ratón en caminos aleatorios cambiando el lugar de los cuadros de imagen que tienen las imágenes del gato y del ratón, sumando un número positivo o negativo a las coordenadas actuales X y Y. Hay un evento Cronómetro que se ejecuta cada ¼ de segundo. Dentro de este evento mueve al gato y al ratón. No lo puedes hacer en forma directa. Para mover un cuadro de imagen debes calcular una coordenada (un número) X y una Y, y luego usar esta línea de código: Mouse.Location = New Point(X, Y)

Recomendación para el profesor Como era de esperarse, este examen es más difícil que cualquier otro en este curso. El alumno no debe tratar de hacer de una vez todo el programa sino sólo una parte, como por ejemplo, mover al ratón. Después debe detener al ratón en un borde, y así sucesivamente.

Ratón Vas a escribir un programa donde un gato persigue a un ratón. El archivo 12_challenge_files contiene instrucciones para este examen, y los archivos de soporte que necesitas.

Page 311: Visual Basic Net

Unidad 12 – Function, South Dakota Página 311 de 321

Después de mover al gato y al ratón, ve si: • el ratón escapó; • el gato atrapó al ratón; • el ratón debe cambiar de dirección, porque está cerca del gato; • el gato o el ratón están cerca del borde de la pantalla. El gato es un cuadro de imagen llamado Cat, y no el PictureBox1. El ratón está en un cuadro de imagen llamado Mouse, y no en el PictureBox2. Si el gato está a menos de 20 pixeles del ratón, medidos desde la esquina superior derecha del cuadro de imagen, quiere decir que atrapó al ratón. Si el ratón está a menos de 20 pixeles de algún cuadro de texto negro, medidos desde la esquina superior izquierda del cuadro de texto, el ratón escapa. En cualquiera de estos casos detén el reloj. Si el ratón está a menos de 40 pixeles del gato, el ratón cambia de dirección. El agujero uno está en (50, 150), el agujero dos está en (530, 150). Hay varias cosas en la plantilla que te ayudarán a escribir este programa. La función 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 función NewChg devuelve un número aleatorio que puede ser positivo o negativo. Representa la cantidad (distancia) que deben moverse el ratón o el gato en cada turno. Por ejemplo, CatXChg = NewChg() En el código de evento clic en el botón Nuevo juego asigna un lugar aleatorio inicial para el gato y el ratón. Asigna a cada uno un incremento X y uno Y. Pon en marcha el reloj.

Page 312: Visual Basic Net

Unidad 12 – Function, South Dakota Página 312 de 321

Recomendación: muchos programadores prefieren escribir un pedazo de código y probarlo, escribir un pedazo más y probar de nuevo. Debes escribir este programa como sigue: • Poner el gato y el ratón. • Mover el gato. • Ver los límites del gato. • Mover el ratón. • Ver los límites del ratón. • Ver si escapó el ratón. • Ver si el gato atrapó al ratón. • Ver si el ratón se acerca al gato. Después de cada paso, prueba tu código. Una vez que tu programa funcione bien, muéstraselo a tu instructor. Extensión / desviación Registra en qué dirección se dirige la imagen. Invierta la dirección si el gato o el ratón cambia de dirección. Usa lo siguiente, o algo parecido: Cat.Image.RotateFlip(RotateFlipType.Rotate180FlipX)

Imagina en qué dirección se mueve el ratón, y entonces cambie los incrementos del gato para hacer que el gato vaya en dirección del ratón. Por ejemplo, si el gato tiene una coordenada X de 450 y el ratón está en 250, el gato debe moverse en una dirección negativa. Agrega un perro que persiga al gato.

Page 313: Visual Basic Net

Unidad 12 – Function, South Dakota Página 313 de 321

Valores incompatibles de datos Información que pasa a la subrutina para que la use. El conteo de la cantidad de instrucciones de código.

NombreSubrutina() ExecuteNombreSubrutina() Go to NombreSubrutina()

¿Qué es un argumento de una subrutina? ¿Cómo se hace para que se ejecute una subrutina?

¿Cómo se seleccionan las letras “BC” de la cadena =”ABCD”?

¿Cómo se convierte la cadena de una variable X tipo cadena, en un número?

Page 314: Visual Basic Net

Unidad 12 – Function, South Dakota Página 314 de 321

¡Caramba! Estos tipos sí que conocen su código. Estoy seguro que con su ayuda aprendiste mucho de Visual Studio.Net en este viaje. Y recuerda: ¡REGLAS DE CÓDIGO! Hasta la próxima....

Page 315: Visual Basic Net

Reglas del Código Control de Tareas de Alumnos

Página 315 de 321

No. de tarea Titulo de la tarea Descripción

Fecha compromiso

Terminado

01 Ejercicio 01

Computación cotidiana Mencionar por lo menos cuatro ejemplos que demuestran que las computadoras forman parte de la vida cotidiana.

01 Ejercicio 02

Trabajos de informática El uso de Internet o de otros recursos determina el salario inicial de los profesionistas de la tecnología de la información 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 rápida Desplegar imágenes de comida rápida.

03 Ejercicio 01 Empacar para el viaje Escribir un seudo código para describir los pasos requeridos para empacar para tu viaje.

03 Ejercicio 02 Lavar los trastes Escribir un seudo código para describir los pasos requeridos para lavar los trastes

03 Reto

Pecera Contar el número de peces de cada color, luego calcular que porcentaje representa cada uno.

04 Ejercicio 01

Quién es quién Crear un formato y ajustar las propiedades del objeto colocado en el formato usando la ventana. Propiedades para que puedas aprender más acerca de tus compañeros 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 código.

05 Reto Flores Ocultar y mostrar imágenes de flores usando el código.

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 316: Visual Basic Net

Reglas del Código Control de Tareas de Alumnos

Página 316 de 321

No. de tarea Titulo de la tarea Descripción 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 depuración 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

Programación de una encuesta de aptitudes Escribir un programa de encuesta para ayudar a otros estudiantes a decidir si deben tomar un curso de programación.

08 Reto Zap Escribir un juego de Arcade donde se trate de hacer clic sobre un objetivo móvil.

09 Ejercicio 01 Puntuaciones de golf Calcular las puntuaciones de cuatro jugadores de golf.

09 Ejercicio 02 Cuadrado mágico Juego del cuadrado mágico. Construir un cuadro mágico de 3 x 3.

09 Reto Lanzar la moneda Dejar que la computadora lance una moneda varias veces.

10 Ejercicio 01 Contar conejos ¿Cuánto podría crecer la población de conejos si vivieran para siempre?

10 Ejercicio 02 Números primos Calcular números 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 idénticos 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 número de vocales en la pregunta, generar una respuesta aleatoria.

12 Reto El gato y el ratón El gato persigue al ratón hasta que lo atrapa o el ratón escapa.

Page 317: Visual Basic Net

Reglas del Código Control de Tareas de Alumnos

Página 317 de 321

Seguimiento de tareas del alumno del curso Reglas del Código No. de tarea Titulo de la tarea Fecha

compromiso Terminado

01 Ejercicio 01 Computación cotidiana 01 Ejercicio 02 Trabajos de informática 01 Reto Nada 02 Ejercicio 01 Hola, mundo 02 Ejercicio 02 Mi nombre es 02 Reto Comida rápida 03 Ejercicio 01 Empacar para el viaje 03 Ejercicio 02 Lavar los platos 03 Reto Pecera 04 Ejercicio 01 Quién es quién 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

programación 08 Reto Zap 09 Ejercicio 01 Marcadores de golf 09 Ejercicio 02 Cuadrado mágico 09 Reto Lanzar la moneda 10 Ejercicio 01 Contar conejos 10 Ejercicio 02 Números primos 10 Reto Roth IRA 11 Ejercicio 01 Tiro en blanco 11 Ejercicio 02 En seguida 11 Reto Calculadora del promedio de

calificaciones

Page 318: Visual Basic Net

Reglas del Código Control de Tareas de Alumnos

Página 318 de 321

12 Ejercicio 01 Conversión a canadiense 12 Ejercicio 02 Adivino 12 Reto El gato y el ratón

Page 319: Visual Basic Net

Reglas del Código Control de Tareas de Alumnos

319

Reglas del Código “Introducción a la programación con Visual Studio.NET” Nombre de la tarea Descripción Habilidades requeridas 01 Ejercicio 01 Computación 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 informática

El uso de Internet o de otros recursos determina el salario inicial de los profesionistas de la tecnología de la información 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 rápida Desplegar imágenes de comida rápida.

Añadir botones a un formato. Se da el código.

03 Ejercicio 01 Empacar para el viaje

Escribir un seudo código para describir los pasos requeridos para empacar para tu viaje.

Procesador Word. Pensamiento lógico.

03 Ejercicio 02 Lavar los trastes

Escribir un seudo código para describir los pasos requeridos para lavar los trastes

Procesador Word. Pensamiento lógico.

03 Reto Pecera

Contar el número de peces de cada color, luego calcular que porcentaje representa cada uno.

Estudiar código de programa. Identificar comentarios. Comparar con el pseudocódigo.

04 Ejercicio 01 Quién es quién

Crear un formato y ajustar las propiedades del objeto colocado en el formato usando la ventana. Propiedades para que puedas aprender más acerca de tus compañeros de viaje.

Colocar objetos en un formato usando Visual Studio. Ajustar propiedades de objeto. Se incluye el código.

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 código.

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 código.

Page 320: Visual Basic Net

Reglas del Código 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 código.

05 Ejercicio 02 Medidor de viaje

Ajustar un control de desplazamiento usando el código.

Ajustar propiedades de objeto. Se incluye la mayor parte del código.

05 Reto Flores Ocultar y mostrar imágenes de flores usando el código.

Ajustar propiedades de objeto. Se incluye la mayor parte del código.

Nombre de la tarea Descripción 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 código.

07 Ejercicio 01 Costo de la gasolina Calcular el costo de la gasolina.

Usar instrucciones de asignación y operadores aritméticos.

07 Ejercicio 02 Depurar un programa

Usar herramientas de depuración de Visual Studio.NET.

Depurar un programa usando herramientas Visual Studio .Net. Se incluye el código.

07 Reto Calculadora de volumen Calcular el volumen de un cubo y de una esfera.

Usar instrucciones de asignación y operadores aritméticos.

08 Ejercicio 01 Ideas de regalos

Sugerir ideas de regalo para los vendedores.

Usar instrucciones condicionales simples.

08 Ejercicio 02

Programación de una encuesta de aptitudes

Escribir un programa de encuesta para ayudar a otros alumnos a decidir si deben tomar un curso de programación.

Usar instrucciones condicionales simples.

08 Reto Zap Escribir un juego de Arcade donde se trate de hacer clic sobre un objetivo móvil.

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 aritméticos.

Page 321: Visual Basic Net

Reglas del Código Control de Tareas de Alumnos

321

09 Ejercicio 02 Cuadrado mágico

Juego del cuadrado mágico. Construir un cuadro mágico de 3 x 3.

Usar instrucciones condicionales complejas y operadores aritméticos.

09 Reto Lanzar la moneda Dejar que la computadora lance una moneda varias veces.

Usar instrucciones condicionales complejas y operadores aritméticos.

10 Ejercicio 01 Contar conejos

¿Cuánto podría crecer la población de conejos si vivieran para siempre?

Bucles For … Next. Instrucciones condicionales.

10 Ejercicio 02 Números primos Calcular números 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 idénticos consecutivos.

Bucles indefinidos Do … Until.

Nombre de la tarea Descripción habilidades requeridas

11 Reto Calculadora GPA Calcular un promedio de calificaciones.

Bucles indefinidos Do … Until. Operadores aritméticos.

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 número 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 ratón El gato persigue al ratón hasta que lo atrapa o el ratón escapa.

Usar habilidades de todas las secciones del curso.