Ejercicios resueltos de array con C# (1)

Feb 10, 2009 Codigos C# 61 comentarios

Aquí les dejo una pequeña colección con ejercicios resueltos de arrays en C#, que en mi opinión, son los más importantes y prácticos. Si todavía no tienen mucho conocimiento sobre esto, lean primero esta entrada donde se explica todo lo relacionado a trabajar con “arrays en C#“.

Aclarar que seguro hay mejores soluciones y mucho menos costosas a estos problemas con arrays, pero traté de resolverlos por la forma más instuitiva, para que les sirva a la mayoría. Bueno, empezemos ya:

1- Como saber cual es el número menor, el mayor y el promedio entre los elementos de un array:

Respuesta:
Para hacer todo esto recorriendo una sola vez el array, hice un método que recibe un array de int y devuelve un array de 3 elementos, donde el primero es el mayor numero del array, el segundo es el menor y el tercero el promedio entre todos los elementos del array.

Este sería el código:

1 Ejercicios resueltos de array con C# (1)

2- Ahora queremos saber cual es el número que más se repite en un array. O sea, el número que “está de moda”.

Respuesta:
Como dije antes, este es un claro ejemplo donde hay muchas formas de resolver el problema planteado. Vamos a ver la forma más instuitiva (y no la más sencilla). Primero crearemos un array auxiliar del mismo tamaño que el array dado, donde cada elemento del array auxiliar va a ser la cantidad de veces que se repite cada numero. Así, luego solo tenemos que retornar el elemento cuya posición es la del mayor elemento del array auxiliar. Quizás me estoy enredando un poco, vamos a ver:

2 Ejercicios resueltos de array con C# (1)
Proponemos al lector que solucione este problema por otra vía usando solamente un contador y dos ciclos for.

3- Ahora veremos un método para insertar un elemento en un array dada una posición.

Respuesta:
Esto se convierte en una tarea muy sencilla utilizando el método Array.Copy(), pero en este caso lo haremos todo nosotros. Crearemos un nuevo array del mismo tamaño que el original+1. Despues copiamos los elementos del array hasta la posicion donde se quiere ubicar el elemento x, luego a partir de ahi volvemos a copiar los elementos hasta la ultima posicion del array. Veamos:

3 Ejercicios resueltos de array con C# (1)

Como ejercicio para entrenar te recomiendo que hagas el método Eliminar, con la siguiente signatura.

public int[] Elimina(int [] array, int posicion, int elemento){};

4- Veamos ya el último problema de estos primeros ejemplos. Supongamos que tenemos dos cadenas de texto. Necesitamos un método que devuelva true si una cadena de texto está contenida dentro de otra.
O sea, si tenemos un string “palanca”, y queremos saber si la cadena “pala” esta contenida dentro de “palanca”, el método devolvería true, en caso contrario devolvería false.
El código del método sería el siguiente:

4 Ejercicios resueltos de array con C# (1)

Bueno, hasta aquí esta entrega, mañana o pasado mañana pondré otros 4 o 5 ejemplos resueltos sobre trabajo con arrays.

Algunos adelantos
Entre los ejercicios que veremos en próximas entregas están:
1- Invertir un array
2- Saber si una cadena de texto es palíndromo. Es decir, que se lee igual de derecha a izquierda, que de izquierda a derecha. Por ejemplo: “otto”, “somos”.
3- Sabremos como calcular el n-simo número primo
4- Rotar un array. Por ejemplo, rotar el array (1,2,3,4,5) 3 veces a la derecha, devolvería (4,5,1,2,3).

También puedas enviar un ejercicio en los comentarios y lo resolvemos aquí entre todos.

Ya está completa esta colección de ejercicios resueltos de array con C#. Estas son las otras partes:

Ejercicios resueltos de array con C# (2da. parte)

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

Y por si no sabes ni trabajar con arrays, debes leer esto

Compartir:

61 comentarios

Forma parte de nuestra discusión y síguela de cerca

