Introducción a Studio .NET 2005: Estudio de la Plataforma ... de Datos/Curso... · 2.- .NET...

119
Curso .NET 2005 Primera Parte Ing. Giovanni Sáenz 1 Universidad Nacional de Ingeniería Facultad de Electrotecnia y Computación Curso de Studio .NET 2005 Introducción a Studio .NET 2005: Estudio de la Plataforma Studio .NET 2005. Aplicaciones Windows Vs Web en Studio .Net 2005. Prof. Giovanni Francisco Sáenz Araica.

Transcript of Introducción a Studio .NET 2005: Estudio de la Plataforma ... de Datos/Curso... · 2.- .NET...

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 1

Universidad Nacional de Ingeniería Facultad de Electrotecnia y Computación

Curso de Studio .NET 2005

Introducción a Studio .NET 2005:

Estudio de la Plataforma Studio .NET 2005.

Aplicaciones Windows Vs Web en Studio .Net 2005.

Prof. Giovanni Francisco Sáenz Araica.

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 2

Tabla de Contenido

Tabla de Contenido____________________________________________________________ 2

I.- Definición 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 común de ejecución (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 Mínimos para Visual Studio .Net 2005 _____________________________ 13

II.- Variables y Fórmulas de Visual Basic y .Net FrameWork_________________________ 14

2.1.- Notas de Actualización ________________________________________________________ 14

2.1.1.- Migración del Código de Visual Basic 6 a Visual Basic 2005________________________ 14

2.1.2.- Utilice Variables para Almacenar Información __________________________________ 16

Tipos de Datos Específicos _________________________________________________________ 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 lógicos: ____________________________ 21

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

Objetivos didácticos: ______________________________________________________________ 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 Número 1 ________________________________________________________ 23

3.1.3.- Análisis 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

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 3

3.3.1.- Tareas para las sentencias de Control Cíclicas ___________________________________ 40

3.4.- Sentencia de Control con If…EndIf _____________________________________________ 41

3.4.1.- Para el caso del Ejemplo de implementación 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 Conversión________________________________________________________ 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 didácticos: ______________________________________________________________ 54

5.1.- Definición: Un arreglo es una serie de elementos de datos ___________________________ 55

5.2.- Declare un Arreglo de tamaño fijo ______________________________________________ 55

5.3.- Ejemplos de Declaraciones de Arreglos __________________________________________ 56

a.- Arreglos de una Dimensión______________________________________________________ 56

b.- Arreglos de Multidimensiones ___________________________________________________ 57

Cómo utilizar arreglos multidimensionales ___________________________________________ 57

5.4.- Consideraciones al Momento de trabajar con los Arreglos __________________________ 58

6.- Trabajando con Funciones, Procedimientos y Módulos ___________________________ 83

6.3.- Procedimientos de evento en comparación con procedimientos generales ______________ 85

6.4.- Funciones (Function) _________________________________________________________ 86

6.5.- Declare una Función 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

Bibliografía ________________________________________________________________ 119

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 4

Objetivos de Todo el Curso 1.- Estudiar la plataforma existente en Visual Basic .Net 2005, la cual separa las

diversas líneas de desarrollo existentes.

2.- Mostrar los pasos que se deben de seguir para la programación 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 programación en Visual Basic .Net 2005. 4.- Por medio de ejemplos puntuales desarrollar la agilidad de la programación en un

lenguaje de última generación.

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 5

I.- Definición de la Plataforma .NET Objetivos de esta Unidad

1) Estudiar la filosofía 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 según las reglas que se establecen en cada capa y que son parte de la tecnología .NET para cualquier aplicación en Studio .NET 2005.

3) Análisis 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 librerías en Común, pero no el desarrollo y la ejecución).

4) Analizar los requerimientos mínimos 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 liberación. La ejecución de aplicaciones.

La plataforma posee un conjunto de herramientas de desarrollo y lenguajes de programación:

De propósito general Orientado a Objetos (de tercera generación) Lenguajes de alto Nivel Lenguajes de Código Intermedio.

Todos los lenguajes nos permiten utilizar los recursos disponibles en la computadora a través de una librería de clases común, con la que se pueden desarrollar:

Aplicaciones de Consola. Aplicaciones basadas en Windows. Aplicaciones para la WEB.

Cada línea que se decida desarrollar, utiliza protocolos (reglas) abiertos para la interacción entre los elementos que las componen.

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 6

.NET no es sólo 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 día al desarrollar aplicaciones empresariales (realmente en el

mercado Nicaragüense, este es el papel que se ha orientado, el cual se puede observar en las

Empresas e Instituciones – además 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 utilización 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 comunicación. 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.- Integración de aplicaciones multi-lenguajes. 2.- Homologación (Equiparar, poner en relación de igualdad dos cosas - RAE) de las

capacidades de los lenguajes. 3.- Disponibilidad de una biblioteca de clases común para los lenguajes. 4.- Arquitectura abierta a nuevos lenguajes. 5.- Desarrollo simplificado. 6.- Implementación simple. 7.- Mejor soporte de componentes. 8.- Ínter operación con Internet. 9.- Ínter operación con dispositivos móviles. 10.- Rentabilidad. 11.- Seguridad. 12.- Fácil implementación (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 comparación 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

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 7

muy importante considerar y tener en cuenta, que existen mucho tecnicismos y exigencias de nivel de programación, los cuales se acoplan a esta tecnología que propone Microsoft, lo cual es necesario conocer en toda su dimensión (factor que ayudara a tener una visión 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 (Especificación común para lenguajes, Common Language Specification) y los lenguajes de programación compatibles con ella. La CLS es una especificación 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 código intermedio reconocido por .NET. 2.- .NET Framework (Infraestructura y servicios): .NET Framework es la capa compuesta por:

El núcleo de servicios Recursos de .NET

Los Recursos de .NET a su vez incluyen los compiladores:

a.- La biblioteca de clases común para todos los lenguajes b.- Los servicios que convierten el código fuente en código máquina para los diversos

sistemas operativos a través del uso de código 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 intercomunicación entre los programas desarrollados en un lenguaje .NET y el resto de los elementos de .NET Framework, con el fin de generar comportamientos a través del dialogo con el sistema operativo.

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 8

Existen dos principales:

a.- Windows Application Services: que dan soporte a las aplicaciones de interfaz gráfica 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 gráfica basadas en la Web, servicios Web XML y aplicaciones de cómputo móvil en su dialogo con .NET Framework y el sistema operativo, a través 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 disposición de los programas un conjunto de funciones jerárquicamente organizadas, que podrán ser utilizadas como funciones nativas de manera no dedicada por todos los lenguajes de .NET. 5.- Motor común de ejecución (CLR/Common Language Runtime): El motor común de ejecución (CLR/Common Language Runtime) es la plataforma común de ejecución de los programas desarrollados en cualquier lenguaje .NET. CLR agrupa:

a.- Compiladores de línea de comando que permiten la creación de código intermedio, libre de ambigüedades, al que se conoce como ensamblado (assembly).

b.- Contiene además los compiladores JIT, Just in Time Compilers, que se encargan de generar código maquina a partir de los ensamblados.

c.- CLR se encarga de la gestión de errores, la administración de recursos y el dialogo

con el sistema operativo en tiempo de ejecución. A todo lo que requiere de la intervención 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 operación, 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 acción emitidas por CLR en tiempo de ejecución.

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 9

NOTA

Microsoft ha denominado de diferentes formas a los productos y lenguajes que componen la tecnología .NET: En la versión 1.0 de .NET Framework los lenguajes eran:

Visual Basic.NET. Visual C#.NET. Managed C++.

Mientras que el entorno integrado de desarrollo se conocía como Visual Studio.NET 2002. Por ser productos nuevos, existía la necesidad de diferenciarlos de las propuestas anteriores; incluso internamente en la compañía se penalizaba a quien osara referirse a Visual Basic.NET como Visual Basic 7. En la versión 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 versión 2.0 de .NET Framework, las versiones anteriores de los lenguajes, resultan anacrónicas, por lo que se conocen como Visual Basic, C# y C++. Se elimina también el “.NET” en Visual Studio; el nombre de la penúltima versión queda entonces como Visual Studio 2005.

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 10

Figura# 1.1. Estructura de la Plataforma .NET

1.3.- Capa de lenguaje de .NET

CLS (Especificación común para lenguajes Common Language Specification) No siempre prestamos atención a lo que una herramienta de desarrollo hace tras bambalinas, dado que como programadores nos concentramos en que nuestra codificación produzca la respuesta esperada. En .NET, sin embargo, es importante conocer lo que sucede desde la codificación hasta la intervención del sistema operativo en la atención de las peticiones. Para saber como funciona .NET debemos partir de un concepto denominado CLS (Especificación común para lenguajes, Common Language Specification). La CLS es el subconjunto de

Visual Basic C# C ++ J++ JScript Otros

CLS (Common Language Specification)

.NET Framework

Asp .Net Application Services

Web Forms Web Service

Windows Application Services

Windows

Forms Console

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

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 11

capacidades mínimas soportadas por el motor de ejecución de .NET (CLR). Todas las herramientas y componentes de .NET, por ejemplo, conviven y utilizan las clases de BCL, además de ser orientadas a objetos; esto porque CLS lo determina como condición para formar parte de la tecnología .NET. El cumplimiento de estas reglas garantiza un comportamiento homogéneo 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 prácticamente lo mismo dado que cumplen con un mismo marco original de trabajo y funcionamiento (CLS). Cualquier desarrollador experimentado puede aventurase a desarrollar su propio lenguaje de programación 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 programación es bastante similar.

1.4.- Visual Basic 2005 Visual Basic 2005 es una herramienta de desarrollo, diseñada 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 portátiles. d.- Aplicaciones para muchos entornos y configuraciones.

La ventaja más importante de Visual Basic es que ha sido Diseñado para Aumentar la productividad en el trabajo cotidiano (especialmente si necesita emplear información de bases de

datos o crear soluciones para Internet). Sin embargo, otro interesante beneficio adicional radica (estriba) en que, una vez que se sienta cómodo en el entorno de desarrollo de Microsoft Visual Studio 2005.

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

musicales.

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 12

1.4.1.- Versiones de Visual Basic .Net

La primera versión de Visual Basic .Net (Microsoft Visual Basic .Net 2002) llego al mercado en febrero del 2002. La segunda versión (Microsoft Visual Basic .Net 2003) estuvo disponible para el gran público en 2003. A finales del años 2005, después de un largo periodo (lapso de tiempo) de trabajos de integración y desarrollo, Microsoft presento Visual Studio .Net 2005. La versión de este año esta estrechamente integrada a Visual Studio 2005, la cual incluye componentes de la paquetería de programación 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 versión 2003, existen muchas mejoras y diferencias importantes, como por ejemplo la declaración de variables, el ambiente, el entorno para las bases de datos, así como los controladores que se utilizan ahora.

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 13

1.5.- Requerimientos Mínimos 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 Software Requeridos

Descripción

Microsoft Windows XP Profesional Edición 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,

tipos de Versiones Microsoft Visual Studio 2005 Profesional Edition.

Micro Procesador Procesador Pentium de 600 MHz o Compatible (se recomienda

Pentium de 1 GHz). Memoria Primaria 192 MB de RAM (se recomienda 256 MB o más).

Monitor Monitor de Video (resolución de 800 X 600 o superior) con al menos 256 colores (se recomienda 1024 X 768 con color de alta

densidad de 16 bits). Se requiere de Internet Conexión a Internet para descargar los archivos de práctica.

Dispositivo Periférico Ratón Microsoft o dispositivo de señal compatible.

NOTA

Este Tutorial esta desarrollado para la versión de Visual Studio .Net Standard y la versión Profesional. Es posible que encuentre algunas diferencias si utiliza otras ediciones. Si emplea la versión Express quizás vea que las características varían de forma significativa.

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 14

II.- Variables y Fórmulas de Visual Basic y .Net FrameWork

1) Estudiar las reglas que se definen para la utilización y declaración 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 prácticas 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 información utilizando cuadros de diálogos. También descubrirá como usar funciones y formular para realizar cálculos, y de que manera emplear los operadores aritméticos, lógicos y relacionales para la manipulación de operaciones en una aplicación. Se comprenderá en que consiste y como utilizar las clases y métodos que posee Microsoft .Net 2.0. FrameWork para realzar los cálculos matemáticos y otro tipo de labores útiles.

2.1.- Notas de Actualización

2.1.1.- Migración del Código de Visual Basic 6 a Visual Basic 2005

Si tienes experiencia con Microsoft Visual Basic 6, notaras varias diferencias (algunas bastantes significativas) características, las cuales son propias de Visual Basic 2005 y algunas que fueron mejoradas en versiones intermedias a estas dos, las cuales son las siguientes:

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 15

Para fomentar una buena practica de programación y la generación de códigos de programación más limpios, en Visual Basic 2005 es necesario declarar todas las variables antes de utilizarlas. LA instrucción implícita de variables (el uso de variables sin declararlas) está permitido solo si usted utiliza la instrucción 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 más 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 instrucción de programa y una configuración del compilador llamada Option Strict, la cual (cuando estaba habilitada) requería que las variables a agregar, comparar o combinar fueran del mismo tipo de datos. En Visual Basic 2005 esta configuración 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 compilación (Para revisar la configuración del compilador,

haga clic en el comando Opciones del Menú Herramientas. Expanda la categoría Proyectos y

Soluciones, y hacer clic en la opción valores predeterminados de Visual Basic). Los Diseñadores de Visual Basic Studio ofrecen esa configuración como una protección “Profesional” contra errores provocados por la falta de coincidencia entre los tipos, y puede ser una medida de seguridad útil en proyectos de programación más grandes. Si usted habilita la Option Strict necesitara familiarizarse con funciones de conversión 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 Matemáticas. En su lugar se deben utilizar los métodos de la biblioteca de clase System.Math de .Net FrameWork. La operación de estos métodos 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.

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 16

Visual Basic 2005 ofrece símbolos de acceso directo para ciertas operaciones matemáticas básicas, como suma (+), resta (-) y multiplicación (*). 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 características de los operadores Monarios). Visual Basic 2005 incluye un Objeto MessageBox, que es una alternativa para la función MsgBox y sirve para desplegar cuadros de mensajes. El método a utilizar para este propósito es MessageBox.Show. Tabla #2.1.-: Actualización de Visual Studio .NET 2005.

2.1.2.- Utilice Variables para Almacenar Información

Las variables son ubicaciones de almacenamiento temporal para los datos, los cuales están o que consta su programa (aplicación). Usted puede usar una o muchas variables en su código o instrucciones para la programación de una aplicación. Estas variables son capaces de almacenar:

a) Palabras b) Números c) Fechas d) Propiedades e) Valores u otros.

