You are on page 1of 32

Capitulo VIII

INDICE

CAPITULO VIII

Paradigmas Paradigmas Por Procedimientos Paradigmas Declarativos Paradigmas Funcional Paradigma Orientado a Objetos Programacin Programacin Clsica Programacin Modular Ejercicio 53 Ejercicio 54 Programacin Orientada a Objetos Introduccin Qu es la Programacin Orientada a Objetos? Los Tres Pilares de la Programacin Herencia Encapsulacin Polimorfismo Las Clases Los Objetos Los Miembros de Una Clase Crear o Definir Una Clase Definir los Miembros de Una Clase Crear un Objeto a Partir de Una Clase Acceder a Los Miembros de Una Clase Ejemplo de Usar la Herencia Las Estructuras 14 11 11 10 10 09 09 08 08 08 07 07 07 06 06 06 05 03 02 02 02 01 01 01 01

01

El Nombre de Espacios (NameSpace) Qu es un NameSpace? Qu Finalidad Tiene el Uso de los Namespace? Anidar Espacios de Nombres Cmo Acceder a los Tipos Declarados Dentro de un Namespace? Ejemplos de Cmo Usar Los Namespace Ejercicio 55 Ejercicio 56 Ejercicio 57 Ejercicio 58 Ejercicio 59 Ejercicio 60 Despedida 29 27 25 24 22 21 20 17 16 16 16 14

14

Lenguaje de Programacin Capitulo VIII Programando con Visual Basic 2005

PARADIGMAS

Paradigmas por Procedimiento

Son aquellas llamadas tambin paradigmas interactivos, representan al enfoque tradicional de la programacin en donde los programas se conciben como mdulos que realizan una determinada tarea o accin, para posteriormente obtener una salida o resultado.

Paradigmas Declarativos

Este paradigma hace hincapi a la pregunta Cul es el problema?, sin interesarle al programador, que procedimiento necesita para resolver el problema, pues as tenemos el GPS, sistemas simulados de propsitos generales, que permite modelar el problema, por ejemplo los problemas particulares como el problema de las colas de un banco, simular el programa de mantenimiento de una fbrica, el problema de producir N piezas en un determinado proceso productivo.

Paradigma Funcional

Plantea el proceso de creacin de software, como un sistema de cajas negras, cada uno de las cuales acepta una entrada por arriba y produce salidas por abajo, desde el punto de vista matemtico, dichas cajas son funciones por lo que ha de ser un paradigma funcional.

Paradigma Orientado a Objetos

Es un paradigma que ha adquirido popularidad en los ltimos aos que es el resultado de la evolucin de la programacin estructurada, en la cual se subdivide en mdulos y que cada uno de ellos realiza una determinada tarea, ese mismo concepto se aplica a los objetos para que cumplan una determinada accin o tarea, pues as tenemos los lenguajes de programacin C, C++, Java.

Conduce a paradigma orientado a objetos, donde sin duda es una evolucin de la programacin estructurada y adems los conceptos fundamentales son: clase, herencia, polimorfismo, reutilizacin. Los lenguajes de programacin orientada a objetos son SmallTalk, Simula, C++ y Java.

Joel Martin Chuco Marrufo 1

Lenguaje de Programacin Capitulo VIII Programando con Visual Basic 2005

PROGRAMACIN

Programacin Clsica

Surge por los aos 50 y 60, es de tipo monoltica donde si el programa era grande, era difcil de corregir, y su mantenimiento era muy costoso.

Programacin Modular

Surge a principios de los 70, es uno de los mtodos de diseo ms flexible y potentes para mejorar la productividad de un programa. Todo programa contiene un mdulo denominado programa principal, que controla todo lo que sucede, es decir transfiere el control a su mdulo, de modo que ellos pueden ejecutar funciones, las tareas de los mdulos se sigue dividiendo hasta que cada uno tenga exclusivamente una funcin especfica, a este tipo de programacin se le conoce como el mtodo Divide y Venceras (Top Down).

Raz

Mdulo 1

Mdulo 2

Mdulo 3

Mdulo 4

Mdulo 5

Mdulo 6

Mdulo 7

Mdulo 8

Ahora veamos un ejercicio utilizando una programacin modular.

Joel Martin Chuco Marrufo 2

Lenguaje de Programacin Capitulo VIII Programando con Visual Basic 2005

53. Esta aplicacin utiliza varios procedimientos para realizar una cierta tarea, utilizando la programacin modular.

Module Ejercicio53 'Programa que muestra un men de opciones Sub Main() Dim opc, Numero As Integer Call Menu() Console.WriteLine() Console.Write("Elija Su Opcin ==> ") opc = CInt(Console.ReadLine) Console.WriteLine() While opc <> 4 Select Case opc Case 1 Console.Write("Ingrese un Nmero Entero: ") Numero = CInt(Console.ReadLine) Call Pares(Numero) Case 2 Console.Write("Ingrese un Nmero Entero: ") Numero = CInt(Console.ReadLine) Call EsPrimo(Numero) Case 3 Console.Write("Ingrese un Nmero Entero: ") Numero = CInt(Console.ReadLine) Call Factorial(Numero) Case Else Console.WriteLine("Opcin No Vlida") Console.Clear() Call Menu() End Select Console.WriteLine() Console.Write("Elija Su Opcin ==> ") opc = CInt(Console.ReadLine) Console.WriteLine() End While Console.WriteLine("Fin del Programa") Console.ReadLine() End Sub

Sub Menu() Console.WriteLine() Console.WriteLine("{0}{1}", Space(30), "MEN DE OPCIONES") Console.WriteLine() Console.WriteLine("[1] Pares") Console.WriteLine("[2] Es Primo") Console.WriteLine("[3] Factorial") Console.WriteLine("[4] Salir") Console.WriteLine() End Sub

Joel Martin Chuco Marrufo 3

Lenguaje de Programacin Capitulo VIII Programando con Visual Basic 2005

Sub Pares(ByVal Numero As Integer) Dim i As Integer = 1 Console.WriteLine() Console.WriteLine("Los Pares Menores que {0} Son: ", Numero) Console.WriteLine() While i < Numero If i Mod 2 = 0 Then Console.WriteLine("{0}", i) End If i=i+1 End While End Sub

Sub EsPrimo(ByVal Numero As Integer) Dim Primo As Boolean If Numero < 6 And Numero <> 4 Then Primo = True ElseIf Numero Mod 2 = 0 Or Numero Mod 3 = 0 Or Numero Mod 5 = 0 Then Primo = False Else Primo = True End If Console.WriteLine() If Primo = True Then Console.WriteLine("El Nmero es Primo") Else Console.WriteLine("El Nmero No Es Primo") End If End Sub

