Você está na página 1de 12

Programa que inicializa un vector de nmeros enteros y los muestra en pantalla junto con la suma de su posicin.

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]+" "); }

Programa que inicializa un vector de nmeros enteros y muestra el valor ms bajo.


int numeros[] = {46,324,54,56,6,98,342,32,46,65,76,54,324,12,54,56}; int min = numeros[0]; for(int i=1; i<numeros.length; i++) { if(numeros[i] < min) min = numeros[i]; } System.out.println("El valor ms pequeo es: "+min);

Programa que muestra diversos elementos de un vector


int edades[] = {26,73,84,52,76,72,37,67,62,73}; //Mostrar el primer elemento System.out.println(edades[0]); //Mostrar el ltimo elemento System.out.println(edades[edades.length-1]); //Cambiar el tercer valor y mostrarlo edades[2] = 48;

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.

Sacando el mayor de un arreglo


Cuando deseamos obtener el valor mayor de todos los valores definidos en un arreglo, debemos recorrer todo el arreglo y utilizar una variable que nos ayude en esta comparacin. La mejor manera de inicializar esta variable es utilizar el primer valor del arreglo, por ejemplo: int mayor = arreglo[0]; // se toma el primer valor como el mayor // se revisa cada elemento en el arreglo empezando por 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 } } System.out.println(El valor mayor es + mayor);

Tomando el ndice en el que se encuentra


Para hacer esto definimos otra variable, la cual debe empezar con 1 y si el valor del arreglo es mayor, adems de hacer el cambio de mayor, actualizamos la posicin de donde se encontr el mayor, el ejemplo quedara como:

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.

Sacando el menor de un arreglo y su posicin


Para obtener el valor menor, solo se cambia la comparacin y en lugar de comparar contra mayor, solo se compara contra menor, el ejemplo lo vemos como sigue: int posicin = 0; int menor = arreglo[0]; // se toma el primer valor como el menor // se revisa cada elemento en el arreglo desde el segundo for (int i=1; i < arreglo.length; i++) { // si el elemento del arreglo es menor if (arreglo[i] < menor) { menor = arreglo[i]; // cambiamos el valor del menor posicion = i; // se actualiza la posicion } } System.out.println(El valor menor es + menor); System.out.println(Y esta en la posicion + posicion);

Obteniendo el promedio del arreglo


Para obtener el promedio de un arreglo, se debe de sumar los elementos y dividir entre cuantos sean, el ejemplo lo vemos como sigue: double promedio; double suma = 0; // se inicializa la suma en cero // se tomara cada elemento para sumarlo for (int i=0; i < arreglo.length; i++) { suma += arreglo[i];

} promedio = suma / arreglo.length; System.out.println(El promedio es + promedio);

Inicializar matriz en la declaracin


En Java es posible inicializar una matriz al declararla, tal y como sucede con los arreglos; esto se hace sin definir el nmero de renglones y columnas, colocando un operador de asignacin y despus entre llaves la lista de valores para cada rengln del arreglo, el arreglo separando con llaves para cada valor por columna, separado por comas, veamos los siguientes ejemplos: double arreglo[][] = { {3.5, 5.4, -2.3 }, {22.3, 78.5, -9.4}}; char cadena[][] = {{a, g, u, a}, {r, o, j, a}} ;

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.

Que es un arreglo de dos dimensiones?


Un arreglo de dos dimensiones es una coleccin de datos para una misma variable en dos dimensiones comnmente llamados renglones y columnas. Arreglo 12 -4 0 28 -3 -3 -5 2 189 -2 1 0 9 -4 12 Para poder guardar un valor u obtener alguno del arreglo de dos dimensiones (tambin llamado matriz) es ahora necesario utilizar dos dimensiones, el rengln y la columna.

Declaracin de arreglos de dos dimensiones


Para declarar un arreglo de dos dimensiones se utiliza el siguiente formato: tipo nombre_arreglo [][] = new tipo[ numero renglones][ numero columnas]; Donde tipo es el tipo de los datos que almacenar el arreglo de dos dimensiones. Es importante recordar que se pueden declarar arreglos de los tipos primitivos de Java (int, double, char, etc) o bien de tipos definidos por el usuario (Cuenta, Alumno, etc). Tamao representa la cantidad de casillas que se reservan para el arreglo. En Java todos los arreglos empiezan en el subndice 0 y llegan al subndice tamao-1. Por ejemplo: int arr[][] = new int[5] [6]; // arreglo de 5 renglones y 6 columnas enteros char cad[][] = new char[10] [5]; /* arreglo de 10 renglones por 5 columnas

tipo

carcter*/

Uso e inicializacin de los elementos del arreglo de dos dimensiones


Para usar los elementos individuales de un arreglo se usa el siguiente formato: arreglo[subndice-renglon] [subndice-columna] Como un elemento de un arreglo de dos dimensiones es tambin un dato, se puede usar como cualquier variable de ese tipo, debemos recordar que tanto el ndice de rengln como el ndice de columna toman como base el primer elemento cero: int arr[][] = new int [2][5]; arr[3][4] = 12; arr[1][0]= Integer.parseInt(t1.getText()); t2.setText("" + arr[0][1]); arr[0][0] = arr[0][1] + arr[0][2]; int k = 2; int l = 3 arr[k+1][l] = 20; Ejemplo: En este siguiente ejemplo, tenemos una aplicacin que define un arreglo de enteros de dos dimensiones, con 3 renglones y 5 columnas, y los inicializa con el valor de 1 a 15, de acuerdo a cada rengln, empezando por 1 en el rengln 1, luego por 6 en el rengln 2 y 11 en el rengln 3. Despus de inicializar la matriz, la despliega, desplegando los valores de un mismo rengln en la misma lnea, como lo muestra la figura: (/En construccin)

La aplicacin es como se muestra a continuacin:

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.

Contando las veces que se repite un nmero en un arreglo


Esto nos puede servir para cuando trabajamos con nmeros, supongamos que tenemos la siguiente aplicacin, en la cual tenemos un arreglo y buscamos dos nmeros en el, tenemos que utilizar un ciclo para la bsqueda y si queremos contar las veces que se encuentra el nmero podemos utilizar un contador para cada uno, veamos la aplicacin: public class AplicacionArreglo4 { public static void main(String[] args) { int arreglo[] = { 1, 15, 17, 22, 34 , -5, 15, 22, 1}; int busca1 = 30; // numero 1 a buscar int conta1 = 0; // contar cuantas veces aparece int busca2 = 22; // numero 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 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:

Você também pode gostar