Ejercicios resueltos de array con C# (1)

Feb 10, 2009 Codigos C# 65 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:

65 comentarios

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

Otra forma de hallar la moda podria ser:

static int Moda(int[] elementos)
{
  int moda = 0;
  int contTotal = 0;
  for (int i = 0; i < elementos.Length; i++)
    {
      int cont = 0;
      for (int j = i; j  contTotal)
        {
          contTotal = cont;
          moda = a[i];
        }
    }
 
 
    return moda;
}

No compile el codigo,…

El segundo ciclo no necesita comenzar en la posición “cero” del array. Basta con que compruebe hacia adelante solamente…

Igual se podría hacer un tin mas eficiente, llevando un control de los numeros ya comprobados para cuando cambie de posición, si ya comprobé ese numero, simplemente continuar…

Take care bro :)

Autor: Oscar Mederos | Fecha: Feb 13, 2009.

Muy buena idea, gracias Oscar. Ahora estoy preparando un tutorial sobre como crear una clase Lista con muchas funcionalidades como agragar elementos, eliminarlos, ordenarlos, etc. que podrán usar en otros proyectos.

Autor: admin | Fecha: Mar 9, 2009.

Hola como estás, espero que bien, bueno podrias ponerme 20 programas con if que estén fáciles y ya resueltos por favor? Te lo agradezco de antemano.

Autor: mirna | Fecha: Abr 15, 2009.

Manuel, voy a tratar de ayudarte un poco, pero no creo que pueda hacerlos todos… a lo mejor publique un post con la respuesta a algunos de tus problemas, que son bastante interesantes.

Autor: admin | Fecha: Abr 18, 2009.

hola, quisiera que pusieras el ejercicio de invertir el array de caracteres, me parece interesante

Autor: mari | Fecha: May 12, 2009.

@Mari, puedes estar segura que en la siguiente entrega lo incluiré, aunque con números enteros.
Escribí un post sobre como invertir un array de caracteres de 3 formas, puedes verlo en el siguiente enlace:
Tres formas de invertir un string

Autor: admin | Fecha: May 12, 2009.

hola quiero que me ayude a resolver este ejercicio sea un array con 10 elementos elabore un flujograma o algotitmo que almacene los elememtos de a en otro array de forma inversa al array original por favor

Autor: Elena | Fecha: May 12, 2009.

@Elena, ese ejercicio ya está echo, mira aquí:
Ejercicios resueltos de array 3ra parte
Una vez tienes este método, declaras el array con los 10 elementos de esta forma:

1
int [] a = new int[]{1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

Luego declaras un array b donde guardas el inverso de a, así:

1
int[] b = Invertir(a);

Autor: admin | Fecha: May 13, 2009.

como hago para crear un menu en main que le de al usuario varias opciones y de ahi depende de cual quiera pasar a un metodo, por ejemplo pedir al usuario que me ingrese 3 palabras distintas y seleciionando la opcion 2 crear un metodo para mostrar la frase entera y seleccionando 3 me cuente la cantidad de letras de la frase

Autor: Leo | Fecha: May 13, 2009.

@Leo, si quieres puedes hacerlo utilizando Console.ReadLine() para leer y guardar en una variable lo que el usuario escriba en la consola, y luego con if en dependencia de la opción que seleccione el usuario, llamas un método u otro. Algo así, esto iría en el Main:

int[] arr = new int[]{3,5,6,8,32,1};
Console.WriteLine("Escoge una opcion");
Console.WriteLine("1: Ordenar un array");
Console.WriteLine("2: Invertir un array");
Console.WriteLine("3: Imprimir un array");
//Convierto lo que escriba el usuario a entero y lo guardo en a.
int a =int.Parse(Console.ReadLine());
//Ahora hago el if:
if(a==1) //Si selecciono la opcion 1
   Ordenar(arr);
if(a==2)
   Invertir(arr);
if(a==3)
   Imprimir(arr);

Espero haberte ayudado.

Autor: Tomy | Fecha: May 15, 2009.

quisera saber como se ordena un array acendente y decendentemente

Autor: juan david chulde | Fecha: Jun 4, 2009.

@juan david, puedes ver una de las formas más faciles de implementar aquí: Ordenación por burbuja. Si buscas la más eficiente, puedes ver aquí mi implementación de QuickSort usando C#

Autor: admin | Fecha: Jun 5, 2009.

Necesito ingresar los meses del año en un array y una vez ingresados todos me los muestre por pantalla

Autor: Luis Canales | Fecha: Jun 19, 2009.

me gusta mucho este sitio, cuando me inscribí no lo leí casi pues estuve trabajando mucho y no tuve tiempo de nada, pero ahora que lo necesité veo que tiene muchas cosas más, por favor, los ejemplos resueltos que tengan de C# mándenmenlo.

Autor: Prospero | Fecha: Ago 27, 2009.

Ahora estoy preparando una colección de 100 ejercicios resueltos y básicos en C#, para que todos lo puedan descargar estará en la barra lateral.

Autor: Tomy | Fecha: May 26, 2010.

gracias

Autor: chuy | Fecha: May 28, 2010.

hola como estás? necesito tu ayuda:
leer los calificaciones de un grupo de 5 estudiantes los cuales llevan 3 asignaturas, determinar el promedio de c/asignatura y la cantidad de estudiantes aprobados y reprobados por c/asignatura

Autor: felix parrales | Fecha: Jul 6, 2010.

felix, imagino que tengas una coleccion de Estudiantes asociado a varias asinaturas y por cada asignatura tengas varias notas…. en realidad necesito saber que estructura de datos usas para este ejercicio… y lo ideal sería una pequeña base de datos, pero el pseudocodigo sería algo así, asumiendo que las notas están en un array bidimiensional de estudiantes y asignaturas.

int [] promedios;
int [] aprobados;
int [] suspensos;
int promedio;
int aprob;
int susp;
 
for (int i=0; i<3; i++)
{
       promedio = 0;
       aprob=0;
       susp= 0;
       for (int j=0; j<5; j++)
       {
           promedio += notas[estudiantes[j], asignaturas[i]];
           if(notas[estudiantes[j], asignaturas[i]]) <3 )
                 susp++;
           else
                 aprob++;
       }
        promedio=/5;
        promedios[i]= promedio;
        aprobados[i] = aprob;
        suspensos[i] = susp;
}

Espero que este fácil de entender…

Autor: Tomy | Fecha: Jul 6, 2010.

Hola amigos tengo problemas con estos ejercicos de c++ en arrays soy un novato me podrian ayudar a resolverlos porfavor. estos son los ejercicios

1. Implementar una función que permita convertir un vector de caracteres a mayúsculas.
2.Implementar una función que reciba un entero n, luego la función deberá retornar un vector con los n primeros valores de las serie fibonacci.
3. Implementar una función que reciba un vector con 0s y 1s (representa un numero en binario) y retorne el valor decimal de tal número.
4. Implementar una función que realice búsqueda binaria sobre un vector.

seria beuno k me podrian dar una manoo

Autor: armando | Fecha: Sep 19, 2010.

Hola buenas necesito un poco de su ayuda.. estoy buscando un programa que almacene en un vector de 6 posiciones diferentes valores numericos; y dado un valor, verifique cuantas veces esta, esta dentro de dicho vector en caso de que no exista se debe indicar dicha situacion? eso es con C# la parte de Consola u.u pero ando super muerta… T,T necesito ayuda

Autor: Jailen | Fecha: Oct 23, 2010.

Hola a todos, les pido por favor, q antes de proponer un ejercicio, busquen primero a ver si está hecho. La mayoría de los ejericios q han propuesta, ya están resueltos en este y otros posts.
@armando, en el proximo post voy a poner algunos de los ejercicios q propones, son interesantes.
Saludos y feliz fin a año!

Autor: Tomy | Fecha: Dic 23, 2010.

