Sie sind auf Seite 1von 119

Curso .

NET 2005

Primera Parte

Universidad Nacional de Ingeniera


Facultad de Electrotecnia y Computacin Curso de Studio .NET 2005

Introduccin a Studio .NET 2005:

Estudio de la Plataforma Studio .NET 2005. Aplicaciones Windows Vs Web en Studio .Net 2005.

Prof. Giovanni Francisco Senz Araica.

Ing. Giovanni Senz

Curso .NET 2005

Primera Parte

Tabla de Contenido
Tabla de Contenido____________________________________________________________ 2 I.- Definicin de la Plataforma .NET _____________________________________________ 5
1.1.- Componentes de la Plataforma:__________________________________________________ 5 1.2.- Capas principales de la plataforma .NET__________________________________________ 7 1.- Capa de lenguajes: ______________________________________________________________ 7 2.- .NET Framework (Infraestructura y servicios): ______________________________________ 7 3.- Capa de servicios (Services): ______________________________________________________ 7 4.- Biblioteca de clases base (BCL/Base Class Library): __________________________________ 8 5.- Motor comn de ejecucin (CLR/Common Language Runtime): _______________________ 8 6.- Soporte operativo: ______________________________________________________________ 8 1.3.- Capa de lenguaje de .NET _____________________________________________________ 10

1.4.- Visual Basic 2005 ________________________________________________________ 11


1.4.1.- Versiones de Visual Basic .Net ________________________________________________ 12 1.5.- Requerimientos Mnimos para Visual Studio .Net 2005 _____________________________ 13

II.- Variables y Frmulas de Visual Basic y .Net FrameWork_________________________ 14


2.1.- Notas de Actualizacin ________________________________________________________ 14 2.1.1.- Migracin del Cdigo de Visual Basic 6 a Visual Basic 2005________________________ 14 2.1.2.- Utilice Variables para Almacenar Informacin __________________________________ 16 Tipos de Datos Especficos _________________________________________________________ 17 2.3.- Constantes __________________________________________________________________ 19 2.4.- Operadores de Visual Basic ____________________________________________________ 20 2.4.1.- Visual Basic incluye los siguientes operadores:___________________________________ 20 2.4.2.- Visual Basic incluye los siguientes operadores relacionales: ________________________ 21 2.4.3.- Visual Basic incluye los siguientes operadores lgicos: ____________________________ 21

III.- Sentencias de Control de Visual Basic .Net____________________________________ 22


Objetivos didcticos: ______________________________________________________________ 22 3.1.- Ciclo For en Visual Basic .Net 2005______________________________________________ 22 3.1.1.- Reglas para definir el Ciclo For _______________________________________________ 23 3.1.2.- Programa Nmero 1 ________________________________________________________ 23 3.1.3.- Anlisis del Algoritmo a Desarrollar ___________________________________________ 24 3.1.4.- Ahora Procedemos con el Programa en Visual Basic .Net __________________________ 25 3.2.- Uso de la Sentencia de Control Do - While ________________________________________ 35 3.3.- Uso de la Sentencia de Control Do Loop While __________________________________ 37
Ing. Giovanni Senz 2

Curso .NET 2005

Primera Parte

3.3.1.- Tareas para las sentencias de Control Cclicas ___________________________________ 40 3.4.- Sentencia de Control con IfEndIf _____________________________________________ 41 3.4.1.- Para el caso del Ejemplo de implementacin de If - Else ___________________________ 42 3.4.2.- Ahora Mezclando un Ciclo con la sentencia Condicional If_________________________ 45 3.5.- Sentencia de Control Select Case.End Select ____________________________________ 50 4.- Funciones de Conversin________________________________________________________ 51 4.1.- Funciones de Manejo de cadenas________________________________________________ 52 4.2.- Otras Funciones tiles Diversas variables integradas _____________________________ 54

5.- Arreglos en Visual Basic.Net ________________________________________________ 54


Objetivos didcticos: ______________________________________________________________ 54 5.1.- Definicin: Un arreglo es una serie de elementos de datos ___________________________ 55 5.2.- Declare un Arreglo de tamao fijo ______________________________________________ 55 5.3.- Ejemplos de Declaraciones de Arreglos __________________________________________ 56 a.- Arreglos de una Dimensin ______________________________________________________ 56 b.- Arreglos de Multidimensiones ___________________________________________________ 57 Cmo utilizar arreglos multidimensionales ___________________________________________ 57 5.4.- Consideraciones al Momento de trabajar con los Arreglos __________________________ 58

6.- Trabajando con Funciones, Procedimientos y Mdulos ___________________________ 83


6.3.- Procedimientos de evento en comparacin con procedimientos generales ______________ 85 6.4.- Funciones (Function) _________________________________________________________ 86 6.5.- Declare una Funcin de mbito Privado__________________________________________ 89 6.6.- Procedimiento Sub ___________________________________________________________ 90 6.7.- Declare un Procedimiento Privado ______________________________________________ 92 6.8.- Argumentos por Referencias y por Valor_________________________________________ 93

7.- Trabajando Con Clases y Objetos en Visual Basic .Net 2005 ______________________ 110 Tareas:____________________________________________________________________ 118 Bibliografa ________________________________________________________________ 119

Ing. Giovanni Senz

Curso .NET 2005

Primera Parte

Objetivos de Todo el Curso


1.- Estudiar la plataforma existente en Visual Basic .Net 2005, la cual separa las diversas lneas de desarrollo existentes. 2.- Mostrar los pasos que se deben de seguir para la programacin de instrucciones y Sentencias en Visual Basic .Net 2005. 3.- Establecer la diferencias entre los diversos tipos de compiladores, as como las reglas que se deben seguir para la correcta programacin en Visual Basic .Net 2005. 4.- Por medio de ejemplos puntuales desarrollar la agilidad de la programacin en un lenguaje de ltima generacin.

Ing. Giovanni Senz

Curso .NET 2005

Primera Parte

I.- Definicin de la Plataforma .NET


Objetivos de esta Unidad
1) Estudiar la filosofa de la plataforma .NET 2005, tanto desde el punto de vista de reglas, as como manejo de los conceptos que se ofrecen en la plataforma o FrameWork (Infraestructura y Servicios) tanto para Windows Forms y Web Forms. 2) Identificar los componentes que se establecen en la plataforma para el desarrollo de las aplicaciones segn las reglas que se establecen en cada capa y que son parte de la tecnologa .NET para cualquier aplicacin en Studio .NET 2005. 3) Anlisis de las capas y sus componentes para definir lo que se requiere para tanto aplicaciones de tipo Windows Forms y lo que se requiere para Web Forms (existen libreras en Comn, pero no el desarrollo y la ejecucin). 4) Analizar los requerimientos mnimos que define la plata .NET 2005 para el desarrollo y manejo preciso de esas aplicaciones.

1.1.- Componentes de la Plataforma:


La plataforma .NET es un componente de los sistemas operativos Windows, que permite: El desarrollo. La liberacin. La ejecucin de aplicaciones. La plataforma posee un conjunto de herramientas de desarrollo y lenguajes de programacin: De propsito general Orientado a Objetos (de tercera generacin) Lenguajes de alto Nivel Lenguajes de Cdigo Intermedio. Todos los lenguajes nos permiten utilizar los recursos disponibles en la computadora a travs de una librera de clases comn, con la que se pueden desarrollar: Aplicaciones de Consola. Aplicaciones basadas en Windows. Aplicaciones para la WEB. Cada lnea que se decida desarrollar, utiliza protocolos (reglas) abiertos para la interaccin entre los elementos que las componen.
Ing. Giovanni Senz 5

Curso .NET 2005

Primera Parte

.NET no es slo un conjunto de lenguajes o un producto de Microsoft metido en una caja, es toda una plataforma de desarrollo orientado a objetos, que resuelven muchos problemas que se presentan hoy en da al desarrollar aplicaciones empresariales (realmente en el mercado Nicaragense, este es el papel que se ha orientado, el cual se puede observar en las Empresas e Instituciones adems que los incentivos que se ofrecen a la mano de obra capacitada, es muy gratificante, y abre muchas oportunidades).

En la presente tabla se muestran Problemas que elimina .NET Estos son algunos de los Inconvenientes que se eliminan con .NET son:
1.- El Infierno de la utilizacin de los DLL. 2.- Falta de interoperatibilidad con otras plataformas. 3.- Incapacidad para el manejo de esquemas orientado a objetos. 4.- Manejo deficiente de errores. 5.- Incapacidad para utilizar Internet como medio eficiente de comunicacin. 6.- Desaprovechamiento de la experiencia ganada como consecuencia del manejo de otros lenguajes. 7.- Incapacidad para el desarrollo de aplicaciones que aprovechen arquitecturas de 64 bits. Tabla #1: Inconvenientes que elimino de .NET Ahora analicemos los beneficios que nos proporciona la plataforma .NET.

En la presente tabla se detallan los beneficios .NET Estos son algunos de los Inconvenientes que se eliminan con .NET son:
1.- Integracin de aplicaciones multi-lenguajes. 2.- Homologacin (Equiparar, poner en relacin de igualdad dos cosas - RAE) de las capacidades de los lenguajes. 3.- Disponibilidad de una biblioteca de clases comn para los lenguajes. 4.- Arquitectura abierta a nuevos lenguajes. 5.- Desarrollo simplificado. 6.- Implementacin simple. 7.- Mejor soporte de componentes. 8.- nter operacin con Internet. 9.- nter operacin con dispositivos mviles. 10.- Rentabilidad. 11.- Seguridad. 12.- Fcil implementacin (Copy Deployment). 13.- Permite el desarrollo de aplicaciones de 64 bits. 14.- En Nicaragua es mejor pagada la mano de obra capacitada en .NET, en comparacin con el Software Libre (e inclusive por lo menos de un 100% hasta un 3000%). Tabla #2: Beneficios de .NET Independientemente de lo que ofrece Studio .NET, los mayores retos implicados en el aprendizaje de cualquier lenguaje .NET, es entender la forma en que esta plataforma trabaja. Es
Ing. Giovanni Senz 6

Curso .NET 2005

Primera Parte

muy importante considerar y tener en cuenta, que existen mucho tecnicismos y exigencias de nivel de programacin, los cuales se acoplan a esta tecnologa que propone Microsoft, lo cual es necesario conocer en toda su dimensin (factor que ayudara a tener una visin clara del poder de procesamiento de las instrucciones de esta fabulosa herramienta de trabajo).

1.2.- Capas principales de la plataforma .NET


Las capas que componen la plataforma .NET son:

1.- Capa de lenguajes: La capa de lenguajes esta integrada por la CLS (Especificacin
comn para lenguajes, Common Language Specification) y los lenguajes de programacin compatibles con ella. La CLS es una especificacin abierta de Microsoft que los lenguajes deben cumplir para ser considerados .NET. A la fecha Microsoft ha publicado cinco lenguajes y sus compiladores, los cuales son: Visual Basic. C#. C++. Visual J#. JScript. Otros fabricantes pueden implementar sus propios lenguajes .NET siempre y cuando respeten los lineamientos CLS y proporcionen los compiladores para generar el cdigo intermedio reconocido por .NET.

2.- .NET Framework (Infraestructura y servicios): .NET Framework es la capa


compuesta por: El ncleo de servicios Recursos de .NET Los Recursos de .NET a su vez incluyen los compiladores: a.- La biblioteca de clases comn para todos los lenguajes b.- Los servicios que convierten el cdigo fuente en cdigo mquina para los diversos sistemas operativos a travs del uso de cdigo intermedio. .NET Framework se compone de los siguientes elementos: Capa de servicios, La Capa de BCL. La Capa de CLR.

3.- Capa de servicios (Services): La capa de servicios se compone de aquellos


servicios que permiten la intercomunicacin entre los programas desarrollados en un lenguaje .NET y el resto de los elementos de .NET Framework, con el fin de generar comportamientos a travs del dialogo con el sistema operativo.
Ing. Giovanni Senz 7

Curso .NET 2005

Primera Parte

Existen dos principales: a.- Windows Application Services: que dan soporte a las aplicaciones de interfaz grfica estilo Windows y a las de consola en su dialogo con .NET Framework y el sistema operativo. b.- ASP.NET Application Services: que apoya a las aplicaciones de interfaz grfica basadas en la Web, servicios Web XML y aplicaciones de cmputo mvil en su dialogo con .NET Framework y el sistema operativo, a travs del motor de servicios Web. En plataforma Microsoft este motor de servicios Web se llama Internet Information Server (IIS Esta la utilizaremos ampliamente cuando estemos trabajando con SQL Server 2005).

4.- Biblioteca de clases base (BCL/Base Class Library): La biblioteca de clases (BCL/Base Class Library) esta constituida por un conjunto de biblioteca de clase que ponen a disposicin de los programas un conjunto de funciones jerrquicamente organizadas, que podrn ser utilizadas como funciones nativas de manera no dedicada por todos los lenguajes de .NET. 5.- Motor comn de ejecucin (CLR/Common Language Runtime): El
motor comn de ejecucin (CLR/Common Language Runtime) es la plataforma comn de ejecucin de los programas desarrollados en cualquier lenguaje .NET. CLR agrupa: a.- Compiladores de lnea de comando que permiten la creacin de cdigo intermedio, libre de ambigedades, al que se conoce como ensamblado (assembly). b.- Contiene adems los compiladores JIT, Just in Time Compilers, que se encargan de generar cdigo maquina a partir de los ensamblados. c.- CLR se encarga de la gestin de errores, la administracin de recursos y el dialogo con el sistema operativo en tiempo de ejecucin. A todo lo que requiere de la intervencin de CLR para funcionar se le da el calificativo de administrado (managed).

6.- Soporte operativo: La capa de soporte operativo es la compuesta por las herramientas que se integran al sistema operativo al momento de instalar .NET Framework en un equipo. Con esta operacin, el sistema operativo se modifica para poder interpretar y ejecutar aplicaciones .NET de forma nativa. Esta capa permite que el sistema operativo responda a indicaciones de accin emitidas por CLR en tiempo de ejecucin.

Ing. Giovanni Senz

Curso .NET 2005

Primera Parte

NOTA
Microsoft ha denominado de diferentes formas a los productos y lenguajes que componen la tecnologa .NET: En la versin 1.0 de .NET Framework los lenguajes eran: Visual Basic.NET. Visual C#.NET. Managed C++. Mientras que el entorno integrado de desarrollo se conoca como Visual Studio.NET 2002. Por ser productos nuevos, exista la necesidad de diferenciarlos de las propuestas anteriores; incluso internamente en la compaa se penalizaba a quien osara referirse a Visual Basic.NET como Visual Basic 7. En la versin 1.1 de .NET Framework, los lenguajes pasaron a ser: Visual Basic.NET. Visual C#. Managed C++. Y se trabajaba con Visual Studio. NET 2003. Ahora, en la versin 2.0 de .NET Framework, las versiones anteriores de los lenguajes, resultan anacrnicas, por lo que se conocen como Visual Basic, C# y C++. Se elimina tambin el .NET en Visual Studio; el nombre de la penltima versin queda entonces como Visual Studio 2005.

Ing. Giovanni Senz

Curso .NET 2005

Primera Parte

CLS (Common Language Specification)

Visual Basic

C#

C ++

J++

JScript

Otros

.NET Framework Web Forms Web Service Windows Forms Console

Asp .Net Application Services

Windows Application Services

Biblioteca de Clases base de .NET Framework (BCL/ Base Clase Library) CLR (Common Language Runtime) CLI (Common Lenguage Infraestructure)

Sistemas Operativos Windows (2003, 2000, XP) Otros Sistemas Operativos

Figura# 1.1. Estructura de la Plataforma .NET

1.3.- Capa de lenguaje de .NET


CLS (Especificacin comn para lenguajes Common Language Specification) No siempre prestamos atencin a lo que una herramienta de desarrollo hace tras bambalinas, dado que como programadores nos concentramos en que nuestra codificacin produzca la respuesta esperada. En .NET, sin embargo, es importante conocer lo que sucede desde la codificacin hasta la intervencin del sistema operativo en la atencin de las peticiones. Para saber como funciona .NET debemos partir de un concepto denominado CLS (Especificacin comn para lenguajes, Common Language Specification). La CLS es el subconjunto de
Ing. Giovanni Senz 10

Curso .NET 2005

Primera Parte

capacidades mnimas soportadas por el motor de ejecucin de .NET (CLR). Todas las herramientas y componentes de .NET, por ejemplo, conviven y utilizan las clases de BCL, adems de ser orientadas a objetos; esto porque CLS lo determina como condicin para formar parte de la tecnologa .NET. El cumplimiento de estas reglas garantiza un comportamiento homogneo de todos los componentes y herramientas de desarrollo .NET. Todos los lenguajes .NET liberados por Microsoft cumplen con la CLS; esto convierte a Microsoft .NET en un ambiente multi-lenguaje; es decir, un entorno donde todos los lenguajes permiten hacer prcticamente lo mismo dado que cumplen con un mismo marco original de trabajo y funcionamiento (CLS).

NOTA: C# se lee C Sharp o C Gato; el signo # corresponde al de las partituras


musicales.

Cualquier desarrollador experimentado puede aventurase a desarrollar su propio lenguaje de programacin basado en .NET y proponerlo al mercado. Basta con desarrollar las herramientas necesarias para el trabajo con el lenguaje, incluyendo el compilador y el analizador el mismo. El nico requisito es que debe cumplir con todas las reglas definidas en la CLS. Capacidad multi-lenguaje de .Net: Dado que todos los lenguajes de .NET cumplen con CLS, su programacin es bastante similar.

1.4.- Visual Basic 2005


Visual Basic 2005 es una herramienta de desarrollo, diseada para crear aplicaciones que lleven a cabo trabajos tiles y que al mismo tiempo, tengan un aspecto muy agradable en diversos entornos. Utilizando Visual Basic 2005 es posible crear aplicaciones que funcionen en: a.- El Sistema Operativo Windows. b.- Aplicaciones WEB. c.- Aplicaciones para dispositivos porttiles. d.- Aplicaciones para muchos entornos y configuraciones. La ventaja ms importante de Visual Basic es que ha sido Diseado para Aumentar la productividad en el trabajo cotidiano (especialmente si necesita emplear informacin de bases de datos o crear soluciones para Internet). Sin embargo, otro interesante beneficio adicional radica (estriba) en que, una vez que se sienta cmodo en el entorno de desarrollo de Microsoft Visual Studio 2005.

Ing. Giovanni Senz

11

Curso .NET 2005

Primera Parte

1.4.1.- Versiones de Visual Basic .Net


