3
« en: 14 de Mayo 2018, 00:53 »
Gracias por tu ayuda Kabuto, me ayudó a entender mejor esto de los arreglos, mi profesor me dio esto
import java.util.*;
public class A_UsoArreglos {
//se define un arreglo de números enteros al que se le asigna (inicializa) valores 2, 588, 645, 101, 222, 1
private int arregloDeEnteros[] = { 2, 588, 645, 101, 222, 1 };
//se define un arreglo de números enteros al que se le asigna (inicializa) valores 2, 588, 645, 101, 222, 1
private int arregloDeEnteros2[] = { 2, 588, 645, 101, 222, 1 };
//se define un arreglo de números decimales o double al que se le asigna (inicializa) valores 33.21, 88.12, 0.135,6.67, 4.55
private double arregloDecimales[] = { 33.21, 88.12, 0.135,6.67, 4.55 };
private int arregloEnteroLLenado[], copiaArregloDeEnteros[];
private double copiaArregloDeDecimales[];
// inicializar los arreglos
public A_UsoArreglos()
{
arregloEnteroLLenado = new int[ 10 ];
copiaArregloDeEnteros = new int[ arregloDeEnteros.length ];
copiaArregloDeDecimales = new double[arregloDecimales.length];
Arrays.fill( arregloEnteroLLenado, 455 ); // llenar con 7s
// copiar el arreglo arregloDecimales en el arreglo copiaArregloDeDecimales
System.arraycopy( arregloDecimales, 0, copiaArregloDeDecimales,
0, arregloDecimales.length );
Arrays.sort( copiaArregloDeDecimales ); // ordenar copiaArregloDecimales en forma ascendente
// copiar el arreglo arregloDeEnteros en el arreglo copiaArregloDeEnteros
System.arraycopy( arregloDeEnteros, 0, copiaArregloDeEnteros,
0, arregloDeEnteros.length );
Arrays.sort( copiaArregloDeEnteros ); // ordenar copiaArregloDeEnteros en forma ascendente
}
// mostrar los valores en cada arreglo
public void imprimirArreglos()
{
System.out.print( "\narregloDecimales original : " );
for ( int i = 0; i < arregloDecimales.length; i++ )
System.out.print( arregloDecimales[ i ] + " " );
System.out.print( "\narregloDecimales copiado y ordenado : " );
for ( int i = 0; i < copiaArregloDeDecimales.length; i++ )
System.out.print( copiaArregloDeDecimales[ i ] + " " );
System.out.print( "\n\narregloDeEnteros original : " );
for ( int i = 0; i < arregloDeEnteros.length; i++ )
System.out.print( arregloDeEnteros[ i ] + " " );
System.out.print( "\ncopiaArregloDeEnteros copiado y ordenado: " );
for ( int i = 0; i < copiaArregloDeEnteros.length; i++ )
System.out.print( copiaArregloDeEnteros[ i ] + " " );
System.out.print( "\n\narregloEnteroLLenado: " );
for ( int i = 0; i < arregloEnteroLLenado.length; i++ )
System.out.print( arregloEnteroLLenado[ i ] + " " );
System.out.println();
} // fin del método imprimirArreglos
// encontrar valor en el arreglo arregloDeEnteros
public int buscarEnArreglo( int valor )
{
return Arrays.binarySearch( arregloDeEnteros, valor );
}
// comparar el contenido de los arreglos
public void compararArreglos()
{
boolean b = Arrays.equals( arregloDeEnteros, copiaArregloDeEnteros );
System.out.println( "\narregloDeEnteros " + ( b ? " es iguala" : " no es igual a " ) +
" copiaArregloDeEnteros" );
b = Arrays.equals( arregloDeEnteros, arregloEnteroLLenado );
System.out.println( "\narregloDeEnteros " + ( b ? " es igual a " : " no es igual a " ) +
" arregloEnteroLLenado" );
b = Arrays.equals( arregloDeEnteros, arregloDeEnteros2 );
System.out.println( "\narregloDeEnteros " + ( b ? " es igual a " : " no es igual a " ) +
" arregloDeEnteros2" );
}
public static void main( String args[] )
{
A_UsoArreglos usoArreglos = new A_UsoArreglos();
usoArreglos.imprimirArreglos();
usoArreglos.compararArreglos();
int posicion=88;
//System.out.println( posicion );
posicion = usoArreglos.buscarEnArreglo( 588 );
//System.out.println( posicion );
System.out.println( ( posicion >= 0 ? "\n\nSe encontro el 588 en la posición " +
(posicion + 1) : "\n\nNo se encontro el 1" ) + " en arregloDeEnteros" );
posicion = usoArreglos.buscarEnArreglo( 8763 );
System.out.println( ( posicion >= 0 ? "Se encontro el 6464 en en la posición " +
(posicion + 1) : "No se encontro el 6464" ) + " en arregloDeEnteros" );
}
Pero llevo dos días tratando de entenderlo, y no lo logro, todo está mezclado.
Tu ayuda si me sirvió para los promedios, encontré como sacar los mínimos y máximos de esta manera
int max = 0;
int min = 0;
max = min = Edades[0];
for (int i=1; i<Edades.length; i++)
{
if (Edades[i]>max) {
max = Edades[i];
}
if (Edades[i]<min) {
min = Edades[i];
}
}
System.out.println( "\nla edad mínima es: " + min +
"\nla edad máxima es: " + max);
Pero aún tengo un problema, la salir el resultado, el valor mínimo siempre me sale 0, no importa que números estén, y todo parece estar como debe estar, no sé cuál es el problema?