SlideShare uma empresa Scribd logo
1 de 20
Baixar para ler offline
VARIABLES Y ARREGLOS
CLASES Y MÓDULOS

Son tipos de referencia que buscan encapsular los elementos definidos en ellos, como por
ejemplo: constantes, variables funciones y procedimientos (para módulos) o atributos y
métodos (para clases).

Básicamente los módulos y/o clases nos servirán para declaraciones generales y para
tener una librería de código con funcionalidad e uso frecuente desde diferentes
formularios u otros elementos para todo el proyecto. Existen diferencias considerables
entre uno y otro, pero básicamente se difieren en la forma en que se realiza el acceso a los
elementos desde otros procedimientos.

CLASE

Sólo se puede utilizar Class en el nivel de espacio de nombres o de módulo. Esto significa
que el contexto de declaración para una clase debe de ser un archivo de código fuente,
espacio de nombres, clase, estructura, módulo o interfaz, y no puede ser procedimiento o
bloque.

Cada instancia de una clase tiene un periodo de duración independiente de todas las
demás 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 métodos
independientemente, así como su tiempo de vida es propio.

Una instrucción Class define un nuevo tipo de datos. Una clase es una unidad de creación
fundamental de la Programación Orientada a Objetos.

PROGRAMACIÓN ORIENTADA A OBJETOS

La Programación 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 según su naturaleza, y que pueden ser agrupados en clases por
su similitud.

   -    Clase. Conjunto de elementos con características similares o comunes. Se emplea
        la palabra class para declararla y se incluyen propiedades y métodos para los
        objetos que se generaran a partir de ella (Instancias).

   -    Propiedades. Característica o atributo del objeto. Para ello debe ser declarada en
        la clase, tal como se hace con las variables.
-   Método. Realiza alguna operación con las propiedades del objeto. Deben ser
    declaradas en la clase como funciones y procedimientos, y describen el
    comportamiento de los objetos que serán instanciados.

-   Constructor. Es un método especial de una clase que permite inicializar valores de
    los atributos del objeto que se están instanciando a partir de esta. Se llama al
    constructor cuando usamos en la declaración de nuevos objetos (instancia) la
    palabra new. Ejemplo: Clase persona



                             Persona
                             - edad
                             - nombre
                             - dni
                                           }Atributos
                             + comer
                             + caminar
                             + respirar
                                           }Métodos
-   Objeto. Es una instancia de una clase, es decir, es un elemento particular de eta,
    que cuenta con atributos propios y comportamientos según métodos.

-   Evento. Característica que permite que el objeto responda a una determinada
    acción y ejecute un código asociado a un método 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 también al Protected (protegido: privado en el
    uso y públicos en la herencia) y Friend (amigo: público para elementos fuera del
    clase),

-   Polimorfismo. Permite que los objetos reaccionen de manera diferente ante
    mensajes diferentes. Los mensajes serán atendidos como parámetros que son
    entregados a los métodos de los objetos que permiten un comportamiento
    diferente.

-   Sobre carga de métodos, procedimientos y /o funciones. Es cuando dos o más
    métodos 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 método, según el mensaje, podamos realizar tareas distintas en las
    propiedades del objeto.
-   Herencia. Permite tomar características 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.




                                    persona
                                    - edad
                                    - nombre
                                    - dni                      funcionario
                                    + comer                    - cargo
       estudiante                   + caminar                  +funcionario
       - notas                      + respirar
       - horario
       + estudio
       + clases                      Profesor
                                     - salario
                                     + profesor
                                     + materias

    Agregar una clase al proyecto
Módulo (Module)

Module declara el nombre de un módulo e introduce la definición de las variables,
propiedades, eventos y procedimientos que incluye el módulo.

Define un tipo de referencia disponible en su espacio de nombres. Un módulo también
llamado módulo estándar, es similar a una clase pero con algunas distinciones
importantes. Cada módulo tiene exactamente una instancia y no necesita ni ser creado ni
asignado a una variable. No admiten la herencia ni permiten interfaces.