La primera versin de Visual Basic .Net (Microsoft Visual Basic .Net 2002) llego al mercado en febrero del 2002. La segunda versin (Microsoft Visual Basic .Net 2003) estuvo disponible para el gran pblico en 2003. A finales del aos 2005, despus de un largo periodo (lapso de tiempo) de trabajos de integracin y desarrollo, Microsoft presento Visual Studio .Net 2005. La versin de este ao esta estrechamente integrada a Visual Studio 2005, la cual incluye componentes de la paquetera de programacin y los compiladores son los siguientes: 1.- Visual C#. 2.- Visual C++. 3.- Visual J++. 4.- Visual Basic. Visual Studio tiene distintas combinaciones de productos de paquetes, los cuales pueden ser: a.- Ediciones Standard. b.- Ediciones Profesionales. c.- Ediciones Team Suite. d.- Ediciones Express.

Visual Studio 2005 es semejante a la versin 2003, existen muchas mejoras y diferencias importantes, como por ejemplo la declaracin de variables, el ambiente, el entorno para las bases de datos, as como los controladores que se utilizan ahora.

Ing. Giovanni Senz

12

Curso .NET 2005

Primera Parte

1.5.- Requerimientos Mnimos para Visual Studio .Net 2005


Para trabajar con Visual Studio .Net 2005, se requiere del siguiente Hardware y Software: Tabla #3: Requerimientos de .NET Detalle de Hardware y Descripcin Software Requeridos Microsoft Windows XP Profesional Edicin con Service Pack 2 Microsoft XP Home con Service Pack 2 Microsoft Windows Server 2003 con Pack 1 Sistema Operativo Microsoft 2000 con Service Pack 4 (No hay Soporte para Windows 2000 Datacenter Server). Microsoft Visual Studio 2005 Standard Edition. Instalar el Software, Microsoft Visual Studio 2005 Profesional Edition. tipos de Versiones Procesador Pentium de 600 MHz o Compatible (se recomienda Micro Procesador Pentium de 1 GHz). 192 MB de RAM (se recomienda 256 MB o ms). Memoria Primaria Monitor de Video (resolucin de 800 X 600 o superior) con al menos 256 colores (se recomienda 1024 X 768 con color de alta Monitor densidad de 16 bits). Conexin a Internet para descargar los archivos de prctica. Se requiere de Internet Ratn Microsoft o dispositivo de seal compatible. Dispositivo Perifrico

NOTA Este Tutorial esta desarrollado para la versin de Visual Studio .Net Standard y la versin Profesional. Es posible que encuentre algunas diferencias si utiliza otras ediciones. Si emplea la versin Express quizs vea que las caractersticas varan de forma significativa.

Ing. Giovanni Senz

13

Curso .NET 2005

Primera Parte

II.- Variables y Frmulas de Visual Basic y .Net FrameWork


1) Estudiar las reglas que se definen para la utilizacin y declaracin de variables en Visual Basic de Studio .NET 2005, tanto para Windows Forms y Web Forms. 2) Analizar el mbito de las variables, as como la persistencia en los diferentes bloques de Programas en Visual Basic de Studio .NET 2005. 3) Practicar el uso y manejo de variables en el desarrollo de Programas que requieren de Lenguaje Visual Basic de Studio .NET 2005, tanto para Windows Forms y Web Forms. 4) Realizar las primeras prcticas de manejo de entrada y salida de datos en el Lenguaje Visual Basic de Studio .NET 2005. En esta parte usted aprender a usar variables y constantes para almacenar datos de manera temporal en su programa y como usar funciones InputBox y MsgBox para reunir y presentar la informacin utilizando cuadros de dilogos. Tambin descubrir como usar funciones y formular para realizar clculos, y de que manera emplear los operadores aritmticos, lgicos y relacionales para la manipulacin de operaciones en una aplicacin. Se comprender en que consiste y como utilizar las clases y mtodos que posee Microsoft .Net 2.0. FrameWork para realzar los clculos matemticos y otro tipo de labores tiles.

2.1.- Notas de Actualizacin 2.1.1.- Migracin del Cdigo de Visual Basic 6 a Visual Basic 2005
Si tienes experiencia con Microsoft Visual Basic 6, notaras varias diferencias (algunas bastantes significativas) caractersticas, las cuales son propias de Visual Basic 2005 y algunas que fueron mejoradas en versiones intermedias a estas dos, las cuales son las siguientes:

Ing. Giovanni Senz

14

Curso .NET 2005

Primera Parte

Para fomentar una buena practica de programacin y la generacin de cdigos de programacin ms limpios, en Visual Basic 2005 es necesario declarar todas las variables antes de utilizarlas. LA instruccin implcita de variables (el uso de variables sin declararlas) est permitido solo si usted utiliza la instruccin Option Explicit Off, lo cual no es recomendable.

Visual Basic 2005 ya no soporta el tipo de dato Variant. Usted deber declarar todas las variables utilizando Dim y la palabra clave As para identificar el tipo de datos que contendr.

Existen muchos nuevos tipos de datos fundamentales, y algunos de los ms antiguos ahora tienen soporte para diferentes rangos. Por ejemplo a.- Existe un tipo de datos Short de 16 bits. b.- Un Integer de 32 bits. c.- Otro Long de 64 bits. d.- El tipo Currency de visual Basic 6 ha sido reemplazado por Decimal. A partir de Microsoft Visual Studio .Net 2002, Visual Basic ofreci una instruccin de programa y una configuracin del compilador llamada Option Strict, la cual (cuando estaba habilitada) requera que las variables a agregar, comparar o combinar fueran del mismo tipo de datos. En Visual Basic 2005 esta configuracin del compilador esta desactivada de manera predeterminada, lo que significa que variables de diferentes tipos de datos pueden combinarse en ciertas circunstancias sin generar error de compilacin (Para revisar la configuracin del compilador, haga clic en el comando Opciones del Men Herramientas. Expanda la categora Proyectos y Soluciones, y hacer clic en la opcin valores predeterminados de Visual Basic). Los Diseadores de Visual Basic Studio ofrecen esa configuracin como una proteccin Profesional contra errores provocados por la falta de coincidencia entre los tipos, y puede ser una medida de seguridad til en proyectos de programacin ms grandes. Si usted habilita la Option Strict necesitara familiarizarse con funciones de conversin de tipos de datos como: a.- Cint. b.- Clong. c.- Ctype, etc. Todo esto para lograr la compatibilidad de los datos. Lo recomendable es dejar configurado Option Strict como false, ya que en algunos casos se vera que los programas no se ejecutan en orden o forma adecuada o correcta (en caso de tener Option Strict configurado como True).

Visual Basic 2005 ya no proporciona palabras claves integradas, como Abs o Cons, para las operaciones Matemticas. En su lugar se deben utilizar los mtodos de la biblioteca de clase System.Math de .Net FrameWork. La operacin de estos mtodos es similar a la de las funciones ya conocidas de Visual Basic 6, a pesar de que algunos nombres han cambiado, por ejemplo: Sqr ahora es Sqrt.
Ing. Giovanni Senz 15

Curso .NET 2005

Primera Parte

Visual Basic 2005 ofrece smbolos de acceso directo para ciertas operaciones matemticas bsicas, como suma (+), resta (-) y multiplicacin (*). Con ayuda de estos accesos directos es posible escribir una formula como X = X + 2 usando la sintaxis X += 2 (si usted a programado en Lenguaje C o en Java o C#, es exactamente las caractersticas de los operadores Monarios).

Visual Basic 2005 incluye un Objeto MessageBox, que es una alternativa para la funcin MsgBox y sirve para desplegar cuadros de mensajes. El mtodo a utilizar para este propsito es MessageBox.Show. Tabla #2.1.-: Actualizacin de Visual Studio .NET 2005.

2.1.2.- Utilice Variables para Almacenar Informacin


Las variables son ubicaciones de almacenamiento temporal para los datos, los cuales estn o que consta su programa (aplicacin). Usted puede usar una o muchas variables en su cdigo o instrucciones para la programacin de una aplicacin. Estas variables son capaces de almacenar: a) b) c) d) e) Palabras Nmeros Fechas Propiedades Valores u otros.

Adems puede guardar informacin digitalizada por el usuario en el tiempo de ejecucin, el resultado de un clculo especfico o una pieza de datos que quiera desplegar en su formulario. En pocas palabras, las variables son espacios de almacenamientos que se utilizan para guardar informacin de forma ordenada (bueno, esto depende del programador) y es utilizada para llevar rastreo de cualquier tipo de informacin. Las variables permiten asignar nombres cortos y fciles de recordar a cada pieza de datos con la que planee trabajar. Siempre la utilizacin de variables requiere una planificacin previa para el uso de estas. Antes de utilizar una variable, debe apartar memoria en la computadora para el uso de esta (en algunos lenguajes se conoce como reserva de memoria). Este procedimiento es como hacer reserva de asientos en un teatro, en un juego de baseball entre otros. Adicionalmente se requiere que la variable se declare el tipo, y entre el nombre de la variable y el tipo colocar la palabra As la cual es utilizada para determinar ese tipo de dato. Dim Letra As Char

2.2.- Declaracin de variables en Visual Basic .Net 2005


En Microsoft Visual Basic .Net 2003 y Visual Basic 2005 el programador debe declarar de forma explicita las variables antes de poderlas usar.

Ing. Giovanni Senz

16

Curso .NET 2005

Primera Parte

En el caso de Visual Basic 6 y versiones anteriores a esta, era posible la declaracin de forma implcita, es decir, no era necesario colocar la palabra Dim. Lo cual era flexible, pero de alto riesgo ya que se perda el control, ya que se poda confundir los nombres de las variables (ms comn en el caso de no dominar las tcnicas de programacin) el cual a la larga era no era fcil de poder encontrarlo. Para declarar la variable en visual Basic 2005, se debe considerar la palabra predefinida (o palabra reservada) Dim, la cual significa dimensin. La cual le indica al compilador que se esta reservando espacio en la memoria para que la utilice una variable. Posteriormente dejando un espacio en blanco y a continuacin se escribe el nombre de la variable (tiene que asegurarse, de que el nombre de la variable no sea el nombre de una palabra reservada, ya que esta dar problemas, generara error, al identificar que esta palabra ya tiene una funcin preestablecida). Nuevamente se escribe un espacio en blanco y a continuacin la palabra reservada As la cual es utilizada para definir el tipo de dato que desea definir (una vez que usted lo hace da un espacio en blanco y automticamente Visual Basic 2005 le presenta posibles tipo de datos, esto ya lo hacen las versiones anteriores, pero observe usted mismo que es lo que sucede y vea la diferencia con las otras versiones en caso de tener experiencia con versiones anteriores a la 2005).

Dim Nombre_Variable As Single En el caso de Visual Basic .Net 2005 se puede inicializar con valores, lo que antes no suceda en la versin 6, es decir que usted poda hacer lo siguiente: Dim Nombre_Variable As Single = 0

NOTA
En algunas versiones anteriores de Visual Basic no se requiere tipos de variables especficos (como String o Integer) no son requeridos; la informacin reside simplemente en un tipo de datos genrico (gran consumidor de memoria) llamado Variant, el cual poda contener datos de cualquier tamao o formato. Visual Basic 2005 (como se haba explicado anteriormente) no cuenta con soporte para este tipo de datos. La razn estriba en que, a pesar de ser prctico para los programadores novatos o principiantes de programacin, ya que su diseo hace que se haga una reserva de memoria, lo cual implicaba que se sacrificaba al hacerse la reserva de memoria, de tal forma que eso se sumaba al momento de compilar el programa, como resultado, haca ms lenta la ejecucin de la aplicacin y de hecho, se rompe con el esquema de programacin de instruccin eficientes (esto no era control de calidad de instrucciones). Pero no hay que negar, el tipo Variant permita que las variables que no fuesen declaradas o se decidiera utilizar este tipo, considerar convertirse de un tipo a otro con mucha facilidad (considerar fechas, datos numricos o caracteres, el consideraba todo eso), lo cual suele provocar resultados inesperados, pero resolva de alguna forma el no declarar un tipo de dato en una variable.

Tipos de Datos Especficos

Ing. Giovanni Senz

17

Curso .NET 2005

Primera Parte

Tabla #2.2.- Tipos de Datos de Visual Studio .NET 2005 Tipos de Tamao Rango Ejemplo de Uso Datos De -32768 hasta 32767 Dim Alumnos As Short = 707 Short 16 bits Alumnos = 707 De 0 hasta 65535 Dim Das As UShort = 570333 UShort 16 bits Das = 570333 De -2147483648 hasta Dim Pob_Nic As Integer = Integer 32 bits 2147483647 5525257 Pob_Nic = 5525257 De -9223372036854775808 Dim Pob_Mundo As Long = Long 64 bits hasta 9223372036854775807 52000000007 Pob_Mundo = 52000000007 De 0 hasta Dim Estrellas As ULong = ULong 64 bits 18446744073709551615 18200000000000000 Estrellas = 18200000000000000 -3.4028235E38 hasta Dim Precio_Perm1 As Single = Single 32 bits De punto 3.4028235E38 999.98 flotante Precio_Perm1 = 999.98 PI As Double = Double 64 bits De -1.7976931486231E308 hasta Dim punto 1.7976931486231E308 3.1415926535 flotante PI = 3.1415926535 Decimal 128 bits Valores de hasta +/- 79228 X Dim Deuda_Nic As Decimal = 1024 7600300.50 Deuda_Nic = 7600300.50 De 0 hasta 255 (No Negativos) Dim Tecla_Dig As Byte = 13 Byte 8 bits Tecla_Dig = 13 De -128 hasta 127 Dim NegVal As SByte = -20 SByte 8 bits NegVal = -20 Cualquier smbolo Unicote en el Dim UnicodeChar As Char = Char 16 bits rango de 0 a 65535 UnicodeChar = Por lo De 0 a aproximadamente 2 mil Dim Apellido As String String general millones 16 bits de caracteres Apellido = Senz 16 bits Unicote por carcter Verdadero o falso (durante las Dim Cerrar As Boolean As = Boolean 16 bits conversiones, 0 es convertido a True Falso, otros valores a Cerrar = True Verdadero) 1 de Enero de 0001, hasta 31 de Dim Pursima_Gritera As Date Date 64 bits diciembre de 9999 Pursima_Gritera = #7/12/2004# Cualquier tipo se puede Dim MiAplic As Object Object 32 bits almacenar en una variable de tipo MiAplic = CreateObject(Prog1.Application) Object El tipo de datos String es til para manejar textos en los programas, pero existen ciertos criterios que deben ser considerados, tal como los nmeros, las fechas, caracteres especiales u otros. Para
Ing. Giovanni Senz 18

Curso .NET 2005

Primera Parte

permitir y tener un manejo eficiente de todos los datos de Visual Basic .Net 2005, existen otras categoras que se pueden utilizar para las variables. Con otros tipos de datos presentan otras posibilidades, ya que el repertorio de Visual Basic .Net 2005 considera los tipos de datos de versiones como BASIC o de Visual Basic versiones anteriores (recuerde lo que se explicaba del cambio de Variant), lo que permite el procesamiento ms eficiente, y esta hecho para las computadoras que soportan 64 bits (inclusive). La tabla anterior mostraba el listado de tipos de datos de Visual Basic .Net 2005 (recuerde que usted puede crear sus propios tipos de datos, si ha trabajado en otros lenguajes de programacin o tiene experiencia en programacin sabe a lo que me refiero). Los Programadores experimentados notarn cuatro tipos de datos nuevos de Visual Basic 2005, los cuales son: 1.- Byte 2.- UShort 3.- UInteger 4.- ULong SByte permite valores de byte firmados, es decir, nmeros positivos y negativos. UShort, UInteger y ULong son de tipos sin firmar, eso significa que pueden tener nmeros negativos (sin embargo, tipos de datos sin firmar ofrecen dos veces el rango de nmeros positivos que sus contrapartes firmados, como se puede observar en la tabla anterior). Recuerde, que para la eficiencia de sus programas depender del tipo de dato que seleccione usted, es lgico que si los datos son cortos y exceden de un valor de mil, y siempre son enteros, lo recomendable es utilizar Short, por ejemplo. A partir de este momento, usted tiene el control de esas decisiones.

NOTA
El tamao de almacenamiento variable y se mide en bits. La cantidad de espacio requerido para almacenar un carcter de teclado estndar (ASCII) en la memoria es de 8 bits, lo cual equivalente a 1 Byte.

2.3.- Constantes
Las constantes son identificadores que nunca cambian su valor, pero en algunos casos, tambin son llamadas variables que no cambian de valor. Si una variable de su programa contiene un valor que nunca cambia (como , el cual representa una constante o entidad matemtica fija), podra considerar almacenarlo como una constante en lugar de una variable. Las constantes son nombres significativos que reemplazan un nmero o una cadena de texto que no cambian. Su utilidad radica en que incrementa la legibilidad del cdigo del programa, pueden reducir errores de programacin y facilitan la realizacin posteriores cambios globales. En
Ing. Giovanni Senz 19

Curso .NET 2005

Primera Parte

muchos sentidos las constantes pueden ser vistas como variables, pero es imposible modificar su valor en tiempo de ejecucin. Se declara con la palabra clave o predefinida Const, como se muestra a continuacin en el siguiente ejemplo: Const Pi As Double = 3.141592265 Const IMP As Double = 0.15 Const Salir As Integer = 0 Para conseguir que todas las constantes estn disponibles para todos formularios y mdulos de un programa (no solo para el formulario Form1), cree la constante en un mdulo de cdigo, antecedido con la palabra clave Public. Por ejemplo: Public Const Pi As Double = 3.141592265 Public Const IMP As Double = 0.15 Public Const Salir As Integer = 0

2.4.- Operadores de Visual Basic


Las formulas son instrucciones que cambian nmeros, variables, operadores y palabras claves o predefinidas para crear un Nuevo valor. El lenguaje Visual Basic contiene varios elementos diseados para su uso en frmulas. A continuacin se muestran los operadores matemticos, los smbolos utilizados para unir las partes de una formula. Con algunas excepciones, los smbolos matemticos que utilizaremos son los mismos empleados en la vida diaria, y sus operaciones son muy fciles de comprender.

2.4.1.- Visual Basic incluye los siguientes operadores:


Operadores Descripcin Suma + Resta Multiplicacin * Divisin / Divisin de enteros (nmeros enteros) \ Divisin con residuos Mod Exponenciacin (elevar a una potencia) ^ Concatenacin de cadena (combinacin) & Tabla #2.3.- Operadores Aritmticos de Visual Studio .NET 2005 Los operadores para suma, resta multiplicacin y divisin son muy directos, y pueden utilizarse en cualquier frmula donde se requiera de nmeros o variables numricas.

Ing. Giovanni Senz

20

Curso .NET 2005

Primera Parte

2.4.2.- Visual Basic incluye los siguientes operadores relacionales:


Operadores Descripcin Igual a = <> Distinto de Mayor que > Menor que < Mayor o igual que >= Menor o igual que <= Tabla #2.4.- Operadores Relacionales de Visual Studio .NET 2005

