Vous êtes sur la page 1sur 20

VARIABLES Y ARREGLOS

CLASES Y MDULOS Son tipos de referencia que buscan encapsular los elementos definidos en ellos, como por ejemplo: constantes, variables funciones y procedimientos (para mdulos) o atributos y mtodos (para clases). Bsicamente los mdulos y/o clases nos servirn para declaraciones generales y para tener una librera de cdigo con funcionalidad e uso frecuente desde diferentes formularios u otros elementos para todo el proyecto. Existen diferencias considerables entre uno y otro, pero bsicamente se difieren en la forma en que se realiza el acceso a los elementos desde otros procedimientos. CLASE Slo se puede utilizar Class en el nivel de espacio de nombres o de mdulo. Esto significa que el contexto de declaracin para una clase debe de ser un archivo de cdigo fuente, espacio de nombres, clase, estructura, mdulo o interfaz, y no puede ser procedimiento o bloque. Cada instancia de una clase tiene un periodo de duracin independiente de todas las dems instancias. Es decir, cada objeto es independiente a pesar de que provengan de la misma clase; cada uno tiene sus propias propiedades e invoca a sus mtodos independientemente, as como su tiempo de vida es propio. Una instruccin Class define un nuevo tipo de datos. Una clase es una unidad de creacin fundamental de la Programacin Orientada a Objetos. PROGRAMACIN ORIENTADA A OBJETOS La Programacin Orientada a Objetos (POO) es una manera de abstraer la realidad y programar empleando un enfoque en el que la realidad se entiende basada en que los elementos que nos rodean son objetos. Es decir, que cuentan con atributos propios y que tienen un comportamiento segn su naturaleza, y que pueden ser agrupados en clases por su similitud. Clase. Conjunto de elementos con caractersticas similares o comunes. Se emplea la palabra class para declararla y se incluyen propiedades y mtodos para los objetos que se generaran a partir de ella (Instancias). Propiedades. Caracterstica o atributo del objeto. Para ello debe ser declarada en la clase, tal como se hace con las variables.

Mtodo. Realiza alguna operacin con las propiedades del objeto. Deben ser declaradas en la clase como funciones y procedimientos, y describen el comportamiento de los objetos que sern instanciados. Constructor. Es un mtodo especial de una clase que permite inicializar valores de los atributos del objeto que se estn instanciando a partir de esta. Se llama al constructor cuando usamos en la declaracin de nuevos objetos (instancia) la palabra new. Ejemplo: Clase persona

Persona - edad - nombre - dni + comer + caminar + respirar -

}Atributos }Mtodos

Objeto. Es una instancia de una clase, es decir, es un elemento particular de eta, que cuenta con atributos propios y comportamientos segn mtodos. Evento. Caracterstica que permite que el objeto responda a una determinada accin y ejecute un cdigo asociado a un mtodo o procedimiento. Encapsulamiento. Define el nivel de acceso. Dentro de una clase, se puede declarar cada miembro con su propio nivel de acceso. De forma predeterminada, los miembros de la clase tienen acceso al Public y las variables y constantes tienen acceso al Private. Tenemos acceso tambin al Protected (protegido: privado en el uso y pblicos en la herencia) y Friend (amigo: pblico para elementos fuera del clase), Polimorfismo. Permite que los objetos reaccionen de manera diferente ante mensajes diferentes. Los mensajes sern atendidos como parmetros que son entregados a los mtodos de los objetos que permiten un comportamiento diferente. Sobre carga de mtodos, procedimientos y /o funciones. Es cuando dos o ms mtodos de una clase tienen el mismo nombre y se diferencian por los argumentos que reciben, y la funcionalidad que permiten. Esto permite que empleando un mimo mtodo, segn el mensaje, podamos realizar tareas distintas en las propiedades del objeto.

Herencia. Permite tomar caractersticas de una clase padre o base y re utilizarlas en una nueva clase. Se emplea en casos donde una clase es muy similar a otra, entonces se hereda y se hacen las modificaciones en la clase hijo. Ejemplo: Herencia de la clase persona.

estudiante - notas - horario + estudio + clases

persona - edad - nombre - dni + comer + caminar + respirar Profesor - salario + profesor + materias

funcionario - cargo +funcionario

Agregar una clase al proyecto

Mdulo (Module) Module declara el nombre de un mdulo e introduce la definicin de las variables, propiedades, eventos y procedimientos que incluye el mdulo. Define un tipo de referencia disponible en su espacio de nombres. Un mdulo tambin llamado mdulo estndar, es similar a una clase pero con algunas distinciones importantes. Cada mdulo tiene exactamente una instancia y no necesita ni ser creado ni asignado a una variable. No admiten la herencia ni permiten interfaces. Slo se puede usar en el nivel de espacio de nombre, siendo este un archivo de cdigo fuente o espacio de nombres. No puede anidar un mdulo dentro de otro mdulo ni dentro de cualquier tipo. Tiene el mismo periodo de duracin que el programa.

El acceso es de tipo Friend. Pudiendo ajustar sus nivele de acceso con los modificadores de acceso. Tiene sus elementos compartidos para el proyecto, por lo que es ideal para emplearlo como librera de funciones y procedimientos y, para la declaracin de variables publicas. Agregar un mdulo al Proyecto

Diferencia entre clases y mdulos La diferencia principal entre clases y mdulos consiste en que pueden crearse instancias de clases como objetos pero no de mdulos. Como slo existe una copia de los datos de un mdulo estndar, cuando una parte del programa cambia una variable pblica en un mdulo estndar, cualquier otra parte del programa obtendr el mismo valor si lee luego esa variable. En comparacin, los datos de objetos existen individualmente para cada objeto con instancias. Crear una aplicacin empleando un mdulo Crear una aplicacin para el conteo de personas: adultos, jvenes y nios que ingresan a un centro comercial. Form1

Form2

Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load A = 0

J = 0 N = 0 End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click A += 1 End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click J += 1 End Sub Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click N += 1 End Sub Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click Form2.ShowDialog() End Sub End Class

Public Class Form2 Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load TextBox1.Text = A.tostring TextBox2.Text = J.tostring TextBox3.Text = N.tostring End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Me.Close() End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click A = 0 J = 0 N = 0 TextBox1.Text = A.tostring TextBox2.Text = J.tostring TextBox3.Text = N.tostring End Sub End Class Module Module1 Public A, J, N As Integer End Module

mbito de variables y objetos El mbito de un elemento declarado es el conjunto de todo el cdigo que puede hacer referencia a l sin calificar su nombre como disponible mediante Imports. Nivel de mbito De bloque De Procedimiento De Mdulo De Espacio de Nombres Descripcin mbito disponible nicamente en el bloque de cdigo en el que se ha declarado. mbito disponible para todo el cdigo dentro del procedimiento en el que se ha declarado. mbito disponible para todo el cdigo dentro del mdulo, clase o estructura en el que se ha declarado. Disponible para todo el cdigo dentro del espacio de nombres en el que se ha declarado.

Estos niveles de mbito progresan desde el ms restringido (bloque) al ms amplio (espacio de nombres), donde el mbito ms restringido significa el conjunto de cdigo ms pequeo que pueda hacer referencia al elemento sin calificacin. Especificar mbito Se especifica al declararlo y puede depender de los factores siguientes: La regin (bloque, procedimiento, mdulo, clase o estructura) donde se declara el elemento. El espacio de nombres que contiene la declaracin del elemento. El nivel de acceso que se declara para el elemento.

Al definir dos variables con el mismo nombre en mbitos diferentes, la variable declarada ms local es la que se refiere.

Niveles de mbito. 1. mbito de bloque. Un bloque es un conjunto de instrucciones de declaracin de inicio y fin. Ejemplo: Do y Loop, For y Next, If y End If, Select y End Select,Try y End Try, While y End While y With y End With. Si se declara una variable dentro de un bloque, slo puede utilizarla dentro de ese bloque. Ejemplo:

2. mbito de procedimiento. Un elemento declarado en un procedimiento no est disponible fuera de l. Solo el procedimiento hace uso de l. Tambin denominadas Variables Locales. Se declaran con la instruccin Dim (Variable Dinmica), con o sin la palabra clave Static (Variable Esttica). Si se declara una variable dentro de un procedimiento, pero fuera de un bloque dentro del procedimiento, puede considerarse que la variable tiene mbito de bloque, donde el bloque es el procedimiento completo. Todos los elementos locales, aunque son Static, son privados para el procedimiento en el que aparecen. No se puede declarar un elemento mediante la palabra clave Public dentro de un procedimiento. 3. mbito de Mdulo. Se aplica por igual a mdulos, clases estructuras. Puede declarar elementos a este nivel si se sita la instruccin de declaracin fuera de cualquier procedimiento o bloque pero dentro del mdulo. Cuando se incluye una declaracin en el nivel del mdulo, el nivel de acceso selecciona determina el mbito. El espacio de nombres que contiene el mdulo, la clase o la estructura tambin afecta al mbito. Los elementos para los que se declara el nivel de acceso Private estn disponibles para todos los procedimientos del mdulo, pero no para el cdigo de otros mdulos. La instruccin Dim en el nivel de mdulo toma Private como valor predeterminado sino utiliza ninguna palabra nivel de acceso. No obstante, el

mbito y el nivel de acceso sea ms apropiado si se utiliza la palabra clave Private en lugar de la instruccin Dim. 4. mbito de Espacios de Nombres. Si se declara un elemento en el nivel de mdulo mediante las palabras clave Friend o Public, dicho elemento quedar disponible para todos los procedimientos del espacio de nombres en los que se declare. Incluye espacios de nombres anidados. Un elementos tambin estar disponible en cualquier espacio de nombres anidado en su interior. Crear una aplicacin empleando diferentes mbitos

Public Class Form1 Public B As Integer 'mbito local Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim C As Integer ' mbito de Procedimiento C = 1 B = 2 A = 3 While A < 100 Dim D As Integer 'mbito de Bloque D = A * B * C A = D End While

Form2.ShowDialog() End Sub End Class Public Class Form2 Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load TextBox1.Text = A End Sub End Class Module Module1 Public A As Integer ' mbito de mdulo End Module

ARREGLOS Los arreglos o arrays son conjunto de variables del mismo tipo y con el mismo nombre, que se pueden manejar juntas o individualmente, de all su ventaja frente a variables independientes. Los arreglos toman un ndice por cada dimensin para diferenciarse de cada elemento. Se pueden tener arreglos desde una dimensin hasta un mximo de 32 dimensiones. Arreglos vectoriales Son los que se emplean con mayor frecuencia. Se les llama unidimensionales o vectores. Su dimensin es uno, es decir, emplean slo ndice. Para declarar un vector:
Dim x(3) As Integer

Arreglos Multidimensionales

Los arreglos multidimensionales son tambin conocidos como matrices, y son arreglos de ms de una dimensin (2 ms), a diferencia de los vectores. Podemos imaginar una matriz bidimensional (2 dimensiones), como una cuadricula con filas y columnas (tabla), donde las filas representaran las coordenadas x y las columnas las coordenadas y. A matriz de tres dimensiones se les puede imaginar con las coordenadas x, y, z siendo ideal para representar figuras en el espacio como un cubo. Podemos tener matrices de hasta 32 dimensiones. Estas se declaran en el cdigo de manera igual que los vectores, con la diferencia de que se debe de aumentar el nmero de dimensiones:
Dim x(1,2) As Integer

DECLARACIN, ASIGNACIN Y LECTURA E ELEMENTOS Declaracin de arreglos La declaracin es la separacin dele espacio que se requiere en la memoria RAM para guardar datos, segn el tipo elegido, considerando la cantidad de dimensiones que tendr el arreglo. Los arreglos respetan los mismos mbitos que las variables, siendo posible emplear para la declaracin de las mismas el alcance: Public, Private, Friend y Protected, incluso como propiedades de clase. La asignacin de arreglos se realiza empleando la sintaxis en .Net:
<Alcance> NombreArreglo(D1,D2,D3,,Dn ) As TipoDato

Ejemplos
Public vector(10) As Integer Private doble(1,2) As Simgle Dim triple(1,2,3) As String Static cuatro(1,2,3,4) As Boolean

Asignacin de Valores al arreglo La asignacin de arreglos se realiza empleando la siguiente sintaxis en .Net:
NombreArreglo(D1,D2,D3,,Dn )=Valor

Ejemplos:
vector(10)=10

doble(1,2) =2.5 triple(1,2,3) = Ejemplo cuatro(1,2,3,4) = True

Es muy usual usar sentencias for to next, para poder manejar por extensin los valores asignados al arreglo. Ejemplo: Todos los valores del arreglo vectorial en cinco.
For i = 0 To 5 vectorial(i) = 5 Next

Ejemplo: Todos los valores del arreglo en cinco.


For i = 0 To 5 For i = 0 To 5 dos(i,j) = 5 Next Next

Ejemplo: Los valores del arreglo Verde si la tercera dimensin es par, Rojo si la segunda dimensin es par, el resto de valores del arreglo es Blanco.
Dim i, j, k As Integer Dim tres(5, 5, 5) As String For i = 0 To 5 For j = 0 To 5 For k = 0 To 5 If (k Mod 2) = 0 Then tres(i, j, k) = "Verde" Else If (j Mod 2) = 0 Then tres(i, j, k) = "Rojo" Else tres(i, j, k) = "Blanco" End If End If Next Next Next

Ejemplo: Los valores del arreglo en True, si la primera dimensin es mayor a la segunda dimensin o, si la tercera dimensin es mayor que la cuarta dimensin.
Dim i, j, k, l As Integer Dim cuatro(5, 5, 5, 5) As String For i = 0 To 5 For j = 0 To 5 For k = 0 To 5 For l = 0 To 5 cuatro(i, j, k, l) = (i > j Or k > l)

Next Next Next Next

Lectura e elementos del arreglo La lectura del contenido de un arreglo se realiza cuando se requiere saber el valor de todo el arreglo en general o de un dato especfico, esta operacin es inversa a la asignacin.
<Porpiedad, Variable o Argumento>= Arreglo(D1,D2,D3,,Dn)

Ejemplo:
uno = vector(10) = 10 dos = doble(1, 1) tres = triple(1, 2, 1) tetra = cuatro(4, 3, 2, 1)

Para llevar el contenido de un arreglo a una lista:


For i = 0 To 5 ListBox1.Items.Add(uno(i)) Next

Mostrar los datos de una matriz en cuadro de mensaje


Dim i, j, dos(5, 5) As Integer Dim cadena As String cadena = "" For i = 0 To 5 For j = 0 To 5 cadena &= dos(i, j).ToString & Chr(9) 'Agrega el valor del arreglo y un TAB Next Next cadena &= Chr(13) 'Agrega ENTER al final de la cadena MsgBox(cadena)

Crear una aplicacin empleando arreglos unidimensionales Crear una aplicacin para generar una n cantidad de trminos de una serie que permita la suma de los dos trminos anteriores. 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, Parar esto crear la siguiente interface con el segundo TextBox con la propiedad Multiline en True.

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim s(100) As Integer Dim i, n As Integer Dim serie As String serie = "" 'Cambiamos el contenido del TextBox1 a entero n = CType(TextBox1.Text, Integer) 'Asignamos el valor de las dos primeras variables s(0) = 0 s(1) = 1 'Asignamos el valor de cada de las variables 'Asumiendo que el valor de una 'es la suma de las dos anteriores For i = 2 To (n + 1) s(i) = s(i - 1) + s(i - 2) Next 'Guardamos el valor de la serie como cadena en la variable For i = 2 To n serie &= s(i).ToString & " , " Next serie &= s(n + 1) & "." 'Mostramos la serie en el TextBox2 TextBox2.Text = serie End Sub

Crear una aplicacin empleando arreglos multidimensionales Crear una aplicacin que permita realizar un juego de Tres en Raya para 2 personas. Considerar el tablero como una matriz de dos dimensiones.