Sólo se puede usar en el nivel de espacio de nombre, siendo este un archivo de código
fuente o espacio de nombres. No puede anidar un módulo dentro de otro módulo ni
dentro de cualquier tipo.

Tiene el mismo periodo de duración 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 librería de funciones y procedimientos y, para la declaración de variables publicas.

Agregar un módulo al Proyecto
Diferencia entre clases y módulos

La diferencia principal entre clases y módulos consiste en que pueden crearse instancias
de clases como objetos pero no de módulos. Como sólo existe una copia de los datos de
un módulo estándar, cuando una parte del programa cambia una variable pública en un
módulo estándar, cualquier otra parte del programa obtendrá el mismo valor si lee luego
esa variable. En comparación, los datos de objetos existen individualmente para cada
objeto con instancias.

Crear una aplicación empleando un módulo

Crear una aplicación para el conteo de personas: adultos, jóvenes y niños 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 código que puede hacer
referencia a él sin calificar su nombre como disponible mediante Imports.

 Nivel de Ámbito                                 Descripción
                     Ámbito disponible únicamente en el bloque de código en el que se
De bloque
                     ha declarado.
                     Ámbito disponible para todo el código dentro del procedimiento en
De Procedimiento
                     el que se ha declarado.
                     Ámbito disponible para todo el código dentro del módulo, clase o
De Módulo
                     estructura en el que se ha declarado.
De Espacio de        Disponible para todo el código dentro del espacio de nombres en el
Nombres              que se ha declarado.


Estos niveles de ámbito progresan desde el más restringido (bloque) al más amplio
(espacio de nombres), donde el ámbito más restringido significa el conjunto de código
más pequeño que pueda hacer referencia al elemento sin calificación.

Especificar ámbito

Se especifica al declararlo y puede depender de los factores siguientes:

       La región (bloque, procedimiento, módulo, clase o estructura) donde se declara el
       elemento.
       El espacio de nombres que contiene la declaración 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
más local es la que se refiere.
Niveles de Ámbito.

   1. Ámbito de bloque. Un bloque es un conjunto de instrucciones de declaración 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, sólo 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. También
      denominadas Variables Locales. Se declaran con la instrucción Dim (Variable
      Dinámica), con o sin la palabra clave Static (Variable Estática).

      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 Módulo. Se aplica por igual a módulos, clases estructuras. Puede
      declarar elementos a este nivel si se sitúa la instrucción de declaración fuera de
      cualquier procedimiento o bloque pero dentro del módulo.

      Cuando se incluye una declaración en el nivel del módulo, el nivel de acceso
      selecciona determina el ámbito. El espacio de nombres que contiene el módulo, la
      clase o la estructura también afecta al ámbito.

      Los elementos para los que se declara el nivel de acceso Private están disponibles
      para todos los procedimientos del módulo, pero no para el código de otros
      módulos. La instrucción Dim en el nivel de módulo toma Private como valor
      predeterminado sino utiliza ninguna palabra nivel de acceso. No obstante, el
ámbito y el nivel de acceso sea más apropiado si se utiliza la palabra clave Private
      en lugar de la instrucción Dim.

   4. Ámbito de Espacios de Nombres. Si se declara un elemento en el nivel de módulo
      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 también estará disponible en
      cualquier espacio de nombres anidado en su interior.

Crear una aplicación 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 módulo

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 dimensión para diferenciarse de cada elemento. Se
pueden tener arreglos desde una dimensión hasta un máximo de 32 dimensiones.

Arreglos vectoriales

Son los que se emplean con mayor frecuencia. Se les llama unidimensionales o vectores.
Su dimensión es uno, es decir, emplean sólo índice.

Para declarar un vector:
Dim x(3) As Integer

Arreglos Multidimensionales
Los arreglos multidimensionales son también conocidos como matrices, y son arreglos de
más de una dimensión (2 ó más), a diferencia de los vectores. Podemos imaginar una
matriz bidimensional (2 dimensiones), como una cuadricula con filas y columnas (tabla),
donde las filas representarían 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 código de
manera igual que los vectores, con la diferencia de que se debe de aumentar el número
de dimensiones:
Dim x(1,2) As Integer

