102 Programación I int valmax = lista[0]; for (int j = 0; j valmax) { valmax = lista[j]; posmax = j; } } // el máximo encontrado debe ir al "final" // intercambio último con el de la posición donde encontré el máximo int aux = lista[i]; lista[i] = lista[posmax]; lista[posmax] = aux; } 11.3 Prueba sobre Arrays 1. En un array, el valor del índice de la primera posición es: a) Depende de cómo fue inicializado el array b) 0 c) 1 d) -1 2. Si se tiene el array: int [] num = {1, 2, 3, 4, 5}, que inicializa con los respectivos valores. ¿Cuál de las siguientes afirmaciones es verdadera? a) num[0] vale 2 b) El elemento en num[1] es 1 c) num[5] no es válido d) Todas las anteriores 3. ¿Cuál de los siguientes for recorre completamente un array int[] enteros? a) for( int i = 0; i
Programación I 103 2) Indicar el “rango” de los valores del array, es decir, el valor mínimo y máximo. 3) Solicitar un valor e indicar la posición del elemento más cercano (por exceso o por defecto). 4) Invertir el array. Ej: si los datos cargados son: (10, 20, 4, 6), debe quedar: (6, 4, 20, 10). 5) Asumir que el array tiene valores positivos entre 1 y 15. Mostrar como histograma los datos del array. Ej: (5,4,1,2) desplegaría: 5 ***** 4 **** 1 * 2 ** 6) Leer un número y rotar esa cantidad de posiciones el array. Ej: Si el array tiene como datos: (10, 20, 4, -5, 1) y se ingresa el número 2 se obtiene: (-5, 1, 10, 20, 4). 7) Suponiendo que el array esté ordenado, indicar cuál elemento se repite más veces. Ej: (10, 10, 20, 20, 20, 50), muestra 20. Si hay más de uno con la misma cantidad de repeticiones, mostrar el primero de ellos. 8) Suponer se dispone de dos arrays ordenados. Generar un tercer array con el resultado de la intercalación ordenada. Ej: sean los arrays: (10, 20, 50), (1, 2, 20, 24, 80), el resultado sería (1, 2, 10, 20, 20, 24, 50, 80) 9) ¡¡¡Un asesino serial anda suelto!!! Es una persona sistemática, que gusta de elegir asesinar a sus víctimas de acuerdo a un criterio matemático. Ha seleccionado una cantidad n de personas, les tomó fotos, y pegó esas fotos en un círculo. A partir de una cierta posición, cada m-ésima persona es asesinada y así va disminuyendo el círculo. Por ejemplo, si n=8 y m=4, el turno en que serán ejecutadas es 54613872, es decir la primera persona del círculo original será asesinada en 5to. lugar, la segunda persona en 4to. lugar, etc. La última persona será la que estaba en el lugar 6to. Leer n y m, e indicar cuál sería la mejor posición para estar ubicado en ese círculo – con la intención de estar en la última foto ¡¡y quizás así salvar su vida!!. 11.5 public static void main El método public static void main (String args[]) es el punto de entrada al programa. Es público porque debe ser posible accederlo desde fuera de la clase; es estático porque no es necesario tener una instancia para acceder al método, main es el nombre del método y String args[] refiere a que está recibiendo un array de String que es la lista de parámetros. Para reconocer cada uno de esos valores se puede hacer: public static void main (String args[]) { if (args.length==0) { System.out.println("Sin parámetros"); } else { for (int i = 0; i < args.length; i++) { System.out.println("El parámetro "+i + " vale "+args[i]); } } }