Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porkevin castro Modificado hace 5 años
1
METODOLOGIA DE LA PROGRAMACION I MG. CONNY PAMELA SAMANIEGO FLORES UNIVERSIDAD NACIONAL DEL CENTRO DEL PERU FACULTAD DE INGENIERIA DE SISTEMAS
2
SEMANA 7 SESION 1
3
VALORES QUE TIENES QUE PRACTICAR Recuerda que tienes que ser mejor persona cada día es por ello que te recomiendo recordar y practicar estos valores con tus semejantes: “PUNTUALIDAD Y RESPETO”
4
PROPOSITO DE LA CLASE Array Unidimensionales Array Multidimensionales
5
ARRAY También conocido como matriz y vector. Un array es aquel elemento del lenguaje que nos permite agrupar un conjunto de valores del mismo tipo, y acceder a ellos a través de una misma variable o identificador, especificando la posición o índice en donde se encuentra el dato a recuperar. Tanto las matrices como las variables son contenedores de información. Una variable puede contener un único valor en cambio al array puede contener múltiples valores, albergados en índices.
6
DECLARACION DE VARIABLES Declararemos un array de igual forma que hacemos con una variable normal, con la excepción de que junto al nombre de la variable, situaremos unos paréntesis. Esto indica que dicha variable contiene un array. Podemos especificar entre los paréntesis las dimensiones del array, o número de elementos que va a contener. Dim colores(2) as integer INDICE ARRAY
7
OTRA MANERA DE DECLARAR VARIABLES Dim iNumeros() As Integer iNumeros = New Integer() {10, 20, 30, 10, 50, 60, 10, 70, 80} Dim sNombres() As String = {"Ana", "Luis", "Pablo"}
8
EJERCICIO Sub Main() ' declarar un array de tipo String, el número de elementos es el indicado ' en la declaración más uno, porque la primera posición de un array es cero Dim sNombres(3) As String ' asignar valores al array sNombres(0) = "Ana" sNombres(1) = "Pedro" sNombres(2) = "Antonio" sNombres(3) = "Laura" ' pasar un valor del array a una variable Dim sValor As String sValor = sNombres(2) ' mostrar en la consola el valor pasado a una variable y un valor directamente desde el array Console.WriteLine("Valor de la variable sValor:" & sValor) Console.WriteLine("Valor del array, posición 1:" & sNombres(1)) Console.ReadLine() End Sub Sub Main() ' declarar un array de tipo String, el número de elementos es el indicado ' en la declaración más uno, porque la primera posición de un array es cero Dim sNombres(3) As String ' asignar valores al array sNombres(0) = "Ana" sNombres(1) = "Pedro" sNombres(2) = "Antonio" sNombres(3) = "Laura" ' pasar un valor del array a una variable Dim sValor As String sValor = sNombres(2) ' mostrar en la consola el valor pasado a una variable y un valor directamente desde el array Console.WriteLine("Valor de la variable sValor:" & sValor) Console.WriteLine("Valor del array, posición 1:" & sNombres(1)) Console.ReadLine() End Sub
9
REDIMENSIONANDO EL ARRAY Es útil redimensionar un array cuando necesitamos que albergue mas información de la que empezó almacenando cuando lo definimos. Se utiliza: Redim colores(5) Cuando redimensionamos un array se borra todo su contenido. ¿Qué DEBEMOS HACER? Redim Preserve colores (5)
10
RECORRER DENTRO DEL ARRAY Para poder automatizar la impresión de el array colores ya que hemos tenido que escribir uno a uno, utilizaremos una estructura de control FOR.
11
Recorrer el contenido Para realizar un recorrido por los elementos de un array, disponemos de las funciones LBound( ) y UBound( ), que devuelven el número de índice inferior y superior respectivamente del array que pasemos como parámetro. No obstante, la orientación a objetos proporcionada por el entorno, pone a nuestra disposición el nuevo conjunto de características que comentamos seguidamente. Length. Esta propiedad de un objeto array devuelve el número de elementos que contiene. GetLowerBound( ), GetUpperBound( ). Estos métodos de un objeto array, devuelven respectivamente, el número de índice inferior y superior de una dimensión del array. El resultado es el mismo que usando LBound( ) y UBound( ), pero desde una perspectiva orientada a objetos. Enumeradores. Un objeto enumerador pertenece al interfaz IEnumerator, diseñado para realizar un recorrido o iteración a través de uno de los diferentes tipos de colección (arrays incluidos) existentes en.NET Framework. Mediante el método GetEnumerator( ) de un objeto array, obtenemos un objeto que implementa el interfaz Ienumerator, que sólo puede realizar labores de lectura sobre el array, en ningún caso de modificación. For...NextFor Each...Next La estructura de control utilizada para recorrer el array, puede ser indistintamente un bucle For...Next, For Each...Next, o la novedosa técnica de los objetos enumeradores proporcionados por el objeto array.
12
RESUMEN
15
Se puede redimensionar una matriz utilizando la sentencia Redim Preserve nombre_array (n). Para realizar un recorrido por los elementos de un array, disponemos de las funciones LBound( ) y UBound( ), que devuelven el número de índice inferior y superior respectivamente del array. GetLowerBound( ), GetUpperBound( ) El resultado es el mismo que usando LBound( ) y UBound( ), pero desde una perspectiva orientada a objetos. Length. Esta propiedad de un objeto array devuelve el número de elementos que contiene. SetValueGetValue Los métodos SetValue ( ) y GetValue ( ) que asignan y obtienen respectivamente los valores del array.
16
Asignación y Obtención de Valores SetValueGetValue Para asignar u obtener valores de los elementos de un array, emplearemos la variable que contiene el array haciendo referencia al índice o posición a manipular. O bien, puesto que un array es un objeto, utilizaremos los métodos SetValue ( ) y GetValue ( ) que asignan y obtienen respectivamente los valores del array. Sub Main() ' asignación de valores a los elementos de un array ' ================================================= Dim sNombres(4) As String ' directamente sobre la variable, haciendo referencia al índice sNombres(0) = "Juan" sNombres(1) = "Ana" sNombres(2) = "Luis" ' o con el método SetValue(), asignando el valor en el primer parámetro y especificando ' la posición en el segundo sNombres.SetValue("Elena", 3) sNombres.SetValue("Miguel", 4) ' obtención de valores de un array ' ================================ Dim sValorA As String Dim sValorB As String sValorA = sNombres(2) ' directamente de la variable sValorB = sNombres.GetValue(3) ' usando el meth GetValue Console.WriteLine("Contenido de las variables") Console.WriteLine("==========================") Console.WriteLine("ValorA: {0} -- ValorB: {1}", sValorA, sValorB) Console.ReadLine() End Sub
17
Sub Main() ' recorrer un array ' ================= Dim sNombres() As String = {"Ana", "Luis", "Pablo"} Dim iContador As Integer Dim sUnNombre As String ' modo tradicional Console.WriteLine("Recorrido del array con LBound() y UBound()") For iContador = LBound(sNombres) To UBound(sNombres) Console.WriteLine("Posicion: {0} - Valor: {1}", iContador, sNombres(iContador)) Next Console.WriteLine() ' con bucle For Each Console.WriteLine("Recorrido del array con bucle For Each") For Each sUnNombre In sNombres Console.WriteLine("Nombre actual: {0}", sUnNombre) Next Console.WriteLine() ' usando la propiedad Length Console.WriteLine("Recorrido del array con propiedad Length") For iContador = 0 To (sNombres.Length - 1) Console.WriteLine("Posicion: {0} - Valor: {1}", iContador, sNombres(iContador)) Next Sub Main() ' recorrer un array ' ================= Dim sNombres() As String = {"Ana", "Luis", "Pablo"} Dim iContador As Integer Dim sUnNombre As String ' modo tradicional Console.WriteLine("Recorrido del array con LBound() y UBound()") For iContador = LBound(sNombres) To UBound(sNombres) Console.WriteLine("Posicion: {0} - Valor: {1}", iContador, sNombres(iContador)) Next Console.WriteLine() ' con bucle For Each Console.WriteLine("Recorrido del array con bucle For Each") For Each sUnNombre In sNombres Console.WriteLine("Nombre actual: {0}", sUnNombre) Next Console.WriteLine() ' usando la propiedad Length Console.WriteLine("Recorrido del array con propiedad Length") For iContador = 0 To (sNombres.Length - 1) Console.WriteLine("Posicion: {0} - Valor: {1}", iContador, sNombres(iContador)) Next Dim sNombres() As String = {"Ana", "Luis", "Pablo"} Dim iContador As Integer Console.WriteLine() ' usando los métodos GetLowerBound() y GetUpperBound() Console.WriteLine("Recorrido del array con métodos GetLowerBound() y GetUpperBound()") For iContador = sNombres.GetLowerBound(0) To sNombres.GetUpperBound(0) 'Console.WriteLine("Posicion: {0} - Valor: {1}", iContador, sNombres(iContador)) Console.Write("Posicion:" & iContador) Console.WriteLine("- Valor: " & sNombres(iContador)) Next Console.WriteLine() ' recorrer con un enumerador Console.WriteLine("Recorrido del array con un enumerador") Dim sLetras() As String = {"a", "b", "c", "d"} Dim oEnumerador As System.Collections.IEnumerator ' obtener el enumerador del array oEnumerador = sLetras.GetEnumerator() ' con un enumerador no es necesario posicionarse en el primer elemento ni calcular la cantidad ' de elementos del array, sólo hemos de avanzar posiciones con MoveNext() y obtener el valor ' actual con Current While oEnumerador.MoveNext() ' Console.WriteLine("Valor actual: {0}", oEnumerador.Current) Console.WriteLine("Valor actual: " & oEnumerador.Current) End While Console.ReadLine() Dim sNombres() As String = {"Ana", "Luis", "Pablo"} Dim iContador As Integer Console.WriteLine() ' usando los métodos GetLowerBound() y GetUpperBound() Console.WriteLine("Recorrido del array con métodos GetLowerBound() y GetUpperBound()") For iContador = sNombres.GetLowerBound(0) To sNombres.GetUpperBound(0) 'Console.WriteLine("Posicion: {0} - Valor: {1}", iContador, sNombres(iContador)) Console.Write("Posicion:" & iContador) Console.WriteLine("- Valor: " & sNombres(iContador)) Next Console.WriteLine() ' recorrer con un enumerador Console.WriteLine("Recorrido del array con un enumerador") Dim sLetras() As String = {"a", "b", "c", "d"} Dim oEnumerador As System.Collections.IEnumerator ' obtener el enumerador del array oEnumerador = sLetras.GetEnumerator() ' con un enumerador no es necesario posicionarse en el primer elemento ni calcular la cantidad ' de elementos del array, sólo hemos de avanzar posiciones con MoveNext() y obtener el valor ' actual con Current While oEnumerador.MoveNext() ' Console.WriteLine("Valor actual: {0}", oEnumerador.Current) Console.WriteLine("Valor actual: " & oEnumerador.Current) End While Console.ReadLine()
18
Ordenación Para ordenar un array disponemos del método Sort( ), que al estar sobrecargado, tiene varias implementaciones; la más básica de ellas es la que ordena la totalidad del array. También podemos ordenar una parte del array, indicando la posición inicial y cantidad de elementos a ordenar, etc. El método Reverse( ), invierte la posición de todos o parte de los elementos de un array. En este punto, debemos matizar que no se realiza un orden inverso de los elementos, sino que se cambian las posiciones de los mismos. Sub Main() ' ordenar todo el array Dim sLetras1() As String = {"z", "a", "g", "m", "w", "i", "c", "b"} Array.Sort(sLetras1) Console.WriteLine("Ordenar todos el array") MostrarArray(sLetras1) ' ordenar parte del array Dim sLetras2() As String = {"z", "a", "g", "m", "w", "i", "c", "b"} Array.Sort(sLetras2, 4, 3) Console.WriteLine("Ordenar parte del array") MostrarArray(sLetras2) ' invertir valores dentro del array Dim sLetras3() As String = {"z", "a", "g", "m", "w", "i", "c", "b"} Array.Reverse(sLetras3, 2, 4) Console.WriteLine("Invertir valores del array") MostrarArray(sLetras3) Console.ReadLine() End Sub Private Sub MostrarArray(ByVal sMiLista() As String) Dim iContador As Integer For iContador = 0 To sMiLista.Length - 1 Console.WriteLine("Elemento: {0} - Valor: {1}", iContador, sMiLista(iContador)) Next Console.WriteLine() End Sub Sub Main() ' ordenar todo el array Dim sLetras1() As String = {"z", "a", "g", "m", "w", "i", "c", "b"} Array.Sort(sLetras1) Console.WriteLine("Ordenar todos el array") MostrarArray(sLetras1) ' ordenar parte del array Dim sLetras2() As String = {"z", "a", "g", "m", "w", "i", "c", "b"} Array.Sort(sLetras2, 4, 3) Console.WriteLine("Ordenar parte del array") MostrarArray(sLetras2) ' invertir valores dentro del array Dim sLetras3() As String = {"z", "a", "g", "m", "w", "i", "c", "b"} Array.Reverse(sLetras3, 2, 4) Console.WriteLine("Invertir valores del array") MostrarArray(sLetras3) Console.ReadLine() End Sub Private Sub MostrarArray(ByVal sMiLista() As String) Dim iContador As Integer For iContador = 0 To sMiLista.Length - 1 Console.WriteLine("Elemento: {0} - Valor: {1}", iContador, sMiLista(iContador)) Next Console.WriteLine() End Sub
19
Búsqueda Los métodos IndexOf( ) y LastIndexOf( ) de la clase Array, nos permiten buscar un elemento en un array comenzando la búsqueda desde el principio o final respectivamente. Ya que ambos disponen de diferentes implementaciones al estar sobrecargados, consulte el lector la documentación de la plataforma. Sub Main() Dim sNombres() As String = {"Alberto", "Juan", "Ana", "Paco", "Miguel", "Ana"} ' buscar una cadena a partir del índice 0 del array Console.WriteLine("Paco está en la posición {0}", Array.IndexOf(sNombres, "Paco")) ' buscar una cadena a partir del índice 3 del array Console.WriteLine("Ana está en la posición {0}," & " comenzando a buscar desde índice 3", _ Array.IndexOf(sNombres, "Ana", 3)) ' introducir un valor a buscar en el array, si no existe se devuelve -1 Dim iPosicionBuscar As Integer Console.WriteLine("Introducir nombre a buscar") iPosicionBuscar = Array.IndexOf(sNombres, Console.ReadLine()) If iPosicionBuscar = -1 Then Console.WriteLine("El nombre no está en el array") Else Console.WriteLine("El nombre está en la posición {0} del array", iPosicionBuscar) End If ' buscar comenzando por la última posición Dim iNumeros() As Integer Dim iUltPosicionBuscar As Integer iNumeros = New Integer() {10, 20, 30, 10, 50, 60, 10, 70, 80} Console.WriteLine("El 10 está en la posición {0} comenzando por el final", Array.LastIndexOf(iNumeros, 10)) Console.ReadLine() End Sub Sub Main() Dim sNombres() As String = {"Alberto", "Juan", "Ana", "Paco", "Miguel", "Ana"} ' buscar una cadena a partir del índice 0 del array Console.WriteLine("Paco está en la posición {0}", Array.IndexOf(sNombres, "Paco")) ' buscar una cadena a partir del índice 3 del array Console.WriteLine("Ana está en la posición {0}," & " comenzando a buscar desde índice 3", _ Array.IndexOf(sNombres, "Ana", 3)) ' introducir un valor a buscar en el array, si no existe se devuelve -1 Dim iPosicionBuscar As Integer Console.WriteLine("Introducir nombre a buscar") iPosicionBuscar = Array.IndexOf(sNombres, Console.ReadLine()) If iPosicionBuscar = -1 Then Console.WriteLine("El nombre no está en el array") Else Console.WriteLine("El nombre está en la posición {0} del array", iPosicionBuscar) End If ' buscar comenzando por la última posición Dim iNumeros() As Integer Dim iUltPosicionBuscar As Integer iNumeros = New Integer() {10, 20, 30, 10, 50, 60, 10, 70, 80} Console.WriteLine("El 10 está en la posición {0} comenzando por el final", Array.LastIndexOf(iNumeros, 10)) Console.ReadLine() End Sub
Presentaciones similares
© 2025 SlidePlayer.es Inc.
All rights reserved.