2.4.3.- Visual Basic incluye los siguientes operadores lgicos:


Descripcin Si las dos expresiones condicionales son trae, entonces el resultado es True. Si cualquiera de las expresiones condicionales Or es False, entonces el resultado es Trae. Si la expresin condicional es True, entonces el resultado es False. Si la expresin condicional es False, entonces Not el resultado es True. Si la expresin condicional es True, entonces el resultado es False. Si una y slo una de las expresiones Xor condicionales es True, el resultado es True. Si las dos son True o las dos son False, el resultado es False (Xor equivale a un Or excluyente). Tabla #2.5.- Operadores Lgicos de Visual Studio .NET 2005 En los ejercicios prcticos se estar mostrando el uso e implementacin de cada uno de los operadores. Operadores And

Ing. Giovanni Senz

21

Curso .NET 2005

Primera Parte

III.- Sentencias de Control de Visual Basic .Net


Objetivos didcticos:
1) Estudiar las reglas que se establecen para las sentencias de control que presenta Visual Basic .NET 2005, las cuales son necesarias para el diseo y desarrollo de programas o aplicaciones en la plataforma de Studio .NET. 2) Identificar el uso de las sentencias de control ms adecuado segn la implementacin que se desea desarrollar en la plataforma .NET 2005. 3) Creacin de programas utilizando Visual Basic .NET 2005 e implementando las diversas sentencias de control. 4) Trabajar en grupo de dos personas para compartir y escudriar informacin que es base para el desarrollo de los programas con sentencias de control en Visual Basic .NET 2005.

3.1.- Ciclo For en Visual Basic .Net 2005


Es utilizado cuando tenemos un intervalo, el cual es necesario recorrerlo, es decir, necesitamos desplazarnos en un Dominio o rango de valores, por ejemplo: a.- Se necesita calcular los valores existentes en la recta numrica entre el intervalo de uno al diez (nmeros enteros).

10

b.- Tambin puede utilizar cuando el usuario desea leer una cantidad X de valores, tal como leer cinco notas de programacin Orientada a Objetos o Contar la cantidad de productos vendidos en un almacn, u otros. 1 2 3 4 5

c.- Otro caso pudiese ser, cuando tenemos un inicio que no es la unidad (no es el punto inicial el nmero cero), como por ejemplo, sumar todos los nmeros que existentes entre el nmero
Ing. Giovanni Senz 22

Curso .NET 2005

Primera Parte

100 y 104, otro ejemplo, partiendo de que en Managua tenemos dos millones de personas, cuanto tiempo hace falta para que la poblacin llegue a ser de seis millones en esta ciudad. 100 101 102 103 104

Como se ha podido observar, existen otras particularidades, al controlar el ciclo existe un movimiento, el cual expresa que los valores o variables, se pueden desplazar o moverse de uno en uno, y lo cual no es una regla, ya que en muchas ocasiones probablemente nos desplacemos de dos en dos, o de tres en tres, y as sucesivamente.

3.1.1.- Reglas para definir el Ciclo For For Sub-Indice = Inicio To Valor_Tope_Ciclo Sentencia 1 Sentencia 2 Sentencia 3 Sentencia n Next 'Fin del Ciclo For {Es opcional dejar el nombre del sud-indice en el cierre del ciclo For, Next Sub-Indice}
Por Ejemplo:

For i = 1 To 20
Me.TextBox3.Text = Me.TextBox3.Text & Cont & ".- " & i & Encapsular Cont += 1 'Cont = Cont + 1 Next i 'Fin del Ciclo For

3.1.2.- Programa Nmero 1


Se requiere leer el total de venta de cinco facturas de la Farmacia Nueva Vida. En este momento solo se desea controlar el monto da cada pago (de esas cinco facturas), y la suma de la venta total (pudiese ser de la Maana o la de diez minutos). Por ejemplo:

Ing. Giovanni Senz

23

Curso .NET 2005

Primera Parte

N de Factura Monto de venta total de la Factura 1 C$ 1,500.33 2 C$ 755.56 3 C$ 134.77 4 C$ 98.99 5 C$ 905.57 Tabla #3.1.- Valores de las Facturas - Farmacia Nueva Vida.

3.1.3.- Anlisis del Algoritmo a Desarrollar


Se tiene que considerar dos preguntas al momento de iniciar con el desarrollo del programa, los cuales son dos instantes: Nota Este ejemplo es recordando lo que se hace con 1.- Qu es lo que vamos Hacer? las tcnicas bsicas de programacin. 2.- Cmo lo vamos Hacer?

I.- Para identificar lo que vamos hacer, tenemos que analizar textualmente lo que nos pide el problema, si leemos en la primera lnea podemos encontrar: 1.- Nos dicen que son cinco facturas (por este detalle podemos arrancar) y que estas deben ser controladas. 2.- Que es el total de esas facturas lo que nos da como valor de entrada. En la lnea dos y tres se expresa el detalle de las operaciones que se deben realizar: 3.- Leer las cinco facturas. 4.- Luego de haber ledo esas facturas, sumarlas y encontrar el valor total del monto de esos datos. Con lo anterior podemos observar: Lnea 1, se debe declarar una variable que almacene las cinco facturas. Lnea 2, las facturas para ser ledas, tenemos que utilizar un ciclo, para poder leer la primera, la segunda, la tercera, cuarta y quinta factura (no vale la pena utilizar una variable para cada factura, ya que si en un momento determinado no son cinco las facturas a leer, sino que se convierten en mil, entonces se vera con la necesidad de declarar mil variables, por lo tanto ese mtodo no es adecuado). Lnea 3, Confirma que debemos utilizar un ciclo. Lnea 4, que debemos sumar esas facturas para encontrar la suma total (de ellas todas las facturas). II.- Una vez detallado todo lo que tenemos que hacer, procedemos a desarrollar el Algoritmo, para fines y efectos, utilizaremos el mtodo de pseudo cdigo:
Ing. Giovanni Senz 24

Curso .NET 2005

Primera Parte

N 1

Instruccin a realizar - Algoritmo Declaramos las variables a utilizar. La variable Fact: llevara el control de las facturas, i: el sub-indice que controlara la lectura de las facturas, y suma: ser utilizada para el monto total de todas las facturas. 1.1.- Fact=0, i=1, Suma = 0

Debemos leer cada una de las facturas, como estamos utilizando Arreglos, en cuanto se lea el valor, este debe ser sumado, porque sino se perder el valor actual de la factura.

For i=1 Hasta 5 Inicio_Ciclo_For 2.1.- Imprimir Digitalizar el Valor & i & = 2.2.- Leer Fact 2.3.- suma = suma + Fact Fin_del_Ciclo_For A continuacin, procedemos a mostrar los resultados del Ciclo: 3 3.1.- Imprimir El Monto total de Venta es: & suma Fin_del_Programa 4 Tabla #3.2.- Algoritmo de Programa1.

3.1.4.- Ahora Procedemos con el Programa en Visual Basic .Net Paso UNO: Abrir Visual Basic. Net

Ing. Giovanni Senz

25

Curso .NET 2005

Primera Parte

Paso Dos: Seleccionar que desea crear una Aplicacin en Visual Studio .Net, recuerde que es Visual Basic .Net el que utilizara usted.

Debe seleccionar que desea una Aplicacin y que esta es nueva.

Paso Tres: Asegurarse que es una Aplicacin en Visual Basic .Net, y que esta debe ser una
aplicacin de Visual Basic para Windows.

Recuerde Seleccionar Visual Basic y es una Aplicacin para Windows

Ing. Giovanni Senz

26

Curso .NET 2005

Primera Parte

Paso Cuatro: a continuacin, aparecer el formulario (ahora es la Clase Superior) con sus
atributos (propiedades) y el ambiente que aparece por defecto en Visual Basic. Net.

Ventanas de Propiedades de Visual Basic. Net

Explorador de Soluciones de Visual Basic. Net

Ventanas de Propiedades de Visual Basic. Net

Paso Cinco: procedemos a definir que objetos utilizaremos para la lectura de datos en Visual Basic. Net. Como son muchas las opciones, entonces utilizaremos en un principio al estilo clsico InputBox, e iremos mostrando en pantalla y en un Textbox lo que el usuario introduzca como factura.
Inicie de forma sencilla, busque la Propiedad Text del Formulario, ah digitalice, Control de Factura de la Farmacia Nueva Vida. Nota: Ahora todos los Objetos en Visual Basic tienen la Propiedad Text (la cual muestra mensaje al usuario por parte del objeto creado), ya no se utiliza Caption, este es el nuevo estndar que se defini para Studio .Net

Ing. Giovanni Senz

27

Curso .NET 2005

Primera Parte

Paso Seis: Ahora seleccione en los


Controles Comunes del cuadro de Herramientas el objeto Paso Seis: Ahora seleccione en los Controles Comunes del cuadro de Herramientas el objeto y busque la propiedad Text y digitalizar

Paso

Siete: Ahora Agregue dos

botones, uno ser utilizado para leer y el otro para sumar las facturas. Botn para Leer datos.

Botn para analizar los datos.

Tabla #3.3.- Pasos para Crear agregar Objetos Botones y Etiquetas al Formulario Nueva Vida. Usted entonces ahora podr ver el siguiente formulario, ya diseado:

Ing. Giovanni Senz

28

Curso .NET 2005

Primera Parte

De tal forma que se podr observar el formulario como aparece arriba de este texto.

Paso Ocho: Ahora Agregue un objeto


TextBoxt botones, ser utilizado mostrar las facturas que fueron procesadas. Para tener en cuenta que el Textbox pueda guardar datos busque las propiedades:

ScrollBars: En propiedad Vertical, para que esta pueda crecer a lo alto. MultiLine: En propiedad asignar el valor de Trae (verdadero), para que esta pueda ser de mltiples lneas. Enabled: En propiedad de dejar inhabilitado el objeto, no permita que datos puedan entrar (esto es opcional para ti). Locked: En propiedad de dejar con llave Pruebe primero con Locked = True, luego el objeto, no permita que datos puedan con Locked = False. entrar (esto es opcional para ti).

Ing. Giovanni Senz

29

Curso .NET 2005

Primera Parte

Tabla #3.4.- Pasos para Crear agregar Objetos TextBox y sus propiedades para el Formulario Nueva Vida. Ahora usted vera el siguiente formulario:

Nota: Una buena recomendacin, es dejar la propiedad del ReadOnly = True en el TextBox, para este caso es correcto, no deseamos que el usuario tenga acceso a la Escritura.

Tabla #3.5.- Programacin de Eventos del Formulario Nueva Vida. Paso Nueve: Ahora hacer Click sobre el botn le aparecer el cdigo del objeto a programar, a continuacin se muestra: Originalmente se mostrara: Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Usted tendra que agregar el cdigo aqu. End Sub Siguiendo el algoritmo planteado al Inicio, entonces procedemos a agregar el cdigo al bloque (es adecuado dejar con Button1 en la propiedad name: CmdLeer): Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim i As Integer = 0 For i = 1 To 5 Fact = InputBox("Control de Factura " & i & ": ", "Digitalizar Facturas") Suma = Suma + Fact Me.TextBox1.Text = Me.TextBox1.Text & "Factura " & i & "= " & Fact & Chr(13) & Chr(10) Next ' Me.TextBox1.Text = Me.TextBox1.Text & "Factura Total= " & Suma & Chr(13) & Chr(10)
Ing. Giovanni Senz 30

Curso .NET 2005

Primera Parte

End Sub

Paso Diez: Ahora hacer Click sobre el botn Anlisis y repitiendo los mismo pasos que anteriormente:
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click MessageBox.Show("Resultado de la Facturacion" & Suma, "La suma total de las Facturas es:", MessageBoxButtons.OK, MessageBoxIcon.Information) Me.TextBox1.Text = Me.TextBox1.Text & "Factura Total= " & Suma & Chr(13) & Chr(10) End Sub

Paso Once: Ahora Agregar variables


globales al Formulario:

Public Class Form1 Fijarse donde se declaran las variables Globales. Dim Fact As Double Dim Suma As Double

Variables Globales al Formulario Variables Globales al Formulario

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click End Sub End Class

Paso Doce: ya tiene todo, corra la aplicacin.


Ing. Giovanni Senz 31

Curso .NET 2005

Primera Parte

Al hacer clic en Leer se genera la ventana de mensaje que le pide digitalizar la primera factura.

Continuacin del paso Doce.

Al final, el resultado es:

Ing. Giovanni Senz

32

Curso .NET 2005

Primera Parte

Al dar clic en Analizar:

Ha podido desarrollar la primera aplicacin de Visual Basic .NET 2005 en este curso.

Comentarios: 1.- Sobre el uso de InputBox, esta es una instruccin de Entrada de Datos, existe una especificacin puntual para esta funcin, la cual se explicar en Clases (para aquellos estudiantes que estn cursando), si no tendr que investigar por su cuenta como se definen estos parmetros.

Ing. Giovanni Senz

33

Curso .NET 2005

Primera Parte

2.- Para mostrar la salida de Datos, se utiliza MessageBox, como habiamos explicado anteriormente, esta es una nueva opcin que existe en .NET 2005, la cual es una buena opcin, pero si no se siente comodo y desea seguir utilizando lo tradicional, puede utilizar el MsgBox, este procedimiento conserva las mismas caracteristicas de las versiones anteriores (esto se explicara en el curso y tendremos varios ejemplos en este sentido).

Ing. Giovanni Senz

34

Curso .NET 2005

Primera Parte

3.2.- Uso de la Sentencia de Control Do - While


Esta es una de las sentencias ms utilizadas en Visual Basic .Net, ya que esta controla ciclos con diferentes tipos de datos numricos, tales como entero, reales, entero cortos, etc. A diferencia de For (el cual solo puede ser utilizado con centinelas de control enteros), Do while te permite recorrer ciclos de tipo Double (lo cual no es considerado en el For). Este es uno de los motivos por el cual es ms recomendado el uso de Do While por encima del For. La sentencia de Control Cclica Do While esta compuesta de la siguiente forma: a.- Una condicin Inicial, la cual sera la expresin1. b.- La palabra reservada Do While y entre parntesis la condicin de para del ciclo, esa es la expresin2. c.- El bloque de las instrucciones que estarn contenida en el ciclo, es decir que es lo que se quiere ejecutar (programacin de tareas a realizar) dentro del ciclo. Sentencia1 Sentencia2 . . . SentenciaN d.- Antes de finalizar el bloque, se coloca la Expresin3, la que a su vez nos permitir movernos en el intervalo, y adicionalmente (un paso despus ayudara) a identificar si la Expresin2 es verdadera y comparar si podremos salir del bloque (antes en lenguaje mquina se programa como etiquetas las sentencias de control cclicas, y en muchas ocasiones utilizabas una instruccin que comparaba el valor de un registro, si este vala cero, podas salir, de lo contrario continuabas dentro del ciclo). e.- Por ltimo, cerrar con la palabra Loop (Recordar que tambin Do While es identificador reservado), ah termina el ciclo. Ahora procedamos a conocer esos detalles, fjate en el siguiente bloque de programa:

Ing. Giovanni Senz

35

Curso .NET 2005

Primera Parte

i = 1

Esta es la Condicin Inicial Expresin1

Si puedes notar, si el valor de i al comprarlo en la expresin2 resulta falso, jamas entrara al Ciclo (esta es la forma de controlar el desplazamiento en el Intervalo). Adicionalmente, si estas utilizando metodos numericos (anlisis numrico, Sistemas Lineales, calculando limites o creando las instrucciones para encontrar un punto Integrales, derivadas, transformadas, etc) el ciclo While te ayuda en los pivotes (cosa que el for no lo puede hacer, ya que solo el desplazamiento es entero [como te habia explicado antes]).

Do While (i <= cant)

Esta es la Condicin de Parada Expresin2 'For i = 1 To cant Lo que sera Equivalente a FOR s1 = InputBox("Digite la Nota S1 [Estudiante" & i & "]= ", "Digite la nota del Primer Sistematico") Me.TextBox2.Text = Me.TextBox2.Text & " Est[" & i & "]=" & s1 & Chr(13) & Chr(10) s2 = InputBox("Digite la Nota S2 [Estudiante" & i & "]= ", "Digite la nota del Segundo Sistematico") Me.TextBox3.Text = Me.TextBox3.Text & " Est[" & i & "]=" & s2 & Chr(13) & Chr(10) Ex = InputBox("Digite la Nota Ex [Estudiante" & i & "]= ", "Digite la nota del Examen") Me.TextBox4.Text = Me.TextBox4.Text & " Est[" & i & "]=" & Ex & Chr(13) & Chr(10) s1 = s1 * 0.3 s2 = s2 * 0.3 Ex = Ex * 0.4 NF = s1 + s2 + Ex Me.TextBox5.Text = Me.TextBox5.Text & " Est[" & i & "]=" & NF & Chr(13) & Chr(10) Suma = NF + Suma 'Next 'Fin de la Lectura de las notas i += 1 Esta es la Condicin para movernos en el ciclo Expresin3 Loop Esta es la Palabra Reservada para el Cierre del Ciclo. Una Variante al programa anterior, el de la suma de las facturas, es hacer el ajuste en el Botn Leer, de tal forma que el cdigo se vea como este:

Ver pgina Siguiente:

Ing. Giovanni Senz

36

Curso .NET 2005

Primera Parte

Private Sub CmdLeer_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CmdLeer.Click Dim i As Integer = 0 Do While (i < 5) Fact = InputBox("Control de Factura " & i & ": ", "Digitalizar Facturas") Suma = Suma + Fact Me.TextBox1.Text = Me.TextBox1.Text & "Factura " & i & "= " & Fact & Chr(13) & Chr(10) i += 1 Loop
' Esta es la Condicin de Parada Expresin2 ' For i = 1 To 5 'Fact = InputBox("Control de Factura " & i & ": ", "Digitalizar 'Facturas") 'Suma = Suma + Fact 'Me.TextBox1.Text = Me.TextBox1.Text & "Factura " & i & "= " & 'Fact & Chr(13) & Chr(10) ' Next ' Me.TextBox1.Text = Me.TextBox1.Text & "Factura Total= " & Suma & 'Chr(13) & Chr(10)

End Sub

Ahora que ya posee la teora de como trabajar el ciclo Do While, hacer los ajustes al programa anterior (al que fue programado con While) y complalo, luego, verificar todos los detalles y recordar crrelo paso a paso, para que ver, identificar y detectar las diferencias entre el for y el do while.

A continuacin el ciclo nmero tres, el Do Loop While (equivalente al Do-While de C y Repeat de Pascal [parecido, pero no igual]).

3.3.- Uso de la Sentencia de Control Do Loop While


