Está en la página 1de 119

Curso .

NET 2005

Primera Parte

Universidad Nacional de Ingeniera


Facultad de Electrotecnia y Computacin
Curso de Studio .NET 2005

Introduccin a Studio .NET 2005:

Estudio de la Plataforma Studio .NET 2005.


Aplicaciones Windows Vs Web en Studio .Net
2005.

Prof. Giovanni Francisco Senz Araica.

Ing. Giovanni Senz

Curso .NET 2005

Primera Parte

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

1.4.- Visual Basic 2005 ________________________________________________________ 11


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

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


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

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


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

Curso .NET 2005

Primera Parte

3.3.1.- Tareas para las sentencias de Control Cclicas ___________________________________ 40


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

5.- Arreglos en Visual Basic.Net ________________________________________________ 54


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

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


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

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

Ing. Giovanni Senz

Curso .NET 2005

Primera Parte

Objetivos de Todo el Curso


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

Ing. Giovanni Senz

Curso .NET 2005

Primera Parte

I.- Definicin de la Plataforma .NET


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

1.1.- Componentes de la Plataforma:


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

Curso .NET 2005

Primera Parte

.NET no es slo un conjunto de lenguajes o un producto de Microsoft metido en una caja, es


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

En la presente tabla se muestran Problemas que elimina .NET


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

En la presente tabla se detallan los beneficios .NET


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

Curso .NET 2005

Primera Parte

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

1.2.- Capas principales de la plataforma .NET


Las capas que componen la plataforma .NET son:

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

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


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

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


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

Curso .NET 2005

Primera Parte

Existen dos principales:


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

4.- Biblioteca de clases base (BCL/Base Class Library): La biblioteca de


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

6.- Soporte operativo: La capa de soporte operativo es la compuesta por las


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

Ing. Giovanni Senz

Curso .NET 2005

Primera Parte

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

Ing. Giovanni Senz

Curso .NET 2005

Primera Parte

CLS (Common Language Specification)

Visual Basic

C#

C ++

J++

JScript

Otros

.NET Framework
Web Forms

Web Service

Asp .Net Application Services

Windows
Forms

Console

Windows Application Services

Biblioteca de Clases base de .NET Framework


(BCL/ Base Clase Library)
CLR (Common Language Runtime)
CLI (Common Lenguage Infraestructure)

Sistemas Operativos
Windows (2003, 2000, XP)

Otros Sistemas Operativos

Figura# 1.1. Estructura de la Plataforma .NET

1.3.- Capa de lenguaje de .NET


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

10

Curso .NET 2005

Primera Parte

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

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

Cualquier desarrollador experimentado puede aventurase a desarrollar su propio lenguaje de


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

1.4.- Visual Basic 2005


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

Ing. Giovanni Senz

11

Curso .NET 2005

Primera Parte

1.4.1.- Versiones de Visual Basic .Net


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

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

Ing. Giovanni Senz

12

Curso .NET 2005

Primera Parte

1.5.- Requerimientos Mnimos para Visual Studio .Net 2005


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

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

Ing. Giovanni Senz

13

Curso .NET 2005

Primera Parte

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


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

2.1.- Notas de Actualizacin


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

Ing. Giovanni Senz

14

Curso .NET 2005

Primera Parte

Para fomentar una buena practica de programacin y la generacin de cdigos de programacin


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

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

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

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

15

Curso .NET 2005

Primera Parte

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

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

2.1.2.- Utilice Variables para Almacenar Informacin


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

Palabras
Nmeros
Fechas
Propiedades
Valores u otros.

Adems puede guardar informacin digitalizada por el usuario en el tiempo de ejecucin, el


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

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


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

Ing. Giovanni Senz

16

Curso .NET 2005

Primera Parte

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

Dim Nombre_Variable As Single


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

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

Tipos de Datos Especficos

Ing. Giovanni Senz

17

Curso .NET 2005

Primera Parte

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


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

18

Curso .NET 2005

Primera Parte

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

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

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

19

Curso .NET 2005

Primera Parte

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

2.4.- Operadores de Visual Basic


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

2.4.1.- Visual Basic incluye los siguientes operadores:


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

Ing. Giovanni Senz

20

Curso .NET 2005

Primera Parte

2.4.2.- Visual Basic incluye los siguientes operadores relacionales:


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

2.4.3.- Visual Basic incluye los siguientes operadores lgicos:


Operadores
And

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

Ing. Giovanni Senz

21

Curso .NET 2005

Primera Parte

III.- Sentencias de Control de Visual Basic .Net


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

3.1.- Ciclo For en Visual Basic .Net 2005


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

10

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

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

22

Curso .NET 2005

Primera Parte

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

101

102

103

104

Como se ha podido observar, existen otras particularidades, al controlar el ciclo existe un


movimiento, el cual expresa que los valores o variables, se pueden desplazar o moverse de uno en
uno, y lo cual no es una regla, ya que en muchas ocasiones probablemente nos desplacemos de
dos en dos, o de tres en tres, y as sucesivamente.

3.1.1.- Reglas para definir el Ciclo For


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

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

3.1.2.- Programa Nmero 1


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

Ing. Giovanni Senz

23

Curso .NET 2005

Primera Parte

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

3.1.3.- Anlisis del Algoritmo a Desarrollar


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

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

24

Curso .NET 2005

N
1

Primera Parte

Instruccin a realizar - Algoritmo


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

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

For i=1 Hasta 5


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

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


Paso UNO: Abrir Visual Basic. Net

Ing. Giovanni Senz

25

Curso .NET 2005

Primera Parte

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

Debe seleccionar que desea una


Aplicacin y que esta es nueva.

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

Recuerde Seleccionar Visual


Basic y es una Aplicacin
para Windows

Ing. Giovanni Senz

26

Curso .NET 2005

Primera Parte

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

Ventanas de
Propiedades de
Visual Basic. Net

Explorador de
Soluciones de
Visual Basic. Net

Ventanas de
Propiedades de
Visual Basic. Net

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

Ing. Giovanni Senz

27

Curso .NET 2005

Primera Parte

Paso Seis: Ahora seleccione en los


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

Paso

Siete: Ahora Agregue dos

botones, uno ser utilizado para leer y el


otro para sumar las facturas.
Botn para Leer datos.

Botn para analizar los datos.

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

Ing. Giovanni Senz

28

Curso .NET 2005

Primera Parte

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

Paso Ocho: Ahora Agregue un objeto


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

ScrollBars: En propiedad Vertical, para


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

Ing. Giovanni Senz

29

Curso .NET 2005

Primera Parte

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

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

Tabla #3.5.- Programacin de Eventos del Formulario Nueva Vida.


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

30

Curso .NET 2005

Primera Parte

End Sub

Paso Diez: Ahora hacer Click sobre el


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

Paso Once: Ahora Agregar variables


globales al Formulario:

Public Class Form1


Fijarse donde se declaran las variables Globales.
Dim Fact As Double  Variables Globales al Formulario
Dim Suma As Double  Variables Globales al Formulario

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As


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

Paso Doce: ya tiene todo, corra la aplicacin.


Ing. Giovanni Senz

31

Curso .NET 2005

Primera Parte

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

Continuacin del paso Doce.

Al final, el resultado es:

Ing. Giovanni Senz

32

Curso .NET 2005

Primera Parte

Al dar clic en Analizar:

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

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

Ing. Giovanni Senz

33

Curso .NET 2005

Primera Parte

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

Ing. Giovanni Senz

34

Curso .NET 2005

Primera Parte

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


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

Ing. Giovanni Senz

35

Curso .NET 2005

i = 1

Primera Parte

 Esta es la Condicin Inicial Expresin1

Si puedes notar, si el valor de i al comprarlo en la expresin2 resulta falso, jamas


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

Do While (i <= cant)  Esta es la Condicin de Parada Expresin2


'For i = 1 To cant  Lo que sera Equivalente a FOR
s1 = InputBox("Digite la Nota S1 [Estudiante" &
"Digite la nota del Primer Sistematico")
Me.TextBox2.Text = Me.TextBox2.Text & " Est[" &
s1 & Chr(13) & Chr(10)
s2 = InputBox("Digite la Nota S2 [Estudiante" &
"Digite la nota del Segundo Sistematico")
Me.TextBox3.Text = Me.TextBox3.Text & " Est[" &
s2 & Chr(13) & Chr(10)
Ex = InputBox("Digite la Nota Ex [Estudiante" &
"Digite la nota del Examen")
Me.TextBox4.Text = Me.TextBox4.Text & " Est[" &
Ex & Chr(13) & Chr(10)

i & "]= ",


