Esta es la segunda entrega de ejercicios resueltos con array para dominar de una vez esta estructura tan usada en C# y otros lenguajes de programación. Saber trabajar eficientemente con arrays es algo sumamente importante, ya que es la base de muchas otras estructuras de datos.
Crear un array de números aleatorios
Una buena práctica para probar nuestros algoritmos, ya sean de búsqueda, de ordenación, o cualquiera de los que hagamos aquí es crear un array de números aleatorios a partir de un tamaño. Veamos como hacer esto con la clase system.Random de C#. Veamos el código:
public int[] ArrayAleatorio(int longitud){ //Creamos un nuevo array del tamaño especificado int [] a = new int[longitud]; //Inicializamos la clase Random Random r = new Random(); int aleatorio = 0; //ahora en cada posición del array insertaremos //un numero aleatorio entre -20, y 20 for(int i=0; i<a.Lenght; i++) { a[i]=r.Next(-20,21); } return a; }
Vemos como cada vez que aumenta i dentro del ciclo for creamos un nuevo número aleatorio. Así tendremos un array con numeros aleatorios entre -20 y 20. El método Next de la clase Random tiene varios constructores, nosotros usamos uno que permite crear un número en un intervalo especificado. Como funcionará la clase Random? Interesante verdad? Este método lo podemos usar de cierta forma para probar algún que otro método, y hacemos algo así:
int[] numeros = ArrayAleatorio(8); //Creamos un array aleatorio de tamaño 8 Ordenar(numeros); Buscar(3, numeros);
Invertir un array
Bueno, veamos ahora como invertir un array de numeros:
public void Invertir(int [] a) { //Creamos un nuevo array del mismo tamaño int[] b = new int[a.Lenght]; //Empezamos a copiar desde la última posición de a en la primera for(int i=0; i<a.Lenght/2; i++) { b[i]= a[a.Lenght-i-1]; } //Como el método no retorna nada guardamos en a el array b a=b; }
Tener en cuenta que cuando hacemos a[a.Lenght -i -1], a medida que aumenta i nos vamos moviendo por a desde la ultima posición (a.Lenght -1) hasta la primera.
Calcular la suma de un array
Ahora veremos como calcular la suma de todos los elementos de un array.
public int CalculaSuma(int [] a) { int suma=0; for(int i=0; i<a.Lenght; i++) suma+=a[i]; //El operador += es similar a suma = suma + a[i] }
Como ven es un método muy sencillo donde solo tenemos que recorrer el array e ir aumentando la variable suma con el operador +=, que es lo mismo que hacer suma = suma+a[i].
Si tienen alguna duda, ya saben, comenten… y practiquen. En la próxima entrega veremos ejercicios un poco más complejos. Pronto estaremos buscando y ordenando elementos en un array de forma más eficiente.
Compartir:
Relacionados
algunos artículos que te pueden interesar
Ejercicios resueltos de array con C# (3)
May 12, 2009 | Codigos C# | 28 comentarios
Ejercicios resueltos de array con C# (1)
Feb 10, 2009 | Codigos C# | 47 comentariosGenerando números aleatorios con C#
Jul 9, 2009 | Programacion | Tutoriales C# | 16 comentarios
Ejercicios resueltos de string en C#
Abr 22, 2010 | Codigos C# | 18 comentarios
Insertar elemento en un array con C#
Ene 22, 2012 | Codigos C# | 0 comentarios
12 comentarios
Forma parte de nuestra discusión y síguela de cercaEsto no marcaía error?
Autor: ivan | Fecha: Jul 12, 2010.
Hola Ivan, tienes razón… se me fue un pedazo de código, lo siento, ya está corregido
Autor: Tomy | Fecha: Jul 29, 2010.
que aporte! son los mejores
Autor: edwin | Fecha: Ago 29, 2010.
Jajaja! Muchisimas gracias, me ha ayudado muchisimo! Aunque, no existe ninguna función (tipo for, case o whil) para invertir directamente las arrays? No tengo ni idea siq ue solo pregunto, no crean de su existencia xD
Autor: Luis BCN | Fecha: Feb 1, 2011.
Estoy haciendo una aplicacion de consola que permita al usuario llenar un arreglo con números enteros, y a partir de este realizar un recorrido y contar cuantos numeros se repiten y cuantas verces.
Esto es lo que he logrado hasta ahora, pero no se como contar e imprimir cuantas veces se repiten estos datos:
Espero su ayuda amigos
Autor: Erick tobar | Fecha: May 15, 2011.
@Erick, te voy a corregir algunos detalles:
1. Para convertir a entero, usa la función int.Parse()
2. Si quieres que tu aplicacion esté mas organizada, deberias crear dos metodos, uno que genera el array de numeros aleatorios y otro q cuenta la cantidad que hay en cada uno
3. Para contar la cantidad de veces q se repite cada numero, es mejor usar un for, en lugar del foreach, usa el foreach en listas y clases mas complejas.
Quedaría algo así:
No lo he compilado pero debe funcionar, saludos
Autor: Tomy | Fecha: Jun 20, 2011.
Hola !! yo quisiera hacer una carga de datos de usuarios en una matriz de dos direcciones , se cargarlos perfectamente cuando la recorro toda , lo que no se hacer y quiero averiguar es como ir ingresando los datos de a uno por ejemplo nombre y apellido, donde nombre se guarde en una memoria y apellido en otra, poder salir de ahí venderle un seguro y después volver a registrar otro usuario o cuantos sean necesarios.
la matriz tiene que recordar la ultima posición del ultimo dato que guarde cuando vuelva a ingresar el siguiente.
Autor: Serenity | Fecha: Jul 2, 2011.
¿alguien me puede ayudar con estos ejercicios, gracias…
1 Desarrolle un programa con un arreglo 4 x 5 diga que números son pares y cuales son impares y en qué posición se encontraban.
2 Realice un programa en C que dada una matriz n x m, rellene con 1 la primera fila con 2 la segunda fila con 3 la tercera fila y así sucesivamente hasta que finalice el ciclo y luego muéstrela por pantalla.
3 Realice un programa en C que dada una matriz n x m, rellene con 1 la primera columna con 2 la segunda columna con 3 la tercera y así sucesivamente hasta que finalice el ciclo y luego muéstrela por pantalla.
Autor: cesar | Fecha: Oct 14, 2011.
Autor: xirs | Fecha: Nov 23, 2011.
necesito un algoritmo de cadena, que reciba nombres, y los ordenes por orden alfabetico…
Gracias…….
Autor: Wil Gomez | Fecha: Dic 2, 2011.
quisiera ayuda para resolver estos ejercicios utilizando las listas:
1. Diseñe un registro para n alumnos de una Universidad, con sus respectivas notas
de Matemáticas y Estructuras de Datos, dichos datos, se deben guardar en una
Lista. Se sabe que, en ésta universidad, existe la política que si, un alumno ha
reprobado estas dos materias, es dado de baja en la universidad. Nota minina de
Aprobación 10. (8 ptos).
2. Dada una lista de N números enteros determinar la cantidad de dígitos pares e
impares que poseen. (7 ptos).
3. En una lista simple, que almacena enteros, mostrar el dato mayor, la suma y el
promedio.(5 ptos).
Autor: cesar | Fecha: Ene 16, 2012.
2. El dueño de una cadena de tiendas de artículos deportivos desea controlar sus ventas. Los datos de entrada son:
• El nombre de la tienda
• Nombre del deporte del artículo.
• El costo del artículo.
Hacer una aplicación que permita calcular:
• Las ventas totales en el día para cada tienda
• Las ventas totales para cada uno de los deportes.
• Las ventas totales de todas las tiendas.
Autor: juan | Fecha: Ene 27, 2012.