Además puede guardar información digitalizada por el usuario en el tiempo de ejecución, el resultado de un cálculo específico 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 información de forma ordenada (bueno, esto depende del programador) y es utilizada para llevar rastreo de cualquier tipo de información. Las variables permiten asignar nombres cortos y fáciles de recordar a cada pieza de datos con la que planee trabajar. Siempre la utilización de variables requiere una planificación 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.- Declaración 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.

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 17

En el caso de Visual Basic 6 y versiones anteriores a esta, era posible la declaración de forma implícita, es decir, no era necesario colocar la palabra Dim. Lo cual era flexible, pero de alto riesgo ya que se perdía el control, ya que se podía confundir los nombres de las variables (más

común en el caso de no dominar las técnicas de programación) el cual a la larga era no era fácil de poder encontrarlo. Para declarar la variable en visual Basic 2005, se debe considerar la palabra predefinida (o palabra reservada) Dim, la cual significa dimensión. 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 continuación 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 función preestablecida). Nuevamente se escribe un espacio en blanco y a continuación 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 automáticamente 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 sucedía en la versión 6, es decir que usted podía hacer lo siguiente: Dim Nombre_Variable As Single = 0

Tipos de Datos Específicos

NOTA En algunas versiones anteriores de Visual Basic no se requiere tipos de variables específicos (como String o Integer) no son requeridos; la información reside simplemente en un tipo de datos genérico (gran consumidor de memoria) llamado Variant, el cual podía contener datos de cualquier tamaño o formato. Visual Basic 2005 (como se había explicado anteriormente) no cuenta con soporte para este tipo de datos. La razón estriba en que, a pesar de ser práctico para los programadores novatos o principiantes de programación, ya que su diseño 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, hacía más lenta la ejecución de la aplicación y de hecho, se rompe con el esquema de programación de instrucción eficientes (esto no era control de calidad de instrucciones).

Pero no hay que negar, el tipo Variant permitía 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 numéricos o caracteres, el consideraba todo eso), lo cual suele provocar resultados inesperados, pero resolvía de alguna forma el no declarar un tipo de dato en una variable.

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 18

Tabla #2.2.- Tipos de Datos de Visual Studio .NET 2005 Tipos de Datos

Tamaño Rango Ejemplo de Uso

Short 16 bits De -32768 hasta 32767 Dim Alumnos As Short = 707 Alumnos = 707

UShort 16 bits De 0 hasta 65535 Dim Días As UShort = 570333 Días = 570333

Integer 32 bits De -2147483648 hasta 2147483647

Dim Pob_Nic As Integer = 5525257 Pob_Nic = 5525257

Long 64 bits De -9223372036854775808 hasta 9223372036854775807

Dim Pob_Mundo As Long = 52000000007 Pob_Mundo = 52000000007

ULong 64 bits De 0 hasta 18446744073709551615

Dim Estrellas As ULong = 18200000000000000 Estrellas = 18200000000000000

Single 32 bits punto flotante

De -3.4028235E38 hasta 3.4028235E38

Dim Precio_Perm1 As Single = 999.98 Precio_Perm1 = 999.98

Double 64 bits punto flotante

De -1.7976931486231E308 hasta 1.7976931486231E308

Dim PI As Double = 3.1415926535 PI = 3.1415926535

Decimal 128 bits Valores de hasta +/- 79228 X 1024

Dim Deuda_Nic As Decimal = 7600300.50 Deuda_Nic = 7600300.50

Byte 8 bits De 0 hasta 255 (No Negativos) Dim Tecla_Dig As Byte = 13 Tecla_Dig = 13

SByte 8 bits De -128 hasta 127 Dim NegVal As SByte = -20 NegVal = -20

Char 16 bits Cualquier símbolo Unicote en el rango de 0 a 65535

Dim UnicodeChar As Char = “Á” UnicodeChar = “Á”

String Por lo general 16 bits por carácter

De 0 a aproximadamente 2 mil millones 16 bits de caracteres Unicote

Dim Apellido As String Apellido = “Sáenz”

Boolean 16 bits Verdadero o falso (durante las conversiones, 0 es convertido a

Falso, otros valores a

Verdadero)

Dim Cerrar As Boolean As = True Cerrar = True

Date 64 bits 1 de Enero de 0001, hasta 31 de diciembre de 9999

Dim Purísima_Gritería As Date Purísima_Gritería = #7/12/2004#

Object 32 bits Cualquier tipo se puede almacenar en una variable de tipo Object

Dim MiAplic As Object MiAplic = CreateObject(“Prog1.Application”)

El tipo de datos String es útil para manejar textos en los programas, pero existen ciertos criterios que deben ser considerados, tal como los números, las fechas, caracteres especiales u otros. Para

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 19