i & "]=" &
i & "]= ",
i & "]=" &
i & "]= ",
i & "]=" &

s1 = s1 * 0.3
s2 = s2 * 0.3
Ex = Ex * 0.4
NF = s1 + s2 + Ex
Me.TextBox5.Text = Me.TextBox5.Text & " Est[" & i & "]=" &
NF & Chr(13) & Chr(10)
Suma = NF + Suma
'Next 'Fin de la Lectura de las notas
i += 1  Esta es la Condicin para movernos en el ciclo Expresin3
Loop  Esta es la Palabra Reservada para el Cierre del Ciclo.
Una Variante al programa anterior, el de la suma de las facturas, es hacer el ajuste en el Botn
Leer, de tal forma que el cdigo se vea como este:

Ver pgina Siguiente:

Ing. Giovanni Senz

36

Curso .NET 2005

Primera Parte

Private Sub CmdLeer_Click(ByVal sender As System.Object, ByVal e As


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

End Sub

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

A continuacin el ciclo nmero tres, el Do Loop While (equivalente al Do-While de C y


Repeat de Pascal [parecido, pero no igual]).

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


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

Ing. Giovanni Senz

37

Curso .NET 2005

Primera Parte

Aunque el valor de la expresin1 no sea valido, es decir es falso, las instrucciones se


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

38

Curso .NET 2005

Primera Parte

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

i = 1

 Esta es la Condicin Inicial Expresin1

A continuacin, el ejemplo de Do While, se puede notar, que si el valor de i al comprarlo


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

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

Ing. Giovanni Senz

39

Curso .NET 2005

Primera Parte

Private Sub CmdLeer_Click(ByVal sender As System.Object, ByVal e As


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

3.3.1.- Tareas para las sentencias de Control Cclicas


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

Ing. Giovanni Senz

40

Curso .NET 2005

Primera Parte

3.4.- Sentencia de Control con IfEndIf


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

Se asegura de que no sea demasiado


alto.

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

Ing. Giovanni Senz

41

Curso .NET 2005

Primera Parte

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


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

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

Agregar dos
Label

Insertar un
TextBox

Incluir dos
Botones

De acuerdo como se hizo anteriormente, las propiedades para los objetos son las siguientes:
Objeto

Propiedad del Objeto


Text

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

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

42

Curso .NET 2005

Primera Parte

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

b.- Ahora Programe el Boton2, la salida del programa:


Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button2.Click
End 'Fin del programa
End Sub

Ing. Giovanni Senz

43

Curso .NET 2005

Primera Parte

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

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

Lo cual indicara que fue exitosa la operacin, y mostrara el resultado.


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

Ing. Giovanni Senz

44

Curso .NET 2005

Primera Parte

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


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

Ing. Giovanni Senz

45

Curso .NET 2005

N
1

Primera Parte

Instruccin a realizar - Algoritmo


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

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

Do
2.1.- Imprimir Digitalizar el Valor & i & =
2.2.- Leer Fact
2.3.- If Fact <= 0 Then
MessageBox.Show("La Facturacion digitalizo :
" & Fact, "Error en la Facturas ",
MessageBoxButtons.OK,
MessageBoxIcon.Error)
Sal = 1
Else
Sal = 0
End If
Loop While (Sal = 1)
2.4.- suma = suma + Fact
Fin_del_Ciclo_For
A continuacin, procedemos a mostrar los resultados del Ciclo:
3.1.- Imprimir El Monto total de Venta es: & suma
Fin_del_Programa
4
Tabla #3.7.- Ajuste al Algoritmo del Programa1.
3

Ahora que ha sido posible Mostrar los ajustes del Algoritmo, irse al Formulario correspondiente a
la Facturacin de la Farmacia Nueva Vida, y haga el siguiente ajuste al Cdigo y Clase Principal
de ese Formulario:

Ing. Giovanni Senz

46

Curso .NET 2005

Primera Parte

Private Sub Button1_Click(ByVal sender


System.EventArgs) Handles Button1.Click

As

System.Object,

ByVal

As

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

Ing. Giovanni Senz

47

Curso .NET 2005

Primera Parte

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


vera algo diferente.

Ahora pedir la cantidad de Facturas, y algo ms interesante, si usted proporciono un


valor no valido, le emitir un mensaje apropiado para ese momento, como por ejemplo:

Ing. Giovanni Senz

48

Curso .NET 2005

Primera Parte

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

Y si el valor es negativo, tambin esta validado.


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

Ing. Giovanni Senz

49

Curso .NET 2005

Primera Parte

3.5.- Sentencia de Control Select Case.End Select


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

Select Case iEdad


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

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

Ing. Giovanni Senz

50

Curso .NET 2005

Primera Parte

4.- Funciones de Conversin


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

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

Funcin
CBoll
CByte
CChar
CDate

CDbl
CInt
CLng
CSht
CStr

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.

Ing. Giovanni Senz

51

Curso .NET 2005

CType

Primera Parte

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

La sintaxis de CType es:


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

4.1.- Funciones de Manejo de cadenas


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

Funcin
Len
Chr
Asc
Left

Right

Mid

Descripcin

Ejemplo

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.
Devuelve la cantidad de caracteres que
hay en una cadena.
Devuelve el carcter basado en el valor
Unicode indicado.
Devuelve el valor Unicode.

Ing. Giovanni Senz

52

Curso .NET 2005

Instr

UCase

RTrim
Trim

Int = Instr(1, Hola, Mundo, l)


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

LCase

LTrim

Primera Parte

Ing. Giovanni Senz

53

Curso .NET 2005

Primera Parte

4.2.- Otras Funciones tiles Diversas variables integradas


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

Funcin
IsArray
IsDate
IsNumeric
IsObject
TypeName
Now
Today
CSht
CStr
CType

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

5.- Arreglos en Visual Basic.Net


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

Ing. Giovanni Senz

54

Curso .NET 2005

Primera Parte

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

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

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




Todos los elementos de un arreglo tienen el mismo tipo de datos.

Se accede a los elementos individuales utilizando ndices enteros, la cantidad de estos


dependen de la dimensin y el tipo de implementacin.

5.2.- Declare un Arreglo de tamao fijo


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

En la Declaracin de un arreglo, se debe especificar:






Nombre del arreglo


Tamao (nmero de elementos).
Tipo de dato de los elementos del arreglo.

Ing. Giovanni Senz

55

Curso .NET 2005

Primera Parte

Modificador de acceso (si fuera necesario).

ModificadorAcceso NombreArreglo(Tamao) As Tipo

Especifica
el nombre
del arreglo.

Especifica el
nivel de acceso
del arreglo.

Especifica el
tipo de datos
de los
elementos del
arreglo.

Especifica
el tamao
del arreglo.

5.3.- Ejemplos de Declaraciones de Arreglos


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

(0)

(1)

(2)

(3)

(4)

(5)

(6)

(7)

(8)

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

56

Curso .NET 2005

Primera Parte

Para declarar un arreglo entero con siete elementos:

Dim MiArreglo(6) As Integer


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

TextBox1.Text = CStr(MiArreglo(2))
b.- Arreglos de Multidimensiones
Cmo utilizar arreglos multidimensionales

Especificar todas las dimensiones y elementos


Total elementos = producto de todos los tamaos
Para declarar una variable arreglo multidimensional :




Aadir un par de parntesis tras el nombre de la variable


Colocar comas dentro de los parntesis para separar las dimensiones
Iniciar la declaracin con la sentencia Dim o un modificador de acceso

Ejemplo:

Public TresDimensiones(3,9,14) As Double


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

Ing. Giovanni Senz

57

Curso .NET 2005

Primera Parte

(0,0)

(0,1)

(0,2)

(0,3)

(1,0)

(1,1)

(1,2)

(1,3)

(2,0)

(2,1)

(2,2)

(2,3)

(3,0)

(3,1)

(3,2)

(3,3)

99

100

98

96

33

38

39

31

25

21

24

27

80

83

85

99

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

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

5.4.- Consideraciones al Momento de trabajar con los Arreglos


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

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

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

58

Curso .NET 2005

Primera Parte

que las variables (vuelva a leer en sus apuntes esta informacin).


Tipos de Datos

El tipo de datos que se almacenara en el Arreglo. Puede especificar


un tipo de dato fundamental o utilizar el Object si aun no esta
seguro de qu datos almacenar en l o si lo usar para albergar
varios tipos.

Nmeros de Dimensiones

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

Nmero de Elementos

La cantidad de elementos que tendr su arreglo. Los elementos en


su arreglo corresponden directamente al ndice del arreglo, el
primer ndice del arreglo siempre es 0 (cero).

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

5.5.- Las funciones LBound y UBound


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

59

Curso .NET 2005

Primera Parte

Public Class Form1


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

.
Dim Temperaturas(0 To 6) As Single

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

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

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

60

Curso .NET 2005

Primera Parte

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

Ing. Giovanni Senz

61

Curso .NET 2005

Primera Parte

Se Agrego el
Formulario Form2

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

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

62

Curso .NET 2005

Primera Parte

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

Ing. Giovanni Senz

63

Curso .NET 2005

Primera Parte

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

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

Ing. Giovanni Senz

64

Curso .NET 2005

Primera Parte

En esta figura se observa el cdigo correspondiente al Evento Form2_Load.


Paso 6: En este momento ir al cuadro de herramientas y seleccione los siguientes objetos que se
presentan en la tabla de abajo (recuerde hacer exactamente lo que se le define en las
propiedades de los Objetos):
De acuerdo como se hizo anteriormente, las propiedades para los objetos son las siguientes:
Objeto

Propiedad del Objeto


Text

Label1

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

Valor de la propiedad
Inventario de Medicinas
Farmacia Nueva Vida.
Info
Desktop
True
True
Vertical

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

Ing. Giovanni Senz

65

Curso .NET 2005

Primera Parte

Sin mucho que esperar, pase al siguiente Inciso:


Paso 7: Ya se tiene el Formulario a Nivel de Diseo, pero no esta programado, entonces, es aqu
donde tiene que agregar las siguientes instrucciones:

Usted tiene que ver a nivel de cdigo lo siguiente:


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

66

Curso .NET 2005

Primera Parte

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

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


confundido:

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

67

Curso .NET 2005

Primera Parte

a.- F5 Para compilar y Ejecutar.


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

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

Ing. Giovanni Senz

Agregue un
ComboBox1 al
Formulario Form2
68

Curso .NET 2005

Primera Parte

Recuerde Agregar un
Label2

Incorpore al formulario, los siguientes elementos:


Objeto

Propiedad del Objeto


Text
BackColor

Label2
ForeColor

ComboBox1

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)

Text

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

69

Curso .NET 2005

Primera Parte

y agregue al momento que se cargue el Form2, entonces digitalizar las siguientes


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

Ing. Giovanni Senz

70

Curso .NET 2005

Primera Parte

Utilizando Combos,
mire como presenta
los datos este Objeto.

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

Contina en la siguiente pgina:

Ing. Giovanni Senz

71

Curso .NET 2005

Primera Parte

b.- Ahora, el evento al hacer SelectedIndexChanged.

Ing. Giovanni Senz

72

Curso .NET 2005

Primera Parte

c.- Se agrega el siguiente Cdigo:


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

Propiedad del Objeto


Text
Text

Valor de la propiedad
Producto Seleccionado en
el Combo

Agregar un Label3, Donde se vera el


siguiente mensaje.

Agregar un TextBox2, Donde se vera


la cadena que se seleccione del
ComboBox1.

Ing. Giovanni Senz

73

Curso .NET 2005

Paso

12:

Agregue el siguiente cdigo


SelectedIndexChanged:

Primera Parte

al

evento

Private

Sub

ComboBox1_

Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object,


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

Ing. Giovanni Senz

74

Curso .NET 2005

Primera Parte

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

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

Ing. Giovanni Senz

75

Curso .NET 2005

Primera Parte

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

N
0
1
2
3
4
5

Nombre del Producto


Amoxicilina
Penisilina
Antmicina
Panadol
Antigripal
Dulce sueo

Precio del Producto


2.5
3.5
7.5
5.5
8.5
3.5

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

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

Ing. Giovanni Senz

76

Curso .NET 2005

Primera Parte

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

Ing. Giovanni Senz

77

Curso .NET 2005

Primera Parte

Otro Ejemplo, Ahora aprenda a Manejar Mltiples Lneas (Con


TextBox)

1.- Crear un nuevo Proyecto.


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

78

Curso .NET 2005

Primera Parte

Ahora aprenda a Manejar Mltiples Lneas (Con ListBox)

1.- Crear un nuevo Proyecto.


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

Ing. Giovanni Senz

79

Curso .NET 2005

Primera Parte

Ahora aprenda a Manejar Mltiples Lneas (Con TextBox)

1.- Disear el formulario que se le presenta:


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

Ing. Giovanni Senz

80

Curso .NET 2005

Primera Parte

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

3.- Hacer Clic en el Botn Mostrar la Temperatura, ah digitalizar el siguiente cdigo:


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

Ing. Giovanni Senz

81

Curso .NET 2005

Primera Parte

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

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

Ing. Giovanni Senz

82

Curso .NET 2005

Primera Parte

6.- Trabajando con Funciones, Procedimientos y


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

de

Funciones,

2) Analizar la diferencia entre los Funciones, procedimientos y mdulos en Visual


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