Tcnicamente hablando, este es el ciclo menos utilizado, ya que la expresin1 no es un medio que garantice que si el valor del centinela de control (el que se le asigna el valor que controla el ciclo es imprescindible su valor de arranque) si este es falso, no es un obstculo para que el compilador entre al ciclo e inicie a ejecutar las instrucciones. Es hasta que realizo el recorrido por el ciclo (entro por lo menos una vez realizo las instrucciones del bloque interno), que el hace la pregunta por el valor del centinela de control (o bandera de parada), entonces, por lo menos una vez las instrucciones que estn contenida dentro del ciclo Do Loop While (lo cual es malo, ya que para validaciones y verificaciones hablando de tcnicas que se requieren garantizar antes de la implementacin y basados en las metodologas de Ingeniera de Software, este ciclo no es un factor que garantice la seguridad de los datos, si queremos eficiencia).

Ing. Giovanni Senz

37

Curso .NET 2005

Primera Parte

Aunque el valor de la expresin1 no sea valido, es decir es falso, las instrucciones se ejecutan, lo cual pudiese tener un impacto negativo, ya que si esto es llevado a una base de datos o a un sistema lineal, donde exista un pivote, el cual es un valor que incrementa o disminuye, el cual puede llegarse a presentar como un valor no valido, pero este se ejecuto, entonces, lo que suceder, es que todo el ambiente se puede tornar en un solo desastres. Pero no te tiene que causar desconfianza, ya que si tiene la agilidad de poder programar, te dars cuenta, que puedes prevenir todos esos casos, y prcticamente, le puedes sacar ventaja a eso. La estructura es la siguiente: La sentencia de Control Cclica Do - Loop While esta compuesta de la siguiente forma: a.- Una condicin Inicial, la cual sera la expresin1. b.- La palabra reservada Do (el While no se escribe en esta parte del bloque), solamente esta palabra reservada. c.- El bloque de las instrucciones que estarn contenida en el ciclo, es decir que es lo que quieres hacer en el ciclo. Sentencia1 Sentencia2 . . . SentenciaN d.- Antes de finalizar el bloque, se coloca la Expresin3, la que a su vez nos permitir el desplazamiento en el intervalo, y adicionalmente (un paso despus ayudara) a identificar o saber si la Expresin2 es verdadera, y comparar si podremos salir del bloque (antes en lenguaje mquina se programaban como etiquetas las sentencias de control cclicas, y en muchas ocasiones utilizabas una instruccin que comparaban el valor de un registro, si este vala cero, podas salir, de lo contrario continuabas dentro del ciclo, por brindar un ejemplo). e.- Por ltimo, solo falta cerrar el bloque del ciclo con la palabra Loop While y entre parntesis la Expresion2 (Recuerda que tambin Do While es identificador reservado), ah termina el ciclo. Si se observa con detalle, se podr entender que este es el motivo por el cual las instrucciones se ejecutan, por lo menos una vez, ya que la expresin de condicin de parada, esta al final del ciclo (este problema desaparece, si la condicin inicial es adecuada, o sea, tiene un valor de verdad e ah el meollo del asunto, resuelvan ese problema y todo saldr bien). Es muy utilizado el Do Loop While para presentar una ventana, donde siempre exista una ejecucin inicial independiente de su valor, esa es la ventana de acceso a las aplicaciones que Requieren una palabra de acceso (Password), todo es buscar el sentido, e implementacin de las Instrucciones.
Ing. Giovanni Senz 38

Curso .NET 2005

Primera Parte

Ahora procedamos a conocer esos detalles, fjate en el siguiente bloque de programa:

i = 1

Esta es la Condicin Inicial Expresin1

A continuacin, el ejemplo de Do While, se puede notar, que si el valor de i al comprarlo en la expresin2 resulta falso, puede entrar al Ciclo (esta es la forma de controlar el desplazamiento en el Intervalo). Adicionalmente, si se esta utilizando mtodos numricos se conserva lo mismo del Do While (anlisis numrico, Sistemas Lineales, calculando lmites o creando las instrucciones para encontrar un punto Integrales, derivadas, transformadas, etc) el ciclo Loop While tambien te ayuda en los pivotes (cosa que el for no lo puede hacer [en Visual Basic], ya que solo el desplazamiento es entero [como te habia explicado antes]). Do 'For i = 1 To cant Lo que sera Equivalente a FOR s1 = InputBox("Digite la Nota S1 [Estudiante" & i & "]= ", "Digite la nota del Primer Sistematico") Me.TextBox2.Text = Me.TextBox2.Text & " Est[" & i & "]=" & s1 & Chr(13) & Chr(10) s2 = InputBox("Digite la Nota S2 [Estudiante" & i & "]= ", "Digite la nota del Segundo Sistematico") Me.TextBox3.Text = Me.TextBox3.Text & " Est[" & i & "]=" & s2 & Chr(13) & Chr(10) Ex = InputBox("Digite la Nota Ex [Estudiante" & i & "]= ", "Digite la nota del Examen") Me.TextBox4.Text = Me.TextBox4.Text & " Est[" & i & "]=" & Ex & Chr(13) & Chr(10) s1 = s1 * 0.3 s2 = s2 * 0.3 Ex = Ex * 0.4 NF = s1 + s2 + Ex Me.TextBox5.Text = Me.TextBox5.Text & " Est[" & i & "]=" & NF & Chr(13) & Chr(10) Suma = NF + Suma 'Next 'Fin de la Lectura de las notas i += 1 Esta es la Condicin para movernos en el ciclo Expresin3 Loop While (i <= cant) Esta es la Condicin de Parada Expresin2 el Cierre del Ciclo.

Ahora que ya se conoce como trabajan los ciclos, haz los ajustes al programa anterior y complalo, verifica todos los detalles y recuerda crrelo paso a paso, para que ver la diferencia entre el for, el do while y ahora el Do - Loop - While.

Ing. Giovanni Senz

39

Curso .NET 2005

Primera Parte

Private Sub CmdLeer_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CmdLeer.Click Dim i As Integer = 0 Do Fact = InputBox("Control de Factura " & i & ": ", "Digitalizar Facturas") Suma = Suma + Fact Me.TextBox1.Text = Me.TextBox1.Text & "Factura " & i & "= " & Fact & Chr(13) & Chr(10) i += 1 Loop While (i < 5) 'Do While (i < 5) ' Fact = InputBox("Control de Factura " & i & ": ", "Digitalizar Facturas") ' Suma = Suma + Fact ' Me.TextBox1.Text = Me.TextBox1.Text & "Factura " & i & "= " & Fact & ' Chr(13) & Chr(10) ' i += 1 'Loop ' Esta es la Condicin de Parada Expresin2 ' For i = 1 To 5 ' Next ' Me.TextBox1.Text = Me.TextBox1.Text & "Factura Total= " & Suma & Chr(13) & Chr(10) End Sub

3.3.1.- Tareas para las sentencias de Control Cclicas


1.- Hacer esta prctica, pero ahora permitiendo que el usuario establezca la cantidad, ustedes tiene que hacerlo con los tres ciclos. 2.- Investigar como hacer estos mismos pasos, pero ahora con arreglos (para guardar valores), procedimiento (imprimir resultados) y funciones (leer valores). 3.- Aqu se mostraron los pasos a seguir para desarrollar esta aplicacin en Windows, ahora, tu tienes que hacerlo con Web Forma. Esta misma prctica pero llevada a una pgina WEB que se pueda ver en todo el mundo. De hecho, esta es la siguiente prueba evaluada. 4.- Si se utiliza un ListBox, se pueden obtener los mismo resultados?, realice esta prctica y presente la prxima semana ese programa.

Ing. Giovanni Senz

40

Curso .NET 2005

Primera Parte

3.4.- Sentencia de Control con IfEndIf


Este tipo de sentencia es cuando tenemos condiciones o mejor dicho varias condiciones y tenemos que decidir por una de las condiciones. Est adems es utilizada cuando manejamos intervalos de control (El Valor esta en un intervalo). Presentamos a continuacin un fragmento de pseudo cdigo, el cual si es implementado adecuadamente, lo lograra: Si BalanceActual MontoCheque < 0 Entonces Mostrar Mensaje de Sobregiro Sino BalanceActual = BalanceActual montoCheque FinSi Es posible, pero confuso e innecesario, aadir las instrucciones IfEndIf. En lugar de esto, deber usar la construccin IfElseIfEndIf, o, cuando evale situaciones en las que existen varias acciones posibles, la Select Case, se presenta posteriormente. Este es el ejemplo de IfElseIfEndIf nos puede ayudar de la siguiente forma: If iValReg = vbYes Then Revisa Contra Constantes sMensaje = Ha oprimido Si! y establece el mensaje adecuado ElseIf ivalReg = vbNo Then sMensaje =Ha oprimido No! ElseIf iValReg = vbCancel Then sMensaje = Ha oprimido Cancelar! End If Este fragmento de cdigo toma una decisin basada en tres valores mutuamente excluyentes, vbYes, vbNo y vbCancel, para las variables iValReg. Algunas veces es posible condensar la construccin IfThenElse dentro de una lnea de cdigo. Esto se logra con la funcin IIf() (Sin Inmediato). Siendo la funcin. IIf() devuelve un valor que debe almacenarse en una variable. Observe lo que sigue a continuacin: ElColor = IIf(ElColor < 15, ElColor, 1) Se asegura de que no sea demasiado alto.

Esta funcin requiere de tres argumentos, la condicin por verificar, que devolver si la condicin es cierta y qu devolver si es falsa. Por lo tanto, en este ejemplo el valor de ElColor permanece igual, a menos que sea de 15 o ms, en cuyo caso se pone 1.

Ing. Giovanni Senz

41

Curso .NET 2005

Primera Parte

3.4.1.- Para el caso del Ejemplo de implementacin de If - Else


Veamos el siguiente ejemplo clsico que siempre es el pivote para explicar las sentencias de control condicionales. Este programa identifica si un nmero es positivo o negativo en base al valor que digitalice el usuario.

Paso 1:
Vamos a crear un nuevo formulario, entonces a este formulario agreguemos los siguientes detalles:

Agregar dos Label

Insertar un TextBox

Incluir dos Botones

De acuerdo como se hizo anteriormente, las propiedades para los objetos son las siguientes: Objeto Propiedad del Objeto Text Valor de la propiedad Manejo de Sentencias de Control Condicionales en Visual Basic .Net Info Desktop Digite un Valor Numerico: Control ControlText Analizar valor Salir

Label1 BackColor ForeColor Text Label2 BackColor ForeColor Boton1 Text Boton2 Text Tabla 3.6.- Control de Atributos Programa 3.
Ing. Giovanni Senz

42

Curso .NET 2005

Primera Parte

Paso2:
Ahora que ya se tiene el formulario, con todas sus propiedades, se procede a la programacin de los eventos, el cual se describe a continuacin: a.- Dar clic al Botn que tiene como Nombre Boton1, ah agregamos el siguiente cdigo: Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 'Este programa identifica si un numero es positivo o negativo en base al valor que digitalice el usuario. Dim num As Integer = 0 'Declaracin del nmero a leer 'Guardar el valor que digitalice el usuario num = (CInt(Me.TextBox1.Text)).ToString 'Preguntar por el valor que digitalizo el usuario If (num > 0) Then 'Si es mayor que cero MessageBox.Show(" El Nmero " & num & " es Positivo", "Analisis de Numeros", MessageBoxButtons.OK, MessageBoxIcon.Information) ElseIf (num < 0) Then 'Si es menor que cero MessageBox.Show(" El Nmero " & num & " es Negativo", "Analisis de Numeros", MessageBoxButtons.OK, MessageBoxIcon.Exclamation) Else 'Si es el cero MessageBox.Show(" El Nmero " & num & " es el CERO", "Analisis de Numeros", MessageBoxButtons.OK, MessageBoxIcon.Error) End If End Sub

b.- Ahora Programe el Boton2, la salida del programa: Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click End 'Fin del programa End Sub

Ing. Giovanni Senz

43

Curso .NET 2005

Primera Parte

Paso 3:
a.- Ahora que ya se lograron incluir todos los detalles, proceder con la ejecucin. Para lograr este fin, digitalizar el nmero 99, de tal forma que se pueda observar lo siguiente:

b.- Hacer Clic en el botn Analizar valor, al realizar esta operacin suceder lo siguiente:

Lo cual indicara que fue exitosa la operacin, y mostrara el resultado. c.- Lo nico que falta es digitalizar el botn de salida, el cual indicara el final de la aplicacin, realice esta actividad y habr concluido la prctica de la sentencia de control condicional.

Ing. Giovanni Senz

44

Curso .NET 2005

Primera Parte

3.4.2.- Ahora Mezclando un Ciclo con la sentencia Condicional If


Recordando el Primer problema de la Farmacia Nueva Vida, si se observa claramente, solo se leen datos, pero no existe validacin, es decir, que el usuario puede digitalizar valores negativos e inclusive una factura Nula Cero. Es aqu donde entra en juego la combinacin de sentencias de control Vs Condicionales. Para entender de forma ms clara la problemtica, en este momento se procede con la validacin, de no permitir facturas con valores negativos o nulos. Para este fin, se propone un Ciclo Do Loop While que permita por primera vez al usuario digitalizar el valor de la factura, pero luego y de forma inmediata ese valor es analizado por una sentencia If Else If, la cual validara si es cierto que el valor numrico esta en el rango permitido. Para esta accin se agrega una variable entera (usted puede utilizar otro tipo de datos, no existen restricciones, solo es la lgica la importante), la cual es el medio por el cual se obliga a estar dentro del ciclo y no permitir que, mientras el dato no sea valido (rango no permitido dentro de intervalo permitido), siga dentro, hasta que digite el valor de verdadero. Ver Algoritmo en la Siguiente Pgina:

Ing. Giovanni Senz

45

Curso .NET 2005

Primera Parte

N 1

Instruccin a realizar - Algoritmo Declaramos las variables a utilizar. La variable Fact: llevara el control de las facturas, i: el sub-indice que controlara la lectura de las facturas, y suma: ser utilizada para el monto total de todas las facturas. 1.1.- Fact=0, i=1, Suma = 0, Sal = 0;

Debemos leer cada una de las facturas, como estamos utilizando Arreglos, en cuanto se lea el valor, este debe ser sumado, porque sino se perder el valor actual de la factura. For i=1 Hasta 5 Inicio_Ciclo_For

Do 2.1.- Imprimir Digitalizar el Valor & i & = 2.2.- Leer Fact 2.3.- If Fact <= 0 Then MessageBox.Show("La Facturacion digitalizo : " & Fact, "Error en la Facturas ", MessageBoxButtons.OK, MessageBoxIcon.Error) Sal = 1 Else Sal = 0 End If Loop While (Sal = 1) 2.4.- suma = suma + Fact Fin_del_Ciclo_For A continuacin, procedemos a mostrar los resultados del Ciclo: 3.1.- Imprimir El Monto total de Venta es: & suma Fin_del_Programa 4 Tabla #3.7.- Ajuste al Algoritmo del Programa1. 3 Ahora que ha sido posible Mostrar los ajustes del Algoritmo, irse al Formulario correspondiente a la Facturacin de la Farmacia Nueva Vida, y haga el siguiente ajuste al Cdigo y Clase Principal de ese Formulario:

Ing. Giovanni Senz

46

Curso .NET 2005

Primera Parte

Private Sub Button1_Click(ByVal sender System.EventArgs) Handles Button1.Click Dim i As Integer = 0 Dim Sal As Integer = 0 Dim Cant As Short = 0 i = 1 'Condicin INICIAL - EXPRESION1

As

System.Object,

ByVal

As

Cant = InputBox("Proporcione la cantidad de Facturas: ") Do Do Fact = InputBox("Control de Factura " & i & ": ", "Digitalize Factura") If Fact <= 0 Then Sal = 1 MessageBox.Show("La Facturacin digitalizo : " & Fact, "Error en la Facturas ", MessageBoxButtons.OK, MessageBoxIcon.Error) Else Sal = 0 End If Loop While (Sal = 1) Suma = Suma + Fact Me.TextBox1.Text = Me.TextBox1.Text & "Factura " & i & "= " & Fact & Chr(13) & Chr(10) 'Condicin PARA ALTERAR EL CICLO - EXPRESION3 i += 1 'i = i + 1 Loop While (i <= Cant) 'Condicin PARADA - EXPRESION2 End Sub Una vez finalizado los ajustes, proceda a ejecutar la aplicacin y vea el comportamiento del Sistema (para ver ms detalles, le recomendamos que corra paso a paso con F8).

Ing. Giovanni Senz

47

Curso .NET 2005

Primera Parte

A usted se le presentar nuevamente el formulario, pero al hacer clic en el botn leer vera algo diferente.

Ahora pedir la cantidad de Facturas, y algo ms interesante, si usted proporciono un valor no valido, le emitir un mensaje apropiado para ese momento, como por ejemplo:

Ing. Giovanni Senz

48

Curso .NET 2005

Primera Parte

Esto le presentar en el caso de ser un valor nulo.

Y si el valor es negativo, tambin esta validado. Le queda de tarea, validar para que nicamente solo se reciban valores numricos y en caso de ser caracteres, identifique cual es segn la tabla ASCII y retorne cual fue la tecla que el usuario esta tocando y no es la correcta.

Ing. Giovanni Senz

49

Curso .NET 2005

Primera Parte

3.5.- Sentencia de Control Select Case.End Select


Cuando se necesita ejecutar uno de varios grupos de instrucciones, dependiendo del valor de una cadena o expresin numrica, es mejor la construccin Select CaseEnd Select. Por ejemplo, suponga que usted quiere verificar la edad de algunas personas para asignarles una categora particular. Podra hacer esto de la siguiente manera:

Select Case iEdad Case 5 sCategoria = 5 aos de edad Case 13 To 19 sCategoria = Adulto Case 20 To 35, 50, 60 To 65 sCategoria = Adulto Case Is > 65 sCategoria = Respetable Case Else sCategoria = Todo el Mundo End Select

Note que es posible revisar un rango de valores usando To. Los operadores de comparacin como > y < tambin son aceptables. Usted puede colocar diversos valores de objetivos o rangos dentro de un solo Case separndolos con comas. Tambin puede haber clusula Case Else que preceda al enunciado a enunciados que se deben ejecutar si no se satisface ninguna de las condiciones Case anteriores.

Ing. Giovanni Senz

50

Curso .NET 2005

Primera Parte

4.- Funciones de Conversin Objetivos


1) Estudiar las funciones de conversin que presenta Visual Basic y Studio .NET 2005 para el tratamiento de datos. 2) Establecer la diferencia entre cada una de las funciones de conversin de tipos existentes en Visual Basic .NET 2005. 3) Mostrar ejemplos de algunas de las funciones de conversin, las cuales son muy ampliamente utilizadas para la validacin y conversin de tipos de datos.