permitir y tener un manejo eficiente de todos los datos de Visual Basic .Net 2005, existen otras categorías 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 más 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 programación

o tiene experiencia en programación sabe a lo que me refiero). Los Programadores experimentados notarán 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, números positivos y negativos. UShort, UInteger y ULong son de tipos “sin firmar”, eso significa que pueden tener números negativos (sin embargo, tipos de datos sin firmar ofrecen dos veces el rango de números

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 lógico 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.

2.3.- Constantes Las constantes son identificadores que nunca cambian su valor, pero en algunos casos, también 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 matemática fija), podría considerar almacenarlo como una constante en lugar de una variable. Las constantes son nombres significativos que reemplazan un número o una cadena de texto que no cambian. Su utilidad radica en que incrementa la legibilidad del código del programa, pueden reducir errores de programación y facilitan la realización posteriores cambios globales. En

NOTA

El tamaño de almacenamiento variable y se mide en bits. La cantidad de espacio requerido para almacenar un carácter de teclado estándar (ASCII) en la memoria es de 8 bits, lo cual equivalente a 1 Byte.

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 20

muchos sentidos las constantes pueden ser vistas como variables, pero es imposible modificar su valor en tiempo de ejecución. Se declara con la palabra clave o predefinida Const, como se muestra a continuación 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 estén disponibles para todos formularios y módulos de un programa (no solo para el formulario Form1), cree la constante en un módulo de código, 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 números, variables, operadores y palabras claves o predefinidas para crear un Nuevo valor. El lenguaje Visual Basic contiene varios elementos diseñados para su uso en fórmulas. A continuación se muestran los operadores matemáticos, los símbolos utilizados para unir las partes de una formula. Con algunas excepciones, los símbolos matemáticos que utilizaremos son los mismos empleados en la vida diaria, y sus operaciones son muy fáciles de comprender.

2.4.1.- Visual Basic incluye los siguientes operadores:

Operadores Descripción

+ Suma - Resta * Multiplicación / División \ División de enteros (números enteros)

Mod División con residuos ^ Exponenciación (elevar a una potencia) & Concatenación de cadena (combinación)

Tabla #2.3.- Operadores Aritméticos de Visual Studio .NET 2005 Los operadores para suma, resta multiplicación y división son muy directos, y pueden utilizarse en cualquier fórmula donde se requiera de números o variables numéricas.

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 21

2.4.2.- Visual Basic incluye los siguientes operadores relacionales:

Operadores Descripción

= 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 lógicos:

Operadores Descripción

And Si las dos expresiones condicionales son trae, entonces el resultado es True.

Or Si cualquiera de las expresiones condicionales es False, entonces el resultado es Trae. Si la expresión condicional es True, entonces el resultado es False.

Not Si la expresión condicional es False, entonces el resultado es True. Si la expresión condicional es True, entonces el resultado es False.

Xor Si una y sólo una de las expresiones 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 Lógicos de Visual Studio .NET 2005 En los ejercicios prácticos se estará mostrando el uso e implementación de cada uno de los operadores.

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 22

III.- Sentencias de Control de Visual Basic .Net

Objetivos didácticos:

1) Estudiar las reglas que se establecen para las sentencias de control que

presenta Visual Basic .NET 2005, las cuales son necesarias para el diseño y desarrollo de programas o aplicaciones en la plataforma de Studio .NET.

2) Identificar el uso de las sentencias de control más adecuado según la

implementación que se desea desarrollar en la plataforma .NET 2005.

3) Creación de programas utilizando Visual Basic .NET 2005 e implementando las diversas sentencias de control.

4) Trabajar en grupo de dos personas para compartir y escudriñar información 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 numérica entre el intervalo de uno al diez

(números enteros).

1 2 3 4 5 ……. 10

b.- También puede utilizar cuando el usuario desea leer una cantidad X de valores, tal como leer

cinco notas de programación Orientada a Objetos o Contar la cantidad de productos vendidos en un almacén, 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

número cero), como por ejemplo, sumar todos los números que existentes entre el número

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 23

100 y 104, otro ejemplo, partiendo de que en Managua tenemos dos millones de personas, cuanto tiempo hace falta para que la población 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 Número 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 Mañana o la de diez minutos). Por ejemplo:

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 24

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.- Análisis del Algoritmo a Desarrollar

Se tiene que considerar dos preguntas al momento de iniciar con el desarrollo del programa, los cuales son dos instantes:

1.- ¿Qué es lo que vamos Hacer? 2.- ¿Cómo 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 línea 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 línea dos y tres se expresa el detalle de las operaciones que se deben realizar: 3.- Leer las cinco facturas. 4.- Luego de haber leído esas facturas, sumarlas y encontrar el valor total del monto de esos

datos. Con lo anterior podemos observar:

Línea 1, se debe declarar una variable que almacene las cinco facturas. Línea 2, las facturas para ser leídas, 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 método no es adecuado).

Línea 3, Confirma que debemos utilizar un ciclo.

Línea 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 método de pseudo código:

Nota Este ejemplo es recordando lo que se hace con las técnicas básicas de programación.

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 25

Nº Instrucción a realizar - Algoritmo

1 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

2 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 3 A continuación, procedemos a mostrar los resultados del Ciclo:

3.1.- Imprimir “ El Monto total de Venta es: ” & suma 4 Fin_del_Programa

Tabla #3.2.- Algoritmo de Programa1.

3.1.4.- Ahora Procedemos con el Programa en Visual Basic .Net

Paso UNO: Abrir Visual Basic. Net

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 26

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

Paso Tres: Asegurarse que es una Aplicación en Visual Basic .Net, y que esta debe ser una aplicación de Visual Basic para Windows.

Debe seleccionar que desea una Aplicación y que esta es nueva.

Recuerde Seleccionar Visual Basic y es una Aplicación

para Windows

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 27

Paso Cuatro: a continuación, aparecerá el formulario (ahora es la Clase Superior) con sus atributos (propiedades) y el ambiente que aparece por defecto en 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 clásico 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”.

Explorador de Soluciones de

Visual Basic. Net

Ventanas de Propiedades de Visual Basic. Net

Ventanas de Propiedades de Visual Basic. Net

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 estándar que se definió para Studio .Net

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 28

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.

Botón para Leer datos.

Botón 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 diseñado:

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 29

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 múltiples líneas.

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 el objeto, no permita que datos puedan entrar (esto es opcional para ti).

Pruebe primero con Locked = True, luego con Locked = False.

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 30

Tabla #3.4.- Pasos para Crear agregar Objetos TextBox y sus propiedades para el Formulario Nueva Vida.

Ahora usted vera el siguiente formulario:

Tabla #3.5.- Programación de Eventos del Formulario Nueva Vida. Paso Nueve: Ahora hacer Click sobre el botón le aparecerá el código del objeto a programar, a continuación 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 código aquí. End Sub Siguiendo el algoritmo planteado al Inicio, entonces procedemos a agregar el código 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)

Nota: Una buena recomendación, 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.

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 31

End Sub Paso Diez: Ahora hacer Click sobre el botón Análisis 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 ���� Variables Globales al Formulario Dim Suma As Double ���� 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 aplicación.

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 32

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

Continuación del paso Doce. Al final, el resultado es:

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 33

Al dar clic en Analizar:

Ha podido desarrollar la primera aplicación de Visual Basic .NET 2005 en este curso. Comentarios: 1.- Sobre el uso de InputBox, esta es una instrucción de Entrada de Datos, existe una

especificación puntual para esta función, la cual se explicará en Clases (para aquellos estudiantes que están cursando), si no tendrá que investigar por su cuenta como se definen estos parámetros.

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 34

2.- Para mostrar la salida de Datos, se utiliza MessageBox, como habiamos explicado anteriormente, esta es una nueva opción que existe en .NET 2005, la cual es una buena opción, 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).

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 35

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

Esta es una de las sentencias más utilizadas en Visual Basic .Net, ya que esta controla ciclos con diferentes tipos de datos numéricos, 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 más recomendado el uso de Do While por encima del For. La sentencia de Control Cíclica Do While esta compuesta de la siguiente forma: a.- Una condición Inicial, la cual sería la expresión1. b.- La palabra reservada Do While y entre paréntesis la condición de para del ciclo, esa es la

expresión2. c.- El bloque de las instrucciones que estarán contenida en el ciclo, es decir que es lo que se

quiere ejecutar (programación de tareas a realizar) dentro del ciclo.

Sentencia1 Sentencia2 . . . SentenciaN

d.- Antes de finalizar el bloque, se coloca la Expresión3, la que a su vez nos permitirá

movernos en el intervalo, y adicionalmente (un paso después ayudara) a identificar si la Expresión2 es verdadera y comparar si podremos salir del bloque (antes en lenguaje máquina se programa como etiquetas las sentencias de control cíclicas, y en muchas

ocasiones utilizabas una instrucción que comparaba el valor de un registro, si este valía

cero, podías salir, de lo contrario continuabas dentro del ciclo). e.- Por último, cerrar con la palabra Loop (Recordar que también Do While es identificador

reservado), ahí termina el ciclo. Ahora procedamos a conocer esos detalles, fíjate en el siguiente bloque de programa:

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 36

i = 1 ���� Esta es la Condición Inicial Expresión1