Ing. Giovanni Senz

83

Curso .NET 2005

Primera Parte

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


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

Ing. Giovanni Senz

84

Curso .NET 2005

Primera Parte

6.2.- Qu son los Mdulos Module,


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

6.3.- Procedimientos de evento en comparacin con procedimientos


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

85

Curso .NET 2005

Primera Parte

6.4.- Funciones (Function)


Una funcin es un procedimiento que cuando se ejecuta devuelve un resultado.
La sintaxis correspondiente a una funcin es la siguiente:
Function nombre[ByVal parmetro1, ByVal parametro2, ] [As Tipo]
[Sentencias]
[nombre = expresin] o [Return (Valor retorno)]
End Function
Ejemplo1:
' Funcion que recibe como parametro el costo de un producto "costo", luego,
'se recibe la posicin del objeto donde el usuario hizo Click
'La funcin retorna el impuesto a pagar.
Function Impuestos(ByVal costo As Double, ByVal pos As Single) As Double
Dim imp As Double 'Variable utilizada para calcular el impuesto.
Dim p As Single 'Recibe la posicin del control donde el usuario hizo click
p = pos ' Asignar la posicin del objeto.
'Sentencia condicional utilizada para el clculo del impuesto.
If p = 0 Then
imp = 0.1 * costo 'si es la posicin cero
ElseIf p = 1 Then
imp = 0.11 * costo 'si es la posicin uno
ElseIf p = 2 Then
imp = 0.11 * costo 'si es la posicin dos
ElseIf pos = 3 Then
imp = 0.12 * costo 'si es la posicin tres
Else
imp = 0.15 * costo 'si es cualquier posicin diferente a las anteriores
End If
'Retornar el valor del impuesto en base a la seleccin que coincidio
Return (imp) ' Estilo de retorno de Visual Studio 2005.
'Impuestos = imp ' modo alternativo y valido, basado en la versin VB6.
End Function ' Fin de la Funcin
nombre

