Está en la página 1de 3

A continuacin se muestra una funcin muy sencilla y til en la que dado un vector (array) y un elemento a buscar, si lo encuentra nos

devuelve la posicin en la que est, sino nos devuelve -1.


Function BuscarElemento(ByRef vector As Integer(), ByVal valor As Integer) Dim encontrado As Boolean = False Dim posicion As Integer = -1 Dim i As Integer = 0 While Not encontrado And i < vector.Length If vector(i) = valor Then posicion = 1 encontrado = True End If i = i + 1 End While Return posicion End Function

El algoritmo recorre el vector empezando desde la posicin 0 hasta la ltima posicin. En caso de que encuentre el valor saldr del bucle directamente, sin tener que acceder a cada posicin. Aunque el cdigo est escrito en VB.NET el algoritmo es igualmente vlido para la gran mayora de lenguajes de programacin

Ejemplo de Uso
En este ejemplo se supone que se tiene un vector de enteros y que se quiere buscar el primer elemento del vector que contiene un 10.
Dim posicion As Integer = BuscarElemento(vector,10) if (posicion <> -1) then 'encontrado vector(posicion) = vector(posicion) + 1 else 'no encontrado end if Bsqueda de valores en arrays Public Sub Main() Dim sNombres() As String = {"Alberto", "Juan", "Ana", "Paco", "Miguel", "Ana"} Dim iPosicionBuscar As Integer ' buscar una cadena, se comienza desde ' el ndice 0 del array iPosicionBuscar = Array.IndexOf(sNombres, "Paco") '--> 3 ' buscar una cadena a partir del primer ' elemento del array iPosicionBuscar = Array.IndexOf(sNombres, "Ana", 3) '--> 5 ' si no existe el valor que se busca ' se devuelve -1 iPosicionBuscar = Array.IndexOf(sNombres, "Laura") '--> -1 ' buscar comenzando por la ltima posicin Dim iNumeros() As Integer Dim iUltPosicionBuscar As Integer

iNumeros = New Integer() {10, 20, 30, 10, 50, 60, 10, 70, 80} iUltPosicionBuscar = Array.LastIndexOf(iNumeros, 10) '--> 6 End Sub

En java Este es un problema bsico a la hora de trabajar con arrays en Java. La idea es buscar el nmero ms grande del array y la posicin que ocupa.

Ejercicios resueltos de array con C# (3)


May 12, 2009 Codigos C# 31 comentarios 0tweetsretweet Bueno, seguimos con algunos ejercicios resueltos en C#. Esta vez implementamos algunos mtodos un poco ms complejos, pero muy tiles para resolver distintos problemas. Empezamos desde lo ms sencillo hasta lo ms complejoAunque no son muy complicados los ejercicios, te aconsejo que leas primero estos tres: Arrays en C# (Para que veas bien que es un array) Ejercicios resueltos de arrays en C# (Primera parte) Ms ejercicios resueltos de arrays en C# (Segunda parte) 1- Saber si una cadena es palndromo o no. Una cadena es palndromo si se puede leer igual de derecha a izquierda que de izquierda a derecha, por ej: otto, sacas, etc. El mtodo, que en este caso sera recursivo tendra la siguiente signatura: public bool EsPalindromo(string s). Vamos a la implementacin:

Como vemos, es un mtodo muy sencillo haciendo uso de la recursividad, teniendo en cuenta que una cadena es palndromo si al quitar los extremos del texto, este sigue siendo palndromo, y as sucesivamente hasta que quede de longitud 1, que por supuesto

es palndromo. De todas formas traten de hacerlo iterativo, para que vean como se extiende un poco ms el cdigo jjeje. Si quieren, pueden ver un poco ms sobre recursividad aqu. Invertir un array es algo que puede que hagamos muy seguido en nuestros programas, a travs del siguiente mtodo vemos como invertir un array de nmeros enteros, de tal forma que si nos pasan un array de enteros con 1,2,3,4,5, este mtodo devuelva 5,4,3,2,1 vamos al cdigo:

Como vemos, lo nico que va a tener este mtodo que puede no entiendas es nmeros[numeros.Lenght-i-1]. Si le vamos dando valores a la i a partir de 0, vemos como a medida que aumenta i, nos movemos un paso antes en el array numeros. Recuerden tambin que la ultima posicin de un array es array[array.Lenght-1], que es cuando la i vale 0. Buscar un elemento en un array bidimensional (tabla) Mtodo muy sencillo que nos muestra como movernos por un array bidimensional buscando si contiene un elemento dado. Veamos este ejemplo rpidamente:

Vemos como con dos ciclos for nos podemos mover fcilmente por todas las posiciones de la tabla. El mtodo retornar true solamente si encuentra el elemento n en la tabla. Aclarar que la propiedad GetLenght(int dimension), nos da el ancho o el alto dependiendo de la dimensin. 1 es para el alto, y 0 es para el ancho.

También podría gustarte