utilizando el lenguajede programacion C, como implementar un una función que nos devuelva la moda de los elementos de un vector de numeros enteros.

Autor: felix | Fecha: Mar 19, 2012.

necesito en c# como sumar array y matrices con filas y columnas

Autor: lara | Fecha: Mar 20, 2012.

Si esta muy bueno, pero en el código sobre “como saber cual es el número menor, el mayor y el promedio entre los elementos de un array” es mejor ordenar numéricamente los numeros con la clase Array con la función Sort
Te ahorras toda esas líneas

Autor: juan | Fecha: Mar 31, 2012.

@juan, el código está escrito con fines didácticos, para que la gente aprenda a trabajar con arrays. No obstante, ahorrar líneas de código no equivale a tener un código mejor, porque por ejemplo, si usamos el método Sort de la clase Array (que es O(n*log(n))), todavía tendríamos que recorrer nuevamente el array para hallar el promedio. En el caso de mi código en un mismo recorrido, obtendríamos el menor, el mayor y el promedio de todos los elementos, y por tanto es mas eficiente ;)

Autor: Tomy | Fecha: Abr 1, 2012.

Hola Tomy ¿Que tal amigo?

No era mi intención decir que tu código esta mal,ademas me parece muy bueno el código, solo lo digo por si alguien se quiere ahorrar líneas de código… ademas yo de c# no tengo ni idea… de hecho entre en tu página por los ejercicios para practicarlos en vb.net y me di cuenta que ay una clase para ORDENAR.

De nuevo… gracias por los ejercicios me ayudan a ejercita mi mente :D

Saludos amigo

Autor: Juan | Fecha: Abr 1, 2012.

@Juan: No Juan, gracias a ti, para eso están los comentarios no?? para discutir varias formas de resolver un mismo ejercicio, y es verdad que debería haberlo señalado, gracias y un saludo :D

Autor: Tomy | Fecha: Abr 12, 2012.

Amigos, son muchas preguntas… ojalá tuviera tiempo para resolver todos los ejercicios… por favor, revisen los otros ejercicios resueltos que hay en el sitio, y si pudieran hacer preguntas concretas sería mejor :D
@mich: Esto lo hice con el Visual Studio, pero es código C# y es el mismo de ASP.net
@diana, pronto voy a poner ese ejercicio de eliminar filas y datos de un arreglo
@DANS, debería devolver un elemento de tipo int, que por defecto es int32 ;)

Autor: Tomy | Fecha: Abr 12, 2012.

Hola amigo muy buena tu pagina no se si me podrías ayudar con la resolución de un ejercicio ahí te mando el enunciado muchas gracias:

Crear un Formulario que permita llenar un vector de 20 posiciones y luego de mostrar en pantalla los
datos ingresados debe determinar cuántos valores ingresados son positivos, cuantos negativos y cuantos
cero.

Autor: Marco | Fecha: Nov 18, 2012.

Hola man, me gustaria que escribieras el codigo de como borrar un elemento por favor, llevo harto rato intentando y no me resulta, saludos y de ante mano gracias!

Autor: Carlos | Fecha: May 2, 2013.

int[] arr = { 1, 1, 4, 4, 8, 7, 1, 3, 5, 1, 4 };

int index=1;

for (int x = 0; x < arr.Length; x++)
{
arr[index]= arr[index] = 40;
}

foreach (int x in arr)
{

Console.Out.WriteLine(x);
}
Console.ReadKey();

pero me funciona asi el de insertar amigo

Autor: mario alejandro | Fecha: Sep 9, 2013.

hola amigo estoy intentando realizar un algoritmo de cifrado en bloque, la pregunta es la siguiente, quiero ingresar una cantidad de texto y que el algoritmo me divida el texto ingresado en arreglos de 4×4, sera posible?

Autor: EDUARDO | Fecha: Sep 4, 2014.

Escribe tu comentario

Requerido.

Requerido. No público.

Si tienes alguno.