Como es conocido por todos los programadores, las instrucciones son divididas en dos categoras, las cuales son: I.- Instrucciones de Eleccin. II.- Instrucciones de Bucles (o sentencias de control): II.1.- Sentencias de Control Condicionales. II.2.- Sentencias de Control Cclicas. En cada caso, existen variaciones de tipos, y en base a las necesidades y los requerimientos se deben hacer ajustes, a esto se agrega las caractersticas que se deben seguir al programar en Studio .NET.

Funcin
CBoll CByte CChar CDate

Descripcin
Realiza una conversin a Boolean. Lo que se interprete como False o 0 se establecer como False, lo que no ser True. Realiza una conversin a Byte. Se perder cualquier valor mayor que 255, o cualquier fraccin. Realiza una conversin a un carcter. Si el valor es superior a 65,535, se perder. Si convierte un String, slo se convertir el carcter. Realiza una conversin a Date. Una de las funciones de conversin ms potentes. CDate puede reconocer algunos de los formatos de uso comn para indicar una fecha. Realiza una conversin a Double. Realiza una conversin a Integer. Las fracciones sern redondeadas al valor entero ms cercano. Realizar una conversin Long. Las fracciones sern redondeadas al valor entero ms cercano. Realizar una conversin Short. Las fracciones sern redondeadas al valor entero ms cercano. Realizar una conversin String. Si el valor es Date, contendr el formato de fecha corta.
51

CDbl CInt CLng CSht CStr

Ing. Giovanni Senz

Curso .NET 2005

Primera Parte

CType

Realiza una conversin a cualquier tipo. sta es una potente funcin que le permite convertir cualquier tipo de dato a otro. Por ello, la sintaxis de esta funcin es un tanto distinta de las dems.

La sintaxis de CType es: ObjNuevaVariable = CType(ObjVariablePorConvertir, NuevoTipo) Donde ObjNuevaVariable y ObjVariablePorConvertir son lugares (espacios de almacenamiento en la memoria) donde se colocarn las variables convertidas y por convertir. NuevoTipo es el tipo hacia el que har la conversin. Puede ser cualquiera que pueda colocar despus de As en una declaracin, por lo que puede usar esta funcin para convertir hacia enumeraciones, estructuras y tipos de objetos, as como tipos sencillos.

4.1.- Funciones de Manejo de cadenas


La mayora de las funciones de manejo de cadenas en Studio .NET ha sido reemplazadas, es decir que no coincidirn con las versiones 6.0 y anteriores, ya que ahora existe la funcionalidad integrada en la clase String. Pero podra ver algunas de ellas en cdigo antiguo, las cuales se listan a continuacin para que se familiarice:

Funcin
Len Chr Asc Left

Descripcin
Devuelve la cantidad de caracteres que hay en una cadena. Devuelve el carcter basado en el valor Unicode indicado. Devuelve el valor Unicode.

Ejemplo

Right

Mid

intValor = Len(Hola), (intValor = 5) strValor = Chr(56), (strValor = A) intValor = Asc(A), (intValor = 56) Devuelve caracteres de una cadena, a strValor = Left(Hola, Nicaragua, 2), partir del extremo izquierdo. Tambin (strValor = Ho) requiere la cantidad de caracteres por devolver. Devuelve caracteres de una cadena, a strValor = Right(Hola, Nicaragua, 4), partir del extremo derecho (lo inverso (strValor = agua) de Left). Tambin necesita la cantidad de caracteres por devolver. Devuelve caracteres contenidos en la strValor = Mid(Hola, Mundo, 4, 5), cadena. Devuelve cualquier cantidad de (strValor vale a Mu). ellos. La sintaxis de Mid es sReturn = strValor = Mid(Hola, Mundo, 7), Mid (cadena, Inicio [, Cantidad]), en (strValor vale a Mundo). donde el Inicio es el carcter a partir del cual devolver la Cantidad indicada de caracteres (incluyendo el de Inicio). Tambin puede omitir a Cantidad, y Mid devolver todos los que haya a partir de Inicio.
Ing. Giovanni Senz 52

Curso .NET 2005

Primera Parte

Instr

LCase UCase LTrim RTrim Trim

Int = Instr(1, Hola, Mundo, l) (intValor vale 3). Tenga en cuenta que la cadena que esta buscando puede contener mltiples caracteres, por lo que buscar mundo, como en intValor = Instr(1, Hola, mundo, mundo), (intValor vale 7). IniciarEnCarcter es la posicin en la cadena de bsqueda, CadenaDeBusqueda, donde el programa empezar a buscar (la cuenta inicia en 1). CadenaDeBusqueda es la cadena donde se buscar y CadenaPorBuscar es la cadena que se buscar. TipoDeComparacion es opcional y determina si se distinguirn las maysculas y minsculas. Si TipoDeComparacion se establece a 0 (Comparacin binaria), en la bsqueda se har la distincin. Si omite o se establece a 1 (Comparacin textual), no se har la distincin. intResultado contendra la posicin de la CadenaDeBusqueda donde inicie la CadenaPorBuscar. Si la cadena por buscar no se encuentra, intResultado valdr 0. InstrRev hace la bsqueda de derecha a izquierda de la cadena, por lo dems, InstrRev es idntica a Instr.InstrRev es til cuando busque en una cadena que contenga una ruta de acceso a una carpeta (directorio), y quiera ver primero el archivo o la ltima carpeta. intValor = InstrRev(Hola, Mundo, o) (intValor vale 8). Convertir una cadena a minsculas. strValor = LCase (Hola, Mundo) (intValor vale Hola, Mundo). Convertir una cadena a maysculas. strValor = UCase (Hola, Mundo) (intValor vale HOLA, MUNDO). Quita los espacios en blanco del inicio strValor = LTrim ( Hola, Mundo ) de la cadena. (intValor vale Hola, Mundo ). Quita los espacios finales de la cadena. strValor = LTrim ( Hola, Mundo ) Hola, Mundo). (intValor vale Quita los espacios iniciales y finales de strValor = LTrim ( Hola, Mundo ) la cadena. (intValor vale Hola, Mundo). Encuentra una cadena en otra. Es til cuando busca cierta cadena en un archivo. La sintaxis de esta funcin es: intResultado = Instr(IniciaEnCaracter CadenaDeBusqueda, CadenaPorBuscar, TipoDeComparacion)

Ing. Giovanni Senz

53

Curso .NET 2005

Primera Parte

4.2.- Otras Funciones tiles Diversas variables integradas


Por ltimo en esta parte, hay otras funciones que no caben dentro de las categoras. Entre ellas se encuentran las siguientes que permiten determinar el tipo de una variable, as como las del manejo de fechas, como se muestra en este instante:

Funcin
IsArray IsDate IsNumeric IsObject TypeName Now Today CSht CStr CType

Descripcin
Devuelve True si el parmetro es una matriz. Devuelve True si el parmetro se reconoce como una fecha. Devuelve True si el parmetro se reconoce como un nmero. Devuelve True si el parmetro se reconoce como un objeto. Devuelve el nombre del tipo de dato, por ejemplo, TypeName(strNombre) devolver String. Devuelve la fecha y hora en curso. Devuelve la fecha actual, con la hora establecida a 0:00:00 a.m. (medianoche). Realizar una conversin Short. Las fracciones sern redondeadas al valor entero ms cercano. Realizar una conversin String. Si el valor es Date, contendr el formato de fecha corta. Realiza una conversin a cualquier tipo. sta es una potente funcin que le permite convertir cualquier tipo de dato a otro. Por ello, la sintaxis de esta funcin es un tanto distinta de las dems.

5.- Arreglos en Visual Basic.Net


Objetivos didcticos:
1) Estudiar las reglas que se establecen para el manejo y uso de los arreglos en Visual Basic .NET 2005, las cuales son necesarias para el desarrollo de programas o aplicaciones en la plataforma de Studio .NET. 2) Identificar el uso de los arreglos segn la implementacin que se desea desarrollar en la plataforma .NET 2005. 3) Creacin de programas utilizando arreglos en Visual Basic .NET 2005 e implementando de una y mltiples dimensiones. 4) Trabajar en grupo de dos personas para compartir y escudriar informacin que es base para el desarrollo de los programas con sentencias de control en Visual Basic .NET 2005. Los Arreglos pueden ser de tamao Fijo o Dinmico, los arreglos tienen la particularidad de que se puede modificar el tamao y conservar los datos independientemente de las dimensiones.

Ing. Giovanni Senz

54

Curso .NET 2005

Primera Parte

Para demostrar que tan grande pueden ser los arreglos procesador, utilizara los mtodos Sort y Reserve de la clase Array del entorno de Microsoft.Net de Frameword para reordenar arreglos que contengan valores de nmeros enteros aleatorios de seis dgitos. Por ltimo, es importante utilizar el Control ProgressBar para ofrecer al usuario una seal del tiempo que tomar un proceso (Relacionado con algn arreglo o de otro tipo).

Notas:
Existen nuevas caractersticas de Visual Basic .Net en comparacin con versiones anteriores: En Visual Basic .Net 2005 el numero base de los elementos de las celdas del arreglo es la Celda Cero, ya no es aplicable la instruccin Option Base, la cual poda definir iniciar en la celda 0 o 1. Un Obvio efecto secundario de los arreglos basados en cero es que la instruccin LBound siempre devuelve un valor de 0, debido a que el lmite inferior de los arreglos siempre es 0 (sin embargo, la Instruccin UBound continua devolviendo el ndice ms Alto del arreglo, el cual es igual al nmero de elementos menos uno). Ahora los arreglos pueden declararse y recibir asignacin de datos mediante el uso de las mismas instrucciones de los programas. Por ejemplo, la sintaxis para declarar un arreglo miArreglo() y aadir elementos de es: Dim MiArreglo() As Integer = {7, 14, 21, 28} La Instruccin Redim sigue siendo valida en Visual Basic .Net 2005, aunque no podr utilizarla en la declaracin inicial del arreglo. Puede ser utilizada para modificar los lmites del arreglo, pero no su nmero de dimensiones.

5.1.- Definicin: Un arreglo es una serie de elementos de datos


Todos los elementos de un arreglo tienen el mismo tipo de datos. Se accede a los elementos individuales utilizando ndices enteros, la cantidad de estos dependen de la dimensin y el tipo de implementacin.

5.2.- Declare un Arreglo de tamao fijo


La sintaxis bsica de los arreglos pblicos de tamao fijo es: Dim Nombre_del_Arreglo(Dim1 ndice, Dim2 ndice, .) As Tipo_De_Dato

En la Declaracin de un arreglo, se debe especificar: Nombre del arreglo Tamao (nmero de elementos). Tipo de dato de los elementos del arreglo.
Ing. Giovanni Senz 55

Curso .NET 2005

Primera Parte

Modificador de acceso (si fuera necesario).

ModificadorAcceso NombreArreglo(Tamao) As Tipo

Especifica el nivel de acceso del arreglo.

Especifica el nombre del arreglo.

Especifica el tamao del arreglo.

Especifica el tipo de datos de los elementos del arreglo.

5.3.- Ejemplos de Declaraciones de Arreglos a.- Arreglos de una Dimensin


Cuando se crea un arreglo, Visual Basic reserva espacio para l en la memoria. La siguiente ilustracin muestra esquemticamente la manera en que se organiza el arreglo Empleados de 9 elementos. Dichos elementos estn numerados de 0 a 8 en lugar de 1 a 9, debido a que los ndices del arreglo siempre inician con cero O (la instruccin Option Base en Visual Basic 6, que permite ndices de arreglos que comienzan con el nmero 1, no funciona ya en la versin 2005 del software.) Dim Empleados(9) As String Public Empleados(9) As String

(0) M

(1) a

(2) r

(3) c

(4) e

(5) l

(6) a

(7)

(8)

Arreglo compuesto de nueve celdas, todo arreglo inicia de la posicin cero (0) y llega hasta el valor N-1 (en nuestro caso es 9-1= 8) Ing. Giovanni Senz 56

Curso .NET 2005

Primera Parte

Para declarar un arreglo entero con siete elementos:

Dim MiArreglo(6) As Integer


Para acceder al tercer elemento (o tercera celda) del arreglo:

TextBox1.Text = CStr(MiArreglo(2))
b.- Arreglos de Multidimensiones Cmo utilizar arreglos multidimensionales
Especificar todas las dimensiones y elementos Total elementos = producto de todos los tamaos Para declarar una variable arreglo multidimensional : Aadir un par de parntesis tras el nombre de la variable Colocar comas dentro de los parntesis para separar las dimensiones Iniciar la declaracin con la sentencia Dim o un modificador de acceso Ejemplo:

Public TresDimensiones(3,9,14) As Double ' Arreglo tridimensional


Para declarar un arreglo bidimensional pblico llamado Matriz, con espacio para cuatro filas y cuatro columnas de datos enteros de tipo Short, puede escribir esta instruccin en un procedimiento de evento en la parte superior del formulario. Dim Matriz (0 To 3, 0 To 3) As Short Utilizando la nueva sintaxis de Visual Basic 2005 que hace hincapi en el lmite inferior (0). Si se observa bien, despus de declarar este tipo de arreglo bidimensional y una vez que Visual Basic reserve espacio para l en la memoria [(0 To 3, 0 To 3)], puede utilizar el arreglo dentro de su programa como si se tratara de una tabla de valores, como se muestra en la ilustracin siguiente (en este caso, los elementos del arreglo estn numerados de 0 a 3 y de 0 a 3).

Ing. Giovanni Senz

57

Curso .NET 2005

Primera Parte

(0,0) (1,0) (2,0) (3,0)

(0,1) (1,1) (2,1) (3,1)

(0,2) (1,2) (2,2) (3,2)

(0,3) (1,3) (2,3) (3,3)


Arreglo Multidimensional, en este caso es de dos dimensiones, y es de 4X4.

99 33 25 80

100 38 21 83

98 39 24 85

96 31 27 99

Arreglo de dos dimensiones, y es de 4X4, ahora se observan los valores.

5.4.- Consideraciones al Momento de trabajar con los Arreglos


El cdigo de programa permite crear, o declarar, arreglos de la misma forma que se declaran variables simples. Como ya se ha explicado, el lugar en donde declare el arreglo determinar su alcance (o mbito) de acuerdo con las reglas siguientes: Si el arreglo se declara localmente dentro de un procedimiento, slo podr ser utilizado en ese procedimiento. Si un arreglo se declara en la parte superior de un formulario, podr emplearse en todo el formulario. Si un arreglo se declara pblicamente dentro de un mdulo, podr utilizarse en cualquier lugar del proyecto.

Cuando se declaran arreglos, por lo general es necesario incluir la informacin que se muestra en la tabla siguiente en la declaracin:

Informacin necesario en Descripcin la declaracin de un arreglo El nombre que utilizar para representar su arreglo en el programa. Nombre del Arreglo En general, la nomenclatura de arreglos sigue las mismas reglas
Ing. Giovanni Senz 58

Curso .NET 2005

Primera Parte

que las variables (vuelva a leer en sus apuntes esta informacin). Tipos de Datos El tipo de datos que se almacenara en el Arreglo. Puede especificar un tipo de dato fundamental o utilizar el Object si aun no esta seguro de qu datos almacenar en l o si lo usar para albergar varios tipos. El nmero de dimensiones que contendr su arreglo. Casi todos los arreglos son unidimensionales (una lista de valores) o bidimensionales si est trabajando con un modelo matemtico complejo (por ejemplo, una figura tridimensional). La cantidad de elementos que tendr su arreglo. Los elementos en su arreglo corresponden directamente al ndice del arreglo, el primer ndice del arreglo siempre es 0 (cero).

Nmeros de Dimensiones

Nmero de Elementos

Los arreglos que contienen cantidades especficas de elementos se conocen como arreglos de tamao fijo. Aquellos que contienen un nmero variable (es decir que pueden ampliarse durante la ejecucin del programa) se denomina arreglos dinmicos. Para referirse a los elementos de un arreglo puede utilizar el nombre de este y un ndice entre parntesis. El ndice debe ser un entero o una expresin que d como resultado un entero. Por ejemplo, el ndice puede ser un numero (como 5), una variable entera (como Nm) o una expresin (como nm-1); de hecho, suele utilizarse la variable contador de un bucle ForNext. Por ejemplo, la instruccin siguiente asigna el valor Martha a un elemento dentro de un ndice 5 en el ejemplo del arreglo Empleados de la seccin anterior. Empleados(5)=Martha Otro ejemplo, puede ser el caso de Matriz, en el cual se desea acceder a la celda (0,1): Matriz (0, 1) = 100

5.5.- Las funciones LBound y UBound


Para simplificar nuestro trabajo con arreglos, el programa Arreglo fijo utiliza la funcin UBound para verificar el lmite superior, o valor del ndice ms alto. UBound es una antigua palabra clave de Visual Basic que sigue siendo muy til. A travs de ella puede procesar arreglos sin referirse a las declaraciones de instrucciones que definan exactamente cuantos valores tendr el arreglo. Por ejemplo, se presenta el caso de que en el desarrollo de un sistema, se requiere declarar un arreglo que guarde siete temperaturas (como ya es por todos conocidos en los temas anteriores) donde esta la declaracin global a nivel de formulario, entonces, se procede a esa declaracin de la siguiente manera:
Ing. Giovanni Senz 59

Curso .NET 2005

Primera Parte

Public Class Form1 'Esta Instruccion Crea una Arreglo llamado Temperaturas de Tipo Single 'Contiene siete elementos enumerados desde 0 hasta 6.

.
Dim Temperaturas(0 To 6) As Single

Luego en un Ciclo se requiere la Funcin UBound para identificar el mximo de elementos del arreglo, esto se realiza de la siguiente forma: UBound (NombredelArreglo) > Verifica el lmite superior <- Sintaxis de la Funcin For i = 0 To UBound(Temperaturas) . . Next La funcin LBound, estrechamente relacionada con la anterior, confirma el limite inferior del arreglo y sigue siendo valida en Visual Basic; sin embargo, debido a que todos los arreglos Visual Basic ahora tienen un limite inferior de cero (0), la funcin simplemente devuelve ese valor (0). Las funciones UBound y LBound tienen la siguiente sintaxis: LBound(NombredelArreglo) > Verifica el lmite inferior <- Sintaxis de la Funcin For i = LBound (Temperaturas) To UBound(Temperaturas) . . Next

Para no redundar mucho, se inicia el primer Programa utilizando Arreglos. Siga los pasos que se le indican:

Paso 1: Crear un Nuevo Formulario (en caso de Existir uno, agregarlos al proyecto, como se muestra a continuacin):
Ing. Giovanni Senz 60

Curso .NET 2005

Primera Parte

Paso2: Hacer Clic en la plantilla de Windows Forms o en el botn Agregar:

Ing. Giovanni Senz

61

Curso .NET 2005

Primera Parte

Se Agrego el Formulario Form2

