Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
NET 2005
Primera Parte
Estudio de la Plataforma Studio .NET 2005. Aplicaciones Windows Vs Web en Studio .Net 2005.
Primera Parte
Tabla de Contenido
Tabla de Contenido____________________________________________________________ 2 I.- Definicin de la Plataforma .NET _____________________________________________ 5
1.1.- Componentes de la Plataforma:__________________________________________________ 5 1.2.- Capas principales de la plataforma .NET__________________________________________ 7 1.- Capa de lenguajes: ______________________________________________________________ 7 2.- .NET Framework (Infraestructura y servicios): ______________________________________ 7 3.- Capa de servicios (Services): ______________________________________________________ 7 4.- Biblioteca de clases base (BCL/Base Class Library): __________________________________ 8 5.- Motor comn de ejecucin (CLR/Common Language Runtime): _______________________ 8 6.- Soporte operativo: ______________________________________________________________ 8 1.3.- Capa de lenguaje de .NET _____________________________________________________ 10
Primera Parte
3.3.1.- Tareas para las sentencias de Control Cclicas ___________________________________ 40 3.4.- Sentencia de Control con IfEndIf _____________________________________________ 41 3.4.1.- Para el caso del Ejemplo de implementacin de If - Else ___________________________ 42 3.4.2.- Ahora Mezclando un Ciclo con la sentencia Condicional If_________________________ 45 3.5.- Sentencia de Control Select Case.End Select ____________________________________ 50 4.- Funciones de Conversin________________________________________________________ 51 4.1.- Funciones de Manejo de cadenas________________________________________________ 52 4.2.- Otras Funciones tiles Diversas variables integradas _____________________________ 54
7.- Trabajando Con Clases y Objetos en Visual Basic .Net 2005 ______________________ 110 Tareas:____________________________________________________________________ 118 Bibliografa ________________________________________________________________ 119
Primera Parte
Primera Parte
Primera Parte
.NET no es slo un conjunto de lenguajes o un producto de Microsoft metido en una caja, es toda una plataforma de desarrollo orientado a objetos, que resuelven muchos problemas que se presentan hoy en da al desarrollar aplicaciones empresariales (realmente en el mercado Nicaragense, este es el papel que se ha orientado, el cual se puede observar en las Empresas e Instituciones adems que los incentivos que se ofrecen a la mano de obra capacitada, es muy gratificante, y abre muchas oportunidades).
En la presente tabla se muestran Problemas que elimina .NET Estos son algunos de los Inconvenientes que se eliminan con .NET son:
1.- El Infierno de la utilizacin de los DLL. 2.- Falta de interoperatibilidad con otras plataformas. 3.- Incapacidad para el manejo de esquemas orientado a objetos. 4.- Manejo deficiente de errores. 5.- Incapacidad para utilizar Internet como medio eficiente de comunicacin. 6.- Desaprovechamiento de la experiencia ganada como consecuencia del manejo de otros lenguajes. 7.- Incapacidad para el desarrollo de aplicaciones que aprovechen arquitecturas de 64 bits. Tabla #1: Inconvenientes que elimino de .NET Ahora analicemos los beneficios que nos proporciona la plataforma .NET.
En la presente tabla se detallan los beneficios .NET Estos son algunos de los Inconvenientes que se eliminan con .NET son:
1.- Integracin de aplicaciones multi-lenguajes. 2.- Homologacin (Equiparar, poner en relacin de igualdad dos cosas - RAE) de las capacidades de los lenguajes. 3.- Disponibilidad de una biblioteca de clases comn para los lenguajes. 4.- Arquitectura abierta a nuevos lenguajes. 5.- Desarrollo simplificado. 6.- Implementacin simple. 7.- Mejor soporte de componentes. 8.- nter operacin con Internet. 9.- nter operacin con dispositivos mviles. 10.- Rentabilidad. 11.- Seguridad. 12.- Fcil implementacin (Copy Deployment). 13.- Permite el desarrollo de aplicaciones de 64 bits. 14.- En Nicaragua es mejor pagada la mano de obra capacitada en .NET, en comparacin con el Software Libre (e inclusive por lo menos de un 100% hasta un 3000%). Tabla #2: Beneficios de .NET Independientemente de lo que ofrece Studio .NET, los mayores retos implicados en el aprendizaje de cualquier lenguaje .NET, es entender la forma en que esta plataforma trabaja. Es
Ing. Giovanni Senz 6
Primera Parte
muy importante considerar y tener en cuenta, que existen mucho tecnicismos y exigencias de nivel de programacin, los cuales se acoplan a esta tecnologa que propone Microsoft, lo cual es necesario conocer en toda su dimensin (factor que ayudara a tener una visin clara del poder de procesamiento de las instrucciones de esta fabulosa herramienta de trabajo).
1.- Capa de lenguajes: La capa de lenguajes esta integrada por la CLS (Especificacin
comn para lenguajes, Common Language Specification) y los lenguajes de programacin compatibles con ella. La CLS es una especificacin abierta de Microsoft que los lenguajes deben cumplir para ser considerados .NET. A la fecha Microsoft ha publicado cinco lenguajes y sus compiladores, los cuales son: Visual Basic. C#. C++. Visual J#. JScript. Otros fabricantes pueden implementar sus propios lenguajes .NET siempre y cuando respeten los lineamientos CLS y proporcionen los compiladores para generar el cdigo intermedio reconocido por .NET.
Primera Parte
Existen dos principales: a.- Windows Application Services: que dan soporte a las aplicaciones de interfaz grfica estilo Windows y a las de consola en su dialogo con .NET Framework y el sistema operativo. b.- ASP.NET Application Services: que apoya a las aplicaciones de interfaz grfica basadas en la Web, servicios Web XML y aplicaciones de cmputo mvil en su dialogo con .NET Framework y el sistema operativo, a travs del motor de servicios Web. En plataforma Microsoft este motor de servicios Web se llama Internet Information Server (IIS Esta la utilizaremos ampliamente cuando estemos trabajando con SQL Server 2005).
4.- Biblioteca de clases base (BCL/Base Class Library): La biblioteca de clases (BCL/Base Class Library) esta constituida por un conjunto de biblioteca de clase que ponen a disposicin de los programas un conjunto de funciones jerrquicamente organizadas, que podrn ser utilizadas como funciones nativas de manera no dedicada por todos los lenguajes de .NET. 5.- Motor comn de ejecucin (CLR/Common Language Runtime): El
motor comn de ejecucin (CLR/Common Language Runtime) es la plataforma comn de ejecucin de los programas desarrollados en cualquier lenguaje .NET. CLR agrupa: a.- Compiladores de lnea de comando que permiten la creacin de cdigo intermedio, libre de ambigedades, al que se conoce como ensamblado (assembly). b.- Contiene adems los compiladores JIT, Just in Time Compilers, que se encargan de generar cdigo maquina a partir de los ensamblados. c.- CLR se encarga de la gestin de errores, la administracin de recursos y el dialogo con el sistema operativo en tiempo de ejecucin. A todo lo que requiere de la intervencin de CLR para funcionar se le da el calificativo de administrado (managed).
6.- Soporte operativo: La capa de soporte operativo es la compuesta por las herramientas que se integran al sistema operativo al momento de instalar .NET Framework en un equipo. Con esta operacin, el sistema operativo se modifica para poder interpretar y ejecutar aplicaciones .NET de forma nativa. Esta capa permite que el sistema operativo responda a indicaciones de accin emitidas por CLR en tiempo de ejecucin.
Primera Parte
NOTA
Microsoft ha denominado de diferentes formas a los productos y lenguajes que componen la tecnologa .NET: En la versin 1.0 de .NET Framework los lenguajes eran: Visual Basic.NET. Visual C#.NET. Managed C++. Mientras que el entorno integrado de desarrollo se conoca como Visual Studio.NET 2002. Por ser productos nuevos, exista la necesidad de diferenciarlos de las propuestas anteriores; incluso internamente en la compaa se penalizaba a quien osara referirse a Visual Basic.NET como Visual Basic 7. En la versin 1.1 de .NET Framework, los lenguajes pasaron a ser: Visual Basic.NET. Visual C#. Managed C++. Y se trabajaba con Visual Studio. NET 2003. Ahora, en la versin 2.0 de .NET Framework, las versiones anteriores de los lenguajes, resultan anacrnicas, por lo que se conocen como Visual Basic, C# y C++. Se elimina tambin el .NET en Visual Studio; el nombre de la penltima versin queda entonces como Visual Studio 2005.
Primera Parte
Visual Basic
C#
C ++
J++
JScript
Otros
Biblioteca de Clases base de .NET Framework (BCL/ Base Clase Library) CLR (Common Language Runtime) CLI (Common Lenguage Infraestructure)
Primera Parte
capacidades mnimas soportadas por el motor de ejecucin de .NET (CLR). Todas las herramientas y componentes de .NET, por ejemplo, conviven y utilizan las clases de BCL, adems de ser orientadas a objetos; esto porque CLS lo determina como condicin para formar parte de la tecnologa .NET. El cumplimiento de estas reglas garantiza un comportamiento homogneo de todos los componentes y herramientas de desarrollo .NET. Todos los lenguajes .NET liberados por Microsoft cumplen con la CLS; esto convierte a Microsoft .NET en un ambiente multi-lenguaje; es decir, un entorno donde todos los lenguajes permiten hacer prcticamente lo mismo dado que cumplen con un mismo marco original de trabajo y funcionamiento (CLS).
Cualquier desarrollador experimentado puede aventurase a desarrollar su propio lenguaje de programacin basado en .NET y proponerlo al mercado. Basta con desarrollar las herramientas necesarias para el trabajo con el lenguaje, incluyendo el compilador y el analizador el mismo. El nico requisito es que debe cumplir con todas las reglas definidas en la CLS. Capacidad multi-lenguaje de .Net: Dado que todos los lenguajes de .NET cumplen con CLS, su programacin es bastante similar.
11
Primera Parte
Visual Studio 2005 es semejante a la versin 2003, existen muchas mejoras y diferencias importantes, como por ejemplo la declaracin de variables, el ambiente, el entorno para las bases de datos, as como los controladores que se utilizan ahora.
12
Primera Parte
NOTA Este Tutorial esta desarrollado para la versin de Visual Studio .Net Standard y la versin Profesional. Es posible que encuentre algunas diferencias si utiliza otras ediciones. Si emplea la versin Express quizs vea que las caractersticas varan de forma significativa.
13
Primera Parte
2.1.- Notas de Actualizacin 2.1.1.- Migracin del Cdigo de Visual Basic 6 a Visual Basic 2005
Si tienes experiencia con Microsoft Visual Basic 6, notaras varias diferencias (algunas bastantes significativas) caractersticas, las cuales son propias de Visual Basic 2005 y algunas que fueron mejoradas en versiones intermedias a estas dos, las cuales son las siguientes:
14
Primera Parte
Para fomentar una buena practica de programacin y la generacin de cdigos de programacin ms limpios, en Visual Basic 2005 es necesario declarar todas las variables antes de utilizarlas. LA instruccin implcita de variables (el uso de variables sin declararlas) est permitido solo si usted utiliza la instruccin Option Explicit Off, lo cual no es recomendable.
Visual Basic 2005 ya no soporta el tipo de dato Variant. Usted deber declarar todas las variables utilizando Dim y la palabra clave As para identificar el tipo de datos que contendr.
Existen muchos nuevos tipos de datos fundamentales, y algunos de los ms antiguos ahora tienen soporte para diferentes rangos. Por ejemplo a.- Existe un tipo de datos Short de 16 bits. b.- Un Integer de 32 bits. c.- Otro Long de 64 bits. d.- El tipo Currency de visual Basic 6 ha sido reemplazado por Decimal. A partir de Microsoft Visual Studio .Net 2002, Visual Basic ofreci una instruccin de programa y una configuracin del compilador llamada Option Strict, la cual (cuando estaba habilitada) requera que las variables a agregar, comparar o combinar fueran del mismo tipo de datos. En Visual Basic 2005 esta configuracin del compilador esta desactivada de manera predeterminada, lo que significa que variables de diferentes tipos de datos pueden combinarse en ciertas circunstancias sin generar error de compilacin (Para revisar la configuracin del compilador, haga clic en el comando Opciones del Men Herramientas. Expanda la categora Proyectos y Soluciones, y hacer clic en la opcin valores predeterminados de Visual Basic). Los Diseadores de Visual Basic Studio ofrecen esa configuracin como una proteccin Profesional contra errores provocados por la falta de coincidencia entre los tipos, y puede ser una medida de seguridad til en proyectos de programacin ms grandes. Si usted habilita la Option Strict necesitara familiarizarse con funciones de conversin de tipos de datos como: a.- Cint. b.- Clong. c.- Ctype, etc. Todo esto para lograr la compatibilidad de los datos. Lo recomendable es dejar configurado Option Strict como false, ya que en algunos casos se vera que los programas no se ejecutan en orden o forma adecuada o correcta (en caso de tener Option Strict configurado como True).
Visual Basic 2005 ya no proporciona palabras claves integradas, como Abs o Cons, para las operaciones Matemticas. En su lugar se deben utilizar los mtodos de la biblioteca de clase System.Math de .Net FrameWork. La operacin de estos mtodos es similar a la de las funciones ya conocidas de Visual Basic 6, a pesar de que algunos nombres han cambiado, por ejemplo: Sqr ahora es Sqrt.
Ing. Giovanni Senz 15
Primera Parte
Visual Basic 2005 ofrece smbolos de acceso directo para ciertas operaciones matemticas bsicas, como suma (+), resta (-) y multiplicacin (*). Con ayuda de estos accesos directos es posible escribir una formula como X = X + 2 usando la sintaxis X += 2 (si usted a programado en Lenguaje C o en Java o C#, es exactamente las caractersticas de los operadores Monarios).
Visual Basic 2005 incluye un Objeto MessageBox, que es una alternativa para la funcin MsgBox y sirve para desplegar cuadros de mensajes. El mtodo a utilizar para este propsito es MessageBox.Show. Tabla #2.1.-: Actualizacin de Visual Studio .NET 2005.
Adems puede guardar informacin digitalizada por el usuario en el tiempo de ejecucin, el resultado de un clculo especfico o una pieza de datos que quiera desplegar en su formulario. En pocas palabras, las variables son espacios de almacenamientos que se utilizan para guardar informacin de forma ordenada (bueno, esto depende del programador) y es utilizada para llevar rastreo de cualquier tipo de informacin. Las variables permiten asignar nombres cortos y fciles de recordar a cada pieza de datos con la que planee trabajar. Siempre la utilizacin de variables requiere una planificacin previa para el uso de estas. Antes de utilizar una variable, debe apartar memoria en la computadora para el uso de esta (en algunos lenguajes se conoce como reserva de memoria). Este procedimiento es como hacer reserva de asientos en un teatro, en un juego de baseball entre otros. Adicionalmente se requiere que la variable se declare el tipo, y entre el nombre de la variable y el tipo colocar la palabra As la cual es utilizada para determinar ese tipo de dato. Dim Letra As Char
16
Primera Parte
En el caso de Visual Basic 6 y versiones anteriores a esta, era posible la declaracin de forma implcita, es decir, no era necesario colocar la palabra Dim. Lo cual era flexible, pero de alto riesgo ya que se perda el control, ya que se poda confundir los nombres de las variables (ms comn en el caso de no dominar las tcnicas de programacin) el cual a la larga era no era fcil de poder encontrarlo. Para declarar la variable en visual Basic 2005, se debe considerar la palabra predefinida (o palabra reservada) Dim, la cual significa dimensin. La cual le indica al compilador que se esta reservando espacio en la memoria para que la utilice una variable. Posteriormente dejando un espacio en blanco y a continuacin se escribe el nombre de la variable (tiene que asegurarse, de que el nombre de la variable no sea el nombre de una palabra reservada, ya que esta dar problemas, generara error, al identificar que esta palabra ya tiene una funcin preestablecida). Nuevamente se escribe un espacio en blanco y a continuacin la palabra reservada As la cual es utilizada para definir el tipo de dato que desea definir (una vez que usted lo hace da un espacio en blanco y automticamente Visual Basic 2005 le presenta posibles tipo de datos, esto ya lo hacen las versiones anteriores, pero observe usted mismo que es lo que sucede y vea la diferencia con las otras versiones en caso de tener experiencia con versiones anteriores a la 2005).
Dim Nombre_Variable As Single En el caso de Visual Basic .Net 2005 se puede inicializar con valores, lo que antes no suceda en la versin 6, es decir que usted poda hacer lo siguiente: Dim Nombre_Variable As Single = 0
NOTA
En algunas versiones anteriores de Visual Basic no se requiere tipos de variables especficos (como String o Integer) no son requeridos; la informacin reside simplemente en un tipo de datos genrico (gran consumidor de memoria) llamado Variant, el cual poda contener datos de cualquier tamao o formato. Visual Basic 2005 (como se haba explicado anteriormente) no cuenta con soporte para este tipo de datos. La razn estriba en que, a pesar de ser prctico para los programadores novatos o principiantes de programacin, ya que su diseo hace que se haga una reserva de memoria, lo cual implicaba que se sacrificaba al hacerse la reserva de memoria, de tal forma que eso se sumaba al momento de compilar el programa, como resultado, haca ms lenta la ejecucin de la aplicacin y de hecho, se rompe con el esquema de programacin de instruccin eficientes (esto no era control de calidad de instrucciones). Pero no hay que negar, el tipo Variant permita que las variables que no fuesen declaradas o se decidiera utilizar este tipo, considerar convertirse de un tipo a otro con mucha facilidad (considerar fechas, datos numricos o caracteres, el consideraba todo eso), lo cual suele provocar resultados inesperados, pero resolva de alguna forma el no declarar un tipo de dato en una variable.
17
Primera Parte
Tabla #2.2.- Tipos de Datos de Visual Studio .NET 2005 Tipos de Tamao Rango Ejemplo de Uso Datos De -32768 hasta 32767 Dim Alumnos As Short = 707 Short 16 bits Alumnos = 707 De 0 hasta 65535 Dim Das As UShort = 570333 UShort 16 bits Das = 570333 De -2147483648 hasta Dim Pob_Nic As Integer = Integer 32 bits 2147483647 5525257 Pob_Nic = 5525257 De -9223372036854775808 Dim Pob_Mundo As Long = Long 64 bits hasta 9223372036854775807 52000000007 Pob_Mundo = 52000000007 De 0 hasta Dim Estrellas As ULong = ULong 64 bits 18446744073709551615 18200000000000000 Estrellas = 18200000000000000 -3.4028235E38 hasta Dim Precio_Perm1 As Single = Single 32 bits De punto 3.4028235E38 999.98 flotante Precio_Perm1 = 999.98 PI As Double = Double 64 bits De -1.7976931486231E308 hasta Dim punto 1.7976931486231E308 3.1415926535 flotante PI = 3.1415926535 Decimal 128 bits Valores de hasta +/- 79228 X Dim Deuda_Nic As Decimal = 1024 7600300.50 Deuda_Nic = 7600300.50 De 0 hasta 255 (No Negativos) Dim Tecla_Dig As Byte = 13 Byte 8 bits Tecla_Dig = 13 De -128 hasta 127 Dim NegVal As SByte = -20 SByte 8 bits NegVal = -20 Cualquier smbolo Unicote en el Dim UnicodeChar As Char = Char 16 bits rango de 0 a 65535 UnicodeChar = Por lo De 0 a aproximadamente 2 mil Dim Apellido As String String general millones 16 bits de caracteres Apellido = Senz 16 bits Unicote por carcter Verdadero o falso (durante las Dim Cerrar As Boolean As = Boolean 16 bits conversiones, 0 es convertido a True Falso, otros valores a Cerrar = True Verdadero) 1 de Enero de 0001, hasta 31 de Dim Pursima_Gritera As Date Date 64 bits diciembre de 9999 Pursima_Gritera = #7/12/2004# Cualquier tipo se puede Dim MiAplic As Object Object 32 bits almacenar en una variable de tipo MiAplic = CreateObject(Prog1.Application) Object El tipo de datos String es til para manejar textos en los programas, pero existen ciertos criterios que deben ser considerados, tal como los nmeros, las fechas, caracteres especiales u otros. Para
Ing. Giovanni Senz 18
Primera Parte
permitir y tener un manejo eficiente de todos los datos de Visual Basic .Net 2005, existen otras categoras que se pueden utilizar para las variables. Con otros tipos de datos presentan otras posibilidades, ya que el repertorio de Visual Basic .Net 2005 considera los tipos de datos de versiones como BASIC o de Visual Basic versiones anteriores (recuerde lo que se explicaba del cambio de Variant), lo que permite el procesamiento ms eficiente, y esta hecho para las computadoras que soportan 64 bits (inclusive). La tabla anterior mostraba el listado de tipos de datos de Visual Basic .Net 2005 (recuerde que usted puede crear sus propios tipos de datos, si ha trabajado en otros lenguajes de programacin o tiene experiencia en programacin sabe a lo que me refiero). Los Programadores experimentados notarn cuatro tipos de datos nuevos de Visual Basic 2005, los cuales son: 1.- Byte 2.- UShort 3.- UInteger 4.- ULong SByte permite valores de byte firmados, es decir, nmeros positivos y negativos. UShort, UInteger y ULong son de tipos sin firmar, eso significa que pueden tener nmeros negativos (sin embargo, tipos de datos sin firmar ofrecen dos veces el rango de nmeros positivos que sus contrapartes firmados, como se puede observar en la tabla anterior). Recuerde, que para la eficiencia de sus programas depender del tipo de dato que seleccione usted, es lgico que si los datos son cortos y exceden de un valor de mil, y siempre son enteros, lo recomendable es utilizar Short, por ejemplo. A partir de este momento, usted tiene el control de esas decisiones.
NOTA
El tamao de almacenamiento variable y se mide en bits. La cantidad de espacio requerido para almacenar un carcter de teclado estndar (ASCII) en la memoria es de 8 bits, lo cual equivalente a 1 Byte.
2.3.- Constantes
Las constantes son identificadores que nunca cambian su valor, pero en algunos casos, tambin son llamadas variables que no cambian de valor. Si una variable de su programa contiene un valor que nunca cambia (como , el cual representa una constante o entidad matemtica fija), podra considerar almacenarlo como una constante en lugar de una variable. Las constantes son nombres significativos que reemplazan un nmero o una cadena de texto que no cambian. Su utilidad radica en que incrementa la legibilidad del cdigo del programa, pueden reducir errores de programacin y facilitan la realizacin posteriores cambios globales. En
Ing. Giovanni Senz 19
Primera Parte
muchos sentidos las constantes pueden ser vistas como variables, pero es imposible modificar su valor en tiempo de ejecucin. Se declara con la palabra clave o predefinida Const, como se muestra a continuacin en el siguiente ejemplo: Const Pi As Double = 3.141592265 Const IMP As Double = 0.15 Const Salir As Integer = 0 Para conseguir que todas las constantes estn disponibles para todos formularios y mdulos de un programa (no solo para el formulario Form1), cree la constante en un mdulo de cdigo, antecedido con la palabra clave Public. Por ejemplo: Public Const Pi As Double = 3.141592265 Public Const IMP As Double = 0.15 Public Const Salir As Integer = 0
20
Primera Parte
21
Primera Parte
10
b.- Tambin puede utilizar cuando el usuario desea leer una cantidad X de valores, tal como leer cinco notas de programacin Orientada a Objetos o Contar la cantidad de productos vendidos en un almacn, u otros. 1 2 3 4 5
c.- Otro caso pudiese ser, cuando tenemos un inicio que no es la unidad (no es el punto inicial el nmero cero), como por ejemplo, sumar todos los nmeros que existentes entre el nmero
Ing. Giovanni Senz 22
Primera Parte
100 y 104, otro ejemplo, partiendo de que en Managua tenemos dos millones de personas, cuanto tiempo hace falta para que la poblacin llegue a ser de seis millones en esta ciudad. 100 101 102 103 104
Como se ha podido observar, existen otras particularidades, al controlar el ciclo existe un movimiento, el cual expresa que los valores o variables, se pueden desplazar o moverse de uno en uno, y lo cual no es una regla, ya que en muchas ocasiones probablemente nos desplacemos de dos en dos, o de tres en tres, y as sucesivamente.
3.1.1.- Reglas para definir el Ciclo For For Sub-Indice = Inicio To Valor_Tope_Ciclo Sentencia 1 Sentencia 2 Sentencia 3 Sentencia n Next 'Fin del Ciclo For {Es opcional dejar el nombre del sud-indice en el cierre del ciclo For, Next Sub-Indice}
Por Ejemplo:
For i = 1 To 20
Me.TextBox3.Text = Me.TextBox3.Text & Cont & ".- " & i & Encapsular Cont += 1 'Cont = Cont + 1 Next i 'Fin del Ciclo For
23
Primera Parte
N de Factura Monto de venta total de la Factura 1 C$ 1,500.33 2 C$ 755.56 3 C$ 134.77 4 C$ 98.99 5 C$ 905.57 Tabla #3.1.- Valores de las Facturas - Farmacia Nueva Vida.
I.- Para identificar lo que vamos hacer, tenemos que analizar textualmente lo que nos pide el problema, si leemos en la primera lnea podemos encontrar: 1.- Nos dicen que son cinco facturas (por este detalle podemos arrancar) y que estas deben ser controladas. 2.- Que es el total de esas facturas lo que nos da como valor de entrada. En la lnea dos y tres se expresa el detalle de las operaciones que se deben realizar: 3.- Leer las cinco facturas. 4.- Luego de haber ledo esas facturas, sumarlas y encontrar el valor total del monto de esos datos. Con lo anterior podemos observar: Lnea 1, se debe declarar una variable que almacene las cinco facturas. Lnea 2, las facturas para ser ledas, tenemos que utilizar un ciclo, para poder leer la primera, la segunda, la tercera, cuarta y quinta factura (no vale la pena utilizar una variable para cada factura, ya que si en un momento determinado no son cinco las facturas a leer, sino que se convierten en mil, entonces se vera con la necesidad de declarar mil variables, por lo tanto ese mtodo no es adecuado). Lnea 3, Confirma que debemos utilizar un ciclo. Lnea 4, que debemos sumar esas facturas para encontrar la suma total (de ellas todas las facturas). II.- Una vez detallado todo lo que tenemos que hacer, procedemos a desarrollar el Algoritmo, para fines y efectos, utilizaremos el mtodo de pseudo cdigo:
Ing. Giovanni Senz 24
Primera Parte
N 1
Instruccin a realizar - Algoritmo Declaramos las variables a utilizar. La variable Fact: llevara el control de las facturas, i: el sub-indice que controlara la lectura de las facturas, y suma: ser utilizada para el monto total de todas las facturas. 1.1.- Fact=0, i=1, Suma = 0
Debemos leer cada una de las facturas, como estamos utilizando Arreglos, en cuanto se lea el valor, este debe ser sumado, porque sino se perder el valor actual de la factura.
For i=1 Hasta 5 Inicio_Ciclo_For 2.1.- Imprimir Digitalizar el Valor & i & = 2.2.- Leer Fact 2.3.- suma = suma + Fact Fin_del_Ciclo_For A continuacin, procedemos a mostrar los resultados del Ciclo: 3 3.1.- Imprimir El Monto total de Venta es: & suma Fin_del_Programa 4 Tabla #3.2.- Algoritmo de Programa1.
3.1.4.- Ahora Procedemos con el Programa en Visual Basic .Net Paso UNO: Abrir Visual Basic. Net
25
Primera Parte
Paso Dos: Seleccionar que desea crear una Aplicacin en Visual Studio .Net, recuerde que es Visual Basic .Net el que utilizara usted.
Paso Tres: Asegurarse que es una Aplicacin en Visual Basic .Net, y que esta debe ser una
aplicacin de Visual Basic para Windows.
26
Primera Parte
Paso Cuatro: a continuacin, aparecer el formulario (ahora es la Clase Superior) con sus
atributos (propiedades) y el ambiente que aparece por defecto en Visual Basic. Net.
Paso Cinco: procedemos a definir que objetos utilizaremos para la lectura de datos en Visual Basic. Net. Como son muchas las opciones, entonces utilizaremos en un principio al estilo clsico InputBox, e iremos mostrando en pantalla y en un Textbox lo que el usuario introduzca como factura.
Inicie de forma sencilla, busque la Propiedad Text del Formulario, ah digitalice, Control de Factura de la Farmacia Nueva Vida. Nota: Ahora todos los Objetos en Visual Basic tienen la Propiedad Text (la cual muestra mensaje al usuario por parte del objeto creado), ya no se utiliza Caption, este es el nuevo estndar que se defini para Studio .Net
27
Primera Parte
Paso
botones, uno ser utilizado para leer y el otro para sumar las facturas. Botn para Leer datos.
Tabla #3.3.- Pasos para Crear agregar Objetos Botones y Etiquetas al Formulario Nueva Vida. Usted entonces ahora podr ver el siguiente formulario, ya diseado:
28
Primera Parte
De tal forma que se podr observar el formulario como aparece arriba de este texto.
ScrollBars: En propiedad Vertical, para que esta pueda crecer a lo alto. MultiLine: En propiedad asignar el valor de Trae (verdadero), para que esta pueda ser de mltiples lneas. Enabled: En propiedad de dejar inhabilitado el objeto, no permita que datos puedan entrar (esto es opcional para ti). Locked: En propiedad de dejar con llave Pruebe primero con Locked = True, luego el objeto, no permita que datos puedan con Locked = False. entrar (esto es opcional para ti).
29
Primera Parte
Tabla #3.4.- Pasos para Crear agregar Objetos TextBox y sus propiedades para el Formulario Nueva Vida. Ahora usted vera el siguiente formulario:
Nota: Una buena recomendacin, es dejar la propiedad del ReadOnly = True en el TextBox, para este caso es correcto, no deseamos que el usuario tenga acceso a la Escritura.
Tabla #3.5.- Programacin de Eventos del Formulario Nueva Vida. Paso Nueve: Ahora hacer Click sobre el botn le aparecer el cdigo del objeto a programar, a continuacin se muestra: Originalmente se mostrara: Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Usted tendra que agregar el cdigo aqu. End Sub Siguiendo el algoritmo planteado al Inicio, entonces procedemos a agregar el cdigo al bloque (es adecuado dejar con Button1 en la propiedad name: CmdLeer): Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim i As Integer = 0 For i = 1 To 5 Fact = InputBox("Control de Factura " & i & ": ", "Digitalizar Facturas") Suma = Suma + Fact Me.TextBox1.Text = Me.TextBox1.Text & "Factura " & i & "= " & Fact & Chr(13) & Chr(10) Next ' Me.TextBox1.Text = Me.TextBox1.Text & "Factura Total= " & Suma & Chr(13) & Chr(10)
Ing. Giovanni Senz 30
Primera Parte
End Sub
Paso Diez: Ahora hacer Click sobre el botn Anlisis y repitiendo los mismo pasos que anteriormente:
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click MessageBox.Show("Resultado de la Facturacion" & Suma, "La suma total de las Facturas es:", MessageBoxButtons.OK, MessageBoxIcon.Information) Me.TextBox1.Text = Me.TextBox1.Text & "Factura Total= " & Suma & Chr(13) & Chr(10) End Sub
Public Class Form1 Fijarse donde se declaran las variables Globales. Dim Fact As Double Dim Suma As Double
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
Primera Parte
Al hacer clic en Leer se genera la ventana de mensaje que le pide digitalizar la primera factura.
32
Primera Parte
Ha podido desarrollar la primera aplicacin de Visual Basic .NET 2005 en este curso.
Comentarios: 1.- Sobre el uso de InputBox, esta es una instruccin de Entrada de Datos, existe una especificacin puntual para esta funcin, la cual se explicar en Clases (para aquellos estudiantes que estn cursando), si no tendr que investigar por su cuenta como se definen estos parmetros.
33
Primera Parte
2.- Para mostrar la salida de Datos, se utiliza MessageBox, como habiamos explicado anteriormente, esta es una nueva opcin que existe en .NET 2005, la cual es una buena opcin, pero si no se siente comodo y desea seguir utilizando lo tradicional, puede utilizar el MsgBox, este procedimiento conserva las mismas caracteristicas de las versiones anteriores (esto se explicara en el curso y tendremos varios ejemplos en este sentido).
34
Primera Parte
35
Primera Parte
i = 1
Si puedes notar, si el valor de i al comprarlo en la expresin2 resulta falso, jamas entrara al Ciclo (esta es la forma de controlar el desplazamiento en el Intervalo). Adicionalmente, si estas utilizando metodos numericos (anlisis numrico, Sistemas Lineales, calculando limites o creando las instrucciones para encontrar un punto Integrales, derivadas, transformadas, etc) el ciclo While te ayuda en los pivotes (cosa que el for no lo puede hacer, ya que solo el desplazamiento es entero [como te habia explicado antes]).
Esta es la Condicin de Parada Expresin2 'For i = 1 To cant Lo que sera Equivalente a FOR s1 = InputBox("Digite la Nota S1 [Estudiante" & i & "]= ", "Digite la nota del Primer Sistematico") Me.TextBox2.Text = Me.TextBox2.Text & " Est[" & i & "]=" & s1 & Chr(13) & Chr(10) s2 = InputBox("Digite la Nota S2 [Estudiante" & i & "]= ", "Digite la nota del Segundo Sistematico") Me.TextBox3.Text = Me.TextBox3.Text & " Est[" & i & "]=" & s2 & Chr(13) & Chr(10) Ex = InputBox("Digite la Nota Ex [Estudiante" & i & "]= ", "Digite la nota del Examen") Me.TextBox4.Text = Me.TextBox4.Text & " Est[" & i & "]=" & Ex & Chr(13) & Chr(10) s1 = s1 * 0.3 s2 = s2 * 0.3 Ex = Ex * 0.4 NF = s1 + s2 + Ex Me.TextBox5.Text = Me.TextBox5.Text & " Est[" & i & "]=" & NF & Chr(13) & Chr(10) Suma = NF + Suma 'Next 'Fin de la Lectura de las notas i += 1 Esta es la Condicin para movernos en el ciclo Expresin3 Loop Esta es la Palabra Reservada para el Cierre del Ciclo. Una Variante al programa anterior, el de la suma de las facturas, es hacer el ajuste en el Botn Leer, de tal forma que el cdigo se vea como este:
36
Primera Parte
Private Sub CmdLeer_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CmdLeer.Click Dim i As Integer = 0 Do While (i < 5) Fact = InputBox("Control de Factura " & i & ": ", "Digitalizar Facturas") Suma = Suma + Fact Me.TextBox1.Text = Me.TextBox1.Text & "Factura " & i & "= " & Fact & Chr(13) & Chr(10) i += 1 Loop
' Esta es la Condicin de Parada Expresin2 ' For i = 1 To 5 'Fact = InputBox("Control de Factura " & i & ": ", "Digitalizar 'Facturas") 'Suma = Suma + Fact 'Me.TextBox1.Text = Me.TextBox1.Text & "Factura " & i & "= " & 'Fact & Chr(13) & Chr(10) ' Next ' Me.TextBox1.Text = Me.TextBox1.Text & "Factura Total= " & Suma & 'Chr(13) & Chr(10)
End Sub
Ahora que ya posee la teora de como trabajar el ciclo Do While, hacer los ajustes al programa anterior (al que fue programado con While) y complalo, luego, verificar todos los detalles y recordar crrelo paso a paso, para que ver, identificar y detectar las diferencias entre el for y el do while.
A continuacin el ciclo nmero tres, el Do Loop While (equivalente al Do-While de C y Repeat de Pascal [parecido, pero no igual]).
37
Primera Parte
Aunque el valor de la expresin1 no sea valido, es decir es falso, las instrucciones se ejecutan, lo cual pudiese tener un impacto negativo, ya que si esto es llevado a una base de datos o a un sistema lineal, donde exista un pivote, el cual es un valor que incrementa o disminuye, el cual puede llegarse a presentar como un valor no valido, pero este se ejecuto, entonces, lo que suceder, es que todo el ambiente se puede tornar en un solo desastres. Pero no te tiene que causar desconfianza, ya que si tiene la agilidad de poder programar, te dars cuenta, que puedes prevenir todos esos casos, y prcticamente, le puedes sacar ventaja a eso. La estructura es la siguiente: La sentencia de Control Cclica Do - Loop While esta compuesta de la siguiente forma: a.- Una condicin Inicial, la cual sera la expresin1. b.- La palabra reservada Do (el While no se escribe en esta parte del bloque), solamente esta palabra reservada. c.- El bloque de las instrucciones que estarn contenida en el ciclo, es decir que es lo que quieres hacer en el ciclo. Sentencia1 Sentencia2 . . . SentenciaN d.- Antes de finalizar el bloque, se coloca la Expresin3, la que a su vez nos permitir el desplazamiento en el intervalo, y adicionalmente (un paso despus ayudara) a identificar o saber si la Expresin2 es verdadera, y comparar si podremos salir del bloque (antes en lenguaje mquina se programaban como etiquetas las sentencias de control cclicas, y en muchas ocasiones utilizabas una instruccin que comparaban el valor de un registro, si este vala cero, podas salir, de lo contrario continuabas dentro del ciclo, por brindar un ejemplo). e.- Por ltimo, solo falta cerrar el bloque del ciclo con la palabra Loop While y entre parntesis la Expresion2 (Recuerda que tambin Do While es identificador reservado), ah termina el ciclo. Si se observa con detalle, se podr entender que este es el motivo por el cual las instrucciones se ejecutan, por lo menos una vez, ya que la expresin de condicin de parada, esta al final del ciclo (este problema desaparece, si la condicin inicial es adecuada, o sea, tiene un valor de verdad e ah el meollo del asunto, resuelvan ese problema y todo saldr bien). Es muy utilizado el Do Loop While para presentar una ventana, donde siempre exista una ejecucin inicial independiente de su valor, esa es la ventana de acceso a las aplicaciones que Requieren una palabra de acceso (Password), todo es buscar el sentido, e implementacin de las Instrucciones.
Ing. Giovanni Senz 38
Primera Parte
i = 1
A continuacin, el ejemplo de Do While, se puede notar, que si el valor de i al comprarlo en la expresin2 resulta falso, puede entrar al Ciclo (esta es la forma de controlar el desplazamiento en el Intervalo). Adicionalmente, si se esta utilizando mtodos numricos se conserva lo mismo del Do While (anlisis numrico, Sistemas Lineales, calculando lmites o creando las instrucciones para encontrar un punto Integrales, derivadas, transformadas, etc) el ciclo Loop While tambien te ayuda en los pivotes (cosa que el for no lo puede hacer [en Visual Basic], ya que solo el desplazamiento es entero [como te habia explicado antes]). Do 'For i = 1 To cant Lo que sera Equivalente a FOR s1 = InputBox("Digite la Nota S1 [Estudiante" & i & "]= ", "Digite la nota del Primer Sistematico") Me.TextBox2.Text = Me.TextBox2.Text & " Est[" & i & "]=" & s1 & Chr(13) & Chr(10) s2 = InputBox("Digite la Nota S2 [Estudiante" & i & "]= ", "Digite la nota del Segundo Sistematico") Me.TextBox3.Text = Me.TextBox3.Text & " Est[" & i & "]=" & s2 & Chr(13) & Chr(10) Ex = InputBox("Digite la Nota Ex [Estudiante" & i & "]= ", "Digite la nota del Examen") Me.TextBox4.Text = Me.TextBox4.Text & " Est[" & i & "]=" & Ex & Chr(13) & Chr(10) s1 = s1 * 0.3 s2 = s2 * 0.3 Ex = Ex * 0.4 NF = s1 + s2 + Ex Me.TextBox5.Text = Me.TextBox5.Text & " Est[" & i & "]=" & NF & Chr(13) & Chr(10) Suma = NF + Suma 'Next 'Fin de la Lectura de las notas i += 1 Esta es la Condicin para movernos en el ciclo Expresin3 Loop While (i <= cant) Esta es la Condicin de Parada Expresin2 el Cierre del Ciclo.
Ahora que ya se conoce como trabajan los ciclos, haz los ajustes al programa anterior y complalo, verifica todos los detalles y recuerda crrelo paso a paso, para que ver la diferencia entre el for, el do while y ahora el Do - Loop - While.
39
Primera Parte
Private Sub CmdLeer_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CmdLeer.Click Dim i As Integer = 0 Do Fact = InputBox("Control de Factura " & i & ": ", "Digitalizar Facturas") Suma = Suma + Fact Me.TextBox1.Text = Me.TextBox1.Text & "Factura " & i & "= " & Fact & Chr(13) & Chr(10) i += 1 Loop While (i < 5) 'Do While (i < 5) ' Fact = InputBox("Control de Factura " & i & ": ", "Digitalizar Facturas") ' Suma = Suma + Fact ' Me.TextBox1.Text = Me.TextBox1.Text & "Factura " & i & "= " & Fact & ' Chr(13) & Chr(10) ' i += 1 'Loop ' Esta es la Condicin de Parada Expresin2 ' For i = 1 To 5 ' Next ' Me.TextBox1.Text = Me.TextBox1.Text & "Factura Total= " & Suma & Chr(13) & Chr(10) End Sub
40
Primera Parte
Esta funcin requiere de tres argumentos, la condicin por verificar, que devolver si la condicin es cierta y qu devolver si es falsa. Por lo tanto, en este ejemplo el valor de ElColor permanece igual, a menos que sea de 15 o ms, en cuyo caso se pone 1.
41
Primera Parte
Paso 1:
Vamos a crear un nuevo formulario, entonces a este formulario agreguemos los siguientes detalles:
Insertar un TextBox
De acuerdo como se hizo anteriormente, las propiedades para los objetos son las siguientes: Objeto Propiedad del Objeto Text Valor de la propiedad Manejo de Sentencias de Control Condicionales en Visual Basic .Net Info Desktop Digite un Valor Numerico: Control ControlText Analizar valor Salir
Label1 BackColor ForeColor Text Label2 BackColor ForeColor Boton1 Text Boton2 Text Tabla 3.6.- Control de Atributos Programa 3.
Ing. Giovanni Senz
42
Primera Parte
Paso2:
Ahora que ya se tiene el formulario, con todas sus propiedades, se procede a la programacin de los eventos, el cual se describe a continuacin: a.- Dar clic al Botn que tiene como Nombre Boton1, ah agregamos el siguiente cdigo: Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 'Este programa identifica si un numero es positivo o negativo en base al valor que digitalice el usuario. Dim num As Integer = 0 'Declaracin del nmero a leer 'Guardar el valor que digitalice el usuario num = (CInt(Me.TextBox1.Text)).ToString 'Preguntar por el valor que digitalizo el usuario If (num > 0) Then 'Si es mayor que cero MessageBox.Show(" El Nmero " & num & " es Positivo", "Analisis de Numeros", MessageBoxButtons.OK, MessageBoxIcon.Information) ElseIf (num < 0) Then 'Si es menor que cero MessageBox.Show(" El Nmero " & num & " es Negativo", "Analisis de Numeros", MessageBoxButtons.OK, MessageBoxIcon.Exclamation) Else 'Si es el cero MessageBox.Show(" El Nmero " & num & " es el CERO", "Analisis de Numeros", MessageBoxButtons.OK, MessageBoxIcon.Error) End If End Sub
b.- Ahora Programe el Boton2, la salida del programa: Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click End 'Fin del programa End Sub
43
Primera Parte
Paso 3:
a.- Ahora que ya se lograron incluir todos los detalles, proceder con la ejecucin. Para lograr este fin, digitalizar el nmero 99, de tal forma que se pueda observar lo siguiente:
b.- Hacer Clic en el botn Analizar valor, al realizar esta operacin suceder lo siguiente:
Lo cual indicara que fue exitosa la operacin, y mostrara el resultado. c.- Lo nico que falta es digitalizar el botn de salida, el cual indicara el final de la aplicacin, realice esta actividad y habr concluido la prctica de la sentencia de control condicional.
44
Primera Parte
45
Primera Parte
N 1
Instruccin a realizar - Algoritmo Declaramos las variables a utilizar. La variable Fact: llevara el control de las facturas, i: el sub-indice que controlara la lectura de las facturas, y suma: ser utilizada para el monto total de todas las facturas. 1.1.- Fact=0, i=1, Suma = 0, Sal = 0;
Debemos leer cada una de las facturas, como estamos utilizando Arreglos, en cuanto se lea el valor, este debe ser sumado, porque sino se perder el valor actual de la factura. For i=1 Hasta 5 Inicio_Ciclo_For
Do 2.1.- Imprimir Digitalizar el Valor & i & = 2.2.- Leer Fact 2.3.- If Fact <= 0 Then MessageBox.Show("La Facturacion digitalizo : " & Fact, "Error en la Facturas ", MessageBoxButtons.OK, MessageBoxIcon.Error) Sal = 1 Else Sal = 0 End If Loop While (Sal = 1) 2.4.- suma = suma + Fact Fin_del_Ciclo_For A continuacin, procedemos a mostrar los resultados del Ciclo: 3.1.- Imprimir El Monto total de Venta es: & suma Fin_del_Programa 4 Tabla #3.7.- Ajuste al Algoritmo del Programa1. 3 Ahora que ha sido posible Mostrar los ajustes del Algoritmo, irse al Formulario correspondiente a la Facturacin de la Farmacia Nueva Vida, y haga el siguiente ajuste al Cdigo y Clase Principal de ese Formulario:
46
Primera Parte
Private Sub Button1_Click(ByVal sender System.EventArgs) Handles Button1.Click Dim i As Integer = 0 Dim Sal As Integer = 0 Dim Cant As Short = 0 i = 1 'Condicin INICIAL - EXPRESION1
As
System.Object,
ByVal
As
Cant = InputBox("Proporcione la cantidad de Facturas: ") Do Do Fact = InputBox("Control de Factura " & i & ": ", "Digitalize Factura") If Fact <= 0 Then Sal = 1 MessageBox.Show("La Facturacin digitalizo : " & Fact, "Error en la Facturas ", MessageBoxButtons.OK, MessageBoxIcon.Error) Else Sal = 0 End If Loop While (Sal = 1) Suma = Suma + Fact Me.TextBox1.Text = Me.TextBox1.Text & "Factura " & i & "= " & Fact & Chr(13) & Chr(10) 'Condicin PARA ALTERAR EL CICLO - EXPRESION3 i += 1 'i = i + 1 Loop While (i <= Cant) 'Condicin PARADA - EXPRESION2 End Sub Una vez finalizado los ajustes, proceda a ejecutar la aplicacin y vea el comportamiento del Sistema (para ver ms detalles, le recomendamos que corra paso a paso con F8).
47
Primera Parte
A usted se le presentar nuevamente el formulario, pero al hacer clic en el botn leer vera algo diferente.
Ahora pedir la cantidad de Facturas, y algo ms interesante, si usted proporciono un valor no valido, le emitir un mensaje apropiado para ese momento, como por ejemplo:
48
Primera Parte
Y si el valor es negativo, tambin esta validado. Le queda de tarea, validar para que nicamente solo se reciban valores numricos y en caso de ser caracteres, identifique cual es segn la tabla ASCII y retorne cual fue la tecla que el usuario esta tocando y no es la correcta.
49
Primera Parte
Select Case iEdad Case 5 sCategoria = 5 aos de edad Case 13 To 19 sCategoria = Adulto Case 20 To 35, 50, 60 To 65 sCategoria = Adulto Case Is > 65 sCategoria = Respetable Case Else sCategoria = Todo el Mundo End Select
Note que es posible revisar un rango de valores usando To. Los operadores de comparacin como > y < tambin son aceptables. Usted puede colocar diversos valores de objetivos o rangos dentro de un solo Case separndolos con comas. Tambin puede haber clusula Case Else que preceda al enunciado a enunciados que se deben ejecutar si no se satisface ninguna de las condiciones Case anteriores.
50
Primera Parte
Como es conocido por todos los programadores, las instrucciones son divididas en dos categoras, las cuales son: I.- Instrucciones de Eleccin. II.- Instrucciones de Bucles (o sentencias de control): II.1.- Sentencias de Control Condicionales. II.2.- Sentencias de Control Cclicas. En cada caso, existen variaciones de tipos, y en base a las necesidades y los requerimientos se deben hacer ajustes, a esto se agrega las caractersticas que se deben seguir al programar en Studio .NET.
Funcin
CBoll CByte CChar CDate
Descripcin
Realiza una conversin a Boolean. Lo que se interprete como False o 0 se establecer como False, lo que no ser True. Realiza una conversin a Byte. Se perder cualquier valor mayor que 255, o cualquier fraccin. Realiza una conversin a un carcter. Si el valor es superior a 65,535, se perder. Si convierte un String, slo se convertir el carcter. Realiza una conversin a Date. Una de las funciones de conversin ms potentes. CDate puede reconocer algunos de los formatos de uso comn para indicar una fecha. Realiza una conversin a Double. Realiza una conversin a Integer. Las fracciones sern redondeadas al valor entero ms cercano. Realizar una conversin Long. Las fracciones sern redondeadas al valor entero ms cercano. Realizar una conversin Short. Las fracciones sern redondeadas al valor entero ms cercano. Realizar una conversin String. Si el valor es Date, contendr el formato de fecha corta.
51
Primera Parte
CType
Realiza una conversin a cualquier tipo. sta es una potente funcin que le permite convertir cualquier tipo de dato a otro. Por ello, la sintaxis de esta funcin es un tanto distinta de las dems.
La sintaxis de CType es: ObjNuevaVariable = CType(ObjVariablePorConvertir, NuevoTipo) Donde ObjNuevaVariable y ObjVariablePorConvertir son lugares (espacios de almacenamiento en la memoria) donde se colocarn las variables convertidas y por convertir. NuevoTipo es el tipo hacia el que har la conversin. Puede ser cualquiera que pueda colocar despus de As en una declaracin, por lo que puede usar esta funcin para convertir hacia enumeraciones, estructuras y tipos de objetos, as como tipos sencillos.
Funcin
Len Chr Asc Left
Descripcin
Devuelve la cantidad de caracteres que hay en una cadena. Devuelve el carcter basado en el valor Unicode indicado. Devuelve el valor Unicode.
Ejemplo
Right
Mid
intValor = Len(Hola), (intValor = 5) strValor = Chr(56), (strValor = A) intValor = Asc(A), (intValor = 56) Devuelve caracteres de una cadena, a strValor = Left(Hola, Nicaragua, 2), partir del extremo izquierdo. Tambin (strValor = Ho) requiere la cantidad de caracteres por devolver. Devuelve caracteres de una cadena, a strValor = Right(Hola, Nicaragua, 4), partir del extremo derecho (lo inverso (strValor = agua) de Left). Tambin necesita la cantidad de caracteres por devolver. Devuelve caracteres contenidos en la strValor = Mid(Hola, Mundo, 4, 5), cadena. Devuelve cualquier cantidad de (strValor vale a Mu). ellos. La sintaxis de Mid es sReturn = strValor = Mid(Hola, Mundo, 7), Mid (cadena, Inicio [, Cantidad]), en (strValor vale a Mundo). donde el Inicio es el carcter a partir del cual devolver la Cantidad indicada de caracteres (incluyendo el de Inicio). Tambin puede omitir a Cantidad, y Mid devolver todos los que haya a partir de Inicio.
Ing. Giovanni Senz 52
Primera Parte
Instr
Int = Instr(1, Hola, Mundo, l) (intValor vale 3). Tenga en cuenta que la cadena que esta buscando puede contener mltiples caracteres, por lo que buscar mundo, como en intValor = Instr(1, Hola, mundo, mundo), (intValor vale 7). IniciarEnCarcter es la posicin en la cadena de bsqueda, CadenaDeBusqueda, donde el programa empezar a buscar (la cuenta inicia en 1). CadenaDeBusqueda es la cadena donde se buscar y CadenaPorBuscar es la cadena que se buscar. TipoDeComparacion es opcional y determina si se distinguirn las maysculas y minsculas. Si TipoDeComparacion se establece a 0 (Comparacin binaria), en la bsqueda se har la distincin. Si omite o se establece a 1 (Comparacin textual), no se har la distincin. intResultado contendra la posicin de la CadenaDeBusqueda donde inicie la CadenaPorBuscar. Si la cadena por buscar no se encuentra, intResultado valdr 0. InstrRev hace la bsqueda de derecha a izquierda de la cadena, por lo dems, InstrRev es idntica a Instr.InstrRev es til cuando busque en una cadena que contenga una ruta de acceso a una carpeta (directorio), y quiera ver primero el archivo o la ltima carpeta. intValor = InstrRev(Hola, Mundo, o) (intValor vale 8). Convertir una cadena a minsculas. strValor = LCase (Hola, Mundo) (intValor vale Hola, Mundo). Convertir una cadena a maysculas. strValor = UCase (Hola, Mundo) (intValor vale HOLA, MUNDO). Quita los espacios en blanco del inicio strValor = LTrim ( Hola, Mundo ) de la cadena. (intValor vale Hola, Mundo ). Quita los espacios finales de la cadena. strValor = LTrim ( Hola, Mundo ) Hola, Mundo). (intValor vale Quita los espacios iniciales y finales de strValor = LTrim ( Hola, Mundo ) la cadena. (intValor vale Hola, Mundo). Encuentra una cadena en otra. Es til cuando busca cierta cadena en un archivo. La sintaxis de esta funcin es: intResultado = Instr(IniciaEnCaracter CadenaDeBusqueda, CadenaPorBuscar, TipoDeComparacion)
53
Primera Parte
Funcin
IsArray IsDate IsNumeric IsObject TypeName Now Today CSht CStr CType
Descripcin
Devuelve True si el parmetro es una matriz. Devuelve True si el parmetro se reconoce como una fecha. Devuelve True si el parmetro se reconoce como un nmero. Devuelve True si el parmetro se reconoce como un objeto. Devuelve el nombre del tipo de dato, por ejemplo, TypeName(strNombre) devolver String. Devuelve la fecha y hora en curso. Devuelve la fecha actual, con la hora establecida a 0:00:00 a.m. (medianoche). Realizar una conversin Short. Las fracciones sern redondeadas al valor entero ms cercano. Realizar una conversin String. Si el valor es Date, contendr el formato de fecha corta. Realiza una conversin a cualquier tipo. sta es una potente funcin que le permite convertir cualquier tipo de dato a otro. Por ello, la sintaxis de esta funcin es un tanto distinta de las dems.
54
Primera Parte
Para demostrar que tan grande pueden ser los arreglos procesador, utilizara los mtodos Sort y Reserve de la clase Array del entorno de Microsoft.Net de Frameword para reordenar arreglos que contengan valores de nmeros enteros aleatorios de seis dgitos. Por ltimo, es importante utilizar el Control ProgressBar para ofrecer al usuario una seal del tiempo que tomar un proceso (Relacionado con algn arreglo o de otro tipo).
Notas:
Existen nuevas caractersticas de Visual Basic .Net en comparacin con versiones anteriores: En Visual Basic .Net 2005 el numero base de los elementos de las celdas del arreglo es la Celda Cero, ya no es aplicable la instruccin Option Base, la cual poda definir iniciar en la celda 0 o 1. Un Obvio efecto secundario de los arreglos basados en cero es que la instruccin LBound siempre devuelve un valor de 0, debido a que el lmite inferior de los arreglos siempre es 0 (sin embargo, la Instruccin UBound continua devolviendo el ndice ms Alto del arreglo, el cual es igual al nmero de elementos menos uno). Ahora los arreglos pueden declararse y recibir asignacin de datos mediante el uso de las mismas instrucciones de los programas. Por ejemplo, la sintaxis para declarar un arreglo miArreglo() y aadir elementos de es: Dim MiArreglo() As Integer = {7, 14, 21, 28} La Instruccin Redim sigue siendo valida en Visual Basic .Net 2005, aunque no podr utilizarla en la declaracin inicial del arreglo. Puede ser utilizada para modificar los lmites del arreglo, pero no su nmero de dimensiones.
En la Declaracin de un arreglo, se debe especificar: Nombre del arreglo Tamao (nmero de elementos). Tipo de dato de los elementos del arreglo.
Ing. Giovanni Senz 55
Primera Parte
(0) M
(1) a
(2) r
(3) c
(4) e
(5) l
(6) a
(7)
(8)
Arreglo compuesto de nueve celdas, todo arreglo inicia de la posicin cero (0) y llega hasta el valor N-1 (en nuestro caso es 9-1= 8) Ing. Giovanni Senz 56
Primera Parte
TextBox1.Text = CStr(MiArreglo(2))
b.- Arreglos de Multidimensiones Cmo utilizar arreglos multidimensionales
Especificar todas las dimensiones y elementos Total elementos = producto de todos los tamaos Para declarar una variable arreglo multidimensional : Aadir un par de parntesis tras el nombre de la variable Colocar comas dentro de los parntesis para separar las dimensiones Iniciar la declaracin con la sentencia Dim o un modificador de acceso Ejemplo:
57
Primera Parte
99 33 25 80
100 38 21 83
98 39 24 85
96 31 27 99
Cuando se declaran arreglos, por lo general es necesario incluir la informacin que se muestra en la tabla siguiente en la declaracin:
Informacin necesario en Descripcin la declaracin de un arreglo El nombre que utilizar para representar su arreglo en el programa. Nombre del Arreglo En general, la nomenclatura de arreglos sigue las mismas reglas
Ing. Giovanni Senz 58
Primera Parte
que las variables (vuelva a leer en sus apuntes esta informacin). Tipos de Datos El tipo de datos que se almacenara en el Arreglo. Puede especificar un tipo de dato fundamental o utilizar el Object si aun no esta seguro de qu datos almacenar en l o si lo usar para albergar varios tipos. El nmero de dimensiones que contendr su arreglo. Casi todos los arreglos son unidimensionales (una lista de valores) o bidimensionales si est trabajando con un modelo matemtico complejo (por ejemplo, una figura tridimensional). La cantidad de elementos que tendr su arreglo. Los elementos en su arreglo corresponden directamente al ndice del arreglo, el primer ndice del arreglo siempre es 0 (cero).
Nmeros de Dimensiones
Nmero de Elementos
Los arreglos que contienen cantidades especficas de elementos se conocen como arreglos de tamao fijo. Aquellos que contienen un nmero variable (es decir que pueden ampliarse durante la ejecucin del programa) se denomina arreglos dinmicos. Para referirse a los elementos de un arreglo puede utilizar el nombre de este y un ndice entre parntesis. El ndice debe ser un entero o una expresin que d como resultado un entero. Por ejemplo, el ndice puede ser un numero (como 5), una variable entera (como Nm) o una expresin (como nm-1); de hecho, suele utilizarse la variable contador de un bucle ForNext. Por ejemplo, la instruccin siguiente asigna el valor Martha a un elemento dentro de un ndice 5 en el ejemplo del arreglo Empleados de la seccin anterior. Empleados(5)=Martha Otro ejemplo, puede ser el caso de Matriz, en el cual se desea acceder a la celda (0,1): Matriz (0, 1) = 100
Primera Parte
Public Class Form1 'Esta Instruccion Crea una Arreglo llamado Temperaturas de Tipo Single 'Contiene siete elementos enumerados desde 0 hasta 6.
.
Dim Temperaturas(0 To 6) As Single
Luego en un Ciclo se requiere la Funcin UBound para identificar el mximo de elementos del arreglo, esto se realiza de la siguiente forma: UBound (NombredelArreglo) > Verifica el lmite superior <- Sintaxis de la Funcin For i = 0 To UBound(Temperaturas) . . Next La funcin LBound, estrechamente relacionada con la anterior, confirma el limite inferior del arreglo y sigue siendo valida en Visual Basic; sin embargo, debido a que todos los arreglos Visual Basic ahora tienen un limite inferior de cero (0), la funcin simplemente devuelve ese valor (0). Las funciones UBound y LBound tienen la siguiente sintaxis: LBound(NombredelArreglo) > Verifica el lmite inferior <- Sintaxis de la Funcin For i = LBound (Temperaturas) To UBound(Temperaturas) . . Next
Para no redundar mucho, se inicia el primer Programa utilizando Arreglos. Siga los pasos que se le indican:
Paso 1: Crear un Nuevo Formulario (en caso de Existir uno, agregarlos al proyecto, como se muestra a continuacin):
Ing. Giovanni Senz 60
Primera Parte
61
Primera Parte
Paso 3: Ir al Icono de la Ventana del Explorador de Soluciones, y hacer Clic en el icono Ver Cdigo, como se muestra a continuacin: Ver pgina Siguiente:
Hacer Clic en ese Icono Observe que sucede
Paso 4: Ahora esta trabajando a Nivel de Cdigo, seleccione la opcin de Manejar eventos del formulario Form2:
Ing. Giovanni Senz 62
Primera Parte
A continuacin, seleccione el evento en el cual se cargara el arreglo, para que este visible a la forma desde el arranque del formulario Form2.
63
Primera Parte
Paso 5: En este momento seleccione el evento que se mostrara en pantalla, el cual se utilizara para la programacin del arreglo (para este caso, de Form2, seleccione cuando se cargue este, es decir el evento Load Observar que los eventos tienen un icono de Rayo):
Observar la siguiente pgina, y vea con detalle como se agrega el bloque que corresponde al evento cuando se cargue el Form2.
64
Primera Parte
En esta figura se observa el cdigo correspondiente al Evento Form2_Load. Paso 6: En este momento ir al cuadro de herramientas y seleccione los siguientes objetos que se presentan en la tabla de abajo (recuerde hacer exactamente lo que se le define en las propiedades de los Objetos): De acuerdo como se hizo anteriormente, las propiedades para los objetos son las siguientes: Objeto Label1 Propiedad del Objeto Text Valor de la propiedad Inventario de Medicinas Farmacia Nueva Vida. Info Desktop True True Vertical
BackColor ForeColor TextBox1 Text Multicine ReadOnly ScrollBar Tabla.- Control de Atributos Programa 4.
65
Primera Parte
Sin mucho que esperar, pase al siguiente Inciso: Paso 7: Ya se tiene el Formulario a Nivel de Diseo, pero no esta programado, entonces, es aqu donde tiene que agregar las siguientes instrucciones:
Usted tiene que ver a nivel de cdigo lo siguiente: Clase Principal Public Class Form2 ' Este es Nombre de Productos Dim Nombre_Productos(0 To 5) As String Private Sub Form2_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Dim i As Short = 0 'Centinela de Control de Ciclo, para recorrido del Arreglo 'Inicializando los el Arreglo Nombre de productos Nombre_Productos(0) = "Amoxicilina" Nombre_Productos(1) = "Penisilina" Nombre_Productos(2) = "Antmicina" Nombre_Productos(3) = "Panadol"
Ing. Giovanni Senz 66
Primera Parte
Nombre_Productos(4) = "Penisilina" Nombre_Productos(5) = "Dulce sueo" 'Ahora utilizar las Funciones que se habian explicado anteriormente, como es LBound y UBound For i = LBound(Nombre_Productos) To UBound(Nombre_Productos) 'Asignarlo al Objeto TextBox1, celda a celda, es decir, uno a uno. Me.TextBox1.Text = Me.TextBox1.Text & " Nombre Medicina[" & i + 1 & "]=" & Nombre_Productos(i) & Chr(13) & Chr(10) Next End Sub End Class
Se incluye el Ambiente de Studio .NET 2005 para que no se pierda, o si se encuentra confundido:
Paso 8: Si todo esta correcto, proceda a Correr el Programa, recuerde que puede Utilizar:
Ing. Giovanni Senz 67
Primera Parte
a.- F5 Para compilar y Ejecutar. b.- F8 Paso a Paso, que esto es lo mejor, para cuando esta desarrollando habilidades. c.- Buscar en el Men de Visual Studio 2005, la opcin Depurar, luego seleccione F5, y exactamente suceder lo que hizo con el Inciso a. d.- Otra opcin, y se practica en clases, es marcar un bloque con el cursor (dar clic al lado derecho de la instruccin, ah vera un punto Rojo [una esfera roja a la par de la Instruccin]), lo que indicara, que si usted da F5 en ese momento, el programa correr hasta esa instruccin, luego usted puede seguir paso a paso F8, y de esta forma puede Observar detalles durante la corrida.
Como se puede Observar, se agregaron todos los elementos del arreglo Nombre_Medicina. Recomendamos, que para hacer esta prctica ms gil, coloque un nombre representativo al formulario Form2, como por ejemplo: Sistema de Control de Productos. Paso 9: Ahora Agregue dos Objetos ms, un Label2 y un ComboBox1 (este es utilizado para Visualizar datos, muestra como se puede deslizar a lo largo de sus elementos [es idneo para arreglos]). Ver siguiente pgina ->
Primera Parte
Incorpore al formulario, los siguientes elementos: Objeto Propiedad del Objeto Text BackColor Label2 ForeColor Text Valor de la propiedad Listado De Productos Mediante un Combo: Info (esto es opcional para usted como programador) Desktop (esto es opcional para usted como programador)
ComboBox1
Paso 10: Al Agregue los dos Objetos ms (un Label2 y un ComboBox1), es que usted tenga una manera adicional en la cual pueda observar los elementos del arreglo. Observe ese detalle
Ing. Giovanni Senz 69
Primera Parte
y agregue al momento que se cargue el Form2, entonces digitalizar las siguientes instrucciones: Public Class Form2 ' Este es Nombre de Productos Dim Nombre_Productos(0 To 5) As String Private Sub Form2_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Dim i As Short = 0 'Centinela de Control de Ciclo, para recorrido del Arreglo 'Inicializando los el Arreglo Nombre de productos Nombre_Productos(0) = "Amoxicilina" Nombre_Productos(1) = "Penisilina" Nombre_Productos(2) = "Antmicina" Nombre_Productos(3) = "Panadol" Nombre_Productos(4) = "Penisilina" Nombre_Productos(5) = "Dulce sueo" 'Ahora utilizar las Funciones que se habian explicado anteriormente, como es LBound y UBound For i = LBound(Nombre_Productos) To UBound(Nombre_Productos) 'Asignarlo al Objeto TextBox1, celda a celda, es decir, uno a uno. Me.TextBox1.Text = Me.TextBox1.Text & " Nombre Medicina[" & i + 1 & "]=" & Nombre_Productos(i) & Chr(13) & Chr(10) Next 'Agregar Elementos al ComboBox1 Me.ComboBox1.Text = "Producto - Farmacia Nueva Vida" For i = LBound(Nombre_Productos) To UBound(Nombre_Productos) 'Asignarlo al Objeto TextBox1, celda a celda, es decir, uno a uno. Me.ComboBox1.Items.Add(Nombre_Productos(i)) 'En el caso del ComboBox1, es mediante la Propiedad Item.add es que se ' puede llegar a agregar elementos al Objeto. Next End Sub End Class Observe ahora como quedara el formulario, tiene dos opciones de poder observar los detalles.
70
Primera Parte
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.
71
Primera Parte
72
Primera Parte
c.- Se agrega el siguiente Cdigo: Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged No existe ninguna Instruccin End Sub d.- Para poder hacer posible la seleccin de la Cadena o elemento en el arreglo y que fue asignado al ComboBox1, se requiere que agregue otro objeto, y ese es un TextBox2. Buscar el Objeto Combo y en el Evento al Hacer SelectedIndexChanged (recuerde que es al lado derecho del manejador de eventos). Observar la siguiente pgina (con las propiedades que se muestran en la tabla): Objeto TextBox2 Label3 Propiedad del Objeto Text Text Valor de la propiedad Producto Seleccionado en el Combo
73
Primera Parte
Paso
12:
al
evento
Private
Sub
ComboBox1_
Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged Dim p As Short = 0 ' Utilizado para guardar la posicin del ComboBox1 y as 'identificar elemento. Dim Cad As String = " " ' Guarda la cadena actual en donde se hizo click en el 'ComboBox1. If Me.ComboBox1.SelectedIndex = -1 Then Exit Sub ' No selecciono ningun elemento. Else 'Seleccionar elemento actual en caso de hacer digitalizado en alguno p = Me.ComboBox1.SelectedIndex 'Mostrar el valor de la posicin seleccionada MessageBox.Show("Valor de la Celda es: " & p, "Valor de la posicin en el Combo Box", MessageBoxButtons.OK, MessageBoxIcon.Information) 'Ahora, controlar la cadena actual, el cual se refiere al elemento en el cual esta 'posicionado Cad = Me.ComboBox1.Text 'Asignar esa cadena al TextBox para visualizar el elemento. Me.TextBox2.Text = Cad End If End Sub Podra Observar, que ahora, se extiende el ComboBox1 de la Siguiente forma (ver pgina a continuacin):
74
Primera Parte
Al hacer Clic le mostrara la posicin actual en que se encuentra en el ComboBox1, esto porque se selecciono Penicilina (recuerde que los arreglos inician desde la posicin Cero 0, no desde la UNO 1:
Entonces al final Observara como se mostr la posicin y el contenido del Combo Box1.
75
Primera Parte
Tarea en Clase
Se requiere ahora hacer los clculos en base a valores reales, para tal fin debe declarar el siguiente arreglo:
N 0 1 2 3 4 5
Nombre del Producto Amoxicilina Penisilina Antmicina Panadol Antigripal Dulce sueo
Para lograr este fin, usted tiene que disear las instrucciones necesarias: a.- Para leer la cantidad de Unidades a comprar por Producto (puede utilizar InputBox o lo que usted desee). b.- Poder calcular el monto en base a las unidades seleccionada por el Usuario (solo el usuario establece la cantidad de productos a comprar, y usted programa el precio, en este sentido la recomendacin es utilizar arreglos). c.- Debe presentar cuantos productos por unidad decidi el usuario, y eso se tiene que mostrar en pantalla en un Textbox (puede usar como segunda opcin un Label). d.- Presentar el desglose de cuanto es el monto por el producto seleccionado, es decir, si lleva diez unidades, y selecciono amoxicilina, entonces, hay que hacer el clculo y presentar el precio total, y luego en otro TextBox donde se mire todo el detalle a la suma a que asciende la compra. Por ejemplo:
76
Primera Parte
Esta es la salida que se espera que usted presente, incluir la opcin de salir del sistema.
77
Primera Parte
1.- Crear un nuevo Proyecto. 2.- Dentro del Formulario, agregar los siguientes objetos: a.- Un Textbox, con las propiedades Multiline en Trae, y scrollBar en Vertical. b.- Agregar un botn de comando, con el nombre de Ejecutar. 3.- Hacer Clic en el Botn y digitalizar el siguiente Cdigo: Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim i As Integer Dim Encapsular As String Encapsular = Chr(13) & Chr(10) For i = 5 To 25 Step 5 Me.TextBox1.Text = Me.TextBox1.Text & "Lnea " & i & Encapsular Next i End Sub End Class
Ing. Giovanni Senz 78
Primera Parte
1.- Crear un nuevo Proyecto. 2.- Dentro del Formulario, agregar los siguientes objetos: a.- Un Listbox, con el nombre de ListCuadroPais. c.- Un Label, con el nombre de EtiSaludo. b.- Agregar y digitalice el siguiente Cdigo: Public Class Form1 Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Me.ListCuadroPais.Items.Add("Nicaragua") Me.ListCuadroPais.Items.Add("Alemania") Me.ListCuadroPais.Items.Add("Brasil") Me.ListCuadroPais.Items.Add("Holanda") End Sub Private Sub ListCuadroPais_MouseHover(ByVal sender As Object, ByVal e As System.EventArgs) Handles ListCuadroPais.MouseHover If Me.ListCuadroPais.SelectedIndex < 0 Or Me.ListCuadroPais.SelectedIndex > 4 Then Me.EtiSaludo.Text = "Por favor Hacer Click En la etiqueta del Pais" End If End Sub End Class
79
Primera Parte
1.- Disear el formulario que se le presenta: a.- Un Label, en la propiedad text digitalizar: Trabajando con Arreglos. b.- Un TextBox, dejar la propiedad Text vaca. c.- Un botn con la propiedad text: Introducir Temperaturas. d.- Un botn con la propiedad text: Mostrar la Temperatura. 2.- Hacer Clic en el Botn Introducir Temperaturas, ah digitalizar el siguiente cdigo: Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim Prompt, Title As String Dim i As Short Prompt = "Escriba la Temperatura ms Alta del Da" For i = 0 To UBound(Temperaturas) Title = "Da" & (i + 1) Temperaturas(i) = InputBox(Prompt, Title) Next End Sub
80
Primera Parte
3.- Hacer Clic en el Botn Mostrar la Temperatura, ah digitalizar el siguiente cdigo: Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Dim Resultado As String Dim i As Short Dim Total As Single Resultado = "Temperaturas ms Altas de la Semana: " & vbCrLf & vbCrLf For i = 0 To UBound(Temperaturas) Resultado = Resultado & "Da" & (i + 1) & vbTab & Temperaturas(i) & vbCrLf Total = Total + Temperaturas(i) Next Resultado = Resultado & vbCrLf & " Temperatura Promedio: " & Format(Total / 7, "0.0") Me.TextBox1.Text = Resultado End Sub
81
Primera Parte
4.- Un paso muy importante, es que usted tiene que declarar una variable para guardar los valores, la cual es: Public Class Form1 'Esta Instruccion Crea una Arreglo llamado Temperaturas de Tipo Single 'Contiene siete elementos enumerados desde 0 hasta 6. Dim Temperaturas(0 To 6) As Single Correcto, es un arreglo, el cual guarda las temperaturas, esta declarado de tipo entero corto y son siete celdas.
Tareas:
1.- Con qu Objetos se puede hacer un despliegue por columna y filas para presentar la informacin al estilo de Access o Excel o SQL Server?. 2.- Ahora hacer un programa donde se muestre el nombre del producto, precio del producto, impuesto del producto y valor total del producto, de tal forma que en el mismo objeto se vean las columnas y filas de cada compra o factura (esto queda a criterio de usted). 3.- Hacer este ejercicio #2, pero ahora utilizando WEB Forms.
82
Primera Parte
2) Analizar la diferencia entre los Funciones, procedimientos y mdulos en Visual Basic .NET 2005, tanto al momento de declararlos, as como la implementacin y uso de estos. 3) Realizar prcticas de funciones, procedimientos y mdulos en programas donde se visualice tanto el traspaso de valores (parmetros de las funciones y procedimiento) por referencia y valor.
83
Primera Parte
84
Primera Parte
6.2.- Qu son los Mdulos Module, los Procedimientos Sub y los Procedimientos de Funcin Function
Hablando estrictamente de Module, un mdulo de Cdigo pblico, declaraciones, procedimientos Sub y funciones Function, que pueden compartirse entre todos los mdulos de un proyecto. En versiones anteriores de Visual Basic 6, un mdulo de cdigo se menciona como un mdulo estndar (opuesto a un mdulo de Formulario o clase). Cuando escriba programas ms grandes, tal vez se vea obligado a incluir formularios y procedimientos de eventos que empleen algunas de las mismas variables y rutinas. De manera predeterminada, las variables de un procedimiento de eventos son locales, es decir, slo pueden leer o modificarse dentro del procedimiento de evento en el cual fueron creadas. Recordando, tambin es posible declarar variables en la parte superior de un formulario slo sern validas en l. De igual manera, de forma predeterminada los procedimientos de evento se declaran como privados cdigo de programacin del formulario en donde fueron creados. Por ejemplo, invocar el procedimiento de evento Button_Click desde un segundo formulario llamado Form2 cuando se le ha declarado como privado de Form1, esto es inadmisible en Visual Studio .NET 2005 (esto ser mostrado ms adelante). Para compartir variables y procedimientos entre todos los formularios y procedimientos de eventos de un proyecto, es necesario declararlos dentro de uno o ms mdulos incluidos en l. Los mdulos son archivos especiales cuya extensin de nombre de archivos es .vb, y contienen declaraciones de variables y procedimientos que se pueden utilizar en cualquier lugar del programa (Visual Basic 6, los mdulos estndar tienen la extensin de archivo .bas). Al igual que los formularios, los mdulos se listan de forma separada dentro del explorador de soluciones, y pueden guardarse en el disco empleando el comando Guardar NombredeModulo.vb como del men Archivo (El NombredeModulo.vb debe coincidir con el nombre del proyecto). A diferencia de los formularios, los mdulos slo contienen cdigo y no cuentan con una interfaz de usuario. A pesar de que los mdulos tiene algunas similitudes con las clases (antiguamente conocidas como mdulos de clases), la diferencia de stas, es porque en aquel instante no estaban orientada a objetos, ni tampoco, definan estructura, ni caractersticas de objetos, y no pueden heredar.
Primera Parte
parmetros
Primera Parte
que son pasados cuando es invocada la funcin. Cuando se llama a una funcin, Visual Basic asigna el valor de cada argumento en la llamada al parmetro que ocupa su misma posicin en la lista de parmetros de la funcin. expresin Define el valor devuelto por la funcin. Este valor es almacenado en el propio nombre de la funcin, que acta como variable dentro del cuerpo de la misma. Si no se efecta esta asignacin, el resultado devuelto ser 0 si esta es numrica, nulo ( ) si la funcin es de caracteres, o vaco (Emply). Esta sentencia, al igual que Exit Function, devuelve el control a la sentencia que se encuentra inmediatamente a continuacin de esta forma la ejecucin del Programa.
End Function
La llamada a una funcin es de la forma: [Variable = ] nombre [(argumentos)] < Esto es para la manera tradicional. argumentos Son una lista de constantes, variables o expresiones separadas por comas. El nmero de argumentos debe ser igual al nmero de parmetros de la funcin. Los tipos de argumentos deben coincidir con los tipos de sus correspondientes parmetros.
Por compatibilidad con otros lenguajes, es aconsejable escribir los parntesis cada vez que se llama a una funcin, aunque sta no tenga argumentos. Una llamada a una funcin puede formar parte de una expresin. Un Ejemplo2 de una funcin es el clculo de la media de un arreglo: Function fnMedia(ByVal x() As Integer) As Integer Dim v as integer Dim Suma As integer Dim n As Integer Dim i as Short Calcular la media de los valores del arreglo For i = LBound (x) To UBound(x) Suma = Suma + v n = n +1 Next fnMedia = Suma / n valor que se devuelve End Function
87
Primera Parte
Observe que el valor que deseamos que devuelve la funcin hay que almacenarlo en el propio nombre de la funcin, frMedia. Ahora bien, observe el llamado que se hace a la funcin en el momento que se cargue el formulario, la funcin fnMedia recibe por parmetro los valores (solo el nombre de las variables que se recibirn), y como la funcin retorna siempre un valor se debe asignar a una variable del mismo tipo de retorno que la funcin. Private Sub Form2_Load(ByVal sender System.EventArgs) Handles Me.Load Dim a(1 To 3) As Integer Asignar el valor al Arreglo a(1) = 3: a(2) = 5: a(3) = 8 Media = fnMedia(a) Se pasa como argumento al arreglo MsgBox ("La Media es:" & Media, vbInformation, "Valor de la Media") End Sub Este procedimiento define un arreglo denominado a y llama a la funcin frMedia pasndola como argumento dicho arreglo. As Object, ByVal e As
Media = frMedia(a) se pasa como argumento el arreglo a Function fnMedia(ByVal x() As Integer) As Integer Declare en la Seccin General de Variables: Media As Integer En momento de llamar a la funcin, las variables x y a referencia al mismo arreglo. El arreglo a se ha definido como una variable local al procedimiento Form_Load, por lo tanto slo es visible dentro de este procedimiento, y los parmetros de un procedimiento, como x, por definicin son locales al propio procedimiento. Segn esto, el parmetro x de frMedia tambin lo podamos haber denominado a puesto que slo es visible dentro de su propio procedimiento. Guarde la aplicacin y los mdulos con el nombre funcin. Despus ejecute la aplicacin y analice los resultados.
88
Primera Parte
Si se observa bien, notara que usted la funcin puede tener mbito privado a nivel del formulario (en este caso se observa que es Form2), pero es solo valida esta funcin dentro del formulario, ya que si desea llevarlo a otros formularios, tendr que ser de tipo Pblico.
89
Primera Parte
'Procedimientos que recibe como parametro el valor del Impuesto 'En base a este valor se analiza si es impuesto es tasa preferencial o regular Sub ImpI(ByVal imp As Double) If imp <= 0.11 Then 'Si el Impuesto es menor de 0.11, es tasa preferencial MessageBox.Show("Tiene un impuesto de " & imp & " - Es Tasa preferencial ", " Impuestos ", MessageBoxButtons.OK, MessageBoxIcon.Information) Else 'Si el Impuesto no es menor de 0.11, es tasa regular
Ing. Giovanni Senz 90
Primera Parte
MessageBox.Show("Tiene un impuesto de " & imp & " - Es Tasa regular ", " Impuestos ", MessageBoxButtons.OK, MessageBoxIcon.Information) End If 'Fin de la sentencia de Control End Sub ' Fin del Procedimiento ImpI En el ejemplo dos, el procedimiento procSuma, recibe dos parmetros, uno es un arreglo de tipo entero, y el segundo elemento es la cantidad de elementos (si se observa realmente, para fines prcticos, esto ya lo podemos calcular con las funcin UBound que se ha utilizado anteriormente, ya que se puede cuestiones de una mala programacin, pero para fines y efectos, este es un ejemplo de lo que usted puede llegar a desarrollar con procedimientos). Aada un mdulo proSuma que se expone a continuacin: Sub procSuma (ByVal x() As Integer, ByVal n As Integer) Dim I, Suma As Integer Calcular la suma de los valores de la matriz x For i = 1 To n Suma = Suma + x(i) Acumulador Next i MessageBox.Show( La suma del Vector es: & Suma, " Imprimiendo resultado ", MessageBoxButtons.OK, MessageBoxIcon.Information) End Sub Observe nuevamente, que el procedimiento tiene dos parmetros (esta variacin se ha hecho slo por motivos didcticos). El primer parmetro es un arreglo de tipo Integer y el segundo que indica su nmero de elementos. El procedimiento escribe el resultado en una ventana MessageBox. Al final lo que se muestra es la suma de los elementos del arreglo. La llamada a este procedimiento puede ser de cualquiera de las dos formas siguientes: procSuma (a, 3) Recuerde que ahora los procedimientos, los argumentos estn entre parntesis. Call procSuma (a, 3) De acuerdo con esto, modifique el procedimiento Form_Load para que invoque al procedimiento procSuma. Private Sub Form2_Load(ByVal sender System.EventArgs) Handles Me.Load Dim a(1 To 3) As Integer, Media As Integer Asignar valores a la matriz a a(1) = 3: a(2) = 5: a(3) = 8 Media = fnMedia(a) Se pasa el arreglo como argumento a
Ing. Giovanni Senz 91
As
Object,
ByVal
As
Primera Parte
procSuma a, 3
Se pasa como argumento el arreglo a y su Nmero de elementos. Tambin se podra escribir: Call procSuma(a, 3)
End Sub Si usted ve claramente en esta pantalla, vera que existen tres procedimientos, uno de ellos es el al hacer click en el boton1, el otro es para mandar a imprimir en un textbox1 un arreglo y el ltimo, manda a imprimir un arreglo a un ComboBox.
Primera Parte
Esta es valida a nivel de un formulario, Si no se especifica la palabra clave Private y se le antepone public, esto es ahora un procedimiento Public, esto significa que debe ser definido en un mdulo.
Public Function fnMedia(ByRef x() As Integer) As Integer . End Function Esto quiere decir que si en el cuerpo de la funcin fnMedia se modifica algn elemento del arreglo x, dichos cambios tambin seran vistos desde a, porque pasar a por referencia significa que ambas variables, a y x, referencian los mismos valores. Cuando se pasa un parmetro por referencia, lo que realmente se pasa al procedimiento es dnde estn los datos con los que tienen que trabajar, no una copia de los datos. Cuando se llama a un procedimiento (Sub o Function), se podr especificar que el valor de un argumento no sea cambiado por ese procedimiento, poniendo dicho argumento entre parntesis en la llamada. Un argumento entre parntesis en la llamada es un argumento pasado por valor. Por ejemplo: procSuma (a, n) a es pasada por referencia y n por valor
93
Primera Parte
Observe que el procedimiento procSuma; el argumento n es pasado por valor, lo cual significa que se pasa una copia a n (el argumento n en la llamada y el parmetro n del procedimiento no se confunde porque los parmetros de un procedimiento son locales al mismo). Si el procedimiento procSuma cambiara el valor de n, el cambio afecta slo a este procedimiento y no al argumento n en la llamada; por esto decimos que cuando se pasa un argumento por valor se pasa una copia, impidiendo as trabajar sobre la variable original. Otra forma de especificar que un argumento ser pasado por valor es anteponiendo la palabra ByVal a la declaracin del parmetro en la cabecera del procedimiento (Sub o Function). Anlogamente, ByRef especifica que el parmetro ser pasado por referencia; se recomienda que sea por ByVal. Por ejemplo: Public Sub procSuma(ByVal x() As Integer, ByVal n As Integer) La cabecera del procedimiento procSuma especifica que x ser pasado por referencia y que n ser pasado por valor. Esta forma de proceder evita tener que poner n entre parntesis en la llamada. Una estructura (tipo definida por el usuario) tambin se puede pasar como argumento a un procedimiento; pero en el caso de un formulario o de una clase, el procedimiento tiene que ser Private. Los argumentos de un tipo definido por el usuario son siempre pasados por referencia. As mismo, una funcin puede retornar una estructura.
94
Primera Parte
c.- Agregue un Modulo, el cual se llamara Mi_Modulo1. Para poder hacer posible esto, debe colocarse sobre el proyecto en el explorador de Soluciones y hacer click derecho con el ratn sobre el mismo, se abrirn la siguientes opciones:
95
Primera Parte
96
Primera Parte
Ahora le aparecer en pantalla el modulo, pero le muestro como se vera cuando agregue el cdigo.
d.- Ahora en el Formulario agregue el siguiente cdigo (en base a lo que observa usted en pantalla y que se puede observar en el Inciso b): Public Class MI_Form Dim pr As Double Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click pr = Leer_Notas() Imprimir(pr) End Sub Sub Imprimir(ByVal pr As Double) Dim i As Single Dim E As String E = Chr(13) + Chr(10) For i = 0 To cant - 1 Me.TextBox1.Text = Me.TextBox1.Text & n(i) & E Next i
Ing. Giovanni Senz 97
Primera Parte
Me.TextBox1.Text = Me.TextBox1.Text & "El Promedio es: " & pr & E End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Me.Close() End Sub End Class
98
Primera Parte
e.- En el caso del Modulo, agregue lo siguiente: Module Module1 Public n(0 To 10), cant As Integer Function Leer_Notas() As Double Dim i As Integer Dim s As Integer Dim p As Double cant = Leer_Cantidad() For i = 0 To cant - 1 n(i) = InputBox("Digite la Notas " & " [ " & i + 1 & " ]: ", "Notas de POO") s = s + n(i) Next i p = s / cant Return (p) End Function Function Leer_Cantidad() As Integer Dim c As Single c = InputBox("Leer Cantidad de Notas", "Digite la Cantidad de Notas:") Return (c) End Function End Module
Para poder hacer posible esta prctica, recuerde siempre seguir todos los pasos anteriormente especificados y que son de base para la creacin de un Proyecto en Visual Basic .Net. A continuacin se detallan las acciones a seguir: a.- Crear un Proyecto con el Nombre de Mi Manejo_Modulos.
99
Primera Parte
c.- Agregue un Modulo, el cual se llamara Mi_Modulo1. Para poder hacer posible esto, debe colocarse sobre el proyecto en el explorador de Soluciones y hacer click derecho con el ratn sobre el mismo, se abrirn la siguientes opciones:
100
Primera Parte
101
Primera Parte
Ahora le aparecer en pantalla el modulo, pero le muestro como se vera cuando agregue el cdigo.
102
Primera Parte
d.- Ahora en el Formulario agregue el siguiente cdigo (en base a lo que observa usted en pantalla y que se puede observar en el Inciso b): Public Class MI_Form Dim pr As Double Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click pr = Leer_Notas() Imprimir(pr) End Sub Sub Imprimir(ByVal pr As Double) Dim i As Single Dim E As String E = Chr(13) + Chr(10) For i = 0 To cant - 1 Me.TextBox1.Text = Me.TextBox1.Text & n(i) & E Next i Me.TextBox1.Text = Me.TextBox1.Text & "El Promedio es: " & pr & E End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Me.Close() End Sub End Class e.- En el caso del Modulo, agregue lo siguiente: Module Module1 Public n(0 To 10), cant As Integer Function Leer_Notas() As Double Dim i As Integer Dim s As Integer Dim p As Double cant = Leer_Cantidad()
Ing. Giovanni Senz 103
Primera Parte
For i = 0 To cant - 1 n(i) = InputBox("Digite la Notas " & " [ " & i + 1 & " ]: ", "Notas de POO") s = s + n(i) Next i p = s / cant Return (p) End Function Function Leer_Cantidad() As Integer Dim c As Single c = InputBox("Leer Cantidad de Notas", "Digite la Cantidad de Notas:") Return (c) End Function End Module
104
Primera Parte
Problema #2
La Joyera Senz desea controlar las promociones que tiene para este mes en productos de anillo, para tal fin desean un sistema que muestre el precio normal, el precio Con dige, con esclava, con cadena y dige, y anillo de 14 K.T.v. Para este fin se debe controlar todas las operaciones de venta y compra, as como aplicar impuestos sobre la venta. En la tabla que sigue a continuacin se brindan los detalles: N
1
Modelo
Anillo Excell Anillo Ovalado Econmico Anillo Ovalado Pequeo Anillo Ovalado Mediano Anillo Ovalado Grande Anillo Marquesa B1 Anillo Marquesa B2 Anillo Marquesa B3 Anillo Marquesa B4 Anillo Josu Pequeo Anillo Josu Extragrande Anillo Setonaga Pequeo Anillo Setonaga Mediano Anillo Setonaga Grande Anillo ejecutivo Grande Anillo ejecutivo Grande Anillo Tradicional Pequeo Anillo Tradicional Mediano Anillo Tradicional Grande Anillo Tradicional Extragrande Anillo Trifsico Pequeo
Precio normal
C$ 3,250.00 C$ 2,000.00 C$ 2,500.00 C$ 3,250.00 C$ 4,250.00 C$ 3,250.00 C$ 2,500.00 C$ 2,750.00 C$ 2,500.00 C$ 2,500.00 C$ 5,500.00 C$ 2,500.00 C$ 3,250.00 C$ 4,250.00 C$ 4,250.00 C$ 5,500.00 C$ 2,500.00
Con Dige
C$ 3,430.00 C$ 2,180.00 C$ 2,680.00 C$ 3,430.00 C$ 4,430.00 C$ 3,430.00 C$ 2,680.00 C$ 2,930.00 C$ 2,680.00 C$ 2,680.00 C$ 5,680.00 C$ 2,680.00 C$ 3,430.00 C$ 4,430.00 C$ 4,430.00 C$ 5,860.00 C$ 2,680.00
Con Esclava
C$ 3,610.00 C$ 2,360.00 C$ 2,860.00 C$ 3,610.00 C$ 4,610.00 C$ 3,610.00 C$ 2,860.00 C$ 3,110.00 C$ 2,860.00 C$ 2,860.00 C$ 5,860.00 C$ 2,680.00 C$ 3,610.00 C$ 4,610.00 C$ 4,610.00 C$ 5,860.00 C$ 2,860.00
Anillo en 14 K.T.
C$ 3,800.00 C$ 2,500.00 C$ 3,000.00 C$ 3,800.00 C$ 5,000.00 C$ 3,800.00 C$ 3,000.00 C$ 3,500.00 C$ 3,000.00 C$ 3,000.00 C$ 7,000.00 C$ 3,000.00 C$ 3,800.00 C$ 5,000.00 C$ 5,000.00 C$ 7,000.00 C$ 3,000.00
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
C$ 2,500.00
C$ 3,430.00
C$ 3,610.00
C$ 3,790.00
C$ 3,800.00
C$ 4,250.00
C$ 4,430.00
C$ 4,610.00
C$ 4,790.00
C$ 5,000.00
C$ 5,500.00
C$ 5,680.00
C$ 5,860.00
C$ 6,040.00
C$ 7,000.00
C$ 2,500.00
C$ 2,680.00
C$ 2,680.00
C$ 3,040.00
C$ 3,000.00
105
Primera Parte C$ 3,250.00 C$ 4,250.00 C$ 2,500.00 C$ 3,250.00 C$ 4,250.00 C$ 5,500.00 C$ 2,500.00 C$ 1,500.00 C$ 3,250.00 C$ 3,430.00 C$ 4,430.00 C$ 2,680.00 C$ 3,430.00 C$ 4,430.00 C$ 5,680.00 C$ 2,680.00 C$ 1,680.00 C$ 3,430.00 C$ 3,610.00 C$ 4,610.00 C$ 2,680.00 C$ 3,610.00 C$ 4,610.00 C$ 5,860.00 C$ 2,680.00 C$ 1,680.00 C$ 3,610.00 C$ 3,790.00 C$ 4,790.00 C$ 3,040.00 C$ 3,790.00 C$ 4,790.00 C$ 6,040.00 C$ 3,040.00 C$ 2,040.00 C$ 3,790.00 C$ 3,800.00 C$ 5,000.00 C$ 3,000.00 C$ 3,800.00 C$ 5,000.00 C$ 7,000.00 C$ 3,000.00 C$ 1,800.00 C$ 3,750.00
22 23 24 25 26 27 28 29 30 31
Anillo Trifsico Mediano Anillo Trifsico Grande Anillo Moderno Pequeo Anillo Moderno Mediano Anillo Moderno Grande Anillo Moderno Extra grande Anillo Mary Anillo Fascinacin Anillo Centenario Mediano Anillo Cuadrado
C$ 2,500.00
C$ 2,680.00
C$ 2,680.00
C$ 3,040.00
C$ 3,000.00
106
Primera Parte
a.- Un Textbox, que permita: Mltiples lneas, que este permita el relleno de forma vertical y que sea solo para lectura. b.- Un Botn, al cual se le colocara en su propiedad Text: Cargar Elementos. c.- Dos etiquetas, la primera en su propiedad Text colocar Progreso, y la segunda Etiqueta Elementos. d.- Agregar un Nuevo Elemento, un ProgressBar, solo colquelo entre las etiquetas.
Paso Dos: Al momento y en el evento de carga del formulario, realice los siguientes ajustes:
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 'Inicializar Los valores del Arreglo Nombre_Anillos Nombre_Anillos(0) = "Anillo Excell" Nombre_Anillos(1) = "Anillo Ovalado Econmico" Nombre_Anillos(2) = "Anillo Ovalado Pequeo" Nombre_Anillos(3) = "Anillo Ovalado Mediano" Nombre_Anillos(4) = "Anillo Ovalado Grande" Nombre_Anillos(5) = "Anillo Marquesa B1" Nombre_Anillos(6) = "Anillo Marquesa B2" Nombre_Anillos(7) = "Anillo Marquesa B3" Nombre_Anillos(8) = "Anillo Marquesa B4""" Nombre_Anillos(9) = "Anillo Josu Pequeo" Nombre_Anillos(10) = "Anillo Josu Extragrande" Nombre_Anillos(11) = "Anillo Setonaga Pequeo" 'Inicializar Los valores de la Barra de Progreso en base a los 'elementos del Arreglo Nombre_Anillos Me.ProgressBar1.Minimum = 0 Me.ProgressBar1.Maximum = UBound(Nombre_Anillos) End Sub
Paso 3: Crear un Procedimiento, el cual rellene en el TextBox1 el arreglo Antes inicializado. Recuerde que este debe ir de preferencia despues del manejo de eventos y antes del final de la clase Form1. Sub ImpArreglo_Al_TextBox1(ByVal Nombre_Anillos() As String) Dim i As Short 'Ahora utilizar las Funciones que se habian explicado anteriormente, como es LBound y UBound For i = LBound(Nombre_Anillos) To UBound(Nombre_Anillos) 'Asignarlo al Objeto TextBox1, celda a celda, es decir, uno a uno.
Ing. Giovanni Senz 107
Primera Parte
Me.TextBox1.Text = Me.TextBox1.Text & Nombre_Anillos(i) & vbTab & vbCrLf Me.ProgressBar1.Value = i Me.Label2.Text = i Next i End Sub Paso Cuatro: Hacer Doble Click en el Boton Cargar Elementos, y agregar el llamado al Procedimiento que rellena el TextBox1: Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Call ImpArreglo_Al_TextBox1(Nombre_Anillos) End Sub Paso 5: Crear un Modulo y declarar el Arreglo en ese bloque, el cual ser utilizado para almacenar los elementos del arreglo Nombre Anillos.
108
Primera Parte
Por ejemplo aqu se utilizo el modulo del problema anterior. Public Nombre_Anillos(30) As String
109
Primera Parte
2) Analizar el uso de los clases y objetos en Visual Basic de Studio .NET 2005.
3) Definir los pasos que se deben realizar para programar clases y objetos en Visual Basic .NET 2005.
4) Realizar prcticas en las cuales se pueda ver el uso de los clases y objetos que faciliten el desarrollo de las aplicaciones en Visual Basic .NET 2005.
Para poder trabajar con objetos y clases, es recomendable que adicionalmente recuerde como trabajan las funciones y los procedimientos en Visual Basic .Net. Ahora bien, siga los siguientes pasos que se detallan a continuacin: 1.- Entrar y Visual Basic .Net 2005. 2.- Crear un Nuevo proyecto con el Nombre POO1.
3.- Ya dentro de Visual Basic .Net, agregar un nuevo Formulario con el Nombre de FrmPOO, y en la propiedad text del Formulario digitalizar: Formulario de Programacin Orienta a Objetos en VB .Net (Ver Grfico #2).
110
Primera Parte
Recuerde que al Entrar en Visual Basic .Net 2005, tiene que crear un Proyecto, en nuestro caso es para Windows.
Figura #1: Creando Proyecto.
Debe asegurar que el Proyecto que esta creando es de Visual Basic .Net, uestes ya tiene prctica en este sentido (sino lo hace as,
no
ha
111
Primera Parte
Es muy importante que tenga pendiente, que usted esta creando una Aplicacin, la cual tiene ciertas especificaciones, no pierda el hilo de la secuencia de pasos. Continuemos.
Primera Parte
Es muy importante, que tenga pendiente nuevamente, Para Crear el Formulario tiene que ir al men (esta es una de tres opciones que existe en Visual Basic .Net), ah buscar la opcin Proyecto, a continuacin selecciones Agregar nuevo Elemento, exactamente como aparece en el siguiente grfico:
113
Primera Parte
114
Primera Parte
4.- Para poder trabajar con objetos y clases, es recomendable que adicionalmente recuerde como trabajan las funciones y los procedimientos en Visual Basic .Net. Este cdigo, debe digitalizarlo ntegramente, dentro del formulario, recuerde que me refiero a las Instrucciones que sern programadas (recuerde el orden que se establecen las clases, objetos y eventos, si no lo hace as, entonces demuestra que no ha practicado y nada ha estudiado). Public Class Form1 Public Class Persona Private mNombre As String Private mApp As String Public Sub New(ByVal n As String, ByVal a As String) mNombre = n mApp = a End Sub
Public Property Nombre() As String Get Return mNombre End Get Set (ByVal value As String) mNombre = value End Set End Property
115
Primera Parte
Public Property Apellido() As String Get Return mApp End Get Set(ByVal value As String) mApp = value End Set End Property End Class Dim col As New Collection
5.- Debe agregar al formulario: a.- Un Objeto DataGridView, en este caso lo dejamos con su nombre original. b.- Buscar el evento al momento que se cargue el formulario y Agregar las siguientes instrucciones.
116
Primera Parte
Private Sub Form1_Load(ByVal sender System.EventArgs) Handles MyBase.Load col.Add(New Persona("Pepe", "Aguilar")) col.Add(New Persona("Pedro", "Infante"))
As
System.Object,
ByVal
As
col.Add(New Persona("Vicente", "Fernndez")) col.Add(New Persona("Antonio", "Aguilar")) col.Add(New Persona("Pablo", "Montero")) col.Add(New Persona("Daddy", "Yankee")) Me.DataGridView1.DataSource = col End Sub End Class
Ing. Giovanni Senz 117
Primera Parte
Tareas:
Ahora usted hgalo en base a las orientaciones seguidas en el simulacro examen (es decir, esos dos programas que quedaron en clase, ahora utilizar esta tcnica), entonces tiene tres programas (este mismo, ms los otros dos) que hacer para el prximo da de clase.
118
Primera Parte
Bibliografa
1.- Titulo: Aprenda Ya Visual Basic .Net. Autor: Michael Halvorson. Editorial: Mc Graw Hill. ISBN: 970-10-5897-6 2.- Titulo: Aprenda Practicando Visual Basic 2005 Usando Visual Studio 2005. Autor: Felipe Ramirez. Editorial: Prentice Hall. ISBN: 970-26-0912-7
3.- Titulo: Aprendiendo Visual Basic .Net. Autor: Duncan Mackenzie, Kent Sharkey. Editorial: Prentice Hall. ISBN: 970-26-0379-X. 4.- Titulo: Curso de SQL Server y Visual Basic .Net. Autor: Ing. Glenda Barrios. Editorial:. Ing. Glenda Barrios ISBN: UNI FEC, Ingeniera en Computacin.
119