DECLARACIÓN, ASIGNACIÓN Y LECTURA E ELEMENTOS

Declaración de arreglos

La declaración es la separación dele espacio que se requiere en la memoria RAM para
guardar datos, según 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
declaración de las mismas el alcance: Public, Private, Friend y Protected, incluso como
propiedades de clase.

La asignación 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

Asignación de Valores al arreglo

La asignación 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 extensión 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 dimensión es par, “Rojo” si la
segunda dimensión 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 dimensión es mayor a la segunda
dimensión o, si la tercera dimensión es mayor que la cuarta dimensión.
          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 específico, esta operación es inversa a la asignación.
<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 aplicación empleando arreglos unidimensionales

Crear una aplicación para generar una “n” cantidad de términos de una serie que permita
la suma de los dos términos 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 aplicación empleando arreglos multidimensionales

Crear una aplicación 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 sólo lectura (ReadOnly = True)
además cambiar la fuente a tamaño veinte y alineación 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 función 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 función
         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
                 'Línea 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
                 'Línea 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
             'Línea 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 sería una lista. Y por facilidad se han creado
los ArrayList. Que son un tipo especial de arreglo con método y propiedades de lista
incluidos. Estos se encuentran en System.Collections.

Propiedades Frecuentes

   Count. Devuelve el número de elementos actuales.
   Capacity. Asigna o devuelve el máximo de elementos que contendrá el arrayList. Este
   valor siempre será mayor o igual que el devuelto por Count. Si al añadir un nuevo
   elemento, Count fuese mayor que Capacity, la capacidad del array interno se
   duplicaría para que se pudiesen añadir nuevos elementos. Si se asigna directamente
   un valor, el array interno se adaptaría a ese valor.
   Item. Asigna o devuelve el elemento indicado, según el número del índice.

Métodos Frecuentes

   Add. Añade 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 aplicación usando ArrayList

Crear una aplicación que permita ingresar datos a un objeto tipo ArrayList, además de
mostrarlos, contarlos y borrarlos.




Public Class Form1
    'Declaración 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 ningún dato.",
MsgBoxStyle.Information, "Observación:")
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

Mais conteúdo relacionado

Mais procurados

Conceptos poo progra visual
Conceptos poo progra visualConceptos poo progra visual
Conceptos poo progra visual
Libertad25
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetos
lindacajaperuiz
 

Mais procurados (20)

Programación Orientada a Objetos en Java - Parte I 2015
Programación Orientada a Objetos en Java - Parte I 2015Programación Orientada a Objetos en Java - Parte I 2015
Programación Orientada a Objetos en Java - Parte I 2015
 
Programación orientada al objeto
Programación orientada al objetoProgramación orientada al objeto
Programación orientada al objeto
 
Conceptos poo (presentación1)
Conceptos poo (presentación1)Conceptos poo (presentación1)
Conceptos poo (presentación1)
 
Clases y Objetos
Clases y ObjetosClases y Objetos
Clases y Objetos
 
Programación 3: Clases y objetos en Java
Programación 3: Clases y objetos en JavaProgramación 3: Clases y objetos en Java
Programación 3: Clases y objetos en Java
 
Conceptos poo progra visual
Conceptos poo progra visualConceptos poo progra visual
Conceptos poo progra visual
 
Tarea 5
Tarea 5Tarea 5
Tarea 5
 
Programación Orientada a Objetos
Programación Orientada a ObjetosProgramación Orientada a Objetos
Programación Orientada a Objetos
 
Clases en java
Clases en javaClases en java
Clases en java
 
Act10byme
Act10bymeAct10byme
Act10byme
 
PROGRAMACIÓN ORIENTADA A OBJETOS
PROGRAMACIÓN ORIENTADA A OBJETOSPROGRAMACIÓN ORIENTADA A OBJETOS
PROGRAMACIÓN ORIENTADA A OBJETOS
 