Paso 3: Ir al Icono de la Ventana del Explorador de Soluciones, y hacer Clic en el icono Ver Cdigo, como se muestra a continuacin: Ver pgina Siguiente:
Hacer Clic en ese Icono Observe que sucede

Paso 4: Ahora esta trabajando a Nivel de Cdigo, seleccione la opcin de Manejar eventos del formulario Form2:
Ing. Giovanni Senz 62

Curso .NET 2005

Primera Parte

A continuacin, seleccione el evento en el cual se cargara el arreglo, para que este visible a la forma desde el arranque del formulario Form2.

Ing. Giovanni Senz

63

Curso .NET 2005

Primera Parte

Paso 5: En este momento seleccione el evento que se mostrara en pantalla, el cual se utilizara para la programacin del arreglo (para este caso, de Form2, seleccione cuando se cargue este, es decir el evento Load Observar que los eventos tienen un icono de Rayo):

Observar la siguiente pgina, y vea con detalle como se agrega el bloque que corresponde al evento cuando se cargue el Form2.

Ing. Giovanni Senz

64

Curso .NET 2005

Primera Parte

En esta figura se observa el cdigo correspondiente al Evento Form2_Load. Paso 6: En este momento ir al cuadro de herramientas y seleccione los siguientes objetos que se presentan en la tabla de abajo (recuerde hacer exactamente lo que se le define en las propiedades de los Objetos): De acuerdo como se hizo anteriormente, las propiedades para los objetos son las siguientes: Objeto Label1 Propiedad del Objeto Text Valor de la propiedad Inventario de Medicinas Farmacia Nueva Vida. Info Desktop True True Vertical

BackColor ForeColor TextBox1 Text Multicine ReadOnly ScrollBar Tabla.- Control de Atributos Programa 4.

La forma en que vera el Formulario es la siguiente (al agregar los objetos):

Ing. Giovanni Senz

65

Curso .NET 2005

Primera Parte

Sin mucho que esperar, pase al siguiente Inciso: Paso 7: Ya se tiene el Formulario a Nivel de Diseo, pero no esta programado, entonces, es aqu donde tiene que agregar las siguientes instrucciones:

Usted tiene que ver a nivel de cdigo lo siguiente: Clase Principal Public Class Form2 ' Este es Nombre de Productos Dim Nombre_Productos(0 To 5) As String Private Sub Form2_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Dim i As Short = 0 'Centinela de Control de Ciclo, para recorrido del Arreglo 'Inicializando los el Arreglo Nombre de productos Nombre_Productos(0) = "Amoxicilina" Nombre_Productos(1) = "Penisilina" Nombre_Productos(2) = "Antmicina" Nombre_Productos(3) = "Panadol"
Ing. Giovanni Senz 66

Curso .NET 2005

Primera Parte

Nombre_Productos(4) = "Penisilina" Nombre_Productos(5) = "Dulce sueo" 'Ahora utilizar las Funciones que se habian explicado anteriormente, como es LBound y UBound For i = LBound(Nombre_Productos) To UBound(Nombre_Productos) 'Asignarlo al Objeto TextBox1, celda a celda, es decir, uno a uno. Me.TextBox1.Text = Me.TextBox1.Text & " Nombre Medicina[" & i + 1 & "]=" & Nombre_Productos(i) & Chr(13) & Chr(10) Next End Sub End Class

Se incluye el Ambiente de Studio .NET 2005 para que no se pierda, o si se encuentra confundido:

Paso 8: Si todo esta correcto, proceda a Correr el Programa, recuerde que puede Utilizar:
Ing. Giovanni Senz 67

Curso .NET 2005

Primera Parte

a.- F5 Para compilar y Ejecutar. b.- F8 Paso a Paso, que esto es lo mejor, para cuando esta desarrollando habilidades. c.- Buscar en el Men de Visual Studio 2005, la opcin Depurar, luego seleccione F5, y exactamente suceder lo que hizo con el Inciso a. d.- Otra opcin, y se practica en clases, es marcar un bloque con el cursor (dar clic al lado derecho de la instruccin, ah vera un punto Rojo [una esfera roja a la par de la Instruccin]), lo que indicara, que si usted da F5 en ese momento, el programa correr hasta esa instruccin, luego usted puede seguir paso a paso F8, y de esta forma puede Observar detalles durante la corrida.

Como se puede Observar, se agregaron todos los elementos del arreglo Nombre_Medicina. Recomendamos, que para hacer esta prctica ms gil, coloque un nombre representativo al formulario Form2, como por ejemplo: Sistema de Control de Productos. Paso 9: Ahora Agregue dos Objetos ms, un Label2 y un ComboBox1 (este es utilizado para Visualizar datos, muestra como se puede deslizar a lo largo de sus elementos [es idneo para arreglos]). Ver siguiente pgina ->

Ing. Giovanni Senz

Agregue un ComboBox1 al Formulario Form2 68

Curso .NET 2005

Primera Parte

Recuerde Agregar un Label2

Incorpore al formulario, los siguientes elementos: Objeto Propiedad del Objeto Text BackColor Label2 ForeColor Text Valor de la propiedad Listado De Productos Mediante un Combo: Info (esto es opcional para usted como programador) Desktop (esto es opcional para usted como programador)

ComboBox1

Paso 10: Al Agregue los dos Objetos ms (un Label2 y un ComboBox1), es que usted tenga una manera adicional en la cual pueda observar los elementos del arreglo. Observe ese detalle
Ing. Giovanni Senz 69

Curso .NET 2005

Primera Parte

y agregue al momento que se cargue el Form2, entonces digitalizar las siguientes instrucciones: Public Class Form2 ' Este es Nombre de Productos Dim Nombre_Productos(0 To 5) As String Private Sub Form2_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Dim i As Short = 0 'Centinela de Control de Ciclo, para recorrido del Arreglo 'Inicializando los el Arreglo Nombre de productos Nombre_Productos(0) = "Amoxicilina" Nombre_Productos(1) = "Penisilina" Nombre_Productos(2) = "Antmicina" Nombre_Productos(3) = "Panadol" Nombre_Productos(4) = "Penisilina" Nombre_Productos(5) = "Dulce sueo" 'Ahora utilizar las Funciones que se habian explicado anteriormente, como es LBound y UBound For i = LBound(Nombre_Productos) To UBound(Nombre_Productos) 'Asignarlo al Objeto TextBox1, celda a celda, es decir, uno a uno. Me.TextBox1.Text = Me.TextBox1.Text & " Nombre Medicina[" & i + 1 & "]=" & Nombre_Productos(i) & Chr(13) & Chr(10) Next 'Agregar Elementos al ComboBox1 Me.ComboBox1.Text = "Producto - Farmacia Nueva Vida" For i = LBound(Nombre_Productos) To UBound(Nombre_Productos) 'Asignarlo al Objeto TextBox1, celda a celda, es decir, uno a uno. Me.ComboBox1.Items.Add(Nombre_Productos(i)) 'En el caso del ComboBox1, es mediante la Propiedad Item.add es que se ' puede llegar a agregar elementos al Objeto. Next End Sub End Class Observe ahora como quedara el formulario, tiene dos opciones de poder observar los detalles.

Ing. Giovanni Senz

70

Curso .NET 2005

Primera Parte

Utilizando Combos, mire como presenta los datos este Objeto.

Paso 11: Que pasa si el Usuario quiere Hacer Clic sobre el ComBox1, y desea seleccionar ese producto, y en base a este controlar esa celda del arreglo. Pues, para que no quede con la duda, se agregaran otros eventos, todo basado en Arreglos. a.- Seleccione el ComboBox1, como se muestra arriba.

Contina en la siguiente pgina:

Ing. Giovanni Senz

71

Curso .NET 2005

Primera Parte

b.- Ahora, el evento al hacer SelectedIndexChanged.

Ing. Giovanni Senz

72

Curso .NET 2005

Primera Parte

c.- Se agrega el siguiente Cdigo: Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged No existe ninguna Instruccin End Sub d.- Para poder hacer posible la seleccin de la Cadena o elemento en el arreglo y que fue asignado al ComboBox1, se requiere que agregue otro objeto, y ese es un TextBox2. Buscar el Objeto Combo y en el Evento al Hacer SelectedIndexChanged (recuerde que es al lado derecho del manejador de eventos). Observar la siguiente pgina (con las propiedades que se muestran en la tabla): Objeto TextBox2 Label3 Propiedad del Objeto Text Text Valor de la propiedad Producto Seleccionado en el Combo

Agregar un Label3, Donde se vera el siguiente mensaje.

Agregar un TextBox2, Donde se vera la cadena que se seleccione del ComboBox1.

Ing. Giovanni Senz

73

Curso .NET 2005

Primera Parte

Paso

12:

Agregue el siguiente cdigo SelectedIndexChanged:

al

evento

Private

Sub

ComboBox1_

Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged Dim p As Short = 0 ' Utilizado para guardar la posicin del ComboBox1 y as 'identificar elemento. Dim Cad As String = " " ' Guarda la cadena actual en donde se hizo click en el 'ComboBox1. If Me.ComboBox1.SelectedIndex = -1 Then Exit Sub ' No selecciono ningun elemento. Else 'Seleccionar elemento actual en caso de hacer digitalizado en alguno p = Me.ComboBox1.SelectedIndex 'Mostrar el valor de la posicin seleccionada MessageBox.Show("Valor de la Celda es: " & p, "Valor de la posicin en el Combo Box", MessageBoxButtons.OK, MessageBoxIcon.Information) 'Ahora, controlar la cadena actual, el cual se refiere al elemento en el cual esta 'posicionado Cad = Me.ComboBox1.Text 'Asignar esa cadena al TextBox para visualizar el elemento. Me.TextBox2.Text = Cad End If End Sub Podra Observar, que ahora, se extiende el ComboBox1 de la Siguiente forma (ver pgina a continuacin):

Ing. Giovanni Senz

74

Curso .NET 2005

Primera Parte

Al hacer Clic le mostrara la posicin actual en que se encuentra en el ComboBox1, esto porque se selecciono Penicilina (recuerde que los arreglos inician desde la posicin Cero 0, no desde la UNO 1:

Entonces al final Observara como se mostr la posicin y el contenido del Combo Box1.

Ing. Giovanni Senz

75

Curso .NET 2005

Primera Parte

Tarea en Clase
Se requiere ahora hacer los clculos en base a valores reales, para tal fin debe declarar el siguiente arreglo:

N 0 1 2 3 4 5

Nombre del Producto Amoxicilina Penisilina Antmicina Panadol Antigripal Dulce sueo

Precio del Producto 2.5 3.5 7.5 5.5 8.5 3.5

Para lograr este fin, usted tiene que disear las instrucciones necesarias: a.- Para leer la cantidad de Unidades a comprar por Producto (puede utilizar InputBox o lo que usted desee). b.- Poder calcular el monto en base a las unidades seleccionada por el Usuario (solo el usuario establece la cantidad de productos a comprar, y usted programa el precio, en este sentido la recomendacin es utilizar arreglos). c.- Debe presentar cuantos productos por unidad decidi el usuario, y eso se tiene que mostrar en pantalla en un Textbox (puede usar como segunda opcin un Label). d.- Presentar el desglose de cuanto es el monto por el producto seleccionado, es decir, si lleva diez unidades, y selecciono amoxicilina, entonces, hay que hacer el clculo y presentar el precio total, y luego en otro TextBox donde se mire todo el detalle a la suma a que asciende la compra. Por ejemplo:

Se le presenta un formulario donde se detalle el desglose que se espera que programe.

Ing. Giovanni Senz

76

Curso .NET 2005

Primera Parte

Esta es la salida que se espera que usted presente, incluir la opcin de salir del sistema.

Ing. Giovanni Senz

77

Curso .NET 2005

Primera Parte

Otro Ejemplo, Ahora aprenda a Manejar Mltiples Lneas (Con TextBox)

1.- Crear un nuevo Proyecto. 2.- Dentro del Formulario, agregar los siguientes objetos: a.- Un Textbox, con las propiedades Multiline en Trae, y scrollBar en Vertical. b.- Agregar un botn de comando, con el nombre de Ejecutar. 3.- Hacer Clic en el Botn y digitalizar el siguiente Cdigo: Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim i As Integer Dim Encapsular As String Encapsular = Chr(13) & Chr(10) For i = 5 To 25 Step 5 Me.TextBox1.Text = Me.TextBox1.Text & "Lnea " & i & Encapsular Next i End Sub End Class
Ing. Giovanni Senz 78

Curso .NET 2005

Primera Parte

Ahora aprenda a Manejar Mltiples Lneas (Con ListBox)

1.- Crear un nuevo Proyecto. 2.- Dentro del Formulario, agregar los siguientes objetos: a.- Un Listbox, con el nombre de ListCuadroPais. c.- Un Label, con el nombre de EtiSaludo. b.- Agregar y digitalice el siguiente Cdigo: Public Class Form1 Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Me.ListCuadroPais.Items.Add("Nicaragua") Me.ListCuadroPais.Items.Add("Alemania") Me.ListCuadroPais.Items.Add("Brasil") Me.ListCuadroPais.Items.Add("Holanda") End Sub Private Sub ListCuadroPais_MouseHover(ByVal sender As Object, ByVal e As System.EventArgs) Handles ListCuadroPais.MouseHover If Me.ListCuadroPais.SelectedIndex < 0 Or Me.ListCuadroPais.SelectedIndex > 4 Then Me.EtiSaludo.Text = "Por favor Hacer Click En la etiqueta del Pais" End If End Sub End Class

Ing. Giovanni Senz

79

Curso .NET 2005

Primera Parte

Ahora aprenda a Manejar Mltiples Lneas (Con TextBox)

1.- Disear el formulario que se le presenta: a.- Un Label, en la propiedad text digitalizar: Trabajando con Arreglos. b.- Un TextBox, dejar la propiedad Text vaca. c.- Un botn con la propiedad text: Introducir Temperaturas. d.- Un botn con la propiedad text: Mostrar la Temperatura. 2.- Hacer Clic en el Botn Introducir Temperaturas, ah digitalizar el siguiente cdigo: Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim Prompt, Title As String Dim i As Short Prompt = "Escriba la Temperatura ms Alta del Da" For i = 0 To UBound(Temperaturas) Title = "Da" & (i + 1) Temperaturas(i) = InputBox(Prompt, Title) Next End Sub

Ing. Giovanni Senz

80

Curso .NET 2005

Primera Parte

Si usted ha seguido los pasos correctamente, podr observar la siguiente ventana:

3.- Hacer Clic en el Botn Mostrar la Temperatura, ah digitalizar el siguiente cdigo: Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Dim Resultado As String Dim i As Short Dim Total As Single Resultado = "Temperaturas ms Altas de la Semana: " & vbCrLf & vbCrLf For i = 0 To UBound(Temperaturas) Resultado = Resultado & "Da" & (i + 1) & vbTab & Temperaturas(i) & vbCrLf Total = Total + Temperaturas(i) Next Resultado = Resultado & vbCrLf & " Temperatura Promedio: " & Format(Total / 7, "0.0") Me.TextBox1.Text = Resultado End Sub

Ing. Giovanni Senz

81

Curso .NET 2005

Primera Parte

4.- Un paso muy importante, es que usted tiene que declarar una variable para guardar los valores, la cual es: Public Class Form1 'Esta Instruccion Crea una Arreglo llamado Temperaturas de Tipo Single 'Contiene siete elementos enumerados desde 0 hasta 6. Dim Temperaturas(0 To 6) As Single Correcto, es un arreglo, el cual guarda las temperaturas, esta declarado de tipo entero corto y son siete celdas.

Tareas:
1.- Con qu Objetos se puede hacer un despliegue por columna y filas para presentar la informacin al estilo de Access o Excel o SQL Server?. 2.- Ahora hacer un programa donde se muestre el nombre del producto, precio del producto, impuesto del producto y valor total del producto, de tal forma que en el mismo objeto se vean las columnas y filas de cada compra o factura (esto queda a criterio de usted). 3.- Hacer este ejercicio #2, pero ahora utilizando WEB Forms.

Ing. Giovanni Senz

82

Curso .NET 2005

Primera Parte

6.- Trabajando con Funciones, Procedimientos y Mdulos


1) Estudiar las reglas que definen tanto la declaracin Procedimientos y mdulos en Visual Basic .NET 2005. de Funciones,

2) Analizar la diferencia entre los Funciones, procedimientos y mdulos en Visual Basic .NET 2005, tanto al momento de declararlos, as como la implementacin y uso de estos. 3) Realizar prcticas de funciones, procedimientos y mdulos en programas donde se visualice tanto el traspaso de valores (parmetros de las funciones y procedimiento) por referencia y valor.

Ing. Giovanni Senz

83

Curso .NET 2005

Primera Parte

6.1.- Migracin del cdigo de Visual Basic 6 a Visual Basic 2005


Notas de actualizacin: Migracin del cdigo de Visual Basic 6 a Visual Basic 2005 Si tiene experiencia con Microsoft Visual Basic 6, observar que existen nuevas caractersticas en Microsoft Visual Basic 2005, entre las cuales se incluyen las siguientes: Las versiones anteriores de Visual Basic hacan una distincin entre mdulos estndar y mdulos de clases. En Microsoft Visual Studio 2005, los trminos relacionados simplemente son mdulos y clases. Visual Basic sigue ofreciendo soporte para los mdulos, pero, desde Microsoft Visual Basic .NET 2002, ha sido necesario agrupar el contenido del mdulo con las palabras clave Module y End Module dentro del Editor de cdigo. Visual Basic 2005 an permite el uso de las palabras clave Function y Sub, con las cuales es posible crear procedimientos propios. Sin embargo, las sintaxis para la instruccin y la invocacin de procedimientos han cambiado un poco. Si est empleando el parmetro predeterminado para controlar la declaracin de variables (Option Explicit), es recomendable que declare las funciones de manera especfica, lo mismo que todos los tipos de argumentos que est utilizando. En caso de que no asigne un tipo mediante el uso de la palabra clave As, Visual Basic utilizar el tipo Object predeterminado, lo cual suele ser menos eficiente que emplear un tipo de datos especifica. Visual Basic .NET 2002 cambi la forma en que los argumentos se pasan a los procedimientos. En Visual Basic 6, el mecanismo predeterminado para pasar argumentos es por referencia (ByRef), lo cual quiere decir que los cambios en argumentos dentro del procedimiento se envan de regreso a la rutina que los invoca. A partir de Visual Basic .NET 2002 (y Visual Basic 2005), la manera predeterminada de pasar argumentos es mediante un valor (ByVal), lo cual significa que los cambios a argumentos dentro de un procedimiento no se envan de vuelta a la rutina que hizo la invocacin. Se puede especificar de forma explicita la conducta del envo de argumentos empleando las palabras clave ByRef y ByVal en las declaraciones de sus argumentos. Cuando sea necesario, determine que ByRef lleve a cabo las mismas funciones que tena en Visual Basic 6. Al invocar procedimientos en Visual Basic 2005 se requiere parntesis alrededor de todas las listas de argumentos. El IDE de Visual Studio aade los parntesis automticamente incluso cuando sus procedimientos no necesiten argumento alguno (en cuyo caso se insertan parntesis vacos). Los programadores cuentan ahora con la opcin de utilizar la declaracin Return para enviar de vuelta el resultado del clculo de una funcin a la rutina que hizo la llamada. Visual Basic 2005 tambin ofrece soporte al antiguo mtodo para asignar un valor al nombre de la funcin.

Ing. Giovanni Senz

84

Curso .NET 2005

Primera Parte

6.2.- Qu son los Mdulos Module, los Procedimientos Sub y los Procedimientos de Funcin Function
Hablando estrictamente de Module, un mdulo de Cdigo pblico, declaraciones, procedimientos Sub y funciones Function, que pueden compartirse entre todos los mdulos de un proyecto. En versiones anteriores de Visual Basic 6, un mdulo de cdigo se menciona como un mdulo estndar (opuesto a un mdulo de Formulario o clase). Cuando escriba programas ms grandes, tal vez se vea obligado a incluir formularios y procedimientos de eventos que empleen algunas de las mismas variables y rutinas. De manera predeterminada, las variables de un procedimiento de eventos son locales, es decir, slo pueden leer o modificarse dentro del procedimiento de evento en el cual fueron creadas. Recordando, tambin es posible declarar variables en la parte superior de un formulario slo sern validas en l. De igual manera, de forma predeterminada los procedimientos de evento se declaran como privados cdigo de programacin del formulario en donde fueron creados. Por ejemplo, invocar el procedimiento de evento Button_Click desde un segundo formulario llamado Form2 cuando se le ha declarado como privado de Form1, esto es inadmisible en Visual Studio .NET 2005 (esto ser mostrado ms adelante). Para compartir variables y procedimientos entre todos los formularios y procedimientos de eventos de un proyecto, es necesario declararlos dentro de uno o ms mdulos incluidos en l. Los mdulos son archivos especiales cuya extensin de nombre de archivos es .vb, y contienen declaraciones de variables y procedimientos que se pueden utilizar en cualquier lugar del programa (Visual Basic 6, los mdulos estndar tienen la extensin de archivo .bas). Al igual que los formularios, los mdulos se listan de forma separada dentro del explorador de soluciones, y pueden guardarse en el disco empleando el comando Guardar NombredeModulo.vb como del men Archivo (El NombredeModulo.vb debe coincidir con el nombre del proyecto). A diferencia de los formularios, los mdulos slo contienen cdigo y no cuentan con una interfaz de usuario. A pesar de que los mdulos tiene algunas similitudes con las clases (antiguamente conocidas como mdulos de clases), la diferencia de stas, es porque en aquel instante no estaban orientada a objetos, ni tampoco, definan estructura, ni caractersticas de objetos, y no pueden heredar.

6.3.- Procedimientos de evento en comparacin con procedimientos generales


Un procedimiento general le dice a su aplicacin cmo realizar una tarea especifica. Una vez que usted ha definido el procedimiento, ste debe ser explcitamente llamado por su aplicacin. Por otro lado, un procedimiento de evento permanece inactivo hasta que se le llama para responder a los eventos causados por el usuario (un click de ratn) o por el sistema (un evento de cronmetro o carga). Usted puede colocar un procedimiento general en un mdulo de forma, de cdigo o de clase.
Ing. Giovanni Senz 85

Curso .NET 2005

Primera Parte

6.4.- Funciones (Function)


Una funcin es un procedimiento que cuando se ejecuta devuelve un resultado. La sintaxis correspondiente a una funcin es la siguiente: Function nombre[ByVal parmetro1, ByVal parametro2, ] [As Tipo] [Sentencias] [nombre = expresin] o [Return (Valor retorno)] End Function Ejemplo1: ' Funcion que recibe como parametro el costo de un producto "costo", luego, 'se recibe la posicin del objeto donde el usuario hizo Click 'La funcin retorna el impuesto a pagar. Function Impuestos(ByVal costo As Double, ByVal pos As Single) As Double Dim imp As Double 'Variable utilizada para calcular el impuesto. Dim p As Single 'Recibe la posicin del control donde el usuario hizo click p = pos ' Asignar la posicin del objeto. 'Sentencia condicional utilizada para el clculo del impuesto. If p = 0 Then imp = 0.1 * costo 'si es la posicin cero ElseIf p = 1 Then imp = 0.11 * costo 'si es la posicin uno ElseIf p = 2 Then imp = 0.11 * costo 'si es la posicin dos ElseIf pos = 3 Then imp = 0.12 * costo 'si es la posicin tres Else imp = 0.15 * costo 'si es cualquier posicin diferente a las anteriores End If 'Retornar el valor del impuesto en base a la seleccin que coincidio Return (imp) ' Estilo de retorno de Visual Studio 2005. 'Impuestos = imp ' modo alternativo y valido, basado en la versin VB6. End Function ' Fin de la Funcin nombre Es el de la funcin; su tipo determina el tipo de datos que devuelve la funcin. Para especificar el tipo, utilice los caracteres de declaracin de tipo o la clusula As tipo (Short, Integer, Long, Double, String, Decimal, etc Ver tabla de Tipos de Datos en la UNIDAD II); el tipo es Decimal por omisin. Son una lista de variables que se corresponden con los argumentos
86

parmetros

Ing. Giovanni Senz

Curso .NET 2005

Primera Parte

que son pasados cuando es invocada la funcin. Cuando se llama a una funcin, Visual Basic asigna el valor de cada argumento en la llamada al parmetro que ocupa su misma posicin en la lista de parmetros de la funcin. expresin Define el valor devuelto por la funcin. Este valor es almacenado en el propio nombre de la funcin, que acta como variable dentro del cuerpo de la misma. Si no se efecta esta asignacin, el resultado devuelto ser 0 si esta es numrica, nulo ( ) si la funcin es de caracteres, o vaco (Emply). Esta sentencia, al igual que Exit Function, devuelve el control a la sentencia que se encuentra inmediatamente a continuacin de esta forma la ejecucin del Programa.

End Function

La llamada a una funcin es de la forma: [Variable = ] nombre [(argumentos)] < Esto es para la manera tradicional. argumentos Son una lista de constantes, variables o expresiones separadas por comas. El nmero de argumentos debe ser igual al nmero de parmetros de la funcin. Los tipos de argumentos deben coincidir con los tipos de sus correspondientes parmetros.

Por compatibilidad con otros lenguajes, es aconsejable escribir los parntesis cada vez que se llama a una funcin, aunque sta no tenga argumentos. Una llamada a una funcin puede formar parte de una expresin. Un Ejemplo2 de una funcin es el clculo de la media de un arreglo: Function fnMedia(ByVal x() As Integer) As Integer Dim v as integer Dim Suma As integer Dim n As Integer Dim i as Short Calcular la media de los valores del arreglo For i = LBound (x) To UBound(x) Suma = Suma + v n = n +1 Next fnMedia = Suma / n valor que se devuelve End Function

Ing. Giovanni Senz

87

Curso .NET 2005

Primera Parte

Observe que el valor que deseamos que devuelve la funcin hay que almacenarlo en el propio nombre de la funcin, frMedia. Ahora bien, observe el llamado que se hace a la funcin en el momento que se cargue el formulario, la funcin fnMedia recibe por parmetro los valores (solo el nombre de las variables que se recibirn), y como la funcin retorna siempre un valor se debe asignar a una variable del mismo tipo de retorno que la funcin. Private Sub Form2_Load(ByVal sender System.EventArgs) Handles Me.Load Dim a(1 To 3) As Integer Asignar el valor al Arreglo a(1) = 3: a(2) = 5: a(3) = 8 Media = fnMedia(a) Se pasa como argumento al arreglo MsgBox ("La Media es:" & Media, vbInformation, "Valor de la Media") End Sub Este procedimiento define un arreglo denominado a y llama a la funcin frMedia pasndola como argumento dicho arreglo. As Object, ByVal e As

Media = frMedia(a) se pasa como argumento el arreglo a Function fnMedia(ByVal x() As Integer) As Integer Declare en la Seccin General de Variables: Media As Integer En momento de llamar a la funcin, las variables x y a referencia al mismo arreglo. El arreglo a se ha definido como una variable local al procedimiento Form_Load, por lo tanto slo es visible dentro de este procedimiento, y los parmetros de un procedimiento, como x, por definicin son locales al propio procedimiento. Segn esto, el parmetro x de frMedia tambin lo podamos haber denominado a puesto que slo es visible dentro de su propio procedimiento. Guarde la aplicacin y los mdulos con el nombre funcin. Despus ejecute la aplicacin y analice los resultados.

Ing. Giovanni Senz

88

Curso .NET 2005

Primera Parte

6.5.- Declare una Funcin de mbito Privado


'Funcin que recibe como parametro una cadena, la cual es el nombre del producto, 'que a su vez lo imprime en un InputBox. La funcion retorna la cantidad de productos 'que desea comprar. Private Function Leer_Cantidad(ByVal NombreProducto As String) As Short Dim cant As Single ' Guarda la Cantidad de productos a comprar 'leer la cantidad de Productos a Comprar cant = InputBox("Digitalizar la Cantidad de " & NombreProducto & " a comprar: ", "Proporcine la cantidad a Comprar") 'Retornar la Cantidad de Productos que el usuario desea comprar Return (cant) End Function 'Fin de la Funcin de la lectura del dato que el usuario proporcionara

Si se observa bien, notara que usted la funcin puede tener mbito privado a nivel del formulario (en este caso se observa que es Form2), pero es solo valida esta funcin dentro del formulario, ya que si desea llevarlo a otros formularios, tendr que ser de tipo Pblico.

Ing. Giovanni Senz

89

Curso .NET 2005

Primera Parte

6.6.- Procedimiento Sub


Cualquier procedimiento es una secuencia nombrada de instrucciones que ejecutan como una unidad. Por ejemplo, Function y Sub son procedimientos. Un procedimiento Sub (a partir de aqu llamado simplemente procedimiento) es una unidad de cdigo que realiza una tarea especifica dentro del programa, pero que no devuelve un valor explicito. Un procedimiento Sub comienza con una instruccin Sub y termina con una instruccin End Sub, como ha visto en muchos de los procedimientos asociados con eventos particulares, como un evento Click de un botn. Visual Basic 2005 tiene muchos procedimientos (o instrucciones) integrados, algunos de los cuales ya ha usado (MsgBox y MessageBox de esto ya se han dado ejemplo, pero se hablaran ms adelante en el curso). La sintaxis que define un procedimiento es la siguiente: Sub nombre([ByVal parmetro1, ByVal parametro2, ]) No se retorna Valor [Sentencias] End Sub La explicacin es anloga a la dada para las funciones (Function). La llama a un procedimiento puede ser de alguna de las dos formas siguientes: Call nombre [(argumentos)] Nombre [argumentos] A diferencia de una funcin, un procedimiento no puede ser utilizado en una expresin, ya que un procedimiento no retorna un valor a travs de su nombre. El siguiente ejemplo responde a un procedimiento (Sub) que calcula e imprime la suma de los elementos de un arreglo. En el primer ejemplo, se observa que se un procedimiento con el nombre Impl recibe un nico parmetro, el cual es el impuesto en tipo de dato Double. Los procedimientos no retornan valor, inician con la palabra Sub y terminan con End Sub, ver siguiente pgina:

'Procedimientos que recibe como parametro el valor del Impuesto 'En base a este valor se analiza si es impuesto es tasa preferencial o regular Sub ImpI(ByVal imp As Double) If imp <= 0.11 Then 'Si el Impuesto es menor de 0.11, es tasa preferencial MessageBox.Show("Tiene un impuesto de " & imp & " - Es Tasa preferencial ", " Impuestos ", MessageBoxButtons.OK, MessageBoxIcon.Information) Else 'Si el Impuesto no es menor de 0.11, es tasa regular
Ing. Giovanni Senz 90

Curso .NET 2005

Primera Parte

MessageBox.Show("Tiene un impuesto de " & imp & " - Es Tasa regular ", " Impuestos ", MessageBoxButtons.OK, MessageBoxIcon.Information) End If 'Fin de la sentencia de Control End Sub ' Fin del Procedimiento ImpI En el ejemplo dos, el procedimiento procSuma, recibe dos parmetros, uno es un arreglo de tipo entero, y el segundo elemento es la cantidad de elementos (si se observa realmente, para fines prcticos, esto ya lo podemos calcular con las funcin UBound que se ha utilizado anteriormente, ya que se puede cuestiones de una mala programacin, pero para fines y efectos, este es un ejemplo de lo que usted puede llegar a desarrollar con procedimientos). Aada un mdulo proSuma que se expone a continuacin: Sub procSuma (ByVal x() As Integer, ByVal n As Integer) Dim I, Suma As Integer Calcular la suma de los valores de la matriz x For i = 1 To n Suma = Suma + x(i) Acumulador Next i MessageBox.Show( La suma del Vector es: & Suma, " Imprimiendo resultado ", MessageBoxButtons.OK, MessageBoxIcon.Information) End Sub Observe nuevamente, que el procedimiento tiene dos parmetros (esta variacin se ha hecho slo por motivos didcticos). El primer parmetro es un arreglo de tipo Integer y el segundo que indica su nmero de elementos. El procedimiento escribe el resultado en una ventana MessageBox. Al final lo que se muestra es la suma de los elementos del arreglo. La llamada a este procedimiento puede ser de cualquiera de las dos formas siguientes: procSuma (a, 3) Recuerde que ahora los procedimientos, los argumentos estn entre parntesis. Call procSuma (a, 3) De acuerdo con esto, modifique el procedimiento Form_Load para que invoque al procedimiento procSuma. Private Sub Form2_Load(ByVal sender System.EventArgs) Handles Me.Load Dim a(1 To 3) As Integer, Media As Integer Asignar valores a la matriz a a(1) = 3: a(2) = 5: a(3) = 8 Media = fnMedia(a) Se pasa el arreglo como argumento a
Ing. Giovanni Senz 91

As

Object,

ByVal

As

Curso .NET 2005

Primera Parte

procSuma a, 3

Se pasa como argumento el arreglo a y su Nmero de elementos. Tambin se podra escribir: Call procSuma(a, 3)

End Sub Si usted ve claramente en esta pantalla, vera que existen tres procedimientos, uno de ellos es el al hacer click en el boton1, el otro es para mandar a imprimir en un textbox1 un arreglo y el ltimo, manda a imprimir un arreglo a un ComboBox.

Tambin es importante notar, que los procedimientos no retornan valor.

6.7.- Declare un Procedimiento Privado


Para hacer que un procedimiento (Sub o Function) slo sea accesible desde los procedimientos del mdulo al cual pertenece, hay que colocar al principio de la cabecera del procedimiento la palabra clave Private. Por ejemplo: Private Sub Proc1(ByVal X As Double, ByVal N As Integer) . End Sub
Ing. Giovanni Senz 92

Curso .NET 2005

Primera Parte

Esta es valida a nivel de un formulario, Si no se especifica la palabra clave Private y se le antepone public, esto es ahora un procedimiento Public, esto significa que debe ser definido en un mdulo.

6.8.- Argumentos por Referencias y por Valor


En los procedimientos (Sub o Function), los argumentos se pasan por referencia; de este modo, cualquier cambio de valor que sufra un parmetro en el cuerpo del procedimiento, tambin se produce en el argumento correspondiente de la llamada al procedimiento. Por ejemplo, en la funcin fnMedia mostrada anteriormente, el argumento a fue pasado por valor, porque se antecedi la palabra ByVal. Media = fnMedia(a) Arreglo a se pasa por referencia

Public Function fnMedia(ByRef x() As Integer) As Integer . End Function Esto quiere decir que si en el cuerpo de la funcin fnMedia se modifica algn elemento del arreglo x, dichos cambios tambin seran vistos desde a, porque pasar a por referencia significa que ambas variables, a y x, referencian los mismos valores. Cuando se pasa un parmetro por referencia, lo que realmente se pasa al procedimiento es dnde estn los datos con los que tienen que trabajar, no una copia de los datos. Cuando se llama a un procedimiento (Sub o Function), se podr especificar que el valor de un argumento no sea cambiado por ese procedimiento, poniendo dicho argumento entre parntesis en la llamada. Un argumento entre parntesis en la llamada es un argumento pasado por valor. Por ejemplo: procSuma (a, n) a es pasada por referencia y n por valor

Sub procSuma(ByRef x() As Integer, ByVal n As Integer) End Sub

Ing. Giovanni Senz

93

Curso .NET 2005

Primera Parte

Observe que el procedimiento procSuma; el argumento n es pasado por valor, lo cual significa que se pasa una copia a n (el argumento n en la llamada y el parmetro n del procedimiento no se confunde porque los parmetros de un procedimiento son locales al mismo). Si el procedimiento procSuma cambiara el valor de n, el cambio afecta slo a este procedimiento y no al argumento n en la llamada; por esto decimos que cuando se pasa un argumento por valor se pasa una copia, impidiendo as trabajar sobre la variable original. Otra forma de especificar que un argumento ser pasado por valor es anteponiendo la palabra ByVal a la declaracin del parmetro en la cabecera del procedimiento (Sub o Function). Anlogamente, ByRef especifica que el parmetro ser pasado por referencia; se recomienda que sea por ByVal. Por ejemplo: Public Sub procSuma(ByVal x() As Integer, ByVal n As Integer) La cabecera del procedimiento procSuma especifica que x ser pasado por referencia y que n ser pasado por valor. Esta forma de proceder evita tener que poner n entre parntesis en la llamada. Una estructura (tipo definida por el usuario) tambin se puede pasar como argumento a un procedimiento; pero en el caso de un formulario o de una clase, el procedimiento tiene que ser Private. Los argumentos de un tipo definido por el usuario son siempre pasados por referencia. As mismo, una funcin puede retornar una estructura.

6.9.- Practicando Mdulos, Funciones y Procedimientos


Para poder hacer posible esta practica, recuerde siempre seguir todos los pasos anteriormente especificados y que son de base para la creacin de un Proyecto en Visual Basic .Net. A continuacin se detallan las acciones a seguir: a.- Crear un Proyecto con el Nombre de Mi Manejo_Modulos.

b.- Agregar un Formulario llamado MI_Form.

Ing. Giovanni Senz

94

Curso .NET 2005

Primera Parte

c.- Agregue un Modulo, el cual se llamara Mi_Modulo1. Para poder hacer posible esto, debe colocarse sobre el proyecto en el explorador de Soluciones y hacer click derecho con el ratn sobre el mismo, se abrirn la siguientes opciones:

Debe seleccionar agregar nuevo elemento.

Ing. Giovanni Senz

95

Curso .NET 2005

Primera Parte

Ing. Giovanni Senz