En el GroupBox colocar nueve TextBox en orden en modo slo lectura (ReadOnly = True) adems cambiar la fuente a tamao veinte y alineacin central del texto.
Public Class Form1 'Definimos un arreglo como un conjunto de variables declarados como caracteres Dim M(2, 2) As Char 'Daclaramos la variable gano como booleana 'solo puede tener dos valores verdadero o falso Dim gano As Boolean 'Creamos la funcin Marcar el cual agrupar todas las cajas de texto como un arreglo de controles Private Sub marcar(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.Click, TextBox2.Click, TextBox3.Click, TextBox4.Click, TextBox5.Click, TextBox6.Click, TextBox7.Click, TextBox8.Click, TextBox9.Click 'Declaramos la variable C como un Objeto en este caso una caja de texto Dim C As TextBox 'Declaramos las variables a usar en la funcin Dim x, i As Integer Static turno As Boolean C = sender If (C.Text.Length > 0) Or gano Then Exit Sub End If turno = Not turno

If turno Then Label1.Text = "Turno de O" C.Text = "X" Else Label1.Text = "Turno de X" C.Text = "O" End If x = Me.GroupBox1.Controls.IndexOf(sender) M(Int(x / 3), (x Mod 3)) = C.Text For i = 0 To 2 If (M(i, 0) = M(i, 1) And M(i, 1) = M(i, 2)) Then 'Lnea Horizontal MsgBox("Gan " & M(i, 1), MsgBoxStyle.Information + MsgBoxStyle.Exclamation, "Tres en Raya") Label1.Text = "Iniciar Juego" gano = True Exit Sub End If If (M(0, i) = M(1, i) And M(1, i) = M(2, i)) Then 'Lnea Vertical MsgBox("Gan " & M(1, i), MsgBoxStyle.Information + MsgBoxStyle.Exclamation, "Tres en Raya") Label1.Text = "Iniciar Juego" gano = True Exit Sub End If Next If (M(0, 0) = M(1, 1) And M(1, 1) = M(2, 2)) Or (M(0, 2) = M(1, 1) And M(1, 1) = M(2, 0)) Then 'Lnea Diagonal MsgBox("Gan " & M(1, 1), MsgBoxStyle.Information + MsgBoxStyle.Exclamation, "Tres en Raya") Label1.Text = "Iniciar Juego" gano = True Exit Sub End If End Sub Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load gano = True End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim i, j As Integer Dim obj As Object gano = False For i = 0 To 2 For j = 0 To 2 M(i, j) = (i + j * 3).ToString Next Next For Each obj In Me.GroupBox1.Controls 'obj.clear()

Next Label1.Text = "Turno de X" End Sub End Class

ARRAYLIST Los arreglos tienen mucha similitud a lo que sera una lista. Y por facilidad se han creado los ArrayList. Que son un tipo especial de arreglo con mtodo y propiedades de lista incluidos. Estos se encuentran en System.Collections. Propiedades Frecuentes Count. Devuelve el nmero de elementos actuales. Capacity. Asigna o devuelve el mximo de elementos que contendr el arrayList. Este valor siempre ser mayor o igual que el devuelto por Count. Si al aadir un nuevo elemento, Count fuese mayor que Capacity, la capacidad del array interno se duplicara para que se pudiesen aadir nuevos elementos. Si se asigna directamente un valor, el array interno se adaptara a ese valor. Item. Asigna o devuelve el elemento indicado, segn el nmero del ndice.

Mtodos Frecuentes Add. Aade un elemento al final del array. Clear. Borra los elementos de la lista.

Clone. Hace una copia de la lista. Insert. Inserta un elemento en el ndice indicado. Remove. Elimina el elemento del ndice especificado. Sort. Clasifica los elementos de la lista.

Crear una aplicacin usando ArrayList Crear una aplicacin que permita ingresar datos a un objeto tipo ArrayList, adems de mostrarlos, contarlos y borrarlos.

Public Class Form1 'Declaracin del ArrayList Dim dat As New ArrayList Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click Dim x As String 'Ingreso de datos x = InputBox("Ingresar el dato a almacenar en el ArrayList:") 'Compara la loongitud del ArrayList If x.Length > 0 Then dat.Add(x) End If TextBox1.Text = dat.Count.ToString End Sub Private Sub Button2_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button2.Click Dim obj As Object Dim cad As String cad = "" If dat.Count() = 0 Then MsgBox("No se ha ingresado ningn dato.", MsgBoxStyle.Information, "Observacin:")

Exit Sub End If For Each obj In dat cad &= obj.ToString & Chr(13) Next MsgBox(cad, MsgBoxStyle.Information, "Contenido:") End Sub Private Sub Button3_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button3.Click dat.Clear() TextBox1.Text = dat.Count.ToString End Sub End Class

Vous aimerez peut-être aussi