Escolar Documentos
Profissional Documentos
Cultura Documentos
int listaNmeros[] = {234,54,67,68,978,12}; for(int i=0; i<listaNmeros.length; i++) { System.out.print(listaNmeros[i]); System.out.print("..."); System.out.println(listaNmeros[i]+i); }
Programa que carga automticamente en un vector las letras del abecedario indicando el tamao del vector en una constante.
final int TAMANO = 26; char listaLetras[] = new char[TAMANO]; char letra = 'A'; //Asignacion de letras a cada elemento del vector for(int i=0; i<TAMANO; i++) { listaLetras[i] = letra; letra++; } //Mostrar en pantalla el vector for(int i=0; i<TAMANO; i++) { System.out.print(listaLetras[i]+" "); }
System.out.println(edades[2]); //Mostrar todo el vector for(int i=0; i<edades.length; i++) System.out.print(edades[i]+" "); System.out.println(); //Mostrar todo el vector de otra forma for(int edad:edades) System.out.print(edad+" "); System.out.println();
Programa que muestra el nmero de apuestas que son necesarias para que se acierten 6 nmeros dados en la lotera primitiva.
int apuesta[] = {22,28,3,13,40,7}; int aciertos, bola, apuestas=0; do { aciertos = 0; apuestas++; for(int i=0;i<6;i++) { bola = (int)(Math.random()*49)+1; for(int j=0;j<6;j++) { if(bola==apuesta[j]) aciertos++; } } } while(aciertos<6); System.out.println("Apuestas realizadas: "+apuestas);
Utilizar un arreglo para hacer operaciones con el, en la mayora de las veces implica el uso de la instruccin for, pues para poder tomar o actualizar cada elemento del arreglo, es necesario utilizar ndice, y es por esto que el for es la instruccin ideal.
Por ejemplo, como se vio en arreglos de una dimensin, para inicializar un arreglo ya una vez definido podemos utilizar: int arreglo[] = new int [10]; for (int i=0; i<10; i++) { arreglo [i] = i; }
Pero tambin podemos utilizar la variable length, la cual es definida para todo arreglo en Java, y esta representa el nmero mximo de posiciones en el arreglo, es decir para el ejemplo anterior quedara como: int arreglo[] = new int [10]; for (int i=0; i < arreglo.length; i++) { arreglo [i] = i; }
Al hacer operaciones con arreglos es muy comn que utilicemos tambin una constante para definir el mximo valor a utilizar en el arreglo, es decir para el ejemplo anterior quedara como: int final MAX = 10; int arreglo[] = new int [MAX]; for (int i=0; i < MAX; i++) { arreglo [i] = i; }
Donde MAX es una constante (definida as al usar la clusula final) que valdr 10 durante la ejecucin del mtodo, clase o parte donde se encuentre definida.
int posicin = 0; int mayor = arreglo[0]; // se toma el primer valor como el mayor // se revisa cada elemento en el arreglo desde el segundo for (int i=1; i < arreglo.length; i++) { // si el elemento del arreglo es mayor if (arreglo[i] > mayor) { mayor = arreglo[i]; // cambiamos el valor del mayor posicion = i; // se actualiza la posicion } } System.out.println(El valor mayor es + mayor); System.out.println(Y esta en la posicion + (posicin+1));
Si queremos saber en que posicin se encontr el mayor valor, entonces debemos utilizar un ndice, el cual empieza en 0 (si es que tomamos como referencia inicial el primer valor) y despus al detectar que el valor del arreglo es mayor, se hace el cambio con mayor y se actualiza la posicin, al desplegar la posicin le aadimos uno mas, ya que empieza desde cero.
En Java es posible saber el nmero de renglones de una matriz, solo escribiendo el nombre de la matriz un punto y la palabra length, tambin se puede saber el nmero de elementos de un rengln, dando el nombre del arreglo , el rengln entre corchetes y un punto y la palabra length, como se muestra en el siguiente ejemplo:
public class AplicacionMatrices2 { public static void main(String[] args) { int arreglo[][] = {{1,2,3}, {4,5,6}, {7,8,9}}; for (int i=0; i<arreglo.length; i++) { for (int j=0; j<arreglo[0].length; j++) { System.out.print(" " + arreglo[i][j] + " "); } System.out.println(); } } } El cual al ejecutar mostrar lo siguiente:
Es importante observar como se escriben los renglones por columna, recordando que se utiliza el print() para desplegar el valor, esto permitir no cambiar de rengln, pero tampoco saldr a la pantalla hasta encontrar un println(), el cual se hace despus del ciclo de adentro que despliega todos los renglones de una columna.
tipo
carcter*/
public class AplicacionMatrices1 { public static void main(String[] args) { int arreglo[][] = new int [3][5];
for (int i=0; i<3; i++) { for (int j=0; j<5; j++) { arreglo [i][j] = i*5+j+1; } } for (int i=0; i<3; i++) { for (int j=0; j<5; j++) { System.out.print(" " + arreglo[i][j] + " "); } System.out.println(); } } }
Supongamos que queremos utilizar una aplicacin para poder tomar un arreglo y voltearlo en otro, es decir, supongamos que tenemos un arreglo con los nmeros 1, 15, 17, 22 y 34 y los queremos cambiar al revs como 34, 22, 17, 15 y 1. La siguiente aplicacin nos puede ayudar a comprender esto: public class AplicacionArreglo3 { public static void main(String[] args) { int arreglo1[] = { 1, 15, 17, 22, 34 }; int arreglo2[] = new int[arreglo1.length]; for (int i = 0; i < arreglo1.length; i++) { arreglo2[arreglo1.length - i - 1] = arreglo1 [i]; } System.out.println("Arreglo Inicial"); for (int i = 0; i < arreglo1.length; i++) { System.out.println("Elemento " + (i+1) + " = " + arreglo1[i]); } System.out.println("Arreglo Final"); for (int i = 0; i < arreglo2.length; i++) { System.out.println("Elemento " + (i+1) + " = " + arreglo2[i]); } } } Dicha aplicacin muestra la siguiente salida:
Vemos como la clave de la asignacin de cada elemento del arreglo 2 esta en hacer un poco de matemticas, con la instruccin: arreglo2[arreglo1.length - i - 1] = arreglo1 [i]; En esta instruccin al ltimo ndice de la posicin le quitamos el valor de i que es nuestra variable ndice que avanza hasta llegar al ltimo, pero si hacemos un poco de sustitucin y decimos arreglo1 tiene 5 elementos, cuando la i es cero, entonces arreglo.length i 1 nos da 4 que es realmente la ltima posicin, ya que ira de 0 a 4. Si sustituimos ahora con i en 1, tendramos 5 1 1 que sera 3 y as sucesivamente.
} if (busca2 == arreglo[i]) { conta2++; } } System.out.println("Arreglo"); for (int i = 0; i < arreglo.length; i++) { System.out.println("Elemento " + (i+1) + " = " + arreglo[i]); } System.out.println("El numero " + busca1 + " aparece " + conta1 + " veces"); System.out.println("El numero " + busca2 + " aparece " + conta2 + " veces"); } } Dicha aplicacin muestra el siguiente desplegado:
Observamos que el conta1 solo se incrementa si el valor buscado busca1 aparece en el arreglo, de la misma manera con el valor busca2, se utiliza conta2. Juguemos ahora un poco con letras utilizando arreglos de caracteres, cambiando la aplicacin quedara como: public class AplicacionArreglo5 { public static void main(String[] args) { char arreglo[] = { 'a', 't', 'e', 'n', 'i' , 'd', 'a', 's'}; char busca1 = 's'; // caracter 1 a buscar int conta1 = 0; // contar cuantas veces aparece char busca2 = 'a'; // caracter 2 a buscar int conta2 = 0; // contar cuantas veces aparece for (int i = 0; i < arreglo.length; i++) { if (busca1 == arreglo[i]) { conta1++; } if (busca2 == arreglo[i]) {
conta2++; } } System.out.println("Arreglo"); for (int i = 0; i < arreglo.length; i++) { System.out.println("Elemento " + (i+1) + " = " + arreglo[i]); } System.out.println("El caracter " + busca1 + " aparece " + conta1 + " veces"); System.out.println("El caracter " + busca2 + " aparece " + conta2 + " veces"); } } Esta aplicacin mostrara el siguiente desplegado:
Observamos entonces como un arreglo de caracteres puede ser manejado como un arreglo de nmeros. Utilizando los caracteres y usando el ejemplo de invertir los nmeros de un arreglo a otro, podemos observar como se puede invertir un arreglo de caracteres en otro, veamos la siguiente aplicacin: public class AplicacionArreglo6 { public static void main(String[] args) { char arreglo1[] = { 'a', 't', 'e', 'n', 'i' , 'd', 'a', 's'}; char arreglo2[] = new char[arreglo1.length]; for (int i = 0; i < arreglo1.length; i++) { arreglo2[arreglo1.length - i - 1] = arreglo1 [i]; } System.out.println("Palabra Inicial"); for (int i = 0; i < arreglo1.length; i++) { System.out.println("Caracter " + (i+1) + " = " + arreglo1[i]); } System.out.println(); System.out.println("Palabra Final");
for (int i = 0; i < arreglo2.length; i++) { System.out.println("Caracter " + (i+1) + " = " + arreglo2[i]); } } } Observando el desplegado de esta aplicacin quedara: