Ejerccicios Resueltos de Arrays
-
Upload
gian-carlo -
Category
Documents
-
view
220 -
download
0
Transcript of Ejerccicios Resueltos de Arrays
-
8/19/2019 Ejerccicios Resueltos de Arrays
1/43
a) Programa 1.
Declara un array tipo int (entero) denominado numerodecoches que contenga 24
variables. Declara una variable tipo int (entero) que se llame r. Establece el valor de r en 2 y
el valor de numerodecoches para un localizador de valor r en 23. Procede a mostrar en
pantalla un mensaje que indique cul es la !ora r y el n"mero de coc!es para la !ora r.
#inalmente$ modi%ca "nicamente la asignaci&n de valor a r de modo que en vez de 2 sea 2'
y ejecuta de nuevo el programa.
b) Programa 2.
obre el programa anterior mantn el n"mero de elementos de numerodecoches en 24.Declara dos variables a y b de tipo int(entero). Establece a con valor *$ b con valor 4 y r con
valor a dividido entre b. Ejecuta el programa.
SOLUCIÓN
El programa ' ser el siguiente. i lo ejecutamos obtendremos +El n"mero de coc!es en la
!ora 2 ,ue 23+. i cambiamos r - 2 por r - 2' obtendremos +El n"mero de coc!es en la !ora
2' ,ue 23+.
n array en /ava es una estructura de datos que nos permite almacenar un conjunto de datos
de un mismo tipo. El tama0o de los arrays se declara en un primer momento y no puede
cambiar luego durante la ejecuci&n del programa$ como s1 puede !acerse en otros lenguajes.
eremos a!ora c&mo declarar arrays estticos de una dimensi&n.
/* Ejercicio Programa 1 – aprenderaprogramar.com */
public class Programa1 {
public static void main(String arg[ ]) {
int[ ] numerodecoches = new int[24];
int r;
r = 2;
-
8/19/2019 Ejerccicios Resueltos de Arrays
2/43
numerodecoches[r] = 2;
!"stem.out.print#$E% n&mero de coches en %a hora $'r'$ (ue $' numerodecoches[r]);
}
}
Nota ecordar que cuando declaramos un array de 24 elementos comoint5 6
numerodecoc!es - ne7 int52468$ los elementos del array que se crean son
numerodecoc!es596$ numerodecoc!es5'6 : !asta numerodecoc!es5236. ;enemos por tanto
24 elementos (del 9 al 23) pero no e? signi%ca concatenaci&n y se usa para concatenar en este caso valores
cadena con variables que tienen un valor numrico. De este modo obtenemos una sola
cadena que se imprime en la pantalla D@. ;ambin recordar que numerodecoc!es5r6 - 23
signi%ca que estamos asignando el n"mero 23 a la posici&n indicada por el valor que tenga r
en su momento$ siendo el valor m
-
8/19/2019 Ejerccicios Resueltos de Arrays
3/43
+ = 4;
r = a / +;
numerodecoches[r] = 2;
!"stem.out.print#$E% n&mero de coches en %a hora $'r'$ (ue $' numerodecoches[r]);
}
}
1. -acer un programa para ingresar n a%ores rea%es en un arreg%o " %os muestre en
%a panta%%a adems reportar e% ma"or e% menor " e% promedio.
1
2
4
0
,
3
1
11
12
1
1410
1
1
1,
13
2
21
22
2
24
202
2
2,
23
1
2
4
0
import java.util.Scanner;
public class Arreglo01{ public static void main(String arg[]) { Scanner in = ne Scanner(S!stem.in); double "[]#ma!or#menor#promedio#suma=0; int n#i;
do{
S!stem.out.print($%antidad de elementos del arreglo & $);
n=in.ne"t'nt();
ile(n*=0 ++ n,100);
"=ne double[n];
-or(i=0; i*n;i) { S!stem.out.print($"[$i$]& $); "[i]=in.ne"t/ouble();
S!stem.out.println($lementos del arreglo$);
-or(i=0; i*n;i) S!stem.out.println($"[$i$]& $"[i]);
%alculo del ma!or ! menor
ma!or=menor="[0];
-or(i=1; i*n; i) i- ("[i],ma!or) ma!or="[i]; else i-("[i]*menor) menor="[i];
%alculo de la suma de los elementos
-or(i=0; i*n; i) suma=suma"[i];
promedio=suman;
S!stem.out.println($l ma!or es $ ma!or); S!stem.out.println($l menor es&$ menor);
-
8/19/2019 Ejerccicios Resueltos de Arrays
4/43
,
3
4
41
42
444
40
S!stem.out.println($l promedio es & $ promedio);
2. Programa para ingresar n a%ores rea%es en un arreg%o " ca%cu%ar %a desiaci5n
standard.
1
2
4
0
,
3
1
11
12
1
14
10
1
1
1,
13
2
21
22
2
24
20
22
2,
23
1
2
4
0
,
import java.util.Scanner;
public class Arreglo02{ public static void main(String arg[]) { Scanner in = ne Scanner(S!stem.in); double "[]#suma=0#p#ds;
int n#i;
do{
S!stem.out.print($%antidad de elementos del arreglo & $); n=in.ne"t'nt(); ile(n*=0);
"=ne double[n];
-or(i=0; i*n;i)
{ S!stem.out.print($"[$i$]& $); "[i]=in.ne"t/ouble();
S!stem.out.println($lementos del arreglo$);
-or(i=0; i*n;i) S!stem.out.println($"[$i$]& $"[i]);
-or(i=0; i*n; i) suma=suma"[i]; p=suman;
suma=0;
-or(i=0;i*n;i) suma=suma 3at.po("[i]4p#2); ds=3at.s5rt(suma(n41)); S!stem.out.println($6a desviacion standard es & $ds);
-
8/19/2019 Ejerccicios Resueltos de Arrays
5/43
. Programa para ingresar n a%ores rea%es en un arreg%o " %uego inierta e% arreg%o.
1
2
40
,
3
1
11
12
1
14
101
1
1,
13
2
21
22
2
24
20
2
2
2,
23
1
2
4
0
,
3
import java.util.Scanner;
public class Arreglo07{ public static void main(String arg[]) {
double "[]#temp;
int n#i#j;
Scanner in = ne Scanner(S!stem.in); do{ S!stem.out.print($%antidad de elementos del arreglo & $); n=in.ne"t'nt();
ile(n*=0 ++ n,100);
"=ne double[n];
-or(i=0; i*n;i)
{ S!stem.out.print($"[$i$]& $); "[i]=in.ne"t/ouble();
S!stem.out.println($Arreglo 'ngresado$);
-or(i=0; i*n;i)
S!stem.out.println($"[$i$]& $"[i]); -or(i=0#j=n41;i*n2;i#j44)
{ temp="[i]; "[i]="[j]; "[j]=temp; S!stem.out.println($Arreglo 'nvertido$); -or(i=0; i*n;i) S!stem.out.println($"[$i$]& $"[i]);
4. Programa para ingresar 2 arreg%os de n e%ementos rea%es cada uno " reportar e%
producto esca%ar de e%%os.
1
2
40
import java.util.Scanner;
public class Arreglo08{ public static void main(String arg[]) { Scanner in = ne Scanner(S!stem.in);
-
8/19/2019 Ejerccicios Resueltos de Arrays
6/43
,
3
1
1112
1
14
10
1
1
1,
13
2
21
222
24
20
2
2
2,
23
1
2
4
0
,
3
4
41
42
444
40
double "[]#![]#pe; int n#i;
do{
S!stem.out.print($9umero de elementos de los vectores & $); n=in.ne"t'nt(); ile(n*=0);
"=ne double[n];
!=ne double[n];
S!stem.out.println($'ngreso de datos del primer vector$);
-or(i=0; i*n;i) { S!stem.out.print($"[$i$]& $);
"[i]=in.ne"t/ouble();
S!stem.out.println($'ngreso de datos del segundo vector$);
-or(i=0; i*n;i) { S!stem.out.print($![$i$]& $); ![i]=in.ne"t/ouble();
S!stem.out.println($lementos del primer vector$);
-or(i=0; i*n;i)
S!stem.out.println($"[$i$]& $"[i]);
S!stem.out.println($lementos del Segundo vector$); -or(i=0; i*n;i) S!stem.out.println($![$i$]& $![i]);
pe=0;
-or(i=0;i*n;i) pe=pe"[i]:![i]; S!stem.out.println($l roducto escalar es & $ pe);
0. Programa para ingresar n e%ementos en un arreg%o " %uego reportar%o en %a
panta%%a. 6dems ingresar un numero " eri(icar si este se encuentra en e%
arreg%o si se encuentra reportar %a posici5n donde se encontr5 " si no se
encontr5 reportar 7numero no se encuentra8.
. Programa para ingresar n e%ementos en un arreg%o " %uego reportar%o en %a
panta%%a. 6dems ingresar un n&mero " eri(icar si este se encuentra en e%
arreg%o si se encuentra cam+iar%o por otro dato si no se encuentra reportar 7datono se encuentra8.
-
8/19/2019 Ejerccicios Resueltos de Arrays
7/43
. Programa para ingresar n e%ementos en un arreg%o " %uego reportar%o en %a
panta%%a. 6dems ingresar un numero " eri(icar si este se encuentra en e%
arreg%o si se encuentra e%iminar%o si no se encuentra reportar dato no se
encuentra.
12
4
0
,
3
1
11
121
14
10
1
1
1,
13
2
21
22
2
24
20
2
2
2,
23
1
2
4
0
,
3
4
41
42
4
4440
import java.util.Scanner; public class Arreglo0
-
8/19/2019 Ejerccicios Resueltos de Arrays
8/43
4
4
4,
43
,. Programa para ingresar n e%ementos en un arreg%o " %uego reportar%o en %a panta%%a. 6dems ingresar un n&mero " %a posici5n donde desea insertar%o e
insertar%o en e% arreg%o reportar e% arreg%o modi(icado.
3. Programa para ingresar n e%ementos en un arreg%o " %uego reportar%o en %a
panta%%a. 6dems reportar%o ordenado ascendentemente.
10. 1) Crea un array de 10 posiciones de números con valores pedidos por teclado. Muestra por
consola el indice y el valor al que corresponde. Haz dos métodos, uno para rellenar valores
y otro para mostrar.
1
2
3
4
!
"
#
$
1
0
11
1
2
13
1
4
1
1
!
1
"1
import java".sing.?@ptionane;
public class arra!App {
public static void main(String[] args) {
sto es opcional
-inal int A3A9'@=10;
int num[]=ne int[A3A9'@];
'nvocamos las -unciones
rellenarArra!(num);
mostrarArra!(num);
public static void rellenarArra!(int lista[]){
-or(int i=0;i*lista.lengt;i){
String te"[email protected]'nput/ialog($'ntroduce un
nBmero$);
lista[i]='nteger.parse'nt(te"to);
-
8/19/2019 Ejerccicios Resueltos de Arrays
9/43
#
1
$
2
02
1
2
2
2
3
2
4
2
2
!
2
"
2
#
2
$
public static void mostrarArra!(int lista[]){
-or(int i=0;i*lista.lengt;i){
S!stem.out.println($n el indice $i$ esta el valor
$lista[i]);
11. 2) Crea un array de números donde le indicamos por teclado el tama%o del array,
rellenaremos el array con números aleatorios entre 0 y $, al &inal muestra por pantalla el
valor de cada posici'n y la suma de todos los valores. Haz un método para rellenar el array
(que ten)a como par*metros los números entre los que ten)a que )enerar+, para mostrar el
contenido y la suma del array y un método privado para )enerar número aleatorio (lo
puedes usar para otros eercicios+.
1
2
3
4
!
"
#
$
10
import java".sing.?@ptionane;
public class arra!9umAleatoriosApp {
public static void main(String[] args) {
'ndicamos el tamaCo
String te"[email protected]'nput/ialog($'ntroduce un
tamaCo$);
int num[]=ne int['nteger.parse'nt(te"to)];
'nvocamos las -unciones
-
8/19/2019 Ejerccicios Resueltos de Arrays
10/43
11
1
2
1
31
4
1
1
!
1
"
1#
1
$
2
0
2
1
2
2
2
3
2
4
2
2
!
2
"
2
#
rellenar9umAleatorioArra!(num# 0# D);
mostrarArra!(num);
public static void rellenar9umAleatorioArra!(int lista[]# int a#
int b){
-or(int i=0;i*lista.lengt;i){
Eeneramos un nBmero entre los parametros pasados
lista[i]=((int)3at.-loor(3at.random():(a4b)b));
public static void mostrarArra!(int lista[]){
-or(int i=0;i*lista.lengt;i){
S!stem.out.println($n el indice $i$ esta el valor
$lista[i]);
12. 3) Crea un array de números de un tama%o pasado por teclado, el array contendr* números
aleatorios primos entre los números deseados, por último nos indicar cual es el mayor de
todos.Haz un método para compro-ar que el número aleatorio es primo, puedes acer todos lo
métodos que necesites.
-
8/19/2019 Ejerccicios Resueltos de Arrays
11/43
1
2
3
4
!
"
#
$
1
0
11
1
2
1
3
1
4
1
1
!
1
"
1
#
1
$
2
0
2
1
2
2
2
3
2
4
2
2
import java".sing.?@ptionane;
public class rimoArra!App {
public static void main(String[] args) {
'ndicamos el tamaCo
String te"[email protected]'nput/ialog($'ntroduce un
tamaCo$);
int num[]=ne int['nteger.parse'nt(te"to)];
'nvocamos las -unciones
rellenar9umrimosAleatorioArra!(num# 1# 7);
mostrarArra!(num);
public static void rellenar9umrimosAleatorioArra!(int lista[]# int
a# int b){
int i=0;
Fsamos mejor un ile# !a 5ue solo aumentara cuando genere
un primo
ile(i*lista.lengt){
int num=((int)3at.-loor(3at.random():(a4b)b));
i- (esrimo(num)){
lista[i]=num;
i;
private static boolean esrimo (int num){
Fn numero negativo# el 0 ! el 1# son directamente no
primos.
i- (num*=1){
return -alse;
else{
-
8/19/2019 Ejerccicios Resueltos de Arrays
12/43
!
2
"
2
#2
$
3
0
3
1
3
2
33
3
4
3
3
!
3
"
3
#
3
$
4
0
4
1
4
2
4
3
4
4
4
4
!
4
declaracion
int prueba;
int contador=0;
Gacemos la raiH cuadrada ! lo usamos para dividir el
numero original
prueba=(int)3at.s5rt(num);
Iucle 5ue cuenta los numeros divisibles# podemos
acerlo con ile
-or (;prueba,1;prueba44){
i- (numJprueba==0){
contador=1;
return contador * 1;
public static void mostrarArra!(int lista[]){
-or(int i=0;i*lista.lengt;i){
S!stem.out.println($n el indice $i$ esta el valor
$lista[i]);
-
8/19/2019 Ejerccicios Resueltos de Arrays
13/43
"
4
#
4
$
0
1
2
3
4
!
"
13. 4) Crea dos arrays de números con una posici'n pasado por teclado./no de ellos estar* rellenado con números aleatorios y el otro apuntara al array anterior,
después crea un nuevo array con el primer array (usa de nuevo ne con el primer array+
con el mismo tama%o que se a pasado por teclado, rellenalo de nuevo con números
aleatorios.espués, crea un método que ten)a como par*metros, los dos arrays y devuelva uno
nuevo con la multiplicaci'n de la posici'n 0 del array1 con el del array2 y as
sucesivamente. or último, muestra el contenido de cada array.lama al &inal al recolector de -asura.
1
2
3
4
!
"
#
$
10
import java".sing.?@ptionane;
public class 3ultiplicacionApp {
public static void main(String[] args) {
'ndicamos el tamaCo
String te"[email protected]'nput/ialog($'ntroduce un
tamaCo$);
int tamanio='nteger.parse'nt(te"to);
%reamos los arra!s
-
8/19/2019 Ejerccicios Resueltos de Arrays
14/43
11
1
2
1
31
4
1
1
!
1
"
1#
1
$
2
0
2
1
2
2
2
3
2
4
2
2
!
2
"
2
#
2
$
3
0
3
1
3
int arra!1[]=ne int [tamanio];
int arra!2[];
Kellenamos el arra!1
rellenar9umAleatorioArra!(arra!1# 10# 100);
Apuntamos el arra!2 al arra!1
arra!2=arra!1;
%reamos un nuevo arra!# usando el arra!1. Arra!1 tendra una
nueva direccion.
arra!1=ne int[tamanio];
6o volvemos a rellenar# !a 5ue al crear el arra! de nuevo
no contiene los numeros anteriores
rellenar9umAleatorioArra!(arra!1# 10# 100);
%ontiene el arra! con el resultado de multiplicar los
valores de los arra!s
int arra!7[]=multiplicador(arra!1# arra!2);
3ostramos el contenido de los arra!s
S!stem.out.println($Arra!1$);
mostrarArra!(arra!1);
S!stem.out.println($Arra!2$);
mostrarArra!(arra!2);
S!stem.out.println($Arra!7$);
mostrarArra!(arra!7);
6lamamos al recolector de basura
S!stem.gc();
public static void rellenar9umAleatorioArra!(int lista[]# int a#
int b){
-or(int i=0;i*lista.lengt;i){
Eeneramos un nBmero entre los parametros pasados
-
8/19/2019 Ejerccicios Resueltos de Arrays
15/43
2
3
3
3
43
3
!
3
"
3
#
3$
4
0
4
1
4
2
4
3
4
4
4
4
!
4
"
4
#
4
$
0
1
2
lista[i]=((int)3at.-loor(3at.random():(a4b)b));
public static void mostrarArra!(int lista[]){
-or(int i=0;i*lista.lengt;i){
S!stem.out.println($n el indice $i$ esta el valor
$lista[i]);
public static int[] multiplicador(int arra!1[]# int arra!2[]){
int arra!7[]=ne int[arra!1.lengt];
-or(int i=0;i*arra!1.lengt;i){
arra!7[i]=arra!1[i]:arra!2[i];
return arra!7;
-
8/19/2019 Ejerccicios Resueltos de Arrays
16/43
3
4
!
"
#
$
!0
!
1
!
2
!
3
!
414. 5) Crea un array de números de un tama%o pasado por teclado, el array contendr* números
aleatorios entre 1 y 300 y mostrar aquellos números que aca-en en un d)ito que nosotros
le indiquemos por teclado (de-es controlar que se introduce un numero correcto+, estos
de-en )uardarse en un nuevo array.or eemplo, en un array de 10 posiciones e indicamos mostrar los números aca-ados en ,
podra salir 1, 2, etc.
1
2
3
4
!
"
#
$
1
0
11
import java".sing.?@ptionane;
public class 9umerminadosnApp {
public static void main(String[] args) {
'ndicamos el tamaCo
String te"[email protected]'nput/ialog($'ntroduce un
tamaCo$);
int num[]=ne int['nteger.parse'nt(te"to)];
int ultimo/igito; do{
-
8/19/2019 Ejerccicios Resueltos de Arrays
17/43
1
2
1
3
14
1
1
!
1
"
1
#1
$
2
0
2
1
2
2
2
3
2
4
2
2
!
2
"
2
#
2
$
3
0
3
1
3
2
te"[email protected]'nput/ialog($'ntroduce numero entre
0 ! D$);
ultimo/igito='nteger.parse'nt(te"to);
ile(>(ultimo/igito,=0 LL ultimo/igito*=D));
rellenamos el arra!
rellenar9umAleatorioArra!(num# 1# 700);
%reamos un arra! 5ue contenga los numeros terminados en el
numero especi-icado
int terminadosn[]=numerminadosn(num# ultimo/igito);
3ostramos el resultado# mira el metodo de mostrarArra!s
mostrarArra!erminadosn(num);
mostrarArra!erminadosn(terminadosn);
public static void rellenar9umAleatorioArra!(int lista[]# int a#
int b){
-or(int i=0;i*lista.lengt;i){
Eeneramos un nBmero entre los parametros pasados
lista[i]=((int)3at.-loor(3at.random():(a4b)b));
public static void mostrarArra!erminadosn(int lista[]){
-or(int i=0;i*lista.lengt;i){
9o incluimos las posiciones 5ue tengan un 0
i-(lista[i]>=0){
S!stem.out.println($l numero $lista[i]$ acaba en
el numero deseado$);
public static int[] numerminadosn (int num[]# int ultimoMnumero){
Arra! 5ue almacenara los numeros terminados en el numero
pedido
int terminadosn[]=ne int[num.lengt];
-
8/19/2019 Ejerccicios Resueltos de Arrays
18/43
3
3
3
4
3
3
!
3
"
3
#
3
$4
0
4
1
4
2
4
3
4
4
4
4
!
4
"
4
#
4
$
0
1
2
3
int numeroNinal=0;
-or (int i=0;i*terminadosn.lengt;i){
:
: Kestamos el numero por el mismo numero sin unidades
: or ejemplo# 72O4720=O
:
numeroNinal=num[i]4(num[i]10:10);
Si el numero obtenido es el buscado# lo aCadimos
i- (numeroNinal==ultimoMnumero){
terminadosn[i]=num[i];
return terminadosn;
-
8/19/2019 Ejerccicios Resueltos de Arrays
19/43
4
!
"
#
$
!
0!
1
!
2
!
3
!
4
!
!
!
!
"
B) Calcula la letra de un D$ pediremos el D por teclado y nos devolverel D completo.
Para calcular la letra$ cogeremos el resto de dividir nuestro dni entre 23$ el
resultado debe estar entre 9 y 22. Faz un mtodo donde seg"n el resultadode la anterior ,ormula busque en un array de caracteres la posici&n quecorresponda a la letra. Esta es la tabla de caracteres
Posicion Getra
9 ;
'
2 H
3 I
4 J
-
8/19/2019 Ejerccicios Resueltos de Arrays
20/43
Posicion Getra
K L
B M
N #* P
O D
'9
'' Q
'2
'3 /
'4 R
'K
'B S
'N
'* F
'O G
29 C
2' T
22 E
Por ejemplo$ si introduzco N9K**3*N$ el resultado sera de N que correspondea U#V.
'
2
3
4
K
B
N
*
O
'
import java
-
8/19/2019 Ejerccicios Resueltos de Arrays
21/43
9
''
'
2
'3
'4
'K
'
B'N
'*
'O
29
2'
22
23
24
2K
2B
2N
2*
2O
D+)8
int dni-nteger.parsent(tedni>letra)8
Y
public static c!ar letra#(int res)W
AADe%nimos el array de c!ar
c!ar letras#56-WZ;Z$ ZZ$ ZHZ$ ZIZ$ ZJZ$ ZLZ$ ZMZ$
Z#Z$ ZPZ$ ZDZ$ ZZ$ ZQZ$ ZZ$ Z/Z$ ZRZ$
ZZ$ ZSZ$ ZZ$ ZFZ$ ZGZ$ ZCZ$ ZTZ$ ZEZY8
AADevolvemos el valor en la posicion del array
return letras#5res68
Y
Y
-
8/19/2019 Ejerccicios Resueltos de Arrays
22/43
39
3'
32
33
N) Crea un array de n"meros y otro de tring de '9 posiciones dondeinsertaremos notas entre 9 y '9 (debemos controlar que inserte una notavalida)$ pudiendo ser decimal la nota en el array de n"meros$ en el detrings se insertaran los nombres de los alumnos.
Despus$ crearemos un array de tring donde insertaremos el resultado de
la nota con palabras.
i la nota esta entre 9 y 4$OO $ sera un suspenso
i esta entre K y B$OO $ sera un bien.
i esta entre N y *$OO sera un notable.
i esta entre O y '9 sera un sobresaliente.
Luestra por pantalla$ el alumno su nota y su resultado en palabras. Crea losmtodos que creas conveniente.
'
2
3
4
K
B
N
*
O
'9
''
'
2
import java
-
8/19/2019 Ejerccicios Resueltos de Arrays
23/43
'3
'4
'K
'B
'N
'*
'O
29
2'
22
2
3
24
2K
2B
2
N2*
2O
39
3'
3
AADevuelve las notas con palabras
tring resultado56-a0adeesultado(notas)8
AALostramos el resultado
mostrarIrrays(nombres$ notas$ resultado)8
Y
public static void rellenarIrrays(double notas56$ tring nombres56)W
,or(int i-98i[notas.lengt!8i>>)W
AAntroducimos los valores de una vez$ se pueden !acer enmetodos separados
nombres5i6-/@ptionPane.s!o7nputDialog(+ntroduce el nombredel alumno +>(i>'))8
double nota8
AAalidamos la nota
doW
tring te(i>'))8
nota-Double.parseDouble(te>)W
ystem.out.println(+El alumno +>nombres5i6>+ tiene una nota de+>notas5i6>+$ por lo que su resultado es +>resultado5i6)8
Y
-
8/19/2019 Ejerccicios Resueltos de Arrays
24/43
2
33
3
4
3K
3B
3N
3
*3O
49
4'
42
43
44
4K
4B
4N
4*
4O
K9
K'
Y
public static tring56 a0adeesultado(double notas56)W
tring resultado56-ne7 tring5notas.lengt!68
,or(int i-98i[notas.lengt!8i>>)W
AAConvertimos la nota a entero$ despues se quedara como estaba
s7itc!((int)notas5i6)W
case '
case 2
case 3
case 4
resultado5i6-+uspenso+8
brea^8
case K
case B
resultado5i6-+Qien+8
brea^8
case N
case *
resultado5i6-+otable+8
brea^8
case O
case '9
resultado5i6-+obresaliente+8
brea^8
Y
Y
return resultado8
Y
Y
-
8/19/2019 Ejerccicios Resueltos de Arrays
25/43
K2
K3
K4
KK
KB
KN
K*
KO
B9
B'
B
2
B3
B4
BK
B
BBN
B*
BO
N9
N
-
8/19/2019 Ejerccicios Resueltos de Arrays
26/43
'
N2
N
3
N4
*) Crea una aplicaci&n que pida un numero por teclado y despuscomprobaremos si el numero introducido es capicua$ es decir$ que se leeigual sin importar la direcci&n. Por ejemplo$ si introducimos 39393 escapicua$ si introducimos 39439 no es capicua. Piensa como puedes dar lavuelta al n"mero. na ,orma de pasar un n"mero a un array es estaC!aracter.getumericalue(cadena.c!arIt(posicion)).
'
2
3
4
K
B
N
*
O
'9
''
'
2
'3
'4
'K
'
B
'
import java.util.Irrays8
import java
-
8/19/2019 Ejerccicios Resueltos de Arrays
27/43
N
'*
'
O
29
2'
22
2
324
2K
2B
2N
2*
2O
39
3'
32
33
34
3K
3B
ystem.out.println(+El numero +>numero>+ no es capicua+)8
Y
Y
public static int56 convierteumeroIIrray(tring numero$ int longitud)W
int digitos56-ne7 int5longitud68
,or(int i-98i[digitos.lengt!8i>>)W
digitos5i6-C!aracter.getumericalue(numero.c!arIt(i))8
Y
return digitos8
Y
public static boolean EsCapicua (int lista56)W
AACreamos otro array
int listaprueba56-ne7 int 5lista.lengt!68
A_
_ Isignamos los valores al nuevo array lo !acemos a0adiendo
_ los ultimos valores del primer array$ al principio del nuevo array
_ $es decir$ le damos la vuelta al array
_A
,or (int i-9$ j-'8j[-lista.lengt!8i>>$ j>>)W
listaprueba5i6-lista5lista.lengt!`j68
Y
AAsamos el metodo de java.util.Irrays para comparar los arrays
i, (Irrays.equals(lista$ listaprueba))W
return true8
Y
-
8/19/2019 Ejerccicios Resueltos de Arrays
28/43
3N
3*
3O
49
4'
42
43
44
4K
4B
4
N
4*
4O
K9
K
'K2
K3
K4
KK
K
return ,alse8
Y
Y
-
8/19/2019 Ejerccicios Resueltos de Arrays
29/43
B
O) Crea dos arrays multidimensionales de 23 y rellenalos como quieras(n"meros aleatorios$ por teclado o de%nido al crear el array).
Faz un mtodo que sume los arrays multidimensionales$ es decir$ la
posici&n 9$ 9 del array' con la posici&n del array2 y as1 sucesivamente$ estemetodo no debe devolver nada$ !aciendo que deba pasarse el arraymultidimensional de suma como parmetro. Luestra el contenido de cadaarray multidimensional.
'
2
3
4
K
B
N
*
O
'
9''
'2
'3
'4
'K
'B
'N
'*
'
public class umaLatricesIpp W
A__
_ param args
_A
public static void main(tring56 args) W
AACreamos los arrays multidimensionales
int tabla'5656-ne7 int 5265368
int tabla25656-ne7 int 5265368
int sumamatrices5656-ne7 int 5tabla'.lengt!65tabla'596.lengt!68
AAellenamos los dos primeros arrays
rellenarIrrays(tabla'$ '$ 299)8
rellenarIrrays(tabla2$ '$ 299)8
AAumamos los arrays
umaLatrices(tabla'$ tabla2$ sumamatrices)8
AALostramos los arrays
ystem.out.println(+Irray' +)8
imprimir;abla(tabla')8
ystem.out.println(+Irray2+)8
imprimir;abla(tabla2)8
-
8/19/2019 Ejerccicios Resueltos de Arrays
30/43
O
29
2
'
22
23
24
2
K2B
2N
2*
2O
39
3'
32
33
34
3K
3B
3N
3*
ystem.out.println(+Ga suma de matrices es +)8
imprimir;abla(sumamatrices)8
Y public static void rellenarIrrays(int tabla5656$ int a$ int b)W
,or(int i-98i[tabla.lengt!8i>>)W
,or(int j-98j[tabla596.lengt!8j>>)W
tabla5i65j6-((int)Lat!.oor(Lat!.random()_(a`b)>b))8
Y
Y
Y
public static void imprimir;abla (int tabla5656)W
,or (int i-98i[tabla.lengt!8i>>)W
,or (int j-98j[tabla596.lengt!8j>>)W
ystem.out.print(tabla5i65j6> + +)8
Y
ystem.out.println(++)8
Y
ystem.out.println(++)8
Y
public static int5656 umaLatrices (int tabla'5656$ int tabla25656$ intsumamatrices5656)W
,or (int i-98i[sumamatrices.lengt!8i>>)W
,or (int j-98j[sumamatrices596.lengt!8j>>)W
sumamatrices5i65j6-tabla'5i65j6>tabla25i65j68
Y
ystem.out.println(++)8
Y
return sumamatrices8
-
8/19/2019 Ejerccicios Resueltos de Arrays
31/43
3O
49
4'
42
43
44
4K
4B
4N
4*
4
O
K9
K'
K2
K
3K4
KK
KB
KN
K
Y
Y
-
8/19/2019 Ejerccicios Resueltos de Arrays
32/43
*
KO
'9) Sueremos realizar una encuesta a '9 personas$ en esta encuesta
indicaremos el se
-
8/19/2019 Ejerccicios Resueltos de Arrays
33/43
'*
'O
29
2'22
23
24
2K
2B
2N
2*
2O
39
3'
32
33
34
3K
3B
3N
3*
3O
49
4'
42
43
44
4K
4B
4N
4*
4O
AALostramos los datos
ystem.out.println(+Fay un +>porcFombresLujeres(lista$ ')>+ X de!ombres+)8
ystem.out.println(+Fay un +>porcFombresLujeres(lista$ 2)>+ X de
mujeres+)8
ystem.out.println(+Fay un +>porcFombresLujeres;rabajo(lista$ '$')>+ X de !ombres que trabajan+)8
ystem.out.println(+Fay un +>porcFombresLujeres;rabajo(lista$ 2$')>+ X de mujeres que trabajan+)8
ystem.out.println(+Fay un +>porcFombresLujeres;rabajo(lista$ '$
2)>+ X de !ombres que no tiene trabajo+)8
ystem.out.println(+Fay un +>porcFombresLujeres;rabajo(lista$ 2$2)>+ X de mujeres que no tiene trabajo+)8
ystem.out.println(+El sueldo medio es de +>promedioueldo(lista$'$ '))8
ystem.out.println(+El sueldo medio es de +>promedioueldo(lista$2$ '))8
Y
public static void rellenoe>)W
int numero-(int)Lat!.oor(Lat!.random()_2>')8
lista5965i6-numero8
Y
Y
public static void relleno;rabajo (int lista5656)W
,or (int i-98i[lista5'6.lengt!8i>>)W
int numero-(int)Lat!.oor(Lat!.random()_2>')8
lista5'65i6-numero8
Y
Y
public static void rellenoueldo (int lista5656)W
-
8/19/2019 Ejerccicios Resueltos de Arrays
34/43
K9
K'
K2
K3K4
KK
KB
KN
K*
KO
B9
B'
B2
B3
B4
BK
BB
BN
B*
BO
N9
N'
N2
N3
N4
NK
NB
NN
N*
NO
*9
*'
,or (int i-98i[lista5'6.lengt!8i>>)W
,or (int j-98j[lista526.lengt!8j>>)W
i, (lista5'65j6--2)W
lista5265j6-98 YelseW
int numero-(int)Lat!.oor(Lat!.random()_'999>K99)8
lista5265j6-numero8
Y
Y
Y
Y
public static void imprimirIrray (int lista5656)W
AAEsto solo es cuestion de estetica
tring datoEncuesta56-W+e>)W
ystem.out.println(datoEncuesta5i6)8
,or (int j-98j[lista5i6.lengt!8j>>)W
ystem.out.println(+En la %la + >i>+ y columna + >j> + tiene +>lista5i65j6)8
Y
Y
Y
public static double porcFombresLujeres (int lista5656$ int se>)W
i, (lista5965i6--se-'8
Y
Y
-
8/19/2019 Ejerccicios Resueltos de Arrays
35/43
*2
*3
*4
*K*B
*N
**
*O
O9
O'
O2
O3
O4
OK
OB
ON
O*
OO
'99
'9'
'92
'9
3'94
'9K
'9B
'9N
'9
double porcentaje-(contador_'99)Alista596.lengt!8
return porcentaje8
Y
public static double porcFombresLujeres;rabajo (int lista5656$ int se)W
i, (lista5965i6--se
-
8/19/2019 Ejerccicios Resueltos de Arrays
36/43
*
'9O
''
9
'''
''2
Y
promedio-sumaAcontador8
return promedio8
Y
Y
1. Calcular la media de una serie de números que se leen por teclado.
Programa Java que lea por teclado 10 números enteros y los guarde en un array. Acontinuación calcula y muestra por separado la media de los valores positivos y lade los valores negativos.
/** Programa que lea por teclado 10 números enteros y los guarde en un array.* A continuación calcula y muestra la media de los valores positivos y la de los
valores negativos. */
import java.util.*pu!lic class "edia1 # pu!lic static void main$%tring&' args( # %canner sc ) ne %canner$%ystem.in(
int i int pos ) 0+ neg ) 0 //contadores de los números positivos y negativos int&' numeros ) ne int&10' //array que contendr, los números le-dos porteclado dou!le sumaPos ) 0+ sumaeg ) 0 //acumuladores para las sumas depositivos y negativos
//lectura de datos y llenar el array %ystem.out.println$ectura de los elementos del array ( 2or $i ) 0 i 3 10 i44( # %ystem.out.print$numeros& 4 i 4 ') ( numeros&i')sc.ne5t6nt$(
7
//recorrer el array para sumar por separado los números positivos// y los negativos2or $i ) 0 i 3 10 i44( #
i2 $numeros&i' 8 0(# //sumar positivos sumaPos 4) numeros&i' pos44 7 else i2 $numeros&i' 3 0(# //sumar negativos sumaeg 4) numeros&i' neg44 7
7
//Calcular y mostrar las medias
-
8/19/2019 Ejerccicios Resueltos de Arrays
37/43
i2 $pos 9) 0( # %ystem.out.println$"edia de los valores positivos 4 sumaPos / pos( 7 else # %ystem.out.println$o :a introducido numeros positivos( 7 i2 $neg 9) 0( #
%ystem.out.println$"edia de los valores negativos 4 sumaeg / neg( 7 else # %ystem.out.println$o :a introducido numeros negativos( 7 77
;. Programa Java que lea 10 números enteros por teclado y los guarde en un array.Calcula y muestra la media de los números que est
-
8/19/2019 Ejerccicios Resueltos de Arrays
38/43
@. Programa que lee por teclado la nota de los alumnos de una clase y calcula lanota media del grupo. am!i.;2 >n+ media(
// "ostrar los valores superiores a la media %ystem.out.println$istado de notas superiores a la media ( 2or $i ) 0 i 3 notas.lengt: i44( # i2 $notas&i' 8 media( # %ystem.out.println$Alumno numero 4 $i 4 1(4 ota 2inal 4notas&i'( 7
7 7
-
8/19/2019 Ejerccicios Resueltos de Arrays
39/43
7
F. Programa que crea un array de ;0 elementos llamado Pares y guarde los ;0primeros números pares. "ostrar por pantalla el contenido del array creado.
/** Programa que crea un array de ;0 elementos* llamado Pares y guarde los ;0 primeros* números pares.* "ostrar por pantalla el contenido* del array creado
*/import java.util.*pu!lic class ArrayPares #
pu!lic static void main$%tring&' args( #
%canner sc ) ne %canner$%ystem.in( int i+ cont ) ;
int&' pares ) ne int&;0'
//lenamos el array con números pares. Gtiliamos un contador //con valor inicial ; y le sumamos dos en cada iteración.2or $i ) 0 i 3 pares.lengt: i44( #
pares&i' ) cont cont 4) ; 7
//"ostrar el array 2or $i ) 0 i 3 pares.lengt: i44( # %ystem.out.println$pares&i'( 7 7
7
?. Programa Java que guarda en un array 10 números enteros que se leen porteclado. A continuación se recorre el array y calcula cu,ntos números son positivos+cu,ntos negativos y cu,ntos ceros.
// Contar el número de elementos positivos+ negativos y ceros de un array de 10elementos.import java.util.*pu!lic class "ain # pu!lic static void main$%tring&' args( # %canner sc ) ne %canner$%ystem.in( int&' numeros ) ne int&10' int pos ) 0+ neg ) 0+ cero ) 0 //contadores int i
//eemos los valores por teclado y los guardamos en el array %ystem.out.println$ectura de los elementos del array ( 2or $i ) 0 i 3 numeros.lengt: i44( # %ystem.out.print$numeros& 4 i 4 ') (
-
8/19/2019 Ejerccicios Resueltos de Arrays
40/43
numeros&i' ) sc.ne5t6nt$( 7 //se recorre el array para contar positivos+ negativos y ceros 2or $i ) 0 i 3 numeros.lengt: i44( # i2 $numeros&i' 8 0( # pos44
7 else i2 $numeros&i' 3 0( # neg44 7 else # cero44 7 7 //mostrar resultados %ystem.out.println$Positivos 4 pos( %ystem.out.println$egativos 4 neg( %ystem.out.println$Ceros 4 cero( 77
H. Programa Java que llene un array con 10 números enteros que se leen porteclado. A continuación calcula y muestra la media de los valores positivos y la delos valores negativos del array.
/** eer 10 números enteros y mostrar la media de los valores positivos y la de los
valores negativos. */import java.util.*pu!lic class "ain #
pu!lic static void main$%tring&' args( # %canner sc ) ne %canner$%ystem.in( int&' numeros ) ne int&10' int pos ) 0+ neg ) 0 //contadores para positivos y negativos int i dou!le sumaPos ) 0+ sumaeg ) 0 //suma de positivos y negativos //eemos los valores por teclado y los guardamos en el array %ystem.out.println$ectura de los elementos del array ( 2or $i ) 0 i 3 numeros.lengt: i44( # %ystem.out.print$numeros& 4 i 4 ') ( numeros&i')sc.ne5t6nt$( 7 //se recorre el array para sumar positivos y negativos 2or $i ) 0 i 3 numeros.lengt: i44( # i2 $numeros&i' 8 0(# //sumar positivos sumaPos 4) numeros&i' pos44 7 else i2 $numeros&i' 3 0(# //sumar negativos sumaeg 4) numeros&i' neg44 7 7 //mostrar resultados i2 $pos 9) 0( # %ystem.out.println$"edia de los valores positivos 4 sumaPos / pos(
7 else # %ystem.out.println$o :a introducido números positivos(
-
8/19/2019 Ejerccicios Resueltos de Arrays
41/43
7 i2 $neg 9) 0( # %ystem.out.println$"edia de los valores negativos 4 sumaeg / neg( 7 else # %ystem.out.println$o :a introducido números negativos( 7
77
I. Programa Java para leer la altura de personas y calcular la altura media.Calcular cu,ntas personas tienen una altura superior a la media y cu,ntas tienenuna altura in2erior a la media. Bl valor de se pide por teclado y de!e ser enteropositivo.
/** eer la altura de personas y calcular la altura media* "ostra cu,ntos :ay superiores a la media.
*/
import java.util.*pu!lic class "ain # pu!lic static void main$%tring&' args( # %canner sc ) ne %canner$%ystem.in( int i+ int cont"as ) 0+ cont"enos ) 0 dou!le media ) 0 //eer el número de personas
do# %ystem.out.print$úmero de personas ( ) sc.ne5t6nt$( 7:ile$3)0(
//%e crea el array de tamaDo dou!le&' alto ) ne dou!le&' //eer alturas %ystem.out.println$ectura de la altura de las personas ( 2or $i ) 0 i 3 i44( # %ystem.out.print$persona 4 $i41( 4 ) ( alto&i' ) sc.ne5tEou!le$( media ) media 4 alto&i' //se suma la estatura le-da para calcular la media 7 //Calcular la media media ) media / //recorremos el array para ver cuantos :ay m,s altos
//que la media y cuantos m,s !ajos 2or $i ) 0 i 3 alto.lengt: i44( #
i2 $alto&i' 8 media(# //si la estatura es mayor que la media cont"as44 7 else i2 $alto&i' 3 media(# //si es menor cont"enos44 7 7 //"ostrar resultados %ystem.out.println$Bstatura media 4 media( %ystem.out.println$Personas con estatura superior a la media 4 cont"as( %ystem.out.println$Personas con estatura in2erior a la media 4cont"enos(
77
-
8/19/2019 Ejerccicios Resueltos de Arrays
42/43
Ejercicios Arrays Java. Leer nombre y sueldode 20 empleados y mostrar el ue m!s ganaPrograma Java que lea el nom!re y el sueldo de ;0 empleados y muestre el nom!rey el sueldo del empleado que m,s gana.
Para :acerlo utiliaremos dos arraysGn array de %tring para los nom!res de los empleadosGn array de tipo dou!le para los sueldos de cada empleado.
Al mismo tiempo que leemos los datos de los empleados iremos compro!ando cu,les el que tiene el mayor sueldo. Para ello tomamos el sueldo del primer empleadoque se lee como mayor sueldo y despu
-
8/19/2019 Ejerccicios Resueltos de Arrays
43/43
7 7
//mostrar resultados %ystem.out.println$Bmpleado con mayor sueldo 4 nom!re"ayor ( %ystem.out.println$%ueldo 4 mayor%ueldo(
77