parmetros

Es el de la funcin; su tipo determina el tipo de datos que devuelve


la funcin. Para especificar el tipo, utilice los caracteres de
declaracin de tipo o la clusula As tipo (Short, Integer, Long,
Double, String, Decimal, etc Ver tabla de Tipos de Datos en la
UNIDAD II); el tipo es Decimal por omisin.
Son una lista de variables que se corresponden con los argumentos

Ing. Giovanni Senz

86

Curso .NET 2005

Primera Parte

que son pasados cuando es invocada la funcin. Cuando se llama a


una funcin, Visual Basic asigna el valor de cada argumento en la
llamada al parmetro que ocupa su misma posicin en la lista de
parmetros de la funcin.
expresin

Define el valor devuelto por la funcin. Este valor es almacenado en


el propio nombre de la funcin, que acta como variable dentro del
cuerpo de la misma. Si no se efecta esta asignacin, el resultado
devuelto ser 0 si esta es numrica, nulo ( ) si la funcin es de
caracteres, o vaco (Emply).

End Function

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.

La llamada a una funcin es de la forma:


[Variable = ] nombre [(argumentos)] < Esto es para la manera tradicional.
argumentos

Son una lista de constantes, variables o expresiones separadas por


comas. El nmero de argumentos debe ser igual al nmero de
parmetros de la funcin. Los tipos de argumentos deben coincidir
con los tipos de sus correspondientes parmetros.