Sub Factorial(ByVal Numero As Integer) Dim k As Integer Dim r As Long = 1 For k = 1 To Numero r=r*k Next Console.WriteLine() Console.WriteLine("El Factorial del Nmero es : {0}", r) End Sub

End Module

Joel Martin Chuco Marrufo 4

Lenguaje de Programacin Capitulo VIII Programando con Visual Basic 2005

54. Esta aplicacin utiliza procedimientos y funciones para realizar una cierta tarea, utilizando la programacin modular.

Module Ejercicio54

Sub Main() Dim opc, Num As Integer Call Menu() Console.Write("Elija su Opcin ==> ") opc = CInt(Console.ReadLine) Console.WriteLine() While opc <> 4 Select Case opc Case 1 Console.Write("Ingrese el Radio: ") Num = CInt(Console.ReadLine) Console.WriteLine("El rea de la circunferencia es: {0}", Area(Num)) Case 2 Console.Write("Ingrese el Radio: ") Num = CInt(Console.ReadLine) Console.WriteLine("El volumen de la esfera es: {0}", Volumen(Num)) Case 3 Console.Write("Ingrese el Radio: ") Num = CInt(Console.ReadLine) Console.WriteLine("La longitud de la circunferencia es: {0}", Circunferencia(Num)) Case Else Console.WriteLine("Opcin No Vlida") End Select Console.ReadLine() Console.Clear() Call Menu() Console.Write("Elija su Opcin ==> ") opc = CInt(Console.ReadLine) Console.WriteLine() End While Console.WriteLine("Fin del Programa") Console.ReadLine() End Sub

