Ejercicios de array con C# (3ra. parte)

Bueno, seguimos con algunos ejercicios resueltos en C#. Esta vez implementamos algunos métodos un poco más complejos, pero muy útiles para resolver distintos problemas. Empezamos desde lo más sencillo hasta lo más complejo…Aunque 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)

Más ejercicios resueltos de arrays en C# (Segunda parte)

1- Saber si una cadena es palíndromo o no.
Una cadena es palíndromo si se puede leer igual de derecha a izquierda que de izquierda a derecha, por ej: otto, sacas, etc. El método, que en este caso sería recursivo tendría la siguiente signatura:
public bool EsPalindromo(string s). Vamos a la implementación:

espalindromo Ejercicios de array con C# (3ra. parte)

Como vemos, es un método muy sencillo haciendo uso de la recursividad, teniendo en cuenta que una cadena es palíndromo si al quitar los extremos del texto, este sigue siendo palíndromo, y así sucesivamente hasta que quede de longitud 1, que por supuesto es palíndromo. De todas formas traten de hacerlo iterativo, para que vean como se extiende un poco más el código… jjeje. Si quieren, pueden ver un poco más sobre recursividad aquí.

Invertir un array es algo que puede que hagamos muy seguido en nuestros programas, a través del siguiente método vemos como invertir un array de números enteros, de tal forma que si nos pasan un array de enteros con 1,2,3,4,5, este método devuelva 5,4,3,2,1… vamos al código:

invertir Ejercicios de array con C# (3ra. parte)

Como vemos, lo único que va a tener este método que puede no entiendas es números[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 también que la ultima posición de un array es array[array.Lenght-1], que es cuando la i vale 0.

Buscar un elemento en un array bidimensional (tabla)

Método muy sencillo que nos muestra como movernos por un array bidimensional buscando si contiene un elemento dado. Veamos este ejemplo rápidamente:

buscar Ejercicios de array con C# (3ra. parte)

Vemos como con dos ciclos for nos podemos mover fácilmente por todas las posiciones de la tabla. El método 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 dimensión. 1 es para el alto, y 0 es para el ancho.

Rotar un array
Entenderemos por rotar un array n veces, trasladar el elemento de la primera posición n veces a la derecha si n>0 o a la izquierda si n<0. Por ejemplo, si rotamos 3 veces el array 1,3,2,4,5 devolvería 2,4,5,1,3. Esto se puede lograr de varias formas, pero proponemos una muy poco costosa, calculando la posición del array donde debería caer el primer elemento del array que se desea rotar. Bueno, vamos a la práctica, el código es:

rotar Ejercicios de array con C# (3ra. parte)

Vemos que es un poquito complicado esto de rotar un array calculando la posición a partir del resto de n con la longitud del array, pero si se ponen a analizar linea por línea se darán cuenta que no es tan difícil. Haciendo n%array.Lenght, calculamos la nueva posición donde quedaría el primer elemento del array. Interesante verdad? Ya veremos próximamente como armar un diccionario donde poder agregar y leer datos fácilmente sin necesidad de buscar por todos sus elementos utilizando mucho este operador % para el resto. Entonces practiquen con estos métodos, hagan modificaciones, busquen otras ideas, traten de mejorarlos… y todo lo que se les ocurra.
Para aprender a programar hay que “leer y escribir código”. Si tienen alguna duda, dejen un comentario. Próximamente estaremos viendo la clase Matriz con todos sus métodos y propiedades. Determinante, multiplicación escalar, multiplicación por otra matriz, suma, resta, etc…

Compártelo:
  • Meneame
  • Digg
  • del.icio.us
  • Facebook
  • BarraPunto
  • Google Bookmarks
  • Reddit
  • StumbleUpon
  • Technorati
  • TwitThis
  • Wikio
  • LinkedIn
  • Netvibes
  • Bitacoras.com
9 Comentarios
  1. Ejercicios de array con C# (1ra. parte) | PuntoPeek.com | 13 Mayo 2009 a las 12:22

    [...] Ejercicios resueltos de array con C# (3ra. parte) [...]

  2. anthomNo Gravatar | 4 Julio 2009 a las 16:20

    me gustaria que colocaran ejemplos de como se escribe una funcion con recurcividad que lea palabras y genere su palindrome (nota : las palabras palindromes son las que son iguales leidas de atras para adelante como arepera )

  3. JuanzNo Gravatar | 21 Octubre 2009 a las 13:36

    Muy buenos ejemplos me solucionaron mas de una se agradece.

  4. eder lozano ramirezNo Gravatar | 27 Octubre 2009 a las 23:00

    estan muy buenos los ejercicios y espero tener muchos mas

  5. luthorNo Gravatar | 17 Noviembre 2009 a las 22:55

    realmente buenos los ejercicios sigue asi , aprendemos mucho …

  6. daniel ramosNo Gravatar | 23 Noviembre 2009 a las 16:16

    ola alguein tendra un ejercisio resuelto en csharp el cual sea un problema que involucre alguna ecuacion diferencial

  7. WENDINo Gravatar | 7 Diciembre 2009 a las 4:03

    HOLA..PLIS NECESITO AYUDA , EL EJERCICIO ES,,EN UNA ORACION DADA CAMBIAR LA PRIMERA A LA ULTIMA POCISION Y LA ULTIMA PALABRA A LA PRIMERA,,, UTILIZANDO LA FUNCION SWAP..PLIS EN C#

  8. percy1006No Gravatar | 9 Diciembre 2009 a las 13:38

    alqguien me puede decir como hacer un metodo para comparar dos arrays ejemplo A=[2,5,6,7,8,11,35] B=[1,4,7,30]
    Saber si B esta contenido en A

  9. simiNo Gravatar | 30 Diciembre 2009 a las 4:26

    hi,

    First of all. Thanks very much for your useful post.

    I just came across your blog and wanted to drop you a note telling you how impressed I was with the information you have posted here.

    Please let me introduce you some info related to this post and I hope that it is useful for .Net community.

    There is a good C# resource site, Have alook

    http://www.csharptalk.com/2009/09/c-array.html
    http://www.csharptalk.com/2009/10/creating-arrays.html

    simi

Escribe un comentario