Programación Orientada a Objetos
Programación Orientada a ObjetosProgramación Orientada a Objetos
Programación Orientada a Objetos
 
Encapsulamiento en JAVA-NETBEANS
Encapsulamiento en JAVA-NETBEANSEncapsulamiento en JAVA-NETBEANS
Encapsulamiento en JAVA-NETBEANS
 
Conceptos de POO (Programacion Orientada a Objetos)
Conceptos de POO (Programacion Orientada a Objetos)Conceptos de POO (Programacion Orientada a Objetos)
Conceptos de POO (Programacion Orientada a Objetos)
 
Encapsulamiento
EncapsulamientoEncapsulamiento
Encapsulamiento
 
03 java poo_parte_2
03 java poo_parte_203 java poo_parte_2
03 java poo_parte_2
 
Introducción a Programación Orientada a Objetos (OOP): Clases y Objetos
Introducción a  Programación Orientada a Objetos (OOP): Clases y ObjetosIntroducción a  Programación Orientada a Objetos (OOP): Clases y Objetos
Introducción a Programación Orientada a Objetos (OOP): Clases y Objetos
 
P.O.O.
P.O.O.P.O.O.
P.O.O.
 
Programacion Orientada a Objetos
Programacion Orientada a ObjetosProgramacion Orientada a Objetos
Programacion Orientada a Objetos
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetos
 

Destaque (6)

Cartas y Menus
Cartas y MenusCartas y Menus
Cartas y Menus
 
Jesus galindo astronomia maya
Jesus galindo astronomia mayaJesus galindo astronomia maya
Jesus galindo astronomia maya
 
Presentación manzana
Presentación manzanaPresentación manzana
Presentación manzana
 
Chevrotronica iii
Chevrotronica iiiChevrotronica iii
Chevrotronica iii
 
Manual de prezi (octubre 2.014)
Manual de prezi (octubre 2.014)Manual de prezi (octubre 2.014)
Manual de prezi (octubre 2.014)
 
Chapter 1-distribute Computing
Chapter 1-distribute ComputingChapter 1-distribute Computing
Chapter 1-distribute Computing
 

Semelhante a Variables y arreglos en .Net

conseptos basicos de la poo
conseptos basicos de la pooconseptos basicos de la poo
conseptos basicos de la poo
mahega261193
 
Memch clases lep ii
Memch   clases lep iiMemch   clases lep ii
Memch clases lep ii
dani Safres
 
Programaciom avanzada orientada a objetos
Programaciom avanzada orientada a objetosProgramaciom avanzada orientada a objetos
Programaciom avanzada orientada a objetos
Jonathan Macías
 
DAW - Desarrollo de clases
DAW - Desarrollo de clasesDAW - Desarrollo de clases
DAW - Desarrollo de clases
vay82
 
Programacion orientada a objetos
Programacion orientada a objetosProgramacion orientada a objetos
Programacion orientada a objetos
Angel Laverde ID
 
Practica retro java 28102013
Practica retro java 28102013Practica retro java 28102013
Practica retro java 28102013
Edgar Rosas
 
Unidad 3. obj 3.2 Programación Orientada a Objetos
Unidad 3. obj 3.2 Programación Orientada a ObjetosUnidad 3. obj 3.2 Programación Orientada a Objetos
Unidad 3. obj 3.2 Programación Orientada a Objetos
Alix Indriago
 

Semelhante a Variables y arreglos en .Net (20)

Prog.orientada a objeto
Prog.orientada a objetoProg.orientada a objeto
Prog.orientada a objeto
 
Curso Java Inicial 4 Poo En Java
Curso Java Inicial   4 Poo En JavaCurso Java Inicial   4 Poo En Java
Curso Java Inicial 4 Poo En Java
 
PROGRAMACION_ORIENTADA_A_OBJETOS.pdf
PROGRAMACION_ORIENTADA_A_OBJETOS.pdfPROGRAMACION_ORIENTADA_A_OBJETOS.pdf
PROGRAMACION_ORIENTADA_A_OBJETOS.pdf
 