Si puedes notar, si el valor de i al comprarlo en la expresión2 resulta falso, jamas entrara al Ciclo (esta es la forma de controlar el desplazamiento en el Intervalo). Adicionalmente, si estas utilizando metodos numericos (análisis numérico, 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 Condición de Parada Expresión2

'For i = 1 To cant � Lo que sería 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 Condición para movernos en el ciclo Expresión3

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 Botón Leer, de tal forma que el código se vea como este: Ver página Siguiente:

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 37

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 Condición de Parada Expresión2 ' 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 teoría de como trabajar el ciclo Do While, hacer los ajustes al programa anterior (al que fue programado con While) y compílalo, luego, verificar todos los detalles y recordar córrelo paso a paso, para que ver, identificar y detectar las diferencias entre el for y el do while. A continuación el ciclo número 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

Técnicamente hablando, este es el ciclo menos utilizado, ya que la expresión1 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 obstáculo 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 están contenida dentro del ciclo Do – Loop While (lo cual es malo, ya

que para validaciones y verificaciones – hablando de técnicas que se requieren garantizar antes

de la implementación y basados en las metodologías de Ingeniería de Software, este ciclo no es

un factor que garantice la seguridad de los datos, si queremos eficiencia).

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 38

Aunque el valor de la expresión1 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 darás cuenta, que puedes prevenir todos esos casos, y prácticamente, le puedes sacar ventaja a eso. La estructura es la siguiente: La sentencia de Control Cíclica Do - Loop While esta compuesta de la siguiente forma: a.- Una condición Inicial, la cual sería la expresión1. 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 estarán 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 Expresión3, la que a su vez nos permitirá el

desplazamiento en el intervalo, y adicionalmente (un paso después ayudara) a identificar o saber si la Expresión2 es verdadera, y comparar si podremos salir del bloque (antes en lenguaje máquina se programaban como etiquetas las sentencias de control cíclicas, y en

muchas ocasiones utilizabas una instrucción que comparaban el valor de un registro, si este

valía cero, podías 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

paréntesis la Expresion2 (Recuerda que también 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 expresión de condición de parada, esta al final del ciclo (este problema desaparece, si la condición 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 ejecución 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 implementación de las Instrucciones.

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 39

Ahora procedamos a conocer esos detalles, fíjate en el siguiente bloque de programa: i = 1 ���� Esta es la Condición Inicial Expresión1

A continuación, el ejemplo de Do While, se puede notar, que si el valor de i al comprarlo en la expresión2 resulta falso, puede entrar al Ciclo (esta es la forma de controlar el desplazamiento en el Intervalo). Adicionalmente, si se esta utilizando métodos numéricos se conserva lo mismo del Do While (análisis numérico, Sistemas Lineales, calculando límites 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 sería 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 Condición para movernos en el ciclo Expresión3 Loop While (i <= cant) ���� Esta es la Condición de Parada Expresión2 – el Cierre

del Ciclo. Ahora que ya se conoce como trabajan los ciclos, haz los ajustes al programa anterior y compílalo, verifica todos los detalles y recuerda córrelo paso a paso, para que ver la diferencia entre el for, el do while y ahora el Do - Loop - While.

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 40

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 Condición de Parada Expresión2 ' 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 Cíclicas

1.- Hacer esta práctica, 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 aplicación en Windows, ahora, tu

tienes que hacerlo con Web Forma. Esta misma práctica pero llevada a una página 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 práctica y

presente la próxima semana ese programa.

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 41

3.4.- Sentencia de Control con If…EndIf

Este tipo de sentencia es cuando tenemos condiciones o mejor dicho varias condiciones y

tenemos que decidir por una de las condiciones. Está además es utilizada cuando manejamos intervalos de control (El Valor esta en un intervalo).

Presentamos a continuación un fragmento de pseudo código, el cual si es implementado adecuadamente, lo lograría:

Si BalanceActual – MontoCheque < 0 Entonces Mostrar Mensaje de Sobregiro Sino BalanceActual = BalanceActual – montoCheque FinSi

Es posible, pero confuso e innecesario, añadir las instrucciones If…EndIf. En lugar de

esto, deberá usar la construcción If…ElseIf…EndIf, o, cuando evalúe situaciones en las que existen varias acciones posibles, la Select Case, se presenta posteriormente. Este es el ejemplo de If…ElseIf…EndIf 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 código toma una decisión basada en tres valores mutuamente excluyentes, vbYes, vbNo y vbCancel, para las variables iValReg.

Algunas veces es posible condensar la construcción If…Then…Else dentro de una línea de código. Esto se logra con la función IIf() (Sin Inmediato). Siendo la función. IIf() devuelve un valor que debe almacenarse en una variable. Observe lo que sigue a continuación:

ElColor = IIf(ElColor < 15, ElColor, 1) ‘Se asegura de que no sea demasiado ‘alto.

Esta función requiere de tres argumentos, la condición por verificar, que devolver si la

condición 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 más, en cuyo caso se pone 1.

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 42

3.4.1.- Para el caso del Ejemplo de implementación de If - Else

Veamos el siguiente ejemplo clásico que siempre es el pivote para explicar las sentencias de control condicionales. Este programa identifica si un número 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:

De acuerdo como se hizo anteriormente, las propiedades para los objetos son las siguientes: Objeto Propiedad del Objeto Valor de la propiedad

Text Manejo de Sentencias de Control Condicionales en Visual Basic .Net

BackColor Info Label1

ForeColor Desktop Text Digite un Valor Numerico: BackColor Control Label2

ForeColor ControlText Boton1 Text Analizar valor Boton2 Text Salir

Tabla 3.6.- Control de Atributos Programa 3.

Insertar un

TextBox

Agregar dos

Label

Incluir dos

Botones

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 43

Paso2:

Ahora que ya se tiene el formulario, con todas sus propiedades, se procede a la programación de los eventos, el cual se describe a continuación: a.- Dar clic al Botón que tiene como Nombre Boton1, ahí agregamos el siguiente código:

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 'Declaración del número 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 Número " & num & " es Positivo", "Analisis de Numeros", MessageBoxButtons.OK, MessageBoxIcon.Information)

ElseIf (num < 0) Then 'Si es menor que cero MessageBox.Show(" El Número " & num & " es Negativo", "Analisis de Numeros", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)

Else 'Si es el cero MessageBox.Show(" El Número " & 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

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 44

Paso 3:

a.- Ahora que ya se lograron incluir todos los detalles, proceder con la ejecución. Para lograr este

fin, digitalizar el número 99, de tal forma que se pueda observar lo siguiente:

b.- Hacer Clic en el botón Analizar valor, al realizar esta operación sucederá lo siguiente:

Lo cual indicara que fue exitosa la operación, y mostrara el resultado. c.- Lo único que falta es digitalizar el botón de salida, el cual indicara el final de la aplicación,

realice esta actividad y habrá concluido la práctica de la sentencia de control condicional.

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 45

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 validación, es decir, que el usuario puede digitalizar valores negativos e inclusive una factura Nula “Cero”. Es aquí donde entra en juego la combinación de sentencias de control Vs Condicionales. Para entender de forma más clara la problemática, en este momento se procede con la validación, 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 numérico esta en el rango permitido. Para esta acción se agrega una variable entera (usted puede utilizar otro tipo de datos, no existen restricciones, solo es la lógica 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 Página:

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 46

Nº Instrucción a realizar - Algoritmo

1 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

2.4.- suma = suma + Fact

Fin_del_Ciclo_For

3 A continuación, procedemos a mostrar los resultados del Ciclo: 3.1.- Imprimir “ El Monto total de Venta es: ” & suma

4 Fin_del_Programa Tabla #3.7.- Ajuste al Algoritmo del Programa1. Ahora que ha sido posible Mostrar los ajustes del Algoritmo, irse al Formulario correspondiente a la Facturación de la Farmacia Nueva Vida, y haga el siguiente ajuste al Código y Clase Principal de ese Formulario:

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 47

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

Dim i As Integer = 0 Dim Sal As Integer = 0 Dim Cant As Short = 0 i = 1 'Condición INICIAL - EXPRESION1 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 Facturación 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) 'Condición PARA ALTERAR EL CICLO - EXPRESION3 i += 1 'i = i + 1

Loop While (i <= Cant) 'Condición PARADA - EXPRESION2

End Sub Una vez finalizado los ajustes, proceda a ejecutar la aplicación y vea el comportamiento del Sistema (para ver más detalles, le recomendamos que corra paso a paso con F8).

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 48

A usted se le presentará nuevamente el formulario, pero al hacer clic en el botón leer vera algo diferente.

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

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 49

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

Y si el valor es negativo, también esta validado. Le queda de tarea, validar para que únicamente solo se reciban valores numéricos y en caso de ser caracteres, identifique cual es según la tabla ASCII y retorne cual fue la tecla que el usuario esta tocando y no es la correcta.

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 50

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 expresión numérica, es mejor la construcción Select Case…End Select. Por ejemplo, suponga que usted quiere verificar la edad de algunas personas para asignarles una categoría particular. Podría hacer esto de la siguiente manera: Select Case iEdad Case 5

sCategoria = “5 años 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

comparación como > y < también son aceptables. Usted puede colocar diversos valores de objetivos o rangos dentro de un solo Case separándolos con comas. También puede haber cláusula Case Else que preceda al enunciado a enunciados que se deben ejecutar si no se satisface ninguna de las condiciones Case anteriores.

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 51

4.- Funciones de Conversión

Objetivos

1) Estudiar las funciones de conversión que presenta Visual Basic y Studio .NET 2005 para el tratamiento de datos.

2) Establecer la diferencia entre cada una de las funciones de conversión de tipos

existentes en Visual Basic .NET 2005.

3) Mostrar ejemplos de algunas de las funciones de conversión, las cuales son muy ampliamente utilizadas para la validación y conversión de tipos de datos.

Como es conocido por todos los programadores, las instrucciones son divididas en dos categorías, las cuales son: I.- Instrucciones de Elección. II.- Instrucciones de Bucles (o sentencias de control):

II.1.- Sentencias de Control Condicionales. II.2.- Sentencias de Control Cíclicas.

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 características que se deben seguir al programar en Studio .NET.

Función Descripción CBoll Realiza una conversión a Boolean. Lo que se interprete como False o 0 se

establecerá como False, lo que no será True. CByte Realiza una conversión a Byte. Se perderá cualquier valor mayor que 255,

o cualquier fracción. CChar Realiza una conversión a un carácter. Si el valor es superior a 65,535, se

perderá. Si convierte un String, sólo se convertirá el carácter. CDate Realiza una conversión a Date. Una de las funciones de conversión más

potentes. CDate puede reconocer algunos de los formatos de uso común para indicar una fecha.

CDbl Realiza una conversión a Double. CInt Realiza una conversión a Integer. Las fracciones serán redondeadas al

valor entero más cercano. CLng Realizar una conversión Long. Las fracciones serán redondeadas al valor

entero más cercano. CSht Realizar una conversión Short. Las fracciones serán redondeadas al valor

entero más cercano. CStr Realizar una conversión String. Si el valor es Date, contendrá el formato

de fecha corta.

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 52

CType Realiza una conversión a cualquier tipo. Ésta es una potente función que le permite convertir cualquier tipo de dato a otro. Por ello, la sintaxis de esta función es un tanto distinta de las demás.

La sintaxis de CType es:

ObjNuevaVariable = CType(ObjVariablePorConvertir, NuevoTipo) Donde ObjNuevaVariable y ObjVariablePorConvertir son lugares (espacios de almacenamiento

en la memoria) donde se colocarán las variables convertidas y por convertir. NuevoTipo es el tipo hacia el que hará la conversión. Puede ser cualquiera que pueda colocar después de As en una declaración, por lo que puede usar esta función para convertir hacia enumeraciones, estructuras y tipos de objetos, así como tipos sencillos.

4.1.- Funciones de Manejo de cadenas

La mayoría de las funciones de manejo de cadenas en Studio .NET ha sido reemplazadas, es decir que no coincidirán con las versiones 6.0 y anteriores, ya que ahora existe la funcionalidad integrada en la clase String. Pero podría ver algunas de ellas en código antiguo, las cuales se listan a continuación para que se familiarice:

Función Descripción Ejemplo Len Devuelve la cantidad de caracteres que

hay en una cadena. intValor = Len(“Hola”), (intValor = 5)

Chr Devuelve el carácter basado en el valor Unicode indicado.

strValor = Chr(56), (strValor = A)

Asc Devuelve el valor Unicode. intValor = Asc(“A”), (intValor = 56)

Left Devuelve caracteres de una cadena, a partir del extremo izquierdo. También requiere la cantidad de caracteres por devolver.

strValor = Left(“Hola, Nicaragua”, 2), (strValor = Ho)

Right Devuelve caracteres de una cadena, a partir del extremo derecho (lo inverso de Left). También necesita la cantidad de caracteres por devolver.

strValor = Right(“Hola, Nicaragua”, 4), (strValor = agua)

Mid Devuelve caracteres contenidos en la cadena. Devuelve cualquier cantidad de ellos. La sintaxis de Mid es sReturn = Mid (cadena, Inicio [, Cantidad]), en donde el Inicio es el carácter a partir del cual devolverá la Cantidad indicada de caracteres (incluyendo el de Inicio). También puede omitir a Cantidad, y Mid devolverá todos los que haya a partir de Inicio.

strValor = Mid(“Hola, Mundo”, 4, 5), (strValor vale a Mu).

strValor = Mid(“Hola, Mundo”, 7), (strValor vale a Mundo).

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 53

Instr Encuentra una cadena en otra. Es útil cuando busca cierta cadena en un archivo. La sintaxis de esta función es: intResultado = Instr(IniciaEnCaracter CadenaDeBusqueda, CadenaPorBuscar, TipoDeComparacion)

Int = Instr(1, “Hola, Mundo”, “l”) (intValor vale 3). Tenga en cuenta que la cadena que esta buscando puede contener múltiples caracteres, por lo que buscar “mundo”, como en intValor = Instr(1, “Hola, mundo”, “mundo”), (intValor vale 7). IniciarEnCarácter es la posición en la cadena de búsqueda, 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 distinguirán las mayúsculas y minúsculas. Si TipoDeComparacion se establece a 0 (Comparación binaria), en la búsqueda se hará la distinción. Si omite o se establece a 1 (Comparación textual), no se hará la distinción. intResultado contendría la posición de la CadenaDeBusqueda donde inicie la CadenaPorBuscar. Si la cadena por buscar no se encuentra, intResultado valdrá 0. InstrRev hace la búsqueda de derecha a izquierda de la cadena, por lo demás, InstrRev es idéntica 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).

LCase Convertir una cadena a minúsculas. strValor = LCase (“Hola, Mundo”) (intValor vale “Hola, Mundo”).

UCase Convertir una cadena a mayúsculas. strValor = UCase (“Hola, Mundo”) (intValor vale “HOLA, MUNDO”).

LTrim Quita los espacios en blanco del inicio de la cadena.

strValor = LTrim (“ Hola, Mundo ”) (intValor vale “Hola, Mundo ”).

RTrim Quita los espacios finales de la cadena. strValor = LTrim (“ Hola, Mundo ”) (intValor vale “ Hola, Mundo”).

Trim Quita los espacios iniciales y finales de la cadena.

strValor = LTrim (“ Hola, Mundo ”) (intValor vale “Hola, Mundo”).

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 54

4.2.- Otras Funciones útiles – Diversas variables integradas

Por último en esta parte, hay otras funciones que no caben dentro de las categorías. 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:

Función Descripción IsArray Devuelve True si el parámetro es una matriz. IsDate Devuelve True si el parámetro se reconoce como una fecha. IsNumeric Devuelve True si el parámetro se reconoce como un número. IsObject Devuelve True si el parámetro se reconoce como un objeto. TypeName Devuelve el nombre del tipo de dato, por ejemplo, TypeName(strNombre)

devolverá “String”. Now Devuelve la fecha y hora en curso. Today Devuelve la fecha actual, con la hora establecida a 0:00:00 a.m.

(medianoche). CSht Realizar una conversión Short. Las fracciones serán redondeadas al valor

entero más cercano. CStr Realizar una conversión String. Si el valor es Date, contendrá el formato

de fecha corta. CType Realiza una conversión a cualquier tipo. Ésta es una potente función que

le permite convertir cualquier tipo de dato a otro. Por ello, la sintaxis de esta función es un tanto distinta de las demás.

5.- Arreglos en Visual Basic.Net

Objetivos didácticos:

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 según la implementación que se desea

desarrollar en la plataforma .NET 2005.

3) Creación de programas utilizando arreglos en Visual Basic .NET 2005 e implementando de una y múltiples dimensiones.

4) Trabajar en grupo de dos personas para compartir y escudriñar información que