96

Curso .NET 2005

Primera Parte

Ahora le aparecer en pantalla el modulo, pero le muestro como se vera cuando agregue el cdigo.

d.- Ahora en el Formulario agregue el siguiente cdigo (en base a lo que observa usted en pantalla y que se puede observar en el Inciso b): Public Class MI_Form Dim pr As Double Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click pr = Leer_Notas() Imprimir(pr) End Sub Sub Imprimir(ByVal pr As Double) Dim i As Single Dim E As String E = Chr(13) + Chr(10) For i = 0 To cant - 1 Me.TextBox1.Text = Me.TextBox1.Text & n(i) & E Next i
Ing. Giovanni Senz 97

Curso .NET 2005

Primera Parte

Me.TextBox1.Text = Me.TextBox1.Text & "El Promedio es: " & pr & E End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Me.Close() End Sub End Class

Ing. Giovanni Senz

98

Curso .NET 2005

Primera Parte

e.- En el caso del Modulo, agregue lo siguiente: Module Module1 Public n(0 To 10), cant As Integer Function Leer_Notas() As Double Dim i As Integer Dim s As Integer Dim p As Double cant = Leer_Cantidad() For i = 0 To cant - 1 n(i) = InputBox("Digite la Notas " & " [ " & i + 1 & " ]: ", "Notas de POO") s = s + n(i) Next i p = s / cant Return (p) End Function Function Leer_Cantidad() As Integer Dim c As Single c = InputBox("Leer Cantidad de Notas", "Digite la Cantidad de Notas:") Return (c) End Function End Module

Para poder hacer posible esta prctica, recuerde siempre seguir todos los pasos anteriormente especificados y que son de base para la creacin de un Proyecto en Visual Basic .Net. A continuacin se detallan las acciones a seguir: a.- Crear un Proyecto con el Nombre de Mi Manejo_Modulos.

b.- Agregar un Formulario llamado MI_Form.

Ing. Giovanni Senz

99

Curso .NET 2005

Primera Parte

c.- Agregue un Modulo, el cual se llamara Mi_Modulo1. Para poder hacer posible esto, debe colocarse sobre el proyecto en el explorador de Soluciones y hacer click derecho con el ratn sobre el mismo, se abrirn la siguientes opciones:

Ing. Giovanni Senz

100

Curso .NET 2005

Primera Parte

Debe seleccionar agregar nuevo elemento.

Ing. Giovanni Senz

101

Curso .NET 2005

Primera Parte

Ahora le aparecer en pantalla el modulo, pero le muestro como se vera cuando agregue el cdigo.

Ing. Giovanni Senz

102

Curso .NET 2005

Primera Parte

d.- Ahora en el Formulario agregue el siguiente cdigo (en base a lo que observa usted en pantalla y que se puede observar en el Inciso b): Public Class MI_Form Dim pr As Double Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click pr = Leer_Notas() Imprimir(pr) End Sub Sub Imprimir(ByVal pr As Double) Dim i As Single Dim E As String E = Chr(13) + Chr(10) For i = 0 To cant - 1 Me.TextBox1.Text = Me.TextBox1.Text & n(i) & E Next i Me.TextBox1.Text = Me.TextBox1.Text & "El Promedio es: " & pr & E End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Me.Close() End Sub End Class e.- En el caso del Modulo, agregue lo siguiente: Module Module1 Public n(0 To 10), cant As Integer Function Leer_Notas() As Double Dim i As Integer Dim s As Integer Dim p As Double cant = Leer_Cantidad()
Ing. Giovanni Senz 103

Curso .NET 2005

Primera Parte

For i = 0 To cant - 1 n(i) = InputBox("Digite la Notas " & " [ " & i + 1 & " ]: ", "Notas de POO") s = s + n(i) Next i p = s / cant Return (p) End Function Function Leer_Cantidad() As Integer Dim c As Single c = InputBox("Leer Cantidad de Notas", "Digite la Cantidad de Notas:") Return (c) End Function End Module

Ing. Giovanni Senz

104

Curso .NET 2005

Primera Parte

Problema #2
La Joyera Senz desea controlar las promociones que tiene para este mes en productos de anillo, para tal fin desean un sistema que muestre el precio normal, el precio Con dige, con esclava, con cadena y dige, y anillo de 14 K.T.v. Para este fin se debe controlar todas las operaciones de venta y compra, as como aplicar impuestos sobre la venta. En la tabla que sigue a continuacin se brindan los detalles: N
1

Modelo
Anillo Excell Anillo Ovalado Econmico Anillo Ovalado Pequeo Anillo Ovalado Mediano Anillo Ovalado Grande Anillo Marquesa B1 Anillo Marquesa B2 Anillo Marquesa B3 Anillo Marquesa B4 Anillo Josu Pequeo Anillo Josu Extragrande Anillo Setonaga Pequeo Anillo Setonaga Mediano Anillo Setonaga Grande Anillo ejecutivo Grande Anillo ejecutivo Grande Anillo Tradicional Pequeo Anillo Tradicional Mediano Anillo Tradicional Grande Anillo Tradicional Extragrande Anillo Trifsico Pequeo

Precio normal
C$ 3,250.00 C$ 2,000.00 C$ 2,500.00 C$ 3,250.00 C$ 4,250.00 C$ 3,250.00 C$ 2,500.00 C$ 2,750.00 C$ 2,500.00 C$ 2,500.00 C$ 5,500.00 C$ 2,500.00 C$ 3,250.00 C$ 4,250.00 C$ 4,250.00 C$ 5,500.00 C$ 2,500.00

Con Dige
C$ 3,430.00 C$ 2,180.00 C$ 2,680.00 C$ 3,430.00 C$ 4,430.00 C$ 3,430.00 C$ 2,680.00 C$ 2,930.00 C$ 2,680.00 C$ 2,680.00 C$ 5,680.00 C$ 2,680.00 C$ 3,430.00 C$ 4,430.00 C$ 4,430.00 C$ 5,860.00 C$ 2,680.00

Con Esclava
C$ 3,610.00 C$ 2,360.00 C$ 2,860.00 C$ 3,610.00 C$ 4,610.00 C$ 3,610.00 C$ 2,860.00 C$ 3,110.00 C$ 2,860.00 C$ 2,860.00 C$ 5,860.00 C$ 2,680.00 C$ 3,610.00 C$ 4,610.00 C$ 4,610.00 C$ 5,860.00 C$ 2,860.00

Con Cadena y Dige


C$ 3,790.00 C$ 2,540.00 C$ 3,040.00 C$ 3,790.00 C$ 4,790.00 C$ 3,790.00 C$ 3,040.00 C$ 3,290.00 C$ 3,040.00 C$ 3,040.00 C$ 6,040.00 C$ 3,040.00 C$ 3,790.00 C$ 4,790.00 C$ 4,790.00 C$ 6,040.00 C$ 3,040.00

Anillo en 14 K.T.
C$ 3,800.00 C$ 2,500.00 C$ 3,000.00 C$ 3,800.00 C$ 5,000.00 C$ 3,800.00 C$ 3,000.00 C$ 3,500.00 C$ 3,000.00 C$ 3,000.00 C$ 7,000.00 C$ 3,000.00 C$ 3,800.00 C$ 5,000.00 C$ 5,000.00 C$ 7,000.00 C$ 3,000.00

2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21

C$ 2,500.00

C$ 3,430.00

C$ 3,610.00

C$ 3,790.00

C$ 3,800.00

C$ 4,250.00

C$ 4,430.00

C$ 4,610.00

C$ 4,790.00

C$ 5,000.00

C$ 5,500.00

C$ 5,680.00

C$ 5,860.00

C$ 6,040.00

C$ 7,000.00

C$ 2,500.00

C$ 2,680.00

C$ 2,680.00

C$ 3,040.00

C$ 3,000.00

Ing. Giovanni Senz

105

Curso .NET 2005

Primera Parte C$ 3,250.00 C$ 4,250.00 C$ 2,500.00 C$ 3,250.00 C$ 4,250.00 C$ 5,500.00 C$ 2,500.00 C$ 1,500.00 C$ 3,250.00 C$ 3,430.00 C$ 4,430.00 C$ 2,680.00 C$ 3,430.00 C$ 4,430.00 C$ 5,680.00 C$ 2,680.00 C$ 1,680.00 C$ 3,430.00 C$ 3,610.00 C$ 4,610.00 C$ 2,680.00 C$ 3,610.00 C$ 4,610.00 C$ 5,860.00 C$ 2,680.00 C$ 1,680.00 C$ 3,610.00 C$ 3,790.00 C$ 4,790.00 C$ 3,040.00 C$ 3,790.00 C$ 4,790.00 C$ 6,040.00 C$ 3,040.00 C$ 2,040.00 C$ 3,790.00 C$ 3,800.00 C$ 5,000.00 C$ 3,000.00 C$ 3,800.00 C$ 5,000.00 C$ 7,000.00 C$ 3,000.00 C$ 1,800.00 C$ 3,750.00

22 23 24 25 26 27 28 29 30 31

Anillo Trifsico Mediano Anillo Trifsico Grande Anillo Moderno Pequeo Anillo Moderno Mediano Anillo Moderno Grande Anillo Moderno Extra grande Anillo Mary Anillo Fascinacin Anillo Centenario Mediano Anillo Cuadrado

C$ 2,500.00

C$ 2,680.00

C$ 2,680.00

C$ 3,040.00

C$ 3,000.00

Para hacer posible esta prctica, realice los siguientes pasos:

Paso1: Crear un formulario con los siguientes elementos:

Ing. Giovanni Senz

106

Curso .NET 2005

Primera Parte

a.- Un Textbox, que permita: Mltiples lneas, que este permita el relleno de forma vertical y que sea solo para lectura. b.- Un Botn, al cual se le colocara en su propiedad Text: Cargar Elementos. c.- Dos etiquetas, la primera en su propiedad Text colocar Progreso, y la segunda Etiqueta Elementos. d.- Agregar un Nuevo Elemento, un ProgressBar, solo colquelo entre las etiquetas.

Paso Dos: Al momento y en el evento de carga del formulario, realice los siguientes ajustes:
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 'Inicializar Los valores del Arreglo Nombre_Anillos Nombre_Anillos(0) = "Anillo Excell" Nombre_Anillos(1) = "Anillo Ovalado Econmico" Nombre_Anillos(2) = "Anillo Ovalado Pequeo" Nombre_Anillos(3) = "Anillo Ovalado Mediano" Nombre_Anillos(4) = "Anillo Ovalado Grande" Nombre_Anillos(5) = "Anillo Marquesa B1" Nombre_Anillos(6) = "Anillo Marquesa B2" Nombre_Anillos(7) = "Anillo Marquesa B3" Nombre_Anillos(8) = "Anillo Marquesa B4""" Nombre_Anillos(9) = "Anillo Josu Pequeo" Nombre_Anillos(10) = "Anillo Josu Extragrande" Nombre_Anillos(11) = "Anillo Setonaga Pequeo" 'Inicializar Los valores de la Barra de Progreso en base a los 'elementos del Arreglo Nombre_Anillos Me.ProgressBar1.Minimum = 0 Me.ProgressBar1.Maximum = UBound(Nombre_Anillos) End Sub

Paso 3: Crear un Procedimiento, el cual rellene en el TextBox1 el arreglo Antes inicializado. Recuerde que este debe ir de preferencia despues del manejo de eventos y antes del final de la clase Form1. Sub ImpArreglo_Al_TextBox1(ByVal Nombre_Anillos() As String) Dim i As Short 'Ahora utilizar las Funciones que se habian explicado anteriormente, como es LBound y UBound For i = LBound(Nombre_Anillos) To UBound(Nombre_Anillos) 'Asignarlo al Objeto TextBox1, celda a celda, es decir, uno a uno.
Ing. Giovanni Senz 107

Curso .NET 2005

Primera Parte

Me.TextBox1.Text = Me.TextBox1.Text & Nombre_Anillos(i) & vbTab & vbCrLf Me.ProgressBar1.Value = i Me.Label2.Text = i Next i End Sub Paso Cuatro: Hacer Doble Click en el Boton Cargar Elementos, y agregar el llamado al Procedimiento que rellena el TextBox1: Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Call ImpArreglo_Al_TextBox1(Nombre_Anillos) End Sub Paso 5: Crear un Modulo y declarar el Arreglo en ese bloque, el cual ser utilizado para almacenar los elementos del arreglo Nombre Anillos.

Ing. Giovanni Senz

108

Curso .NET 2005

Primera Parte

Por ejemplo aqu se utilizo el modulo del problema anterior. Public Nombre_Anillos(30) As String

Ing. Giovanni Senz

109

Curso .NET 2005

Primera Parte

7.- Trabajando Con Clases y Objetos en Visual Basic .Net 2005


1) Estudiar el manejo de los clases y objetos en Visual Basic de Studio .NET 2005.

2) Analizar el uso de los clases y objetos en Visual Basic de Studio .NET 2005.

3) Definir los pasos que se deben realizar para programar clases y objetos en Visual Basic .NET 2005.

4) Realizar prcticas en las cuales se pueda ver el uso de los clases y objetos que faciliten el desarrollo de las aplicaciones en Visual Basic .NET 2005.

Para poder trabajar con objetos y clases, es recomendable que adicionalmente recuerde como trabajan las funciones y los procedimientos en Visual Basic .Net. Ahora bien, siga los siguientes pasos que se detallan a continuacin: 1.- Entrar y Visual Basic .Net 2005. 2.- Crear un Nuevo proyecto con el Nombre POO1.

3.- Ya dentro de Visual Basic .Net, agregar un nuevo Formulario con el Nombre de FrmPOO, y en la propiedad text del Formulario digitalizar: Formulario de Programacin Orienta a Objetos en VB .Net (Ver Grfico #2).

Ing. Giovanni Senz

110

Curso .NET 2005

Primera Parte

Recuerde que al Entrar en Visual Basic .Net 2005, tiene que crear un Proyecto, en nuestro caso es para Windows.
Figura #1: Creando Proyecto.

Debe asegurar que el Proyecto que esta creando es de Visual Basic .Net, uestes ya tiene prctica en este sentido (sino lo hace as,

Recuerde que es una Aplicacin para Windows en este momento.


Figura #2: Seleccionando la Plantilla.

demuestra que estudiando nada).

no

ha

Ing. Giovanni Senz

111

Curso .NET 2005

Primera Parte

Es muy importante que tenga pendiente, que usted esta creando una Aplicacin, la cual tiene ciertas especificaciones, no pierda el hilo de la secuencia de pasos. Continuemos.

Grfico #3: Crear FrmPOO de cmo quedar nuestro formulario.

Ahora Concntrese en el Formulario FrmPOO.


Ing. Giovanni Senz 112

Curso .NET 2005

Primera Parte

Es muy importante, que tenga pendiente nuevamente, Para Crear el Formulario tiene que ir al men (esta es una de tres opciones que existe en Visual Basic .Net), ah buscar la opcin Proyecto, a continuacin selecciones Agregar nuevo Elemento, exactamente como aparece en el siguiente grfico:

Figura #4: Para Crear el Formulario POO desde el Men de Opciones.

Debe seleccionar Agregar un nuevo Elemento. Hacer Click.

Ing. Giovanni Senz

113

Curso .NET 2005

Primera Parte

Siguiendo los pasos, se abre el siguiente Formulario: Seleccionar Formulario de Windows

Figura #5: Agregando Formulario.

Una vez finalizado todos los pasos, tendr el siguiente formulario:

Ing. Giovanni Senz

Grfico #6: Formulario FrmPOO

114

Curso .NET 2005

Primera Parte

4.- Para poder trabajar con objetos y clases, es recomendable que adicionalmente recuerde como trabajan las funciones y los procedimientos en Visual Basic .Net. Este cdigo, debe digitalizarlo ntegramente, dentro del formulario, recuerde que me refiero a las Instrucciones que sern programadas (recuerde el orden que se establecen las clases, objetos y eventos, si no lo hace as, entonces demuestra que no ha practicado y nada ha estudiado). Public Class Form1 Public Class Persona Private mNombre As String Private mApp As String Public Sub New(ByVal n As String, ByVal a As String) mNombre = n mApp = a End Sub

Public Property Nombre() As String Get Return mNombre End Get Set (ByVal value As String) mNombre = value End Set End Property

Ing. Giovanni Senz

115

Curso .NET 2005

Primera Parte

Public Property Apellido() As String Get Return mApp End Get Set(ByVal value As String) mApp = value End Set End Property End Class Dim col As New Collection

5.- Debe agregar al formulario: a.- Un Objeto DataGridView, en este caso lo dejamos con su nombre original. b.- Buscar el evento al momento que se cargue el formulario y Agregar las siguientes instrucciones.

Ing. Giovanni Senz

116

Curso .NET 2005

Primera Parte

Grfico #7: Formulario FrmPOO y DataGridView

Por si acaso no lo reconoce, ese el objeto que se agrego.

Private Sub Form1_Load(ByVal sender System.EventArgs) Handles MyBase.Load col.Add(New Persona("Pepe", "Aguilar")) col.Add(New Persona("Pedro", "Infante"))

As

System.Object,

ByVal

As

col.Add(New Persona("Vicente", "Fernndez")) col.Add(New Persona("Antonio", "Aguilar")) col.Add(New Persona("Pablo", "Montero")) col.Add(New Persona("Daddy", "Yankee")) Me.DataGridView1.DataSource = col End Sub End Class
Ing. Giovanni Senz 117

Curso .NET 2005

Primera Parte

Si todo esta correcto, entonces se generara, la siguiente presentacin en pantalla:

Grfico #8: Formulario FrmPOO y DataGridView en tiempo de Ejecucin.

Tareas:
Ahora usted hgalo en base a las orientaciones seguidas en el simulacro examen (es decir, esos dos programas que quedaron en clase, ahora utilizar esta tcnica), entonces tiene tres programas (este mismo, ms los otros dos) que hacer para el prximo da de clase.

Ing. Giovanni Senz

118

Curso .NET 2005

Primera Parte

Bibliografa
1.- Titulo: Aprenda Ya Visual Basic .Net. Autor: Michael Halvorson. Editorial: Mc Graw Hill. ISBN: 970-10-5897-6 2.- Titulo: Aprenda Practicando Visual Basic 2005 Usando Visual Studio 2005. Autor: Felipe Ramirez. Editorial: Prentice Hall. ISBN: 970-26-0912-7

3.- Titulo: Aprendiendo Visual Basic .Net. Autor: Duncan Mackenzie, Kent Sharkey. Editorial: Prentice Hall. ISBN: 970-26-0379-X. 4.- Titulo: Curso de SQL Server y Visual Basic .Net. Autor: Ing. Glenda Barrios. Editorial:. Ing. Glenda Barrios ISBN: UNI FEC, Ingeniera en Computacin.

Ing. Giovanni Senz

119