Por compatibilidad con otros lenguajes, es aconsejable escribir los parntesis


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

Ing. Giovanni Senz

87

Curso .NET 2005

Primera Parte

Observe que el valor que deseamos que devuelve la funcin hay que
almacenarlo en el propio nombre de la funcin, frMedia.
Ahora bien, observe el llamado que se hace a la funcin en el momento que se cargue
el formulario, la funcin fnMedia recibe por parmetro los valores (solo el nombre de las
variables que se recibirn), y como la funcin retorna siempre un valor se debe asignar
a una variable del mismo tipo de retorno que la funcin.
Private Sub Form2_Load(ByVal sender
System.EventArgs) Handles Me.Load

As

Object,

ByVal

As

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.

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


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

Ing. Giovanni Senz

88

Curso .NET 2005

Primera Parte

6.5.- Declare una Funcin de mbito Privado


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

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

Ing. Giovanni Senz

89

Curso .NET 2005

Primera Parte

6.6.- Procedimiento Sub


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

'Procedimientos que recibe como parametro el valor del Impuesto


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

90

Curso .NET 2005

Primera Parte

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

As

Object,

ByVal

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

Curso .NET 2005

procSuma a, 3

Primera Parte

Se pasa como argumento el arreglo a y su


Nmero de elementos. Tambin se podra
escribir: Call procSuma(a, 3)

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

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