es base para el desarrollo de los programas con sentencias de control en Visual Basic .NET 2005.

Los Arreglos pueden ser de tamaño Fijo o Dinámico, los arreglos tienen la particularidad de que se puede modificar el tamaño y conservar los datos independientemente de las dimensiones.

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 55

Para demostrar que tan grande pueden ser los arreglos procesador, utilizara los métodos Sort y Reserve de la clase Array del entorno de Microsoft.Net de Frameword para reordenar arreglos que contengan valores de números enteros aleatorios de seis dígitos. Por último, es importante utilizar el Control ProgressBar para ofrecer al usuario una señal del tiempo que tomará un proceso (Relacionado con algún arreglo o de otro tipo).

Notas:

5.1.- Definición: 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 dimensión y el tipo de implementación.

5.2.- Declare un Arreglo de tamaño fijo

La sintaxis básica de los arreglos públicos de tamaño fijo es:

Dim Nombre_del_Arreglo(Dim1 Índice, Dim2 Índice, ….) As Tipo_De_Dato En la Declaración de un arreglo, se debe especificar:

� Nombre del arreglo � Tamaño (número de elementos). � Tipo de dato de los elementos del arreglo.

Existen nuevas características de Visual Basic .Net en comparación 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 instrucción Option Base, la cual podía definir iniciar en la celda 0 o 1.

Un Obvio efecto secundario de los arreglos basados en cero es que la instrucción LBound siempre devuelve un valor de 0, debido a que el límite inferior de los arreglos siempre es 0 (sin embargo, la

Instrucción UBound continua devolviendo el índice más Alto del arreglo, el cual es igual al número de elementos menos uno).

Ahora los arreglos pueden declararse y recibir asignación de datos mediante el uso de las mismas instrucciones de los programas. Por ejemplo, la sintaxis para declarar un arreglo miArreglo() y añadir elementos de es:

Dim MiArreglo() As Integer = {7, 14, 21, 28}

La Instrucción Redim sigue siendo valida en Visual Basic .Net 2005, aunque no podrá utilizarla en la declaración inicial del arreglo. Puede ser utilizada para modificar los límites del arreglo, pero no su número de dimensiones.

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 56

� Modificador de acceso (si fuera necesario).

5.3.- Ejemplos de Declaraciones de Arreglos

a.- Arreglos de una Dimensión

Cuando se crea un arreglo, Visual Basic reserva espacio para él en la memoria. La siguiente ilustración muestra esquemáticamente la manera en que se organiza el arreglo Empleados de 9 elementos. Dichos elementos están numerados de 0 a 8 en lugar de 1 a 9, debido a que los índices del arreglo siempre inician con “cero” O (la instrucción Option Base en Visual Basic 6, que permite índices de arreglos que comienzan con el número 1, no funciona ya en la versión 2005 del software.)

Dim Empleados(9) As String ó

Public Empleados(9) As String

(0) (1) (2) (3) (4) (5) (6) (7) (8)

M a r c e l a

Arreglo compuesto de nueve celdas, todo arreglo inicia de la posición cero (0) y llega hasta el valor N-1 (en nuestro caso es 9-1= 8)