tengo que hacer un programa que lea una cadena de n caracteres e imprima el resultado que se obtiene cada vez que se realiza una rotación de un carácter a la derecha, hasta mostrar la palabra original. Ej: hola, ahol, laho, olah, hola.
Espero su ayuda.
Gracias

Autor: zedahr | Fecha: Feb 24, 2011.

Quisiera saber como realizar un programa que consiste en un juego!! y es el siguiente: 2 jugadores compiten para saber quien ganará lanzando un dado 5 veces, donde el ganador será el que tenga mas repeticiones al lanzar en dado!!

Autor: chester | Fecha: Feb 27, 2011.

@Luis, busca por el blog… que entre los ejercicios resueltos hay varios parecidos, solo ten en cuenta que para mostrar algo en pantalla debes usar:

Console.WriteLine("Lo que quieras mostrar"); 

Autor: Tomy | Fecha: Mar 23, 2011.

@Jalien, ese ejercicio está ya resuelto, se llama Moda y está en este mismo post ;) solo debes crear el vector o array de tamaño 6

Autor: Tomy | Fecha: Mar 23, 2011.

@armando, me parecen muy interesantes los ejercicios que propones… veremos como resolverlos en estos días

Autor: Tomy | Fecha: Mar 23, 2011.

@chester, lo único que puede ser un poco complicado puede ser el lanzamiento de los dados (si la aplicación no debe tener interfaz gráfica), usando el método Random(1,7) se puede generar el lanzamiento de los dados, ya que devuelve un número random del 1 al 6, luego hacer un método que guarde la cantidad de repeticiones para cada jugador, y por último, comparar la cantidad de repeticiones para decidir el ganador.

Autor: Tomy | Fecha: Mar 23, 2011.

holaaa me gustaria saber si se pueden hacer matrices con los picture box?? y como sinceramente soy un novato en esto se les agradeceria la ayuda

Autor: Enrique | Fecha: Abr 30, 2011.

hola tomy soy un poco nuevo en la programacion y tu pagina de verdad es una de las mejores que he visto , me salvaste en varias tareas que tuve

Autor: beto-09 | Fecha: May 27, 2011.

Gracias @beto-09, la verdad es que estoy intentando mejorar este blog y me gustaría tener más tiempo, pero la escuela me lleva corriendo, por eso no puedo responder a todos los comentarios.

Autor: Tomy | Fecha: Jun 2, 2011.

disculpen, pero no se si me podrán orientar acerca de un trabajo final de C#, sobre un programa para un edificio

Autor: frank pizarro | Fecha: Jun 25, 2011.

Estoy realizando un programa en consola donde tengo que ingresar la cedula y el nombre en un array.
Como puedo hacer para que al cargarlo solo me de la opcion de cargar numeros (int) cuando es la cedula y String cuando es el nombre , xq lo hice con un if asi:
if { i<=0 || i!= “”;}
Console.WrileLine (“ERROR HA INGRESADO MAL EL NOMBRE O LA CEDULA”);
Pero se me rompe el programa cuando pruebo y le agrego otra cosa q no sea número y si cargo números en la opcion del nombre no me da ningun error.
Gracias por la ayuda.

Autor: Lore | Fecha: Jun 28, 2011.

@Lore, muy buena tu pregunta:
Lo que pasa es que cuando escribes en la consola, lo que recibes cuando haces i=Console.ReadLine() es un string por defecto y por eso no te da error cuando cargas números en la opción de nombre, porque i=”123″ por ejemplo, que es un string. Para lograr eso existen en C# métodos como TryParse y el operador is .

Recientemente acabo de escribir un post sobre aplicaciones de consola en C# que quizás te pueda ser útil.

Autor: Tomy | Fecha: Jun 28, 2011.

donde se pone el static public

Autor: danny | Fecha: Ago 17, 2011.

gracias por la ayuda

Autor: roy | Fecha: Ago 25, 2011.

hola quisiera saber como puedo calcular la mediana de una serie de datos