conseptos basicos de la poo
conseptos basicos de la pooconseptos basicos de la poo
conseptos basicos de la poo
 
Lenguaje de Programación Orientada a Objetos
Lenguaje  de  Programación  Orientada  a Objetos Lenguaje  de  Programación  Orientada  a Objetos
Lenguaje de Programación Orientada a Objetos
 
Memch clases lep ii
Memch   clases lep iiMemch   clases lep ii
Memch clases lep ii
 
Programaciom avanzada orientada a objetos
Programaciom avanzada orientada a objetosProgramaciom avanzada orientada a objetos
Programaciom avanzada orientada a objetos
 
[ES] Programación orientada a objeto con java
[ES] Programación orientada a objeto con java[ES] Programación orientada a objeto con java
[ES] Programación orientada a objeto con java
 
Programación Orientada a Objetos
Programación Orientada a ObjetosProgramación Orientada a Objetos
Programación Orientada a Objetos
 
DAW - Desarrollo de clases
DAW - Desarrollo de clasesDAW - Desarrollo de clases
DAW - Desarrollo de clases
 
Programacion orientada a objetos
Programacion orientada a objetosProgramacion orientada a objetos
Programacion orientada a objetos
 
Practica retro java 28102013
Practica retro java 28102013Practica retro java 28102013
Practica retro java 28102013
 
Unidad 3. obj 3.2 Programación Orientada a Objetos
Unidad 3. obj 3.2 Programación Orientada a ObjetosUnidad 3. obj 3.2 Programación Orientada a Objetos
Unidad 3. obj 3.2 Programación Orientada a Objetos
 
modularidad de programación 2da parte (3) (1).pptx
modularidad de programación 2da parte (3) (1).pptxmodularidad de programación 2da parte (3) (1).pptx
modularidad de programación 2da parte (3) (1).pptx
 
Programacion orientada a objetos
Programacion orientada a objetos Programacion orientada a objetos
Programacion orientada a objetos
 
Programación orientada a objetos
Programación orientada a objetos Programación orientada a objetos
Programación orientada a objetos
 
Tutorial uml
Tutorial umlTutorial uml
Tutorial uml
 
Informacion
InformacionInformacion
Informacion
 
Java
JavaJava
Java
 
Fundamentos de Java
Fundamentos de JavaFundamentos de Java
Fundamentos de Java
 

Mais de Luis Manuel Saavedra Sandoval

Mais de Luis Manuel Saavedra Sandoval (20)

CURSO IMAGEN CORPORATIVA teoria y practica
CURSO IMAGEN CORPORATIVA teoria y practicaCURSO IMAGEN CORPORATIVA teoria y practica
CURSO IMAGEN CORPORATIVA teoria y practica
 
Tarea de evidencias programado de curso 1
Tarea de evidencias programado de curso 1Tarea de evidencias programado de curso 1
Tarea de evidencias programado de curso 1
 
Semana 14
Semana 14Semana 14
Semana 14
 
Semana 13
Semana 13Semana 13
Semana 13
 
Semana 12
Semana 12Semana 12
Semana 12
 
Semana 11
Semana 11Semana 11
Semana 11
 
Semana 10
Semana 10Semana 10
Semana 10
 
Semana 9
Semana 9Semana 9
Semana 9
 
Semana 8
Semana 8Semana 8
Semana 8
 
Semana 7
Semana 7Semana 7
Semana 7
 
Semana 6
Semana 6Semana 6
Semana 6
 
Semana 5
Semana 5Semana 5
Semana 5
 
Semana 4
Semana 4Semana 4
Semana 4
 
Semana 3
Semana 3Semana 3
Semana 3
 
Semana 1
Semana 1Semana 1
Semana 1
 
Semana 2
Semana 2Semana 2
Semana 2
 
Tratamiento de caracteres en java
Tratamiento de caracteres en javaTratamiento de caracteres en java
Tratamiento de caracteres en java
 