ModificadorAcceso NombreArreglo(Tamaño) As Tipo

Especifica el nivel de acceso

del arreglo.

Especifica el nombre del arreglo.

Especifica el tamaño

del arreglo.

Especifica el tipo de datos

de los elementos del

arreglo.

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 57

Para declarar un arreglo entero con siete elementos:

b.- Arreglos de Multidimensiones

Cómo utilizar arreglos multidimensionales

• Especificar todas las dimensiones y elementos • Total elementos = producto de todos los tamaños • Para declarar una variable arreglo multidimensional :

� Añadir un par de paréntesis tras el nombre de la variable � Colocar comas dentro de los paréntesis para separar las dimensiones � Iniciar la declaración con la sentencia Dim o un modificador de acceso

Ejemplo:

Para declarar un arreglo bidimensional público llamado Matriz, con espacio para cuatro filas y cuatro columnas de datos enteros de tipo Short, puede escribir esta instrucción 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 límite inferior (0). Si se observa bien, después 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 ilustración siguiente (en este caso, los elementos del arreglo están numerados de 0 a 3 y de 0 a 3).

Dim MiArreglo(6) As Integer

TextBox1.Text = CStr(MiArreglo(2))

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

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

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 58

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

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

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

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

99 100 98 96

33 38 39 31

25 21 24 27

80 83 85 99

5.4.- Consideraciones al Momento de trabajar con los Arreglos

El código 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, sólo 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 públicamente dentro de un módulo, podrá utilizarse en cualquier lugar del proyecto.

Cuando se declaran arreglos, por lo general es necesario incluir la información que se muestra en la tabla siguiente en la declaración: Información necesario en la declaración de un arreglo

Descripción

Nombre del Arreglo El nombre que utilizará para representar su arreglo en el programa. En general, la nomenclatura de arreglos sigue las mismas reglas

Arreglo

Multidimensional,

en este caso es

de dos

dimensiones, y es

de 4X4.

Arreglo de dos

dimensiones, y es

de 4X4, ahora se

observan los valores.

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 59

que las variables (vuelva a leer en sus apuntes esta información).

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.

Números de Dimensiones El número de dimensiones que contendrá su arreglo. Casi todos los arreglos son unidimensionales (una lista de valores) o bidimensionales si está trabajando con un modelo matemático complejo (por ejemplo, una figura tridimensional).

Número de Elementos 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).

Los arreglos que contienen cantidades específicas de elementos se conocen como arreglos de tamaño fijo. Aquellos que contienen un número variable (es decir que pueden ampliarse

durante la ejecución del programa) se denomina arreglos dinámicos. Para referirse a los elementos de un arreglo puede utilizar el nombre de este y un índice entre paréntesis. El índice debe ser un entero o una expresión que dé como resultado un entero. Por ejemplo, el índice puede ser un numero (como 5), una variable entera (como Núm) o una expresión (como “núm-1”); de hecho, suele utilizarse la variable contador de un bucle For…Next. Por ejemplo, la instrucción siguiente asigna el valor “Martha” a un elemento dentro de un índice 5 en el ejemplo del arreglo Empleados de la sección 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 función UBound para verificar el límite superior, o valor del índice más alto. UBound es una antigua palabra clave de Visual Basic que sigue siendo muy útil. A través 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 declaración global a nivel de formulario, entonces, se procede a esa declaración de la siguiente manera:

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 60

Luego en un Ciclo se requiere la Función UBound para identificar el máximo de elementos del arreglo, esto se realiza de la siguiente forma: UBound (NombredelArreglo) –> Verifica el límite superior <- Sintaxis de la Función La función 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 función simplemente devuelve ese valor (0). Las funciones UBound y LBound tienen la siguiente sintaxis: LBound(NombredelArreglo) –> Verifica el límite inferior <- Sintaxis de la Función 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 continuación):

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

For i = 0 To UBound(Temperaturas) . . Next

For i = LBound (Temperaturas) To UBound(Temperaturas) . . Next

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 61

Paso2: Hacer Clic en la plantilla de Windows Forms o en el botón Agregar:

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 62

Paso 3: Ir al Icono de la Ventana del Explorador de Soluciones, y hacer Clic en el icono “Ver Código”, como se muestra a continuación: Ver página Siguiente:

Paso 4: Ahora esta trabajando a Nivel de Código, seleccione la opción de Manejar eventos del

formulario Form2:

Se Agrego el

Formulario Form2

Hacer Clic en ese Icono – Observe que

sucede

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 63

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

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 64

Paso 5: En este momento seleccione el evento que se mostrara en pantalla, el cual se utilizara

para la programación 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 página, y vea con detalle como se agrega el bloque que corresponde al evento cuando se cargue el Form2.

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 65

En esta figura se observa el código 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 Propiedad del Objeto Valor de la propiedad

Text Inventario de Medicinas Farmacia Nueva Vida.

BackColor Info Label1

ForeColor Desktop TextBox1 Text

Multicine True ReadOnly True ScrollBar Vertical

Tabla.- Control de Atributos Programa 4. La forma en que vera el Formulario es la siguiente (al agregar los objetos):

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 66

Sin mucho que esperar, pase al siguiente Inciso: Paso 7: Ya se tiene el Formulario a Nivel de Diseño, pero no esta programado, entonces, es aquí

donde tiene que agregar las siguientes instrucciones: Usted tiene que ver a nivel de código 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"

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 67

Nombre_Productos(4) = "Penisilina" Nombre_Productos(5) = "Dulce sueño" '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:

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 68

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 opción Depurar, luego seleccione F5, y

exactamente sucederá lo que hizo con el Inciso “a”. d.- Otra opción, y se practica en clases, es marcar un bloque con el cursor (dar clic al lado

derecho de la instrucción, ahí vera un punto Rojo [una esfera roja a la par de la

Instrucción]), lo que indicara, que si usted da F5 en ese momento, el programa correrá hasta esa instrucción, 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 práctica más ágil, coloque un nombre representativo al formulario Form2, como por ejemplo: “Sistema de Control de Productos”. Paso 9: Ahora Agregue dos Objetos más, un Label2 y un ComboBox1 (este es utilizado para

Visualizar datos, muestra como se puede deslizar a lo largo de sus elementos [es idóneo

para arreglos]).

Ver siguiente página -> Agregue un

ComboBox1 al Formulario Form2

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 69

Incorpore al formulario, los siguientes elementos: Objeto Propiedad del Objeto Valor de la propiedad

Text Listado De Productos Mediante un Combo:

BackColor Info (esto es opcional – para usted como programador)

Label2

ForeColor Desktop (esto es opcional – para usted como programador)

ComboBox1 Text Paso 10: Al Agregue los dos Objetos más (un Label2 y un ComboBox1), es que usted tenga una

manera adicional en la cual pueda observar los elementos del arreglo. Observe ese detalle

Recuerde Agregar un

Label2

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 70

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 sueño" '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.

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 71

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. Continúa en la siguiente página:

Utilizando Combos, mire como presenta

los datos este Objeto.

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 72

b.- Ahora, el evento al hacer SelectedIndexChanged.

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 73

c.- Se agrega el siguiente Código: Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged ‘No existe ninguna Instrucción End Sub d.- Para poder hacer posible la selección 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 página (con las propiedades que se muestran en la tabla): Objeto Propiedad del Objeto Valor de la propiedad

TextBox2 Text

Label3 Text Producto Seleccionado en

el Combo

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

ComboBox1.

Agregar un Label3, Donde se vera el

siguiente mensaje.

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 74

Paso 12: Agregue el siguiente código al evento Private Sub ComboBox1_

SelectedIndexChanged: 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 posición 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 posición seleccionada MessageBox.Show("Valor de la Celda es: " & p, "Valor de la posición 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 página a continuación):

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 75

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

Entonces al final Observara como se mostró la posición y el contenido del Combo Box1.

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 76

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

N° Nombre del Producto Precio del Producto 0 Amoxicilina 2.5 1 Penisilina 3.5 2 Antmicina 7.5 3 Panadol 5.5 4 Antigripal 8.5 5 Dulce sueño 3.5

Para lograr este fin, usted tiene que diseñar 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

recomendación 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 opción 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 cálculo 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.

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 77

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

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 78

Otro Ejemplo, Ahora aprenda a Manejar Múltiples Líneas (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 botón de comando, con el nombre de Ejecutar.

3.- Hacer Clic en el Botón y digitalizar el siguiente Código:

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 & "Línea " & i & Encapsular Next i

End Sub End Class

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 79

Ahora aprenda a Manejar Múltiples Líneas (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 Código:

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

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 80

Ahora aprenda a Manejar Múltiples Líneas (Con TextBox)

1.- Diseñar el formulario que se le presenta:

a.- Un Label, en la propiedad text digitalizar: Trabajando con Arreglos. b.- Un TextBox, dejar la propiedad Text vacía. c.- Un botón con la propiedad text: Introducir Temperaturas. d.- Un botón con la propiedad text: Mostrar la Temperatura.

2.- Hacer Clic en el Botón Introducir Temperaturas, ahí digitalizar el siguiente código:

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 más Alta del Día" For i = 0 To UBound(Temperaturas) Title = "Día" & (i + 1) Temperaturas(i) = InputBox(Prompt, Title) Next End Sub

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 81

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

3.- Hacer Clic en el Botón Mostrar la Temperatura, ahí digitalizar el siguiente código: 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 más Altas de la Semana: " & vbCrLf & vbCrLf For i = 0 To UBound(Temperaturas) Resultado = Resultado & "Día" & (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

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 82

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 información 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.

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 83

6.- Trabajando con Funciones, Procedimientos y Módulos

1) Estudiar las reglas que definen tanto la declaración de Funciones, Procedimientos y módulos en Visual Basic .NET 2005.

2) Analizar la diferencia entre los Funciones, procedimientos y módulos en Visual

Basic .NET 2005, tanto al momento de declararlos, así como la implementación y uso de estos.

3) Realizar prácticas de funciones, procedimientos y módulos en programas donde se visualice tanto el traspaso de valores (parámetros de las funciones y procedimiento) por referencia y valor.

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 84