Sub Menu() Console.WriteLine() Console.WriteLine() Console.WriteLine("{0} Console.WriteLine() Console.WriteLine() Console.WriteLine("{0} Console.WriteLine("{0} Console.WriteLine("{0} Console.WriteLine("{0} Console.WriteLine() End Sub

MEN DE OPCIONES", Space(25))

[1] [2] [3] [4]

El rea de una circunferencia", Space(10)) El volumen de una esfera", Space(10)) La longitud de una circunferencia", Space(10)) Salir del Programa", Space(10))

Joel Martin Chuco Marrufo 5

Lenguaje de Programacin Capitulo VIII Programando con Visual Basic 2005


Function Area(ByVal Num As Integer) As Double Area = (3.14159 * (Num * Num)) End Function

Function Volumen(ByVal Num As Integer) As Double Volumen = (4 * (3.14159 * (Math.Pow(Num, 3)))) / 3 End Function

Function Circunferencia(ByVal Num As Integer) As Double Circunferencia = 2 * (3.14159 * Num) End Function

End Module

PROGRAMACIN ORIENTADA A OBJETOS

Introduccin

La programacin orientada a objetos es un importante conjunto de tcnicas que pueden utilizarse para hacer el desarrollo de programas eficientes en la programacin orientada a objetos, los objetos son los elementos principales de construccin sin embargo el uso de objetos en un programa no significa que estn programando en un modo orientado a objetos, lo que cuenta es el sistema, en el cual los objetos se interconectan y se comunican entre s.

Qu es la Programacin Orientada a Objetos?

La programacin orientada a objetos es una tcnica estructurada siendo los objetos los principales elementos de construccin. La programacin orientada a objetos es el producto de la evolucin de paradigma estructurada a fin de conseguir que el software sea un producto industrial, la programacin orientada a objetos es una programacin que enva mensajes a los objetos segn Grade Booch, autor del mtodo orientado a objetos, define a esta programacin como: Un mtodo de implementacin en el que los programas se organizan como colecciones cooperativas de objetos, cada uno de las cuales representa una instancia de alguna clase y cuyas clases son todos los miembros de una jerarqua de clases unidos mediante relacin de herencia. Sea de tipo de dato abstracto (IDA).

Todo .NET Framework est basado en clases (u objetos). A diferencia de las versiones anteriores de Visual Basic, la versin .NET de este lenguaje basa su funcionamiento casi exclusivamente en las clases contenidas en .NET Framework, adems casi sin ningn tipo de limitaciones.

Joel Martin Chuco Marrufo 6

Lenguaje de Programacin Capitulo VIII Programando con Visual Basic 2005


Los tres pilares de la Programacin Orientada a Objetos

Segn se dice por ah, cualquier lenguaje basado en objetos debe cumplir estos tres requisitos:

Herencia Encapsulacin Polimorfismo

Herencia

La herencia es la capacidad de poder derivar una clase a partir de otra, la clase inicial se usa como clase base y la clase derivada es un nuevo tipo completamente de datos que incorpora todos los datos miembros y funciones miembros de la clase original, con cualquier dato nuevo o funcin miembro nueva y unidos en clase derivada. La clase base se conoce como clase padre o superclase y la clase derivada como clase hija o subclase.

Para que lo entiendas mejor, veamos un ejemplo clsico: Supongamos que tenemos una clase Gato que est derivada de la clase Animal. El Gato hereda de Animal todas las caractersticas comunes a los animales, adems de aadirle algunas caractersticas particulares a su condicin felina. Podemos decir que un Gato es un Animal, lo mismo que un Perro es un Animal, ambos estn derivados (han heredado) de la clase Animal, pero cada uno de ellos es diferente, aunque en el fondo los dos son animales. Esto es herencia: usar una clase base (Animal) y poder ampliarla sin perder nada de lo heredado, pudiendo ampliar la clase de la que se ha derivado (o heredado).

Encapsulacin

La encapsulacin es la capacidad de contener y controlar el acceso a un grupo de elementos asociados. Las clases proporcionan una de las formas ms comunes de encapsular elementos.

La encapsulacin es la capacidad de separar la implementacin de la interfaz de una clase del cdigo que hace posible esa implementacin. Esto realmente sera una especie de abstraccin, ya que no nos importa cmo est codificado el funcionamiento de una clase, lo nico que nos debe interesar es cmo funciona... Para que nos vayamos entendiendo, cuando digo: la implementacin de la interfaz de una clase, me refiero a los miembros de esa clase: mtodos, propiedades, eventos, etc. Es decir, lo que la clase es capaz de hacer.

Cuando usamos las clases, stas tienen una serie de caractersticas (los datos que manipula) as como una serie de comportamientos (las acciones a realizar con esos datos). Pues la encapsulacin es esa capacidad de la clase de ocultarnos sus interioridades para que slo veamos lo que tenemos que ver, sin tener que preocuparnos de cmo est codificada para que haga lo que hace... simplemente nos debe importar que lo haga.

Joel Martin Chuco Marrufo 7

Lenguaje de Programacin Capitulo VIII Programando con Visual Basic 2005

Polimorfismo

El polimorfismo permite que diferentes objetos respondan de modo diferente al mismo mensaje, por lo cual se dice que adquiere su mxima potencia, cuando se utiliza en unin a la herencia, el polimorfismo permite que el mismo nombre de mtodo emboque una operacin a los objetos de una clase padre y una operacin diferente en los objetos de la clase derivada.

El Polimorfismo nos permite usar miembros de distintas clases de forma genrica sin tener que preocuparnos si pertenece a una clase o a otra. Siguiendo con el ejemplo de los animales, si el Gato y el Perro pueden morder podramos tener un "animal" que muerda sin importarnos que sea el Gato o el Perro, simplemente podramos usar el mtodo Morder ya que ambos animales tienen esa caracterstica "animal mordedor".

LAS CLASES

Todo lo que tiene el .NET Framework, en realidad son clases. Una clase no es ni ms ni menos que cdigo. Aunque dicho de esta forma, cualquier programa sera una clase.

Cuando definimos una clase, realmente estamos definiendo dos cosas diferentes: los datos que dicha clase puede manipular o contener y la forma de acceder a esos datos.

Por ejemplo, si tenemos una clase de tipo Cliente, por un lado tendremos los datos de dicho cliente y por otro la forma de acceder o modificar esos datos. En el primer caso, los datos del Cliente, como por ejemplo el nombre, domicilio etc., estarn representados por una serie de campos o propiedades, mientras que la forma de modificar o acceder a esa informacin del Cliente se har por medio de mtodos.

Esas propiedades o caractersticas y las acciones a realizar son las que definen a una clase.

Los Objetos

Por un lado tenemos una clase que es la que define un "algo" con lo que podemos trabajar. Pero para que ese "algo" no sea un "nada", tendremos que poder convertirlo en "algo tangible", es decir, tendremos que tener la posibilidad de que exista. Aqu es cuando entran en juego los objetos, ya que un objeto es una clase que tiene informacin real.

Digamos que la clase es la "plantilla" a partir de la cual podemos crear un objeto en la memoria. Por ejemplo, podemos tener varios objetos del tipo Cliente, uno por cada cliente que tengamos en nuestra cartera de clientes, pero la clase slo ser una. Dicho de otra forma: podemos tener varias instancias en memoria de una clase. Una instancia es un objeto (los datos) creado a partir de una clase (la plantilla o el cdigo).

Joel Martin Chuco Marrufo 8

Lenguaje de Programacin Capitulo VIII Programando con Visual Basic 2005


Para entender mejor todo este galimatas, desglosemos las clases:

Los miembros de una clase

Las clases contienen datos, esos datos suelen estar contenidos en variables. A esas variables cuando pertenecen a una clase, se les llama: campos o propiedades.

Por ejemplo, el nombre de un cliente sera una propiedad de la clase Cliente. Ese nombre lo almacenaremos en una variable de tipo String, de dicha variable podemos decir que es el "campo" de la clase que representa al nombre del cliente. Por otro lado, si queremos mostrar el contenido de los campos que contiene la clase Cliente, usaremos un procedimiento que nos permita mostrarlos, ese procedimiento ser un mtodo de la clase Cliente.

Por tanto, los miembros de una clase son las propiedades (los datos) y los mtodos las acciones a realizar con esos datos. Como te he comentado antes, el cdigo que internamente usemos para almacenar esos datos o para, por ejemplo, mostrarlos, es algo que no debe preocuparnos mucho, simplemente sabemos que podemos almacenar esa informacin (en las propiedades de la clase) y que tenemos formas de acceder a ella, (mediante los mtodos de dicha clase), eso es "abstraccin" o encapsulacin.

Crear o definir una clase

Al igual que existen instrucciones para declarar o definir una variable o cualquier otro elemento de un programa de Visual Basic, existen instrucciones que nos permiten crear o definir una clase.

Para crear una clase debemos usar la instruccin Class seguida del nombre que tendr dicha clase, por ejemplo:

Class Cliente

A continuacin escribiremos el cdigo que necesitemos para implementar las propiedades y mtodos de esa clase, pero para que Visual Basic sepa que ya hemos terminado de definir la clase, usaremos una instruccin de cierre:

End Class

Por tanto, todo lo que est entre Class <nombre> y End Class ser la definicin de dicha clase.

Joel Martin Chuco Marrufo 9

Lenguaje de Programacin Capitulo VIII Programando con Visual Basic 2005


Definir los miembros de una clase

Para definir los miembros de una clase, escribiremos dentro del "bloque" de definicin de la clase, las declaraciones y procedimientos que creamos convenientes. Veamos un ejemplo: Class Cliente Public Nombre As String Sub Mostrar() Console.WriteLine("El nombre del cliente: {0}", Nombre) End Sub End Class

En este caso, la lnea Public Nombre As String, estara definiendo una propiedad o "campo" pblico de la clase Cliente.

Por otro lado, el procedimiento Mostrar sera un mtodo de dicha clase, en esta caso, nos permitira mostrar la informacin contenida en la clase Cliente.

Esta es la forma ms simple de definir una clase. Y normalmente lo haremos siempre as, por tanto podemos comprobar que es muy fcil definir una clase, as como los miembros de dicha clase.

Pero no slo de clases vive el Visual Basic... o lo que es lo mismo, para que nos sirve una clase si no sabemos crear un objeto basado en esa clase...? As que, sepamos cmo crearlos.

Crear un objeto a partir de una clase

Como te he comentado antes, las clases definen las caractersticas y la forma de acceder a los datos que contendr, pero slo eso: los define. Para que podamos asignar informacin a una clase y poder usar los mtodos de la misma, tenemos que crear un objeto basado en esa clase, o lo que es lo mismo: tenemos que crear una nueva instancia en la memoria de dicha clase. Para ello, haremos lo siguiente:

Definimos una variable capaz de contener un objeto del tipo de la clase, esto lo haremos como con cualquier variable:

Dim cli As Cliente

Pero, a diferencia de las variables basadas en los tipos visto hasta ahora, para poder crear un objeto basado en una clase, necesitamos algo ms de cdigo que nos permita "crear" ese objeto en la memoria, ya que con el cdigo usado en la lnea anterior, simplemente estaramos definiendo una variable que es capaz de contener un objeto de ese tipo, pero an no existe ningn objeto en la memoria, para ello tendremos que usar el siguiente cdigo:

cli = New Cliente()

Joel Martin Chuco Marrufo 10

Lenguaje de Programacin Capitulo VIII Programando con Visual Basic 2005


Con esto le estamos diciendo al Visual Basic: crea un nuevo objeto en la memoria del tipo Cliente.

Estos dos pasos los podemos simplificar de la siguiente forma:

Dim cli As New Cliente()

Acceder a los miembros de una clase

Para acceder a los miembros de una clase (propiedades o mtodos) usaremos la variable que apunta al objeto creado a partir de esa clase, seguida de un punto y el miembro al que queremos acceder, por ejemplo, para asignar el nombre al objeto cli, usaremos este cdigo:

cli.Nombre = "Visual Basic"

Es decir, de la misma forma que haramos con cualquier otra variable, pero indicando el objeto al que pertenece dicha variable. Como podrs comprobar, esto ya lo hemos estado usando anteriormente tanto en la clase Console como en las otras clases que hemos usado en entregas anteriores, incluyendo los arrays.

Y para acceder al mtodo Mostrar:

cli.Mostrar()

Ejemplo de cmo usar la herencia

Para poder usar la herencia en nuestras clases, debemos indicar al Visual Basic que esa es nuestra intencin, para ello disponemos de la instruccin Inherits, la cual se usa seguida del nombre de la clase de la que queremos heredar. Veamos un ejemplo.

Empezaremos definiendo una clase "base" la cual ser la que heredaremos en otra clase.

Ya sabemos cmo definir una clase, aunque para este ejemplo, usaremos la clase Cliente que vimos anteriormente, despus crearemos otra, llamada ClienteMoroso la cual heredar todas las caractersticas de la clase Cliente adems de aadirle una propiedad a esa clase derivada de Cliente.

Veamos el cdigo de estas dos clases. Para ello crea un nuevo proyecto del tipo consola y escribe estas lneas al principio o al final del fichero que el IDE aade de forma predeterminada. Class Cliente Public Nombre As String Sub Mostrar() Console.WriteLine("El nombre del cliente: {0}", Nombre) End Sub End Class Class ClienteMoroso Inherits Cliente

Joel Martin Chuco Marrufo 11

Lenguaje de Programacin Capitulo VIII Programando con Visual Basic 2005


Public Deuda As Decimal End Class

Como puedes comprobar, para que la clase ClienteMoroso herede la clase Cliente, he usado Inherits Cliente, con esta lnea, (la cual debera ser la primera lnea de cdigo despus de la declaracin de la clase), le estamos indicando al VB que nuestra intencin es poder tener todas las caractersticas que la clase Cliente tiene. Haciendo esto, aadiremos a la clase ClienteMoroso la propiedad Nombre y el mtodo Mostrar, aunque tambin tendremos la nueva propiedad que hemos aadido: Deuda.

Ahora vamos a ver cmo podemos usar estas clases, para ello vamos a aadir cdigo en el procedimiento Main del mdulo del proyecto: Module Module1 Sub Main() Dim cli As New Cliente() Dim cliM As New ClienteMoroso() ' cli.Nombre = "Jos" cliM.Nombre = "Luis" cliM.Deuda = 2000 ' Console.WriteLine("Usando Mostrar de la clase Cliente") cli.Mostrar() ' Console.WriteLine("Usando Mostrar de la clase ClienteMoroso") cliM.Mostrar() ' Console.WriteLine("La deuda del moroso es: {0}", cliM.Deuda) ' Console.ReadLine() End Sub End Module

Lo que hemos hecho es crear un objeto basado en la clase Cliente y otro basado en ClienteMoroso. Le asignamos el nombre a ambos objetos y a la variable cliM (la del ClienteMoroso) le asignamos un valor a la propiedad Deuda. Fjate que en la clase ClienteMoroso no hemos definido ninguna propiedad llamada Nombre, pero esto es lo que nos permite hacer la herencia: heredar las propiedades y mtodos de la clase base. Por tanto podemos usar esa propiedad como si la hubisemos definido en esa clase. Lo mismo ocurre con los mtodos, el mtodo Mostrar no est definido en la clase ClienteMoroso, pero si que lo est en la clase Cliente y como resulta que ClienteMoroso hereda todos los miembros de la clase Cliente, tambin hereda ese mtodo.

La salida de este programa sera la siguiente: Usando Mostrar de la clase Cliente El nombre del cliente: Jos Usando Mostrar de la clase ClienteMoroso El nombre del cliente: Luis La deuda del moroso es: 2000

Joel Martin Chuco Marrufo 12

Lenguaje de Programacin Capitulo VIII Programando con Visual Basic 2005


Ahora veamos cmo podramos hacer uso del polimorfismo o al menos una de las formas que nos permite el .NET Framework.

Teniendo ese mismo cdigo que define las dos clases, podramos hacer lo siguiente: Sub Main() Dim cli As Cliente Dim cliM As New ClienteMoroso() ' cliM.Nombre = "Luis" cliM.Deuda = 2000 cli = cliM ' Console.WriteLine("Usando Mostrar de la clase Cliente") cli.Mostrar() ' Console.WriteLine("Usando Mostrar de la clase ClienteMoroso") cliM.Mostrar() ' Console.WriteLine("La deuda del moroso es: {0}", cliM.Deuda) ' Console.ReadLine() End Sub

En este caso, la variable cli simplemente se ha declarado como del tipo Cliente, pero no se ha creado un nuevo objeto, simplemente hemos asignado a esa variable el contenido de la variable cliM. Con esto lo que hacemos es asignar a esa variable el contenido de la clase ClienteMoroso, pero como comprenders, la clase Cliente "no entiende" nada de las nuevas propiedades implementadas en la clase derivada, por tanto slo se podr acceder a la parte que es comn a esas dos clases: la parte heredada de la clase Cliente.

Realmente las dos variables apuntan a un mismo objeto, por eso al usar el mtodo Mostrar se muestra lo mismo. Adems de que si hacemos cualquier cambio a la propiedad Nombre, al existir slo un objeto en la memoria, ese cambio afectar a ambas variables. Para comprobarlo, aade este cdigo antes de la lnea Console.ReadLine(): Console.WriteLine() cli.Nombre = "Juan" Console.WriteLine("Despus de asignar un nuevo nombre a cli.Nombre") cli.Mostrar() cliM.Mostrar()

La salida de este nuevo cdigo, sera la siguiente:

Usando Mostrar de la clase Cliente El nombre del cliente: Pepe Usando Mostrar de la clase ClienteMoroso El nombre del cliente: Pepe La deuda del moroso es: 2000 Despus de asignar un nuevo nombre a cli.Nombre El nombre del cliente: Juan El nombre del cliente: Juan

Joel Martin Chuco Marrufo 13

Lenguaje de Programacin Capitulo VIII Programando con Visual Basic 2005


Como puedes comprobar, al cambiar en una de las variables el contenido de la propiedad Nombre, ese cambio afecta a las dos variables, pero eso no es porque haya nada mgico ni ningn fallo, es por lo que te coment antes: slo existe un objeto en la memoria y las dos variables acceden al mismo objeto, por tanto, cualquier cambio efectuado en ellas, se reflejar en ambas variables por la sencilla razn de que slo hay un objeto en memoria.

A este tipo de variables se las llama variables por referencia, ya que hacen referencia o apuntan a un objeto que est en la memoria. A las variables que antes hemos estado viendo se las llama variables por valor, ya que cada una de esas variables tienen asociado un valor que es independiente de los dems.

LAS ESTRUCTURAS

Las estructuras o tipos definidos por el usuario, son un tipo especial de datos que veremos en otra ocasin con ms detalle, pero que se comportan casi como las clases, permitiendo tener mtodos, propiedades, etc., la diferencia principal entre las clases y las estructuras es que stas ltimas son tipos por valor, mientras que las clases son tipos por referencia. Las estructuras, al igual que las clases, las podemos declarar a nivel de espacios de nombres y tambin dentro de otras estructuras e incluso dentro de clases y mdulos.

LOS NOMBRE DE ESPACIOS

Qu es un Namespace?

Un Namespace es una forma de agrupar clases (tipos) que estn relacionadas de alguna forma. El uso de los espacios de nombres nos permitir tener nuestros ensamblados agrupados segn la tarea para la que los hemos programado. De esta forma, si escribimos ensamblados que accedern al disco, los podemos agrupar para tenerlos en sitio diferente a los que, por ejemplo, accedan a una base de datos. Eso mismo es lo que se hace en las clases base de .NET Framework y por esa razn existen los espacios de nombres System.IO y System.Data, por poner slo dos.

Cada vez que creamos un proyecto con Visual Studio .NET de forma automtica se crea un espacio de nombres para nuestra aplicacin. Por tanto todos los tipos (clases, estructuras, enumeraciones, etc.) que definamos en dicho proyecto estarn incluidos dentro de ese espacio de nombres. Aunque el editor de Visual Studio no nos muestra que todo esto es as, ya que para crear o definir un espacio de nombres debemos usar la instruccin Namespace y marcar el final de dicha definicin usando End Namespace, por tanto es como si el IDE aadiera esas instrucciones por nosotros. Por tanto es importante saber que, aunque no lo veamos, todos nuestros proyectos estarn dentro de un espacio de nombres. Dicho Namespace se llamar de la misma forma que nuestro proyecto, salvo si tiene espacios, en ese caso se cambiarn los espacios (o caracteres no vlidos en un nombre de .NET) por un guin bajo.

Joel Martin Chuco Marrufo 14

Lenguaje de Programacin Capitulo VIII Programando con Visual Basic 2005


El Visual Studio define el espacio de nombres "predeterminado" de nuestro proyecto en las propiedades del proyecto. As que si quieres cambiar el Namespace predeterminado del proyecto, puedes hacerlo modificando dicho valor. Para poder hacer esto, muestra las propiedades del proyecto:

Selecciona el proyecto en el explorador de soluciones (Solution Explorer) En el men Proyecto (Project), selecciona Propiedades (Properties) En la ficha General (que ser la que se muestre por defecto), el espacio de nombres estar en: Espacio de nombres de la raz (Root namespace) tal como podemos ver en la figura 1.

Figura 1: El espacio de nombres predeterminado de un proyecto de VB .NET

Joel Martin Chuco Marrufo 15

Lenguaje de Programacin Capitulo VIII Programando con Visual Basic 2005


Qu finalidad tiene el uso de los Namespace?

El escribir nuestro cdigo dentro de un bloque Namespace tiene por finalidad, el poder mantener una especie de jerarqua. Para que nos entendamos mejor, podramos comparar los espacios de nombres con los directorios de un disco. En cada directorio tendremos ficheros que de alguna forma estn relacionados, de esta forma no mezclaremos los ficheros de msica con los de imgenes ni con los proyectos de Visual Basic, por poner algunos ejemplos. Pues lo mismo ocurre con las jerarquas creadas con los Namespace, de forma que podamos tener de alguna forma separados unos tipos de datos (clases, etc.) de otros.

Anidar espacios de nombres:

Espacios de nombres dentro de otros espacios de nombres

Siguiendo con el ejemplo de los directorios, es habitual que dentro de un directorio podamos tener otros directorios, de forma que tengamos ficheros que estando relacionados con el directorio principal no queremos que se mezclen con el resto de ficheros. Pues con los Namespace ocurre lo mismo, podemos declarar bloques Namespace dentro de otro bloque existente. Esto se consigue definiendo un bloque dentro de otro bloque. Por ejemplo: Namespace VisualBasic Namespace Entrega5 Module Module1 Sub Main() End Sub End Module End Namespace End Namespace

En este cdigo, tenemos dos espacios de nombres anidados, el espacio de nombres Entrega5 est dentro del espacio de nombres VisualBasic.

Cmo acceder a los tipos declarados dentro de un Namespace?

De igual forma que para acceder a los ficheros de un directorio debemos indicar el "path" en el que se encuentran, con los espacios de nombres ocurre lo mismo, existen formas abreviadas de realizar ese acceso. Por ejemplo, si queremos usar la clase StringBuilder que se encuentra declarada en el espacio de nombres System.Text, tendremos que indicar el espacio de nombres en el que se encuentra: Dim sb As New System.Text.StringBuilder()

Es decir, debemos indicar el "path" completo de la clase, para poder acceder a ella.

En teora si declaramos un mtodo dentro del mdulo Module1, (mostrado en el cdigo anterior), deberamos llamar a dicho mtodo usando el espacio de nombres completo, pero cuando estamos dentro de un espacio de nombres, no hace falta indicar el nombre completo, ocurre lo mismo que cuando estamos dentro de en un directorio, no tenemos que indicar el path completo para acceder a un

Joel Martin Chuco Marrufo 16

Lenguaje de Programacin Capitulo VIII Programando con Visual Basic 2005


fichero de ese mismo directorio, pero si queremos tambin podemos hacerlo, tal como se muestra en el siguiente cdigo: Namespace VisualBasic Namespace Entrega5 Module Module1 Sub Main() VisualBasic.Entrega5.Module1.Ejemplo() End Sub Public Sub Ejemplo() Console.WriteLine("Saludos desde el Sub Ejemplo") End Sub End Module End Namespace End Namespace

Por tanto, para acceder a los miembros declarados dentro de un espacio de nombres, debemos usar la sintaxis: Espacio_de_nombres Punto Nombre_de_la_clase Punto Nombre_Del_Mtodo Si dicha clase est dentro de un espacio de nombres anidado, tambin debemos indicar dicho espacio de nombres.

Ya que incluso para acceder a las propias clases de .NET usamos esta forma sintaxis, tal como se mostr antes para declarar la variable del tipo StringBuilder.

En dicha declaracin vimos que haba dos espacios de nombres: System y dentro de ste est el espacio de nombres Text, el cual contiene la definicin de la clase StringBuilder.

Es decir, siempre debemos indicar los espacios de nombres en los que se encuentran las clases, salvo que la clase (o tipo) est definido en el mismo espacio de nombres desde el que se va a usar.

Aunque existen ciertas formas de hacer que esto no siempre tenga que ser as, ya que el cdigo se puede convertir en algo ms engorroso de leer si siempre tenemos que indicar los espacios de nombres que contienen las clases.

Ejemplos de cmo usar los Namespace

En el ejemplo que vamos a usar, es de la pagina web de www.elguille.info, ya que lo eo mas interesante y mas entendible para ustedes, vamos a definir dos espacios de nombres y en cada uno de ellos declararemos algunas una clase, con idea de que veamos cmo usarlos desde cada uno de esos espacios de nombres.

El cdigo sera el siguiente:

Namespace Entrega16 Module Module1 Sub Main() ' declarar una clase del espacio de nombres ClaseUno Dim c1 As New ClasesUno.PruebaA("Pepe", "Ruiz") ' ' declarar una clase del espacio de nombres ClaseDos Dim c2 As New ClasesDos.PruebaB("Maria", "Snchez") '

Joel Martin Chuco Marrufo 17

Lenguaje de Programacin Capitulo VIII Programando con Visual Basic 2005


Console.WriteLine("c1 = {0}", c1) Console.WriteLine("c2 = {0}", c2) ' Console.ReadLine() End Sub End Module End Namespace ' Namespace ClasesUno Public Class PruebaA Private _nombre As String Private _apellidos As String ' Public Sub New() End Sub Public Sub New(ByVal nombre As String, ByVal apellidos As String) Me.Nombre = nombre Me.Apellidos = apellidos End Sub ' Public Property Nombre() As String Get Return _nombre End Get Set(ByVal value As String) _nombre = value End Set End Property Public Property Apellidos() As String Get Return _apellidos End Get Set(ByVal value As String) _apellidos = value End Set End Property ' Public Overrides Function ToString() As String Return Apellidos & ", " & Nombre End Function End Class End Namespace ' Namespace ClasesDos Public Class PruebaB Inherits ClasesUno.PruebaA ' Public Sub New() End Sub Public Sub New(ByVal nombre As String, ByVal apellidos As String) Me.Nombre = nombre Me.Apellidos = apellidos End Sub End Class End Namespace

Joel Martin Chuco Marrufo 18

Lenguaje de Programacin Capitulo VIII Programando con Visual Basic 2005


Es este cdigo tenemos tres espacios de nombres:

Entrega16 que es donde est declarado el mdulo que se usar para iniciar la aplicacin. ClasesUno en el que se define la clase PruebaA ClasesDos en el que se define la clase PruebaB, la cual simplemente hereda (o se basa en) la clase definida en ClasesUno.

Para poder acceder a las clases desde Main, tenemos que indicar en que espacio de nombres est cada una de las clases, esto es as porque el mdulo que contiene el mtodo Main est declarado dentro de un espacio de nombres diferente. Lo mismo ocurre con la instruccin Inherits ClasesUno.PruebaA de la clase PruebaB, ya que cada una de las clases est dentro de un espacio de nombres distinto y si no indicamos expresamente ese espacio de nombres, el compilador no sabr donde localizar la clase PruebaA. Por supuesto, si hacemos una importacin del espacio de nombres ClasesUno, podramos acceder a la clase ClaseA sin necesidad de indicar el espacio de nombres que la contiene.

Algunas cosas que debes saber sobre los Namespace "automticos" y los definidos por t

Para ir finalizando esta entrega quiero decirte que si quitas el espacio de nombres predeterminado que utiliza el Visual Studio y aades al cdigo tus propios espacios de nombres, debo decirte que hay dos cosas que debes tener en cuenta:

La primera es que seguramente al ejecutar la aplicacin, el VS no encuentre la clase que usar como punto de inicio, debido a que ahora est en otro espacio de nombres distinto, por tanto tendrs que mostrar las propiedades del proyecto (ver figura 1) e indicar en Objeto inicial el mdulo o clase que se usar o bien, en el caso de las aplicaciones de consola, indicar Sub Main.

La segunda, y ms importante, es que ya no existir un espacio de nombres que "contenga" tus clases (o tipos), por tanto, si en un fichero indicas tu propio espacio de nombres, en el resto de ficheros tambin debes indicar ese mismo espacio de nombres, al menos si tu intencin es que estn todas las declaraciones dentro del mismo "directorio".

Todo esto viene al caso porque en un mismo proyecto podemos definir varios espacios de nombres y si no somos precisos con la ubicacin de cada tipo que tenemos en el proyecto, puede que el compilador se queje y nos diga que no encuentra tal o cual clase (o tipo).

Tambin debes saber que si nuestro proyecto usa libreras creadas por nosotros, pero que simplemente las tenemos referenciadas, (es decir, podemos usar otras DLLs creadas por nosotros y ya compiladas), esos otros ensamblados (assemblies) pueden tener tambin un espacio de nombres que se llame igual que el que tenemos en nuestro proyecto, en ese caso no ser necesario indicar el espacio de nombres de la otra librera, ya que podemos tener un mismo espacio de nombres "repartido" por varios ensamblados. Esto es muy til si queremos definir una serie de clases, enumeraciones, etc., en un proyecto, crear un ensamblado DLL a partir de ese proyecto y posteriormente usarlo en otro proyecto diferente, pero sin cambiar el espacio de nombres en el que tenemos definidos todos los tipos. Con la ventaja adicional de que esa DLL la podemos usar en proyectos de otros lenguajes de .NET, por tanto podemos crear con VB una librera de clases y usarla desde C#.

Joel Martin Chuco Marrufo 19

Lenguaje de Programacin Capitulo VIII Programando con Visual Basic 2005


Resumiendo un poco:

En un proyecto (ensamblado) podemos definir varios espacios de nombres. Un espacio de nombres puede estar definido en varios ensamblados y todas las clases (tipos) definidos se podrn acceder como si estuviesen en el mismo proyecto. Podemos importar espacios de nombres para que el compilador sepa dnde buscar las clases.

EJERCICIOS

55. Esta aplicacin utiliza una estructura para realizar una cierta tarea, como la de es halla el rea y permetro de un cuadrado.

Module Ejercicio55

Structure Cuadrado Dim Lado As Double

Sub Inicio(ByVal L As Double) Lado = L End Sub

Function Area() As Double Area = Lado * Lado End Function

Function Perimetro() As Double Perimetro = 4 * Lado End Function

End Structure

Sub Main() Dim X As Cuadrado X.Inicio(7) Console.WriteLine("El rea del cuadrado es: {0}", X.Area) Console.WriteLine("El perimetro del cuadrado es: {0}", X.Perimetro) Console.ReadLine() End Sub

End Module

Joel Martin Chuco Marrufo 20

Lenguaje de Programacin Capitulo VIII Programando con Visual Basic 2005


56. Esta aplicacin utiliza una clase para realizar una cierta tarea, como la de es halla el rea y permetro de un cuadrado, tambin este sera un claro ejemplo de polimorfismo, ya que es una forma diferente de programar, pero tenga en claro siempre la diferencia entre una clase y estructura, Las clases usan parmetros por referencia, mientras que las estructuras la usan por valor..

Module Ejercicio56

Public Class Cuadrado

Dim Lado As Double

Public Sub Inicio(ByVal L As Double) Lado = L End Sub

Public Function Area() As Double Return Lado * Lado End Function

Public Function Perimetro() As Double Return 4 * Lado End Function

End Class

Sub Main() Dim X As Cuadrado Dim L As Double = 5.0 X = New Cuadrado X.Inicio(L) Console.WriteLine("El rea del cuadrado es: {0}", X.Area) Console.WriteLine("El perimetro del cuadrado es: {0}", X.Perimetro) Console.ReadLine() End Sub

End Module

Joel Martin Chuco Marrufo 21

Lenguaje de Programacin Capitulo VIII Programando con Visual Basic 2005

57. Esta aplicacin utiliza una estructura, procedimientos (Sub y Function) para realizar una cierta tarea, como la de es hallar el rea y permetro de distintos tipos de triangulo.

Module Ejercicio57

Structure Triangulo

Dim a, b, c, p, h As Double

Sub TrianRec(ByVal d As Double, ByVal e As Double) a=d b=e End Sub

Sub TrianNor(ByVal d As Double, ByVal e As Double, ByVal f As Double) a=d b=e c=f End Sub

Function AreaTrianRec() As Double Return (a * b) / 2 End Function

Function AreaTrianNor() As Double p = (a + b + c) / 2 Return Math.Sqrt(p * (p - a) * (p - b) * (p - c)) End Function

Function PeriTrianRec() As Double h = Math.Sqrt(Math.Pow(a, 2) + Math.Pow(b, 2)) Return h + a + b End Function

Function PeriTrianNor() As Double Return a + b + c End Function

End Structure

Sub Main() Dim Rec, Nor As Triangulo Dim n, a, b, c As Double Call Menu() Console.Write("Elija una Opcin ==> ") n = CDbl(Console.ReadLine) Console.WriteLine() While n <> 3 Select Case n Case 1 Console.Write("Ingrese la altura: ") a = CDbl(Console.ReadLine)

Joel Martin Chuco Marrufo 22

Lenguaje de Programacin Capitulo VIII Programando con Visual Basic 2005


Console.Write("Ingrese la base: ") b = CDbl(Console.ReadLine) Rec.TrianRec(a, b) Console.WriteLine("El rea del triangulo es: {0}", Rec.AreaTrianRec) Console.WriteLine("El paremitro del triangulo es: {0}", Rec.PeriTrianRec) Case 2 Console.Write("Ingrese el primer lado: ") a = CDbl(Console.ReadLine) Console.Write("Ingrese el segundo lado: ") b = CDbl(Console.ReadLine) Console.Write("Ingrese el tercer lado: ") c = CDbl(Console.ReadLine) Nor.TrianNor(a, b, c) Console.WriteLine("El rea del triangulo es: {0}", Rec.AreaTrianNor) Console.WriteLine("El paremitro del triangulo es: {0}", Rec.PeriTrianNor) Case Else Console.WriteLine("Opcin no Vlida") End Select Console.ReadLine() Console.Clear() Call Menu() Console.Write("Elija una Opcin ==> ") n = CDbl(Console.ReadLine) Console.WriteLine() End While Console.WriteLine("Fin del Programa") Console.ReadLine() End Sub

Sub Menu() Console.WriteLine() Console.WriteLine() Console.WriteLine("{0} MEN DE OPCIONES", Space(25)) Console.WriteLine() Console.WriteLine("{0} [1] Halla el rea y el permetro de un triangulo rectangulo", Space(10)) Console.WriteLine("{0} [2] Halla el rea y el permetro de un triangulo normal", Space(10)) Console.WriteLine("{0} [3] Salir", Space(10)) Console.WriteLine() End Sub

End Module

Joel Martin Chuco Marrufo 23

Lenguaje de Programacin Capitulo VIII Programando con Visual Basic 2005

58. Esta aplicacin utiliza dos espacios de nombre, cada uno con sus clases y procedimientos, para esto primero aadiremos una clase llamada ClaseDatos y de ah un mdulo llamado Ejercicio58 en donde importaremos los espacios de nombres creados.

Clase Datos

Namespace Esposa

Public Class Datos

Sub Nombre(ByVal nom As String) Console.WriteLine("El Nombre del esposa es: {0}", nom) End Sub

Sub Apellidos(ByVal ape As String) Console.WriteLine("El Apellido del esposa es: {0}", ape) End Sub

Sub Edad(ByVal AoNac As Integer) Dim Edad As Integer Edad = Microsoft.VisualBasic.Year(Date.Now) - AoNac Console.WriteLine("La edad de la esposa es: {0}", Edad) End Sub

End Class

End Namespace

Namespace Esposo

Public Class Datos

Sub Nombre(ByVal nom As String) Console.WriteLine("El Nombre del esposo es: {0}", nom) End Sub

Sub Apellidos(ByVal ape As String) Console.WriteLine("El Apellido del esposo es: {0}", ape) End Sub

Sub Edad(ByVal AoNac As Integer) Dim Edad As Integer Edad = Microsoft.VisualBasic.Year(Date.Now) - AoNac Console.WriteLine("La edad de la esposo es: {0}", Edad) End Sub

End Class

End Namespace

Joel Martin Chuco Marrufo 24

Lenguaje de Programacin Capitulo VIII Programando con Visual Basic 2005


Modulo

Imports Ejercicio58.Esposa Imports Ejercicio58.Esposo

Module Ejercicio58 Sub Main()

Dim Mujer As New Esposa.Datos Dim Marido As New Esposo.Datos Console.WriteLine() Mujer.Nombre("Giselle") Mujer.Apellidos("Valverde") Mujer.Edad(1985) Console.WriteLine() Marido.Nombre("Joel") Marido.Apellidos("Chuco") Marido.Edad(1984) End Sub

End Module

59. Esta aplicacin utiliza dos espacios de nombre, cada uno con sus clases y procedimientos, para esto primero aadiremos una clase llamada ClaseBanco y de ah un mdulo llamado Ejercicio59 en donde importaremos los espacios de nombres creados.

Clase Banco

Namespace Cliente

Public Class Datos

Public Function Cliente(ByVal Nombre As String, ByVal Apellidos As String) As String Return (Apellidos + ", " + Nombre) End Function

Public Function Direccion(ByVal dir As String) As String Return dir End Function

Public Function Telefono(ByVal telf As Integer) As String Return CStr(telf) End Function

Public Function DNI(ByVal LE As Long) As String Return CStr(LE) End Function

End Class

End Namespace

Joel Martin Chuco Marrufo 25

Lenguaje de Programacin Capitulo VIII Programando con Visual Basic 2005


Namespace Cuenta

Public Class Cuenta

Public Dinero As Double

Sub Saldo(ByVal Money As Double) Dinero = Money End Sub

Public Function TipoCuenta() As String If Dinero < 2500 AndAlso Dinero > 0 Then Return ("Cuenta Ahorros") ElseIf Dinero >= 2500 Then Return ("Cuenta Credito") Else Return ("Error: No Existe Saldo Negativo") End If End Function

End Class

End Namespace

Mdulo

Imports Ejercicio59.Cliente Imports Ejercicio59.Cuenta

Module Ejercicio59

Sub Main()

Dim Datos As Cliente.Datos Dim DatoCuenta As Cuenta.Cuenta Dim Nombre, Apellidos, Direccion As String Dim Telefono, DNI As Integer Dim Monto As Double Datos = New Cliente.Datos DatoCuenta = New Cuenta.Cuenta Console.WriteLine() Console.WriteLine("{0} Nueva Cuenta", Space(25)) Console.WriteLine() Console.Write("Nombres del Cliente: ") Nombre = CStr(Console.ReadLine) Console.Write("Apellidos del Cliente: ") Apellidos = CStr(Console.ReadLine) Console.Write("Direccin del Cliente: ") Direccion = CStr(Console.ReadLine) Console.Write("Numero de DNI: ") DNI = CInt(Console.ReadLine) Console.Write("Numero Telefonico: ") Telefono = CInt(Console.ReadLine)

Joel Martin Chuco Marrufo 26

Lenguaje de Programacin Capitulo VIII Programando con Visual Basic 2005


Console.Write("Monto de Cuenta: ") Monto = CDbl(Console.ReadLine) Console.WriteLine() Console.WriteLine("Presione ENTER para ver el Detalle de la Cuenta") Console.ReadLine() Console.Clear() Console.WriteLine() Console.WriteLine() Console.WriteLine("{0}*** DETALLE DE CUENTA ***", Space(25)) Console.WriteLine() Console.WriteLine() Console.WriteLine("Cliente: {0}", Datos.Cliente(Nombre, Apellidos)) Console.WriteLine("Direccin: {0}", Datos.Direccion(Direccion)) Console.Write("DNI: {0}", Datos.DNI(DNI)) Console.WriteLine("{0}Telfono: {1}", Space(10), Datos.Telefono(Telefono)) DatoCuenta.Saldo(Monto) Console.WriteLine("Tipo de Cuenta: {0}", DatoCuenta.TipoCuenta()) Console.WriteLine("Saldo de Cuenta: {0}", DatoCuenta.Dinero) End Sub

End Module

60. Esta aplicacin utiliza un modulo, es algo mas suave, despus de ver espacios de nombres, clases, estructuras, y como despedida de las consolas de aplicacin.

Module Ejercicio60

Sub Main() Dim i, d As Integer Dim salir As Integer Dim s As Char Do Console.Clear() Console.WriteLine() Console.ForegroundColor = ConsoleColor.Blue Console.WriteLine() Console.WriteLine("{0}INSTITUTO SUPERIOR TECNOLGICO ARGENTINA", Space(30)) Console.WriteLine() Console.WriteLine() Console.WriteLine("{0}DEMOSTRATIVO DE UN ARREGLO UNIDIMENSIONAL", Space(29)) Console.WriteLine() Console.WriteLine() Console.WriteLine("{0}ESCRITO POR: Joel Martin Chuco Marrufo", Space(32)) Console.WriteLine() Console.WriteLine() Console.WriteLine() Console.ForegroundColor = ConsoleColor.DarkGreen Console.Write("Ingrese Nmero de datos del Arreglo: ") d = CInt(Console.ReadLine)

Joel Martin Chuco Marrufo 27

Lenguaje de Programacin Capitulo VIII Programando con Visual Basic 2005


Dim A(d - 1) As Integer Console.WriteLine() Console.WriteLine() Console.WriteLine("Elementos Ingresados: ") For i = 0 To d - 1 Console.Write("A [{0}] = ", i) A(i) = CInt(Console.ReadLine) Next Console.WriteLine("Presione una tecla para ver la lista ingresada") Console.ReadLine() Console.Clear() Console.WriteLine() Console.WriteLine() Console.WriteLine("Lista Ingresada") Console.WriteLine() For i = 0 To d - 1 Console.WriteLine("{0} ", A(i)) Next Console.WriteLine() Console.WriteLine() Console.WriteLine("Presione S para salir, ") Console.WriteLine("Presione C para continuar, ") Console.WriteLine("(Continuar / Salir) ...") s = CChar(Console.ReadLine) If s = "s" Or s = "S" Then salir = 1 End If Loop While (salir <> 1) End Sub

End Module

Joel Martin Chuco Marrufo 28

Lenguaje de Programacin Capitulo VIII Programando con Visual Basic 2005

Bueno seores con esto acaba la Quinta entrega de este manual, con lo que acabamos las aplicaciones en consola, se que ha sido muy poco, pero lo hago para tener separadas las entregas entre consolas de aplicacin y consolas de ventanas, as que la prxima entrega ser de aplicaciones de ventanas aunque va a ser un poco de teora, pero despus de la teora nos dedicaremos de llenos a la programacin, en la prxima entrega tocaremos mas o menos lo siguiente: Controles Formularios Algunos Ejercicios

Bueno conmigo ser hasta la prxima entrega, ya saben aqu les dejo mi correo por si tienen alguna duda.

Joel Martin Chuco Marrufo Visual_Basic_Net_2005@hotmail.com

Donaciones a la cuenta de Ahorros del Banco de Interbank del Per


Cuenta en Soles:

067-3008573552 Cuenta en Dlares:

067-3008573560

www.interbank.com.pe

Este Manual Solo lo Puedes Descargar por la Pgina Oficial.

www.lawebdelprogramador.com

Lima, 20 de Febrero de 2006

Joel Martin Chuco Marrufo 29

You might also like