01 modelo general de comunicación
01 modelo general de comunicación01 modelo general de comunicación
01 modelo general de comunicación
 
Comercio electronico
Comercio electronicoComercio electronico
Comercio electronico
 
01 introducción
01 introducción01 introducción
01 introducción
 

Último

NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdfNUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
UPTAIDELTACHIRA
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
El Fortí
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...
JonathanCovena1
 
6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf
6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf
6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf
MiNeyi1
 
5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL
5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL
5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL
MiNeyi1
 

Último (20)

Supuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docxSupuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docx
 
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdfNUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
 
Infografía EE con pie del 2023 (3)-1.pdf
Infografía EE con pie del 2023 (3)-1.pdfInfografía EE con pie del 2023 (3)-1.pdf
Infografía EE con pie del 2023 (3)-1.pdf
 
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdfTema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
 
Power Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptxPower Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptx
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
 
ACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJO
ACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJOACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJO
ACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJO
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...
 
Presentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza MultigradoPresentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza Multigrado
 
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptxLA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
 
6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf
6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf
6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf
 
INSTRUCCION PREPARATORIA DE TIRO .pptx
INSTRUCCION PREPARATORIA DE TIRO   .pptxINSTRUCCION PREPARATORIA DE TIRO   .pptx
INSTRUCCION PREPARATORIA DE TIRO .pptx
 
Unidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la InvestigaciónUnidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la Investigación
 
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSOCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
 
Abril 2024 - Maestra Jardinera Ediba.pdf
Abril 2024 -  Maestra Jardinera Ediba.pdfAbril 2024 -  Maestra Jardinera Ediba.pdf
Abril 2024 - Maestra Jardinera Ediba.pdf
 
Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDAD
 
5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL
5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL
5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL
 