Autor: Jassp | Fecha: Sep 20, 2011.

Gracias. me ha servido la parte de la moda. en verdad gracias. ^^

Autor: Anonimo18 | Fecha: Sep 21, 2011.

Hola yo necesito algo asi pero para cortar lo que hay dentro de un texarea por ejemplo que cada tres palabras que haya un espacio lo reemplace por enter para que haga un salto de linea y continue abajo ya que lo que contiene este lo debo mostrar en un JqGrid y cuando el usuario ingresa todo seguido sin presionar la tecla enter no se puede visualizar el total del contenido en el JqGrid alguna ayuda?? Muchas gracias desde ya! :D

Autor: Cecilia | Fecha: Oct 7, 2011.

amigo necesito tu ayuda con urgencia necesito hacer un programa que por medio de un vector de almacene la informacion, te calcule el promedio y te muestre cuantos valores registrados superan el promedio

Autor: david | Fecha: Oct 8, 2011.

hola mira disculpa queriia saber como ´puedo hacer un ejercicio con C# pero que salga el promedio utilizando un arreglo pero con Forms no con Console.
Cree que me puede ayudar
Y tambien usando un Listbox

Autor: tania | Fecha: Oct 10, 2011.

quiesiera saber como hago un programa que agrege numeros del 1 al 20, y que elimine un valor y tambien que agrege un valor

Autor: SOL | Fecha: Nov 22, 2011.

Hola buenos dias quisiera saber de algun metodo al ke le envie un arreglo tipo estring con lo siguente adentro
1 2 3 4 5 6 7
[1][+][3][*][5][-][8]
y ke mne hiziera las operaciones marcadas
y me diera el resultado en este ejemplo
un 12

Autor: AIQ | Fecha: Nov 25, 2011.

ey! hola… necesito que me ayudes a hacer un programa que lea un vector de N elementos. despues que deba calcular el promedio de los elementos contenidos en el vector.
sera que me puedas ayudar???
ah por cierto chida pagina es de gran ayuda
=)

Autor: Alan Quen | Fecha: Nov 30, 2011.

holas quisiera hacer un programita recien estoy aprendiendo vectores

escriba un método que ordene los elementos del vector de tal forma que los números pares aparezcan antes que los números impares. Además, los números pares deberán estar ordenados de forma ascendente, mientras que los números impares deberán estar ordenados de forma descendente. Esto es, el vector {1,2,3,4,5,6} quedará como {2,4,6,5,3,1}. Nota: Solo se utiliza un solo vector. ayudeme por favor

Autor: liz | Fecha: Nov 30, 2011.

como elimino una fila de una matriz no cuadratica pero utilizando clases

Autor: mayry | Fecha: Dic 14, 2011.

porque en el ejemplo 2 me no puede retornar el arreglo sino me retorna algo con system int32 o algo asi porfa ayuda!!

Autor: DANS | Fecha: Dic 16, 2011.

pss an oye era buena idea lo del programa donde se puedan eliminar las filas o mas buien datos de un arreglo pss an es buena idea pss an yo tambien lo necesito jaja

Autor: diana | Fecha: Dic 31, 2011.

como inserto registros devueltos de una consulta sql a un array de 10 filas por 3 columnas en c#?

Autor: Mauricio | Fecha: Feb 29, 2012.

por favor su ayuda con un progrma que me permita calcular el numero de cedula de un usuario

Autor: juan carlos sanchez | Fecha: Mar 4, 2012.

disculpe soy novato en esto de programar pero me gustaria saber en que prograama hizo: 1- Como saber cual es el número menor, el mayor y el promedio entre los elementos de un array en asp?? o en que plataforma.. si y cuales son los pasos es que me piden en asp que lo haga si plsss gracias y cheveere el codigo pero me gustaria emplearlo pero no se donde si gracias , dame los pasos.. :)

Autor: mich | Fecha: Mar 10, 2012.

Escribe tu comentario

Requerido.

Requerido. No público.

Si tienes alguno.