6.1.- Migración del código de Visual Basic 6 a Visual Basic 2005

Notas de actualización: Migración del código de Visual Basic 6 a Visual Basic 2005 Si tiene experiencia con Microsoft Visual Basic 6, observará que existen nuevas características en Microsoft Visual Basic 2005, entre las cuales se incluyen las siguientes:

Las versiones anteriores de Visual Basic hacían una distinción entre módulos estándar y módulos de clases. En Microsoft Visual Studio 2005, los términos relacionados simplemente son módulos y clases.

Visual Basic sigue ofreciendo soporte para los módulos, pero, desde Microsoft Visual Basic .NET 2002, ha sido necesario agrupar el contenido del módulo con las palabras clave Module y End Module dentro del Editor de código.

Visual Basic 2005 aún permite el uso de las palabras clave Function y Sub, con las cuales es posible crear procedimientos propios. Sin embargo, las sintaxis para la instrucción y la invocación de procedimientos han cambiado un poco.

Si está empleando el parámetro predeterminado para controlar la declaración de variables (Option Explicit), es recomendable que declare las funciones de manera específica, 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 envían 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 envían de vuelta a la rutina que hizo la invocación. Se puede especificar de forma explicita la conducta del envío 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 tenía en Visual Basic 6.

Al invocar procedimientos en Visual Basic 2005 se requiere paréntesis alrededor de todas las listas de argumentos. El IDE de Visual Studio añade los paréntesis automáticamente incluso cuando sus procedimientos no necesiten argumento alguno (en cuyo caso se insertan paréntesis vacíos).

Los programadores cuentan ahora con la opción de utilizar la declaración Return para enviar de vuelta el resultado del cálculo de una función a la rutina que hizo la llamada. Visual Basic 2005 también ofrece soporte al antiguo método para asignar un valor al nombre de la función.

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 85

6.2.- Qué son los Módulos Module, los Procedimientos Sub y los Procedimientos de Función Function

Hablando estrictamente de Module, un módulo de Código público, declaraciones, procedimientos Sub y funciones Function, que pueden compartirse entre todos los módulos de un proyecto. En versiones anteriores de Visual Basic 6, un módulo de código se menciona como un módulo estándar (opuesto a un módulo de Formulario o clase). Cuando escriba programas más 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, sólo pueden leer o modificarse dentro del procedimiento de evento en el cual fueron creadas. Recordando, también es posible declarar variables en la parte superior de un formulario sólo serán validas en él. De igual manera, de forma predeterminada los procedimientos de evento se declaran como privados código de programación 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 más adelante). Para compartir variables y procedimientos entre todos los formularios y procedimientos de eventos de un proyecto, es necesario declararlos dentro de uno o más módulos incluidos en él. Los módulos son archivos especiales cuya extensión 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 módulos estándar tienen la extensión de archivo .bas). Al igual que los formularios, los módulos 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 módulos sólo contienen código y no cuentan con una interfaz de usuario. A pesar de que los módulos tiene algunas similitudes con las clases (antiguamente conocidas como módulos de clases), la diferencia de éstas, es porque en aquel instante no estaban orientada a objetos, ni tampoco, definían estructura, ni características de objetos, y no pueden heredar.

6.3.- Procedimientos de evento en comparación con procedimientos generales

Un procedimiento general le dice a su aplicación cómo realizar una tarea

especifica. Una vez que usted ha definido el procedimiento, éste debe ser explícitamente llamado por su aplicación. 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 ratón) o por el sistema (un evento de cronómetro o carga). Usted puede colocar un procedimiento general en un módulo de forma, de código o de clase.

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 86

6.4.- Funciones (Function)

Una función es un procedimiento que cuando se ejecuta devuelve un resultado.

La sintaxis correspondiente a una función es la siguiente:

Function nombre[ByVal parámetro1, ByVal parametro2, …… ] [As Tipo] [Sentencias] [nombre = expresión] o [Return (Valor retorno)]

End Function

Ejemplo1: ' Funcion que recibe como parametro el costo de un producto "costo", luego, 'se recibe la posición del objeto donde el usuario hizo Click 'La función 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 posición del control donde el usuario hizo click p = pos ' Asignar la posición del objeto. 'Sentencia condicional utilizada para el cálculo del impuesto. If p = 0 Then imp = 0.1 * costo 'si es la posición cero ElseIf p = 1 Then imp = 0.11 * costo 'si es la posición uno ElseIf p = 2 Then imp = 0.11 * costo 'si es la posición dos ElseIf pos = 3 Then imp = 0.12 * costo 'si es la posición tres Else imp = 0.15 * costo 'si es cualquier posición diferente a las anteriores End If 'Retornar el valor del impuesto en base a la selección que coincidio Return (imp) ' Estilo de retorno de Visual Studio 2005.

'Impuestos = imp ' modo alternativo y valido, basado en la versión VB6. End Function ' Fin de la Función nombre Es el de la función; su tipo determina el tipo de datos que devuelve

la función. Para especificar el tipo, utilice los caracteres de declaración de tipo o la cláusula As tipo (Short, Integer, Long, Double, String, Decimal, etc – Ver tabla de Tipos de Datos en la UNIDAD II); el tipo es Decimal por omisión.

parámetros Son una lista de variables que se corresponden con los argumentos

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 87

que son pasados cuando es invocada la función. Cuando se llama a una función, Visual Basic asigna el valor de cada argumento en la llamada al parámetro que ocupa su misma posición en la lista de parámetros de la función.

expresión

Define el valor devuelto por la función. Este valor es almacenado en el propio nombre de la función, que actúa como variable dentro del cuerpo de la misma. Si no se efectúa esta asignación, el resultado devuelto será 0 si esta es numérica, nulo (“ ”) si la función es de caracteres, o vacío (Emply).

End Function

Esta sentencia, al igual que Exit Function, devuelve el control a la sentencia que se encuentra inmediatamente a continuación de esta forma la ejecución del Programa.

La llamada a una función 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 número de argumentos debe ser igual al número de parámetros de la función. Los tipos de argumentos deben coincidir con los tipos de sus correspondientes parámetros.

Por compatibilidad con otros lenguajes, es aconsejable escribir los paréntesis

cada vez que se llama a una función, aunque ésta no tenga argumentos. Una llamada a una función puede formar parte de una expresión. Un Ejemplo2 de una función es el cálculo 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

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 88

Observe que el valor que deseamos que devuelve la función hay que almacenarlo en el propio nombre de la función, frMedia.

Ahora bien, observe el llamado que se hace a la función en el momento que se cargue el formulario, la función fnMedia recibe por parámetro los valores (solo el nombre de las variables que se recibirán), y como la función retorna siempre un valor se debe asignar a una variable del mismo tipo de retorno que la función.

Private Sub Form2_Load(ByVal sender As Object, ByVal e As 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 función frMedia

pasándola como argumento dicho arreglo.

Media = frMedia(a) ‘se pasa como argumento el arreglo a

Function fnMedia(ByVal x() As Integer) As Integer

Declare en la Sección General de Variables: Media As Integer En momento de llamar a la función, 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 sólo es visible dentro de este procedimiento, y los parámetros de un procedimiento, como x, por definición son locales al propio procedimiento. Según esto, el parámetro x de frMedia también lo podíamos haber denominado a puesto que sólo es visible dentro de su propio procedimiento.

Guarde la aplicación y los módulos con el nombre función. Después ejecute la aplicación y analice los resultados.

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 89

6.5.- Declare una Función de ámbito Privado

'Función 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 Función de la lectura del dato que el usuario proporcionara

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

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 90

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 código que realiza una tarea especifica dentro del programa, pero que no devuelve un valor explicito. Un procedimiento Sub comienza con una instrucción Sub y termina con una instrucción End Sub, como ha visto en muchos de los procedimientos asociados con eventos particulares, como un evento Click de un botón.

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 más adelante en el curso). La sintaxis que define un procedimiento es la siguiente:

Sub nombre([ByVal parámetro1, ByVal parametro2, ……]) ‘No se retorna Valor [Sentencias]

End Sub La explicación es análoga 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 función, un procedimiento no puede ser utilizado en una

expresión, ya que un procedimiento no retorna un valor a través 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 parámetro, 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 página:

'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

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 91

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 parámetros, uno es un arreglo de tipo entero, y el segundo elemento es la cantidad de elementos (si se observa realmente, para fines prácticos, esto ya lo podemos calcular con las función UBound que se ha utilizado anteriormente, ya que se puede cuestiones de una mala programación, pero para fines y efectos, este es un ejemplo de lo que usted puede llegar a desarrollar con procedimientos). Añada un módulo proSuma que se expone a continuación:

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 parámetros (esta variación

se ha hecho sólo por motivos didácticos). El primer parámetro es un arreglo de tipo Integer y el segundo que indica su número 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 están ‘ entre paréntesis.

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 As Object, ByVal e As 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”

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 92

procSuma a, 3 ‘Se pasa como argumento el arreglo “a” y su ‘Número de elementos. También se podría ‘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.

También es importante notar, que los procedimientos no retornan valor.

6.7.- Declare un Procedimiento Privado

Para hacer que un procedimiento (Sub o Function) sólo sea accesible desde los

procedimientos del módulo 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

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 93

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 módulo.

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 parámetro en el cuerpo del procedimiento, también se produce en el argumento correspondiente de la llamada al procedimiento. Por ejemplo, en la función 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 función fnMedia se modifica algún