6.7.- Declare un Procedimiento Privado


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

92

Curso .NET 2005

Primera Parte

Esta es valida a nivel de un formulario, Si no se especifica la palabra clave


Private y se le antepone public, esto es ahora un procedimiento Public, esto significa
que debe ser definido en un mdulo.

6.8.- Argumentos por Referencias y por Valor


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

Public Function fnMedia(ByRef x() As Integer) As Integer


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

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

End Sub

Ing. Giovanni Senz

93

Curso .NET 2005

Primera Parte

Observe que el procedimiento procSuma; el argumento n es pasado por valor, lo


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

6.9.- Practicando Mdulos, Funciones y Procedimientos


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

b.- Agregar un Formulario llamado MI_Form.

Ing. Giovanni Senz

94

Curso .NET 2005

Primera Parte

c.- Agregue un Modulo, el cual se llamara Mi_Modulo1.


Para poder hacer posible esto, debe colocarse sobre el proyecto en el explorador de Soluciones y
hacer click derecho con el ratn sobre el mismo, se abrirn la siguientes opciones:

Debe seleccionar agregar


nuevo elemento.

Ing. Giovanni Senz

95

Curso .NET 2005

Ing. Giovanni Senz

Primera Parte

96

Curso .NET 2005

Primera Parte

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

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

97

Curso .NET 2005

Primera Parte

Me.TextBox1.Text = Me.TextBox1.Text & "El Promedio es: " & pr & E


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

Ing. Giovanni Senz

98

Curso .NET 2005

Primera Parte

e.- En el caso del Modulo, agregue lo siguiente:


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

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

b.- Agregar un Formulario llamado MI_Form.

Ing. Giovanni Senz

99

Curso .NET 2005

Primera Parte

c.- Agregue un Modulo, el cual se llamara Mi_Modulo1.


Para poder hacer posible esto, debe colocarse sobre el proyecto en el explorador de Soluciones y
hacer click derecho con el ratn sobre el mismo, se abrirn la siguientes opciones:

Ing. Giovanni Senz

100

Curso .NET 2005

Primera Parte

Debe seleccionar agregar


nuevo elemento.

Ing. Giovanni Senz

101

Curso .NET 2005

Primera Parte

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

Ing. Giovanni Senz

102

Curso .NET 2005

Primera Parte

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

103

Curso .NET 2005

Primera Parte

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

Ing. Giovanni Senz

104

Curso .NET 2005

Primera Parte

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

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

Modelo

Precio
normal

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

C$ 3,250.00
C$ 2,000.00

C$ 3,430.00
C$ 2,180.00

C$ 3,610.00
C$ 2,360.00

C$ 3,790.00
C$ 2,540.00

C$ 3,800.00
C$ 2,500.00

C$ 2,500.00

C$ 2,680.00

C$ 2,860.00

C$ 3,040.00

C$ 3,000.00

C$ 3,250.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$ 3,250.00

C$ 3,430.00

C$ 3,610.00

C$ 3,790.00

C$ 3,800.00

C$ 2,500.00

C$ 2,680.00

C$ 2,860.00

C$ 3,040.00

C$ 3,000.00

C$ 2,750.00

C$ 2,930.00

C$ 3,110.00

C$ 3,290.00

C$ 3,500.00

C$ 2,500.00

C$ 2,680.00

C$ 2,860.00

C$ 3,040.00

C$ 3,000.00

C$ 2,500.00

C$ 2,680.00

C$ 2,860.00

C$ 3,040.00

