Ejerccicios Resueltos de Arrays

download Ejerccicios Resueltos de Arrays

of 19

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