elemento del arreglo x, dichos cambios también serían vistos desde a, porque pasar a por referencia significa que ambas variables, a y x, referencian los mismos valores. Cuando se pasa un parámetro por referencia, lo que realmente se pasa al procedimiento es dónde están 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 paréntesis en la llamada. Un argumento entre paréntesis 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

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 94

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 parámetro n del procedimiento no se confunde porque los parámetros de un procedimiento son locales al mismo). Si el procedimiento procSuma cambiara el valor de n, el cambio afecta sólo 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 declaración del parámetro en la cabecera del procedimiento (Sub o Function). Análogamente, ByRef especifica que el parámetro 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 paréntesis en la llamada.

Una estructura (tipo definida por el usuario) también 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 función puede retornar una estructura. 6.9.- Practicando Módulos, Funciones y Procedimientos Para poder hacer posible esta practica, recuerde siempre seguir todos los pasos anteriormente especificados y que son de base para la creación de un Proyecto en Visual Basic .Net. A continuación se detallan las acciones a seguir: a.- Crear un Proyecto con el Nombre de Mi Manejo_Modulos.

b.- Agregar un Formulario llamado MI_Form.

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 95

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 ratón sobre el mismo, se abrirán la siguientes opciones:

Debe seleccionar agregar nuevo elemento.

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 96

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 97

Ahora le aparecerá en pantalla el modulo, pero le muestro como se vera cuando agregue el código.

d.- Ahora en el Formulario agregue el siguiente código (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

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 98

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

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 99

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 práctica, recuerde siempre seguir todos los pasos anteriormente especificados y que son de base para la creación de un Proyecto en Visual Basic .Net. A continuación se detallan las acciones a seguir: a.- Crear un Proyecto con el Nombre de Mi Manejo_Modulos.

b.- Agregar un Formulario llamado MI_Form.

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 100

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 ratón sobre el mismo, se abrirán la siguientes opciones:

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 101

Debe seleccionar agregar nuevo elemento.

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 102

Ahora le aparecerá en pantalla el modulo, pero le muestro como se vera cuando agregue el código.

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 103

d.- Ahora en el Formulario agregue el siguiente código (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()

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 104

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

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 105

Problema #2 La Joyería Sáenz 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 continuación se brindan los detalles: N° Modelo Precio

normal Con Dige Con

Esclava Con Cadena y

Dige Anillo en 14

K.T. 1 Anillo Excell C$ 3,250.00 C$ 3,430.00 C$ 3,610.00 C$ 3,790.00 C$ 3,800.00

2 Anillo Ovalado Económico

C$ 2,000.00 C$ 2,180.00 C$ 2,360.00 C$ 2,540.00 C$ 2,500.00

3 Anillo Ovalado Pequeño

C$ 2,500.00 C$ 2,680.00 C$ 2,860.00 C$ 3,040.00 C$ 3,000.00

4 Anillo Ovalado Mediano

C$ 3,250.00 C$ 3,430.00 C$ 3,610.00 C$ 3,790.00 C$ 3,800.00

5 Anillo Ovalado Grande

C$ 4,250.00 C$ 4,430.00 C$ 4,610.00 C$ 4,790.00 C$ 5,000.00

6 Anillo Marquesa B1

C$ 3,250.00 C$ 3,430.00 C$ 3,610.00 C$ 3,790.00 C$ 3,800.00

7 Anillo Marquesa B2

C$ 2,500.00 C$ 2,680.00 C$ 2,860.00 C$ 3,040.00 C$ 3,000.00

8 Anillo Marquesa B3

C$ 2,750.00 C$ 2,930.00 C$ 3,110.00 C$ 3,290.00 C$ 3,500.00

9 Anillo Marquesa B4

C$ 2,500.00 C$ 2,680.00 C$ 2,860.00 C$ 3,040.00 C$ 3,000.00

10 Anillo Josué Pequeño

C$ 2,500.00 C$ 2,680.00 C$ 2,860.00 C$ 3,040.00 C$ 3,000.00

11 Anillo Josué Extragrande

C$ 5,500.00 C$ 5,680.00 C$ 5,860.00 C$ 6,040.00 C$ 7,000.00

12 Anillo Setonaga Pequeño

C$ 2,500.00 C$ 2,680.00 C$ 2,680.00 C$ 3,040.00 C$ 3,000.00

13 Anillo Setonaga Mediano

C$ 3,250.00 C$ 3,430.00 C$ 3,610.00 C$ 3,790.00 C$ 3,800.00

14 Anillo Setonaga Grande

C$ 4,250.00 C$ 4,430.00 C$ 4,610.00 C$ 4,790.00 C$ 5,000.00

15 Anillo ejecutivo Grande

C$ 4,250.00 C$ 4,430.00 C$ 4,610.00 C$ 4,790.00 C$ 5,000.00

16 Anillo ejecutivo Grande

C$ 5,500.00 C$ 5,860.00 C$ 5,860.00 C$ 6,040.00 C$ 7,000.00

17 Anillo Tradicional Pequeño

C$ 2,500.00 C$ 2,680.00 C$ 2,860.00 C$ 3,040.00 C$ 3,000.00

18 Anillo Tradicional Mediano

C$ 2,500.00 C$ 3,430.00 C$ 3,610.00 C$ 3,790.00 C$ 3,800.00

19 Anillo Tradicional Grande

C$ 4,250.00 C$ 4,430.00 C$ 4,610.00 C$ 4,790.00 C$ 5,000.00

20 Anillo Tradicional Extragrande

C$ 5,500.00 C$ 5,680.00 C$ 5,860.00 C$ 6,040.00 C$ 7,000.00

21 Anillo Trifásico Pequeño

C$ 2,500.00 C$ 2,680.00 C$ 2,680.00 C$ 3,040.00 C$ 3,000.00

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 106

22 Anillo Trifásico Mediano

C$ 3,250.00 C$ 3,430.00 C$ 3,610.00 C$ 3,790.00 C$ 3,800.00

23 Anillo Trifásico Grande

C$ 4,250.00 C$ 4,430.00 C$ 4,610.00 C$ 4,790.00 C$ 5,000.00

24 Anillo Moderno Pequeño

C$ 2,500.00 C$ 2,680.00 C$ 2,680.00 C$ 3,040.00 C$ 3,000.00

25 Anillo Moderno Mediano

C$ 3,250.00 C$ 3,430.00 C$ 3,610.00 C$ 3,790.00 C$ 3,800.00

26 Anillo Moderno Grande

C$ 4,250.00 C$ 4,430.00 C$ 4,610.00 C$ 4,790.00 C$ 5,000.00

27 Anillo Moderno Extra grande

C$ 5,500.00 C$ 5,680.00 C$ 5,860.00 C$ 6,040.00 C$ 7,000.00

28 Anillo Mary C$ 2,500.00 C$ 2,680.00 C$ 2,680.00 C$ 3,040.00 C$ 3,000.00

29 Anillo Fascinación

C$ 1,500.00 C$ 1,680.00 C$ 1,680.00 C$ 2,040.00 C$ 1,800.00

30 Anillo Centenario Mediano

C$ 3,250.00 C$ 3,430.00 C$ 3,610.00 C$ 3,790.00 C$ 3,750.00

31 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 práctica, realice los siguientes pasos: Paso1: Crear un formulario con los siguientes elementos:

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 107

a.- Un Textbox, que permita: Múltiples líneas, que este permita el relleno de forma vertical y que sea solo para lectura.

b.- Un Botón, 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 colóquelo 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 Económico" Nombre_Anillos(2) = "Anillo Ovalado Pequeño" 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é Pequeño" Nombre_Anillos(10) = "Anillo Josué Extragrande" Nombre_Anillos(11) = "Anillo Setonaga Pequeño"

'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.

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 108

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.

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 109

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

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 110

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 prácticas 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 continuación:

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 Programación Orienta a Objetos en VB .Net (Ver Gráfico #2).

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 111

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 práctica en este sentido (sino lo hace así, demuestra que no ha estudiando nada).

Recuerde que es una Aplicación para Windows en este momento. Figura #2: Seleccionando la Plantilla.

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 112

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

Ahora Concéntrese en el Formulario FrmPOO.

Gráfico #3: Crear FrmPOO de cómo quedará nuestro formulario.

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 113

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 opción Proyecto, a continuación selecciones Agregar nuevo Elemento, exactamente como aparece en el siguiente gráfico:

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

Debe seleccionar Agregar un nuevo Elemento. Hacer Click.

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 114

Siguiendo los pasos, se abre el siguiente Formulario:

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

Gráfico #6: Formulario FrmPOO

Seleccionar Formulario de Windows

Figura #5: Agregando Formulario.

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 115

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 código, debe digitalizarlo íntegramente, dentro del formulario, recuerde que me refiero a las Instrucciones que serán 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

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 116

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.

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 117

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

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

col.Add(New Persona("Pepe", "Aguilar"))

col.Add(New Persona("Pedro", "Infante"))

col.Add(New Persona("Vicente", "Fernández"))

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

Gráfico #7: Formulario FrmPOO y DataGridView

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 118

Si todo esta correcto, entonces se generara, la siguiente presentación en pantalla:

Tareas:

Ahora usted hágalo en base a las orientaciones seguidas en el simulacro examen (es decir, esos dos programas que quedaron en clase, ahora utilizar esta técnica), entonces tiene tres programas (este mismo, más los otros dos) que hacer para el próximo día de clase.

Gráfico #8: Formulario FrmPOO y DataGridView en tiempo de Ejecución.

Curso .NET 2005 Primera Parte

Ing. Giovanni Sáenz 119

Bibliografía 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, Ingeniería en Computación.