C$ 3,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

C$ 3,250.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$ 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,860.00

C$ 5,860.00

C$ 6,040.00

C$ 7,000.00

C$ 2,500.00

C$ 2,680.00

C$ 2,860.00

C$ 3,040.00

C$ 3,000.00

C$ 2,500.00

C$ 3,430.00

C$ 3,610.00

C$ 3,790.00

C$ 3,800.00

C$ 4,250.00

C$ 4,430.00

C$ 4,610.00

C$ 4,790.00

C$ 5,000.00

C$ 5,500.00

C$ 5,680.00

C$ 5,860.00

C$ 6,040.00

C$ 7,000.00

C$ 2,500.00

C$ 2,680.00

C$ 2,680.00

C$ 3,040.00

C$ 3,000.00

Ing. Giovanni Senz

Con Dige

Con
Esclava

Con Cadena y
Dige

Anillo en 14
K.T.

105

Curso .NET 2005

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

Primera Parte
C$ 3,250.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$ 2,500.00

C$ 2,680.00

C$ 2,680.00

C$ 3,040.00

C$ 3,000.00

C$ 3,250.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$ 1,500.00

C$ 2,680.00
C$ 1,680.00

C$ 2,680.00
C$ 1,680.00

C$ 3,040.00
C$ 2,040.00

C$ 3,000.00
C$ 1,800.00

C$ 3,250.00

C$ 3,430.00

C$ 3,610.00

C$ 3,790.00

C$ 3,750.00

C$ 2,500.00

C$ 2,680.00

C$ 2,680.00

C$ 3,040.00

C$ 3,000.00

Para hacer posible esta prctica, realice los siguientes pasos:

Paso1:
Crear un formulario con los siguientes elementos:

Ing. Giovanni Senz

106

Curso .NET 2005

Primera Parte

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

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

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

107

Curso .NET 2005

Primera Parte

Me.TextBox1.Text = Me.TextBox1.Text & Nombre_Anillos(i)


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

Ing. Giovanni Senz

108

Curso .NET 2005

Primera Parte

Por ejemplo aqu se utilizo el modulo del problema anterior.


Public Nombre_Anillos(30) As String

Ing. Giovanni Senz

109

Curso .NET 2005

Primera Parte

7.- Trabajando Con Clases y Objetos en Visual Basic


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

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

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

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

Para poder trabajar con objetos y clases, es recomendable que adicionalmente


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

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

Ing. Giovanni Senz

110

Curso .NET 2005

Primera Parte

Recuerde que al Entrar en Visual


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

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

demuestra
que
estudiando nada).

Ing. Giovanni Senz

no

ha

Recuerde que es una


Aplicacin
para
Windows
en
este
momento.
Figura #2: Seleccionando la
Plantilla.

111

Curso .NET 2005

Primera Parte

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

Grfico #3: Crear FrmPOO de cmo quedar


nuestro formulario.

Ahora Concntrese en el Formulario FrmPOO.


Ing. Giovanni Senz

112

Curso .NET 2005

Primera Parte

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

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

Debe seleccionar
Agregar un nuevo
Elemento. Hacer
Click.

Ing. Giovanni Senz

113

Curso .NET 2005

Primera Parte

Siguiendo los pasos, se abre el siguiente Formulario:


Seleccionar Formulario de Windows

Figura #5: Agregando Formulario.

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

Ing. Giovanni Senz

Grfico #6: Formulario FrmPOO

114

Curso .NET 2005

Primera Parte

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

Public Property Nombre() As String


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

Ing. Giovanni Senz

115

Curso .NET 2005

Primera Parte

Public Property Apellido() As String


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

5.- Debe agregar al formulario:


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

Ing. Giovanni Senz

116

Curso .NET 2005

Primera Parte

Grfico #7: Formulario FrmPOO y DataGridView

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

Private Sub Form1_Load(ByVal sender


System.EventArgs) Handles MyBase.Load

As

System.Object,

ByVal

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


col.Add(New Persona("Pedro", "Infante"))
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

As

Curso .NET 2005

Primera Parte

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

Grfico #8: Formulario FrmPOO y DataGridView en tiempo de


Ejecucin.

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

Ing. Giovanni Senz

118

Curso .NET 2005

Primera Parte

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

3.- Titulo: Aprendiendo Visual Basic .Net.


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

Ing. Giovanni Senz

119

También podría gustarte