Variables y arreglos en .Net

  • 1. VARIABLES Y ARREGLOS CLASES Y MÓDULOS Son tipos de referencia que buscan encapsular los elementos definidos en ellos, como por ejemplo: constantes, variables funciones y procedimientos (para módulos) o atributos y métodos (para clases). Básicamente los módulos y/o clases nos servirán para declaraciones generales y para tener una librería de código con funcionalidad e uso frecuente desde diferentes formularios u otros elementos para todo el proyecto. Existen diferencias considerables entre uno y otro, pero básicamente se difieren en la forma en que se realiza el acceso a los elementos desde otros procedimientos. CLASE Sólo se puede utilizar Class en el nivel de espacio de nombres o de módulo. Esto significa que el contexto de declaración para una clase debe de ser un archivo de código fuente, espacio de nombres, clase, estructura, módulo o interfaz, y no puede ser procedimiento o bloque. Cada instancia de una clase tiene un periodo de duración independiente de todas las demás 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 métodos independientemente, así como su tiempo de vida es propio. Una instrucción Class define un nuevo tipo de datos. Una clase es una unidad de creación fundamental de la Programación Orientada a Objetos. PROGRAMACIÓN ORIENTADA A OBJETOS La Programación 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 según su naturaleza, y que pueden ser agrupados en clases por su similitud. - Clase. Conjunto de elementos con características similares o comunes. Se emplea la palabra class para declararla y se incluyen propiedades y métodos para los objetos que se generaran a partir de ella (Instancias). - Propiedades. Característica o atributo del objeto. Para ello debe ser declarada en la clase, tal como se hace con las variables.
  • 2. - Método. Realiza alguna operación con las propiedades del objeto. Deben ser declaradas en la clase como funciones y procedimientos, y describen el comportamiento de los objetos que serán instanciados. - Constructor. Es un método especial de una clase que permite inicializar valores de los atributos del objeto que se están instanciando a partir de esta. Se llama al constructor cuando usamos en la declaración de nuevos objetos (instancia) la palabra new. Ejemplo: Clase persona Persona - edad - nombre - dni }Atributos + comer + caminar + respirar }Métodos - Objeto. Es una instancia de una clase, es decir, es un elemento particular de eta, que cuenta con atributos propios y comportamientos según métodos. - Evento. Característica que permite que el objeto responda a una determinada acción y ejecute un código asociado a un método 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 también al Protected (protegido: privado en el uso y públicos en la herencia) y Friend (amigo: público para elementos fuera del clase), - Polimorfismo. Permite que los objetos reaccionen de manera diferente ante mensajes diferentes. Los mensajes serán atendidos como parámetros que son entregados a los métodos de los objetos que permiten un comportamiento diferente. - Sobre carga de métodos, procedimientos y /o funciones. Es cuando dos o más métodos 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 método, según el mensaje, podamos realizar tareas distintas en las propiedades del objeto.
  • 3. - Herencia. Permite tomar características 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. persona - edad - nombre - dni funcionario + comer - cargo estudiante + caminar +funcionario - notas + respirar - horario + estudio + clases Profesor - salario + profesor + materias Agregar una clase al proyecto
  • 4. Módulo (Module) Module declara el nombre de un módulo e introduce la definición de las variables, propiedades, eventos y procedimientos que incluye el módulo. Define un tipo de referencia disponible en su espacio de nombres. Un módulo también llamado módulo estándar, es similar a una clase pero con algunas distinciones importantes. Cada módulo tiene exactamente una instancia y no necesita ni ser creado ni asignado a una variable. No admiten la herencia ni permiten interfaces. Sólo se puede usar en el nivel de espacio de nombre, siendo este un archivo de código fuente o espacio de nombres. No puede anidar un módulo dentro de otro módulo ni dentro de cualquier tipo. Tiene el mismo periodo de duración que el programa.
  • 5. 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 librería de funciones y procedimientos y, para la declaración de variables publicas. Agregar un módulo al Proyecto
  • 6. Diferencia entre clases y módulos La diferencia principal entre clases y módulos consiste en que pueden crearse instancias de clases como objetos pero no de módulos. Como sólo existe una copia de los datos de un módulo estándar, cuando una parte del programa cambia una variable pública en un módulo estándar, cualquier otra parte del programa obtendrá el mismo valor si lee luego esa variable. En comparación, los datos de objetos existen individualmente para cada objeto con instancias. Crear una aplicación empleando un módulo Crear una aplicación para el conteo de personas: adultos, jóvenes y niños 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
  • 7. 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
  • 8. Ámbito de variables y objetos El ámbito de un elemento declarado es el conjunto de todo el código que puede hacer referencia a él sin calificar su nombre como disponible mediante Imports. Nivel de Ámbito Descripción Ámbito disponible únicamente en el bloque de código en el que se De bloque ha declarado. Ámbito disponible para todo el código dentro del procedimiento en De Procedimiento el que se ha declarado. Ámbito disponible para todo el código dentro del módulo, clase o De Módulo estructura en el que se ha declarado. De Espacio de Disponible para todo el código dentro del espacio de nombres en el Nombres que se ha declarado. Estos niveles de ámbito progresan desde el más restringido (bloque) al más amplio (espacio de nombres), donde el ámbito más restringido significa el conjunto de código más pequeño que pueda hacer referencia al elemento sin calificación. Especificar ámbito Se especifica al declararlo y puede depender de los factores siguientes: La región (bloque, procedimiento, módulo, clase o estructura) donde se declara el elemento. El espacio de nombres que contiene la declaración 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 más local es la que se refiere.
  • 9. Niveles de Ámbito. 1. Ámbito de bloque. Un bloque es un conjunto de instrucciones de declaración 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, sólo 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. También denominadas Variables Locales. Se declaran con la instrucción Dim (Variable Dinámica), con o sin la palabra clave Static (Variable Estática). 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 Módulo. Se aplica por igual a módulos, clases estructuras. Puede declarar elementos a este nivel si se sitúa la instrucción de declaración fuera de cualquier procedimiento o bloque pero dentro del módulo. Cuando se incluye una declaración en el nivel del módulo, el nivel de acceso selecciona determina el ámbito. El espacio de nombres que contiene el módulo, la clase o la estructura también afecta al ámbito. Los elementos para los que se declara el nivel de acceso Private están disponibles para todos los procedimientos del módulo, pero no para el código de otros módulos. La instrucción Dim en el nivel de módulo toma Private como valor predeterminado sino utiliza ninguna palabra nivel de acceso. No obstante, el
  • 10. ámbito y el nivel de acceso sea más apropiado si se utiliza la palabra clave Private en lugar de la instrucción Dim. 4. Ámbito de Espacios de Nombres. Si se declara un elemento en el nivel de módulo 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 también estará disponible en cualquier espacio de nombres anidado en su interior. Crear una aplicación 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
  • 11. 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 módulo 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 dimensión para diferenciarse de cada elemento. Se pueden tener arreglos desde una dimensión hasta un máximo de 32 dimensiones. Arreglos vectoriales Son los que se emplean con mayor frecuencia. Se les llama unidimensionales o vectores. Su dimensión es uno, es decir, emplean sólo índice. Para declarar un vector: Dim x(3) As Integer Arreglos Multidimensionales
  • 12. Los arreglos multidimensionales son también conocidos como matrices, y son arreglos de más de una dimensión (2 ó más), a diferencia de los vectores. Podemos imaginar una matriz bidimensional (2 dimensiones), como una cuadricula con filas y columnas (tabla), donde las filas representarían 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 código de manera igual que los vectores, con la diferencia de que se debe de aumentar el número de dimensiones: Dim x(1,2) As Integer DECLARACIÓN, ASIGNACIÓN Y LECTURA E ELEMENTOS Declaración de arreglos La declaración es la separación dele espacio que se requiere en la memoria RAM para guardar datos, según 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 declaración de las mismas el alcance: Public, Private, Friend y Protected, incluso como propiedades de clase. La asignación 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 Asignación de Valores al arreglo La asignación de arreglos se realiza empleando la siguiente sintaxis en .Net: NombreArreglo(D1,D2,D3,…,Dn )=Valor Ejemplos: vector(10)=10
  • 13. 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 extensión 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 dimensión es par, “Rojo” si la segunda dimensión 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 dimensión es mayor a la segunda dimensión o, si la tercera dimensión es mayor que la cuarta dimensión. 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)
  • 14. 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 específico, esta operación es inversa a la asignación. <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 aplicación empleando arreglos unidimensionales Crear una aplicación para generar una “n” cantidad de términos de una serie que permita la suma de los dos términos 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.
  • 15. 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
  • 16. Crear una aplicación empleando arreglos multidimensionales Crear una aplicación 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 sólo lectura (ReadOnly = True) además cambiar la fuente a tamaño veinte y alineación 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 función 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 función 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
  • 17. 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 'Línea 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 'Línea 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 'Línea 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()
  • 18. Next Label1.Text = "Turno de X" End Sub End Class ARRAYLIST Los arreglos tienen mucha similitud a lo que sería una lista. Y por facilidad se han creado los ArrayList. Que son un tipo especial de arreglo con método y propiedades de lista incluidos. Estos se encuentran en System.Collections. Propiedades Frecuentes Count. Devuelve el número de elementos actuales. Capacity. Asigna o devuelve el máximo de elementos que contendrá el arrayList. Este valor siempre será mayor o igual que el devuelto por Count. Si al añadir un nuevo elemento, Count fuese mayor que Capacity, la capacidad del array interno se duplicaría para que se pudiesen añadir nuevos elementos. Si se asigna directamente un valor, el array interno se adaptaría a ese valor. Item. Asigna o devuelve el elemento indicado, según el número del índice. Métodos Frecuentes Add. Añade un elemento al final del array. Clear. Borra los elementos de la lista.
  • 19. 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 aplicación usando ArrayList Crear una aplicación que permita ingresar datos a un objeto tipo ArrayList, además de mostrarlos, contarlos y borrarlos. Public Class Form1 'Declaración 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 ningún dato.", MsgBoxStyle.Information, "Observación:")
  • 20. 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