You are on page 1of 101

Fundamentos de

Programacin con
Java.
Autor/compilador: ISC Ral Oramas Bustillos, 2012.
roramas@gmail.com, www.profesorjava.com

Este obra est bajo una licencia Creative Commons Atribucin-NoComercial 2.5 Mxico.

Tabla de Contenidos
1.Introduccin a Java.............................................................................................................................................. 5
Un programa simple en Java............................................................................................................................. 6
Otro programa simple en Java........................................................................................................................... 7
2.Programas simples.............................................................................................................................................. 8
Variables............................................................................................................................................................ 9
Operaciones matemticas simples.................................................................................................................. 10
Precedencia de los operadores de Java.......................................................................................................... 13
Leer nmeros desde el teclado........................................................................................................................ 14
Constantes con nombre................................................................................................................................... 16
Divisin de nmeros enteros........................................................................................................................... 18
Overflow/underflow.......................................................................................................................................... 20
Qu es la precisin?...................................................................................................................................... 21
Las conversiones numricas........................................................................................................................... 22
La clase Math.................................................................................................................................................. 23
3.Instrucciones de seleccin................................................................................................................................. 26
Comparacin de dos valores........................................................................................................................... 27
La instruccin if simple.................................................................................................................................... 28
Instrucciones simples y compuestas............................................................................................................... 30
La instruccin if/else........................................................................................................................................ 31
Instrucciones if anidadas................................................................................................................................. 34
La instruccin if/else/if..................................................................................................................................... 36
Revisin de dos condiciones o ms................................................................................................................. 38
La instruccin switch........................................................................................................................................ 40
4.Instrucciones de repeticin................................................................................................................................ 43
Ciclo while....................................................................................................................................................... 44

Ciclos infinitos.................................................................................................................................................. 48
Ciclos while con cero iteraciones..................................................................................................................... 49
Ciclos controlados por centinelas.................................................................................................................... 50
Instruccin de repeticin do...while.................................................................................................................. 51
El ciclo for........................................................................................................................................................ 52
Ciclo for compuesto......................................................................................................................................... 53
Ciclos anidados............................................................................................................................................... 54
Instruccin break............................................................................................................................................. 57
Instruccin continue......................................................................................................................................... 59
El ciclo while.................................................................................................................................................... 60
Ciclos controlador por contador....................................................................................................................... 60
El ciclo while controlado por un centinela........................................................................................................ 62
Ciclo do/while................................................................................................................................................... 63
5.Mtodos............................................................................................................................................................. 64
Declaracin de un mtodo............................................................................................................................... 65
Declaracin de un mtodo con un parmetro..................................................................................................68
Mtodos void vs. return................................................................................................................................... 69
Declaracin de mtodos con mltiples parmetros......................................................................................... 71
Orden en el paso de parmetros..................................................................................................................... 72
Reutilizacin de cdigo.................................................................................................................................... 73
Mtodos sobrecargados (overload)................................................................................................................. 76
6.Arreglos de una dimensin................................................................................................................................ 77
Declaracin de un arreglo................................................................................................................................ 78
Crear un arreglo............................................................................................................................................... 79
Asignar valores a un arreglo............................................................................................................................ 80
El tamao del arreglo y valores por default..................................................................................................... 81
Acceder a los elementos de un arreglo........................................................................................................... 82
Inicializacin de un arreglo al declararlo.......................................................................................................... 83

Inicializar un arreglo con valores desde el teclado.......................................................................................... 84


Inicializar un arreglo con valores aleatorios..................................................................................................... 85
Imprimir el contenido de un arreglo................................................................................................................. 86
Sumar todos los elementos del arreglo........................................................................................................... 87
Encontrar el elemento mayor del arreglo......................................................................................................... 88
Intercambio aleatorio de los elementos del arreglo.........................................................................................89
Desplazar elementos del arreglo..................................................................................................................... 90
Instruccin for mejorada.................................................................................................................................. 91
Paso de arreglos a los mtodos...................................................................................................................... 92
Regresar un arreglo desde un mtodo............................................................................................................ 94
Listas de argumentos de longitud variable...................................................................................................... 95
Uso de argumentos de lnea de comandos..................................................................................................... 96
7.Arreglos bidimensionales................................................................................................................................... 97
Introduccin..................................................................................................................................................... 98
Declaracin de un arreglo................................................................................................................................ 99
Crear un arreglo............................................................................................................................................. 100
Asignar valores a un arreglo.......................................................................................................................... 101
El tamao del arreglo y valores por default................................................................................................... 102
Acceder a los elementos de un arreglo......................................................................................................... 103
Inicializacin de un arreglo al declararlo........................................................................................................ 104
Inicializar un arreglo bidimensional con valores desde el teclado..................................................................105
Inicializar un arreglo bidimensional con valores aleatorios............................................................................106
Imprimir el contenido de un arreglo bidimensional.........................................................................................107
Sumar todos los elementos de un arreglo bidimensional..............................................................................108
Suma los elementos de un arreglo bidimensional por columna....................................................................109
Suma por rengln y encuentra el mayor........................................................................................................ 110
Intercambio aleatorio de un arreglo bidimensional......................................................................................... 111

1. Introduccin a Java.
Contenido:
Un programa simple en Java.................................................................................................................................. 6
Otro programa simple en Java................................................................................................................................ 7

Fundamentos de Programacin con Java Introduccin a Java.

Un programa simple en Java.

HolaMundo.java
publicclassHolaMundo
{
publicstaticvoidmain(String[]args)
{
System.out.println("HolaMundo.");
}
}

Ral Oramas Bustillos 2012.

Fundamentos de Programacin con Java Introduccin a Java.

Otro programa simple en Java.

Bienvenido.java
//Programaparaimprimirtexto.
publicclassBienvenido
{
//elmtodomainempiezalaejecucindelaaplicacinenJava
publicstaticvoidmain(String[]args)
{
System.out.print("Bienvenido");
System.out.println("alCursoJava!");
}//findelmtodomain
}//findelaclaseBienvenido

Ral Oramas Bustillos 2012.

2. Programas simples.
Contenido:
Variables............................................................................................................................................................... 10
Operaciones matemticas simples....................................................................................................................... 11
Precedencia de los operadores de Java............................................................................................................... 14
Leer nmeros desde el teclado............................................................................................................................. 15
Constantes con nombre........................................................................................................................................ 17
Divisin de nmeros enteros................................................................................................................................ 19
Overflow/underflow............................................................................................................................................... 21
Qu es la precisin?........................................................................................................................................... 22
Las conversiones numricas................................................................................................................................ 23
La clase Math....................................................................................................................................................... 24

Fundamentos de Programacin con Java Programas simples.

Variables.

DobleNumero.java
//Programaparacalculareldobledeunnmero.
publicclassDobleNumero
{
//elmtodomainempiezalaejecucindelaaplicacinenJava
publicstaticvoidmain(String[]args)
{
intnumero;//declaracindeunavariable
intdoble;

//mensajedeusuario
System.out.println("Calculareldobledeunnmero.");
System.out.println("");

numero=5;//asignacindelvaloralavariable
doble=numero*2;//expresinaritmtica

System.out.println("Eldoblede"+numero+"es"+doble);
}//findelmtodomain
}//findelaclaseDobleNumero

Ral Oramas Bustillos 2012.

Fundamentos de Programacin con Java Programas simples.

Operaciones matemticas simples.

AreaRectangulo.java
//Programaquecalculaeimprimeelreadeunrectngulo.
publicclassAreaRectangulo
{
//elmtodomainempiezalaejecucindelaaplicacinenJava
publicstaticvoidmain(String[]args)
{
//declaracineinicializacindelasvariables
intlargo=10;//ellargodelrectngulo
intancho=4;//elanchodelrectngulo
intarea;//elreadelrectngulo
//mensajedeusuario
System.out.println("Calcularelreadeunrectngulo.");
System.out.println("");

//calculaelrea
area=largo*ancho;//expresin

//imprimeelreadelrectngulo
System.out.println("Elreadelrectnguloes:"+area);
}//findelmtodomain
}//findelaclaseAreaRectangulo

Ral Oramas Bustillos 2012.

10

Fundamentos de Programacin con Java Programas simples.

PieMetro.java
//Programaquecalculaelequivalentedepiesametros.
publicclassPieMetro
{
//elmtodomainempiezalaejecucindelaaplicacinenJava
publicstaticvoidmain(String[]args)
{
//declaraunavariabledetipodoubleylainicializa
doublenPies=16;

//mensajedeusuario
System.out.println("Conviertepiesametros.");
System.out.println("");
//proceso
doublemetros=nPies*0.305;

//salida
System.out.println(nPies+"son"+metros+"metros.");
}//findelmtodomain
}//findelaclasePieMetro

Ral Oramas Bustillos 2012.

11

Fundamentos de Programacin con Java Programas simples.

AreaTriangulo.java
//Programaquecalculaelreadeuntringulo.
publicclassAreaTriangulo
{
//elmtodomainempiezalaejecucindelaaplicacinenJava
publicstaticvoidmain(String[]args)
{
//declaracindelasvariables
intbase,altura;
doublearea;

//inicializacindelabaseylaaltura
base=10;
altura=19;

//calculaelreadeltringulo
area=(base*altura)/2.0;

//imprimeelresultado
System.out.println("Elareadeltringuloes",area);
}//findelmtodomain
}//findelaclaseAreaTriangulo

Ral Oramas Bustillos 2012.

12

Fundamentos de Programacin con Java Programas simples.

Precedencia de los operadores de Java.

Promedio.java
//Programaquecalculaelpromediodetrescalificaciones.
publicclassPromedio
{
//elmtodomainempiezalaejecucindelaaplicacinenJava
publicstaticvoidmain(String[]args)
{
//declaracinyasignacindelosvalores
doublecalif1=10.0,
calif2=10.0,
calif3=10.0;
doublepromedio;

//mensajedeusuario
System.out.println("Promediodetrescalificaciones.");
System.out.println("");

promedio=calif1+calif2+calif3/3;
System.out.println("Elpromedioincorrectoes:"+promedio);
promedio=(calif1+calif2+calif3)/3;
System.out.println("Elpromediocorrectoes:"+promedio);
}//findelmtodomain
}//findelaclasePromedio

Ral Oramas Bustillos 2012.

13

Fundamentos de Programacin con Java Programas simples.

Leer nmeros desde el teclado.

DobleNumero.java
//Programaparacalculareldobledeunnmero.
importjava.util.Scanner;//paraleerdelteclado
publicclassDobleNumero
{
//elmtodomainempiezalaejecucindelaaplicacinenJava
publicstaticvoidmain(String[]args)
{
//CreaunobjetoScannerparaleerdesdeelteclado
Scannerentrada=newScanner(System.in);
intnumero;
intdoble;

//mensajedeusuario
System.out.println("Calculareldobledeunnmero.");
System.out.println("");
//lecturadelnmeroentero
System.out.print("Introduceunnmero:");
numero=entrada.nextInt();//asignacindelvaloralavariable

//calculaeldobledelnmero
doble=numero*2;

//imprimeelresultado
System.out.println("Eldoblede"+numero+"es"+doble);
}//findelmtodomain
}//findelaclaseDobleNumero

Ral Oramas Bustillos 2012.

14

Fundamentos de Programacin con Java Programas simples.

AreaCirculo.java
//Calculaelreadeuncrculo.
importjava.util.Scanner;//paraleerdelteclado
publicclassCirculo
{
//elmtodomainempiezalaejecucindelaaplicacinenJava
publicstaticvoidmain(String[]args)
{
//Creaobjetoparaleerdatos
Scannerentrada=newScanner(System.in);
//declaracindevariables
doubleradio,area;
//mensajedeusuario
System.out.println("Calcularelreadeuncrculo.");
System.out.println("");

//obtieneelradiodelcrculo
System.out.print("Radio?");
radio=entrada.nextDouble();

//calculaelrea
area=radio*radio*3.14159;

//imprimeelresultado
System.out.println("Elreadelcrculoes:"+area);
}//findelmtodomain
}//findelaclaseAreaCirculo

Ral Oramas Bustillos 2012.

15

Fundamentos de Programacin con Java Programas simples.

Constantes con nombre.

AreaCirculo.java
//Calculaelreadeuncrculo.
importjava.util.Scanner;//paraleerdelteclado
publicclassCirculo
{
//elmtodomainempiezalaejecucindelaaplicacinenJava
publicstaticvoidmain(String[]args)
{
//declaraunaconstanteconnombre
finaldoublePI=3.14159;
//Creaobjetoparaleerdatos
Scannerentrada=newScanner(System.in);
//declaracindevariables
doubleradio,area;
//mensajedeusuario
System.out.println("Calcularelreadeuncrculo.");
System.out.println("");

//obtieneelradiodelcrculo
System.out.print("Radio?");
radio=entrada.nextDouble();

//calculaelrea
area=radio*radio*PI;

//imprimeelresultado
System.out.println("Elreadelcrculoes:"+area);
}//findelmtodomain
}//findelaclaseAreaCirculo

Ral Oramas Bustillos 2012.

16

Fundamentos de Programacin con Java Programas simples.

Conversion.java
//Programaqueconviertepiesypulgadasacentmetros.
importjava.util.Scanner;//paraleerdelteclado
publicclassConversion
{
//elmtodomainempiezalaejecucindelaaplicacinenJava
publicstaticvoidmain(String[]args)
{
finaldoubleCENTIMETRO_PULGADA=2.54;
finalintPULGADA_PIE=12;
Scannerentrada=newScanner(System.in);

//mensajedeusuario
System.out.println("Convertirpiesypulgadasacms.");
System.out.println("");

//lecturadelosdatos
System.out.print("Pies?");
intpie=entrada.nextInt();
System.out.println("Pulgadas?");
intpulgada=entrada.nextInt();

//procesalosdatosdeentrada
inttotalPulgadas=PULGADA_PIE*pie+pulgada;
doublecms=CENTIMETRO_PULGADA*totalPulgadas;

//imprimeelresultado
System.out.println("Totaldepulgadas:"+totalPulgadas);
System.out.println(totalPulgadas+"="+
cms+"centmetros.");
}//findelmtodomain
}//findelaclaseConversion

Ral Oramas Bustillos 2012.

17

Fundamentos de Programacin con Java Programas simples.

Divisin de nmeros enteros.

Division.java
//Programaparacalcularladivisinymdulodedosnmerosenteros.
importjava.util.Scanner;//paraleerdelteclado
publicclassDivision
{
//elmtodomainempiezalaejecucindelaaplicacinenJava
publicstaticvoidmain(String[]args)
{
Scannerentrada=newScanner(System.in);

//entrada
System.out.print("Introduceunnmero?");
intnum1=entrada.nextInt();

System.out.print("Introduceotronmero?");
intnum2=entrada.nextInt();
//proceso
intdiv1=num1/num2;
intmod1=num1%num2;

intdiv2=num2/num1;
intmod2=num2%num1;

//salida
System.out.printf(div1);
System.out.printf(mod1);
System.out.printf(div2);
System.out.printf(mod2);
}//findelmtodomain
}//findelaclaseDivision
Notas:

Ral Oramas Bustillos 2012.

18

Fundamentos de Programacin con Java Programas simples.

MinutoSegundo.java
//Programaqueobtienelosminutosysegundosdeunacantidadde
//segundosledadesdeelteclado.
importjava.util.Scanner;//paraleerdelteclado
publicclassMinutoSegundo
{
//elmtodomainempiezalaejecucindelaaplicacinenJava
publicstaticvoidmain(String[]args)
{
Scannerentrada=newScanner(System.in);

//lecturadelosdatos
System.out.print("Cantidaddesegundos:");
intsegundos=entrada.nextInt();

//procesalosdatos
intminutos=segundos/60;//encuentralosminutos
intrestoSeg=segundos%60;//obtienelossegrestantes

//imprimeelresultado
System.out.println(segundos+"segundosequivalena"+
minutos+"minutosy"+restoSeg+"segundos.");
}//findelmtodomain
}//findelaclaseMinutoSegundo

Ral Oramas Bustillos 2012.

19

Fundamentos de Programacin con Java Programas simples.

Overflow/underflow.

Desbordamiento.java
//Programaconvaloresoverflow/underflow.
publicclassDesbordamiento
{
//elmtodomainempiezalaejecucindelaaplicacinenJava
publicstaticvoidmain(String[]args)
{
//declaracineinicializacindedosvariables
intvalor1=2147483647+1;
intvalor2=21474836481;;

//imprimelosresultados
System.out.println(valor1);//overflow
System.out.println(valor1);//underflow
}//findelmtodomain
}//findelaclaseDesbordamiento

Ral Oramas Bustillos 2012.

20

Fundamentos de Programacin con Java Programas simples.

Qu es la precisin?.

PuntoFlotante.java
//Programaqueilustraelconceptodeprecisin.
publicclassPuntoFlotante
{
//elmtodomainempiezalaejecucindelaaplicacinenJava
publicstaticvoidmain(String[]args)
{
System.out.println(
1.00.10.10.10.10.1);//noimprime0.5
System.out.println(1.00.9);//noimprime0.1
System.out.println(10.03100);//perdidadeprecisin
System.out.println(2.01.1);//noimprime0.9
System.out.println(1004.35);//noimprime435.0
}//findelmtodomain
}//findelaclasePuntoFlotante

Ral Oramas Bustillos 2012.

21

Fundamentos de Programacin con Java Programas simples.

Las conversiones numricas.

ConversionNumerica.java
//Programaquedemuestralaconversindetipos.
publicclassConversionNumerica
{
//elmtodomainempiezalaejecucindelaaplicacinenJava
publicstaticvoidmain(String[]args)
{
System.out.println(3*4.5);//eslomismoque3.0*4.5
System.out.println((int)40.7);
System.out.println((double)1/2);

}//findelmtodomain
}//findelaclaseConversionNumerica

Ral Oramas Bustillos 2012.

22

Fundamentos de Programacin con Java Programas simples.

La clase Math.

VolumenCilindro.java
//Programaquecalculaelvolumendeuncilindro.
importjava.util.Scanner;//paraleerdelteclado
publicclassVolumenCilindro
{
//elmtodomainempiezalaejecucindelaaplicacinenJava
publicstaticvoidmain(String[]args)
{
Scannerentrada=newScanner(System.in);

//mensajedeusuario
System.out.println("Calculaelvolumendeuncilindro.");
System.out.println("");

//lecturadelosdatos
System.out.print("Radio?");
doubleradio=entrada.nextDouble();
System.out.print("Altura?");
doublealtura=entrada.nextDouble();

//procesodelosdatos
doublearea=Math.pow(radio,2)*Math.PI;
doublevolumen=area*altura;

//impresindelosresultados
System.out.println("reacilindro:"+area);
System.out.println("Volumencilindro:"+volumen);
}//findelmtodomain
}//findelaclaseVolumenCilindro

Ral Oramas Bustillos 2012.

23

Fundamentos de Programacin con Java Programas simples.

Hipotenusa.java
//Programaparacalcularlahipotenusadeuntringulorectngulo.
importjava.util.Scanner;
publicclassHipotenusa
{
//elmtodomainempiezalaejecucindelaaplicacinenJava
publicstaticvoidmain(String[]args)
{
Scannerentrada=newScanner(System.in);

//mensajedeusuario
System.out.println("Hipotenusadeuntringulorectngulo.");
System.out.println("");

//lecturadelosdatos
System.out.print("Ingresalosvaloresparaelcatetoayb:");
intcatetoA=entrada.nextInt();
intcatetoB=entrada.nextInt();

//procesalosdatos
inthipotenusa=(int)Math.sqrt(catetoA*catetoA+
catetoB*catetoB);

//imprimeelresultado
System.out.println("Lahipotenusaes:"+hipotenusa);
}//findelmtodomain
}//findelaclaseHipotenusa

Ral Oramas Bustillos 2012.

24

Fundamentos de Programacin con Java Programas simples.

Distancia.java
//Programaparacalcularladistanciaentredospuntos.
importjava.util.Scanner;//paraleerdelteclado
publicclassDistancia
{
//elmtodomainempiezalaejecucindelaaplicacinenJava
publicstaticvoidmain(String[]args)
{
Scannerentrada=newScanner(System.in);

//mensajedeusuario
System.out.println("Calculaladistanciaentredospuntos");
System.out.println("(x1,y1)y(x2,y2).");
System.out.println("");

//lecturadelosdatos
System.out.print("Introducelacoordenada(x1,y1):");
intx1=entrada.nextInt();
inty1=entrada.nextInt();

System.out.print("Introducelacoordenada(x2,y2):");
intx2=entrada.nextInt();
inty2=entrada.nextInt();

//procesalosdatos
doubledistancia=Math.sqrt(Math.pow(x2x1,2)+
Math.pow(y2y1,2));

//imprimeelresultado
System.out.println("Ladistanciaentrelosdospuntoses:"
+distancia);
}//findelmtodomain
}//findelaclaseDistancia

Ral Oramas Bustillos 2012.

25

3. Instrucciones de seleccin.
Contenido:
Comparacin de dos valores................................................................................................................................ 28
La instruccin if simple.......................................................................................................................................... 29
Instrucciones simples y compuestas.................................................................................................................... 31
La instruccin if/else............................................................................................................................................. 32
Instrucciones if anidadas...................................................................................................................................... 35
La instruccin if/else/if.......................................................................................................................................... 37
Revisin de dos condiciones o ms...................................................................................................................... 39
La instruccin switch............................................................................................................................................. 41

Fundamentos de Programacin con Java Instrucciones de seleccin.

Comparacin de dos valores.

ExpresionRelacional.java
//Operadoresdeigualdadyrelacionales
publicclassExpresionRelacional
{
publicstaticvoidmain(String[]args)
{
System.out.println("10>3es"+(10>3));
System.out.println("10<3es"+(10<3));
System.out.println("10>=3es"+(10>=3));
System.out.println("10<=3es"+(10<=3));
System.out.println("10==3es"+(10==3));
System.out.println("10!=3es"+(10!=3));
}//findelmtodomain
}//findelaclaseExpresionRelacional

Ral Oramas Bustillos 2012.

27

Fundamentos de Programacin con Java Instrucciones de seleccin.

La instruccin if simple.

Comparacion.java
//Ifsimple.
publicclassComparacion
{
publicstaticvoidmain(Stringargs[])
{
intx=10000;

if(x>5000)//xesmayorque5000?
x=1000;//cambiaelvalorxsilacondicinestrue

System.out.println(x);
}//findelmtodomain
}//findelaclaseComparacion

Ral Oramas Bustillos 2012.

28

Fundamentos de Programacin con Java Instrucciones de seleccin.

Multiplos.java
//Ifsimple.
importjava.util.Scanner;//paraleerdelteclado
publicclassMultiplos
{
publicstaticvoidmain(String[]args)
{
Scannerentrada=newScanner(System.in);

//leeunnmero
System.out.print("Ingresaunnmeroentero:");
intnumero=entrada.nextInt();

if(numero%5==0)
System.out.println("Elnmeroesmltiplode5.");

if(numero%2==0)
System.out.println("Elnmeroespar.");
}//findelmtodomain
}//findelaclaseMultiplos

Ral Oramas Bustillos 2012.

29

Fundamentos de Programacin con Java Instrucciones de seleccin.

Instrucciones simples y compuestas.

ValorAbsoluto.java
//Programaquedeterminaelvalorabsolutodeunnmero.
importjava.util.Scanner;//paraleerdelteclado
publicclassValorAbsoluto
{
publicstaticvoidmain(String[]args)
{
Scannerentrada=newScanner(System.in);

//operacindelectura
System.out.print("Introduceunnmero:");
intnumero=entrada.nextInt();

if(numero<0)//Esnmeromenorquecero?
{
numero=numero;//lecambiamoselsigno
}//finif
//imprimeelvalorabsoluto
System.out.println("Elvalorabsolutoes"+numero);
}//findelmtodomain
}//findelaclaseValorAbsoluto

Ral Oramas Bustillos 2012.

30

Fundamentos de Programacin con Java Instrucciones de seleccin.

La instruccin if/else.

ParImpar.java
//Instruccinif/else.
importjava.util.Scanner;//paraleerdelteclado
publicclassParImpar
{
publicstaticvoidmain(String[]args){
Scannerentrada=newScanner(System.in);

//operacindelectura
System.out.print("Introduceunnmero:");
intnum=entrada.nextInt();

if(numero%2==0)

System.out.println(num+"espar.");
else
System.out.println(num+"esimpar.");
}//findelmtodomain
}//findelaclaseParImpar

Ral Oramas Bustillos 2012.

31

Fundamentos de Programacin con Java Instrucciones de seleccin.

Suma.java
//Programaparapracticarsumas
importjava.util.Scanner;//paraleerdelteclado
publicclassSuma
{
publicstaticvoidmain(String[]args)
{
Scannerentrada=newScanner(System.in);
//generadosnmerosaleatoriosconelmtodorandom
intnumero1=(int)(Math.random()*10);
intnumero2=(int)(Math.random()*10);

//muestralapreguntaalusuario
System.out.print("Cuntoes"+numero1+"+"
+numero2+"?");
intrespuesta=entrada.nextInt();

//comparalarespuesta
if(numero1+numero2==respuesta)
{
System.out.println("Larespuestaescorrecta.");
}//finif
else
{
System.out.println("Larespuestaesincorrecta.");
}//finelse
}//findelmtodomain
}//findelaclaseSuma

Ral Oramas Bustillos 2012.

32

Fundamentos de Programacin con Java Instrucciones de seleccin.

Resta.java
//Programaparapracticarrestas.
importjava.util.Scanner;//paraleerdelteclado
publicclassResta
{
publicstaticvoidmain(String[]args)
{
//generalosnmerosaleatorios
intnumero1=(int)(Math.random()*10);
intnumero2=(int)(Math.random()*10);

//sinumero1<numero2intercambialosvalores
if(numero1<numero2)
{
inttemp=numero1;//variablelocalaif
numero1=numero2;
numero2=temp;
}//finif

//preguntaalusuario
System.out.print("Cuantoes"+numero1+""+
numero2+"?");
//leelarespuesta
Scannerentrada=newScanner(System.in);
intrespuesta=entrada.nextInt();

//comparalarespuesta
if(numero1numero2==respuesta)
System.out.println("Larespuestaescorrecta.");
else
System.out.println("Larespuestaesincorrecta.");
}//findelmtodomain
}//findelaclaseResta

Ral Oramas Bustillos 2012.

33

Fundamentos de Programacin con Java Instrucciones de seleccin.

Instrucciones if anidadas.

Adivinanza.java
//Programaparajugaradivinanzas.
importjava.util.Scanner;//paraleerdelteclado
publicclassAdivinanza
{
publicstaticvoidmain(String[]args)
{
//generaelnmerosecreto
intnumeroSecreto=(int)(Math.random()*10);
Scannerentrada=newScanner(System.in);

//pideunnmeroalusuario
System.out.print("Piensaunnmeroentre0y9:");
intnumero=entrada.nextInt();

//evala
if(numero==numeroSecreto)
System.out.println("Adivinaste!");
else
{
if(numero<numeroSecreto)
System.out.println("Fro!");
else
System.out.println("Caliente!");
}//finelse
}//findelmtodomain
}//findelaclaseAdivinanza

Ral Oramas Bustillos 2012.

34

Fundamentos de Programacin con Java Instrucciones de seleccin.

Calificacion.java
//Utilizaif/elseanidadosparaevaluarunacalificacin.
importjava.util.Scanner;//paraleerdelteclado
publicclassCalificacion
{
publicstaticvoidmain(String[]args)
{
Scannerentrada=newScanner(System.in);

System.out.print("Calificacin(110)?");//indicador

//leecalificacindelteclado
intcalif=entrada.nextInt();

if(calif>=9)
System.out.println("Lacalificacinesexcelente.");
else
if(calif>=8)
System.out.println("Lacalificacinesbuena.");
else
if(calif>=7)
System.out.println(
"Lacalificacinesregular.");
else
System.out.println("!Reprobado.");

System.out.println("Elestudioeslabasedeltriunfo.");
}//findelmtodomain
}//findelaclaseCalificacion

Ral Oramas Bustillos 2012.

35

Fundamentos de Programacin con Java Instrucciones de seleccin.

La instruccin if/else/if.

Adivinanza.java
//Programaparajugaradivinanzas.
importjava.util.Scanner;//paraleerdelteclado
publicclassAdivinanza
{
publicstaticvoidmain(String[]args)
{
//generaelnmeroaleatorio
intnumeroSecreto=(int)(Math.random()*10);
Scannerentrada=newScanner(System.in);
//solicitaunnmeroalusuario
System.out.print("Piensaunnmeroentre0y9:");
intnumero=entrada.nextInt();

//evala
if(numero==numeroSecreto)
System.out.println("Adivinaste!");
elseif(numero<numeroSecreto)
System.out.println("Fro!");
else
System.out.println("Caliente!");
}//findelmtodomain
}//findelaclaseAdivinanza

Ral Oramas Bustillos 2012.

36

Fundamentos de Programacin con Java Instrucciones de seleccin.

Calificacion.java
//Utilizaif/else/ifparaevaluarunacalificacin.
importjava.util.Scanner;//paraleerdelteclado
publicclassCalificacion
{
publicstaticvoidmain(String[]args)
{
Scannerentrada=newScanner(System.in);

System.out.print("Calificacin(110)?");//indicador
//leecalificacindelteclado
intcalif=entrada.nextInt();

if(calif>=9)
System.out.println("Lacalificacinesexcelente.");
elseif(calif>=8)
System.out.println("Lacalificacinesbuena.");
elseif(calif>=7)
System.out.println("Lacalificacinesregular.");
else
System.out.println("!Reprobado.");

System.out.println("Elestudioeslabasedeltriunfo.");
}//findelmtodomain
}//findelaclaseCalificacion

Ral Oramas Bustillos 2012.

37

Fundamentos de Programacin con Java Instrucciones de seleccin.

38

Revisin de dos condiciones o ms.

OperadoresLogicos.java
//Operadoreslgicos&&y||
publicclassOperadoresLogicos
{
publicstaticvoidmain(String[]args)
{
if(true&&true)
System.out.println("truetrue=verdadero.");
if((true&&false)||(false&&true)||(false&&false))
System.out.println("Nuncaentra.");

if((true||false)&&(false||true)&&(true||true))
System.out.println("Verdadero.");
if(false||false)
System.out.println("Nuncaentra.");
}//findelmetodomain
}//findelaclaseOperadoresLogicos

Ral Oramas Bustillos 2012.

Fundamentos de Programacin con Java Instrucciones de seleccin.

Loteria.java
//Programaparajugaralalotera.
importjava.util.Scanner;//paraleerdelteclado
publicclassLoteria
{
publicstaticvoidmain(String[]args)
{
//generaelnmerodelalotera
intloto=(int)(Math.random()*100);

Scannerentrada=newScanner(System.in);
System.out.print("Ingresaunnmerodedosdgitos:");
intnumGanador=entrada.nextInt();

//obtienelosdgitosdelalotera
intdigitoLoto1=loto/10;
intdigitoLoto2=loto%10;

//obtienelosdgitosdelusuario
intdigito1=numGanador/10;
intdigito2=numGanador%10;

System.out.println("Elnmerodelaloteraes:"+loto);

//Revisaporlospremios
if(loto==numGanador)
System.out.println("Ganaste$10,000.00");
elseif(digito2==digitoLoto1&&digito1==digitoLoto2)
System.out.println("Ganaste$3,000.00");
elseif(digito1==digitoLoto1||
digito1==digitoLoto2||
digito2==digitoLoto1||
digito2==digitoLoto2)
System.out.println("Ganaste$1,000.00");
else
System.out.println("Sigueparticipando.");
}//findelmtodomain
}//findelaclaseLoteria

Ral Oramas Bustillos 2012.

39

Fundamentos de Programacin con Java Instrucciones de seleccin.

La instruccin switch.

SwitchDemo.java
//Instruccinswitch.
importjava.util.Scanner;//paraleerdelteclado
publicclassSwitchDemo
{
publicstaticvoidmain(String[]args)
{
Scannerentrada=newScanner(System.in);

System.out.println("Introduceunnmerodel1al7:");
intdiaSemana=entrada.nextInt();

switch(diaSemana){
case1:System.out.println("Lunes.");break;
case2:System.out.println("Martes.");break;
case3:System.out.println("Mircoles.");break;
case4:System.out.println("Jueves.");break;
case5:System.out.println("Viernes.");break;
case6:System.out.println("Sbado.");break;
case7:System.out.println("Domingo.");break;
default:System.out.println("Error.");break;
}//finswitch
}//findelmtodomain
}//findelaclaseSwitchDemo

Ral Oramas Bustillos 2012.

40

Fundamentos de Programacin con Java Instrucciones de seleccin.

PiedraPapelTijera.java
//Programaparajugaralpiedrapapeltijera.
importjava.util.Scanner;
publicclassPiedraPapelTijera
{
publicstaticvoidmain(String[]args)
{
finalintPIEDRA=1,PAPEL=2,TIJERA=3;
intjugador,computadora;
Scannerentrada=newScanner(System.in);
//solicitalajugadadelusuario
System.out.print(
"Tujugada?1=Piedra,2=Papel,3=Tijera");
jugador=entrada.nextInt();

//generalajugadadelacomputadora
computadora=(int)(Math.random()*3+1);

//muestralajugadadelusuario
System.out.print("Lajugadadelusuario:");
switch(jugador){
casePIEDRA:System.out.println("PIEDRA.");break;
casePAPEL:System.out.println("PAPEL.");break;
caseTIJERA:System.out.println("TIJERA.");break;
}//finswitch

//muestralajugadadelacomputadora
System.out.print("Lajugadadelacomputadora:");
switch(computadora){
casePIEDRA:System.out.println("PIEDRA.");break;
casePAPEL:System.out.println("PAPEL.");break;
caseTIJERA:System.out.println("TIJERA.");break;
}//finswitch

//determinaelganador
if(jugador==PIEDRA&&computadora==PIEDRA)
System.out.println("Empate.");
elseif(jugador==PIEDRA&&computadora==PAPEL)
System.out.println("Lacomputadoragana.");
elseif(jugador==PIEDRA&&computadora==TIJERA)
System.out.println("Eljugadorgana!");

if(jugador==PAPEL&&computadora==PIEDRA)
System.out.println("Eljugadorgana!");
elseif(jugador==PAPEL&&computadora==PAPEL)
System.out.println("Empate.");
elseif(jugador==PAPEL&&computadora==TIJERA)

Ral Oramas Bustillos 2012.

41

Fundamentos de Programacin con Java Instrucciones de seleccin.

System.out.println("Lacomputadoragana.");

if(jugador==TIJERA&&computadora==PIEDRA)
System.out.println("Lacomputadoragana.");
elseif(jugador==TIJERA&&computadora==PAPEL)
System.out.println("Eljugadorgana!");
elseif(jugador==TIJERA&&computadora==TIJERA)
System.out.println("Empate.");
}//findelmtodomain
}//findelaclasePiedraPapelTijera

Ral Oramas Bustillos 2012.

42

4. Instrucciones de repeticin.
Contenido:
Ciclo while............................................................................................................................................................. 44
Ciclos controlados por centinelas......................................................................................................................... 48
Instruccin de repeticin do...while....................................................................................................................... 49
El ciclo for............................................................................................................................................................. 50
Instruccin break.................................................................................................................................................. 51
Instruccin continue.............................................................................................................................................. 53

Fundamentos de Programacin con Java Instrucciones de repeticin.

Ciclo while.

ContadorWhile.java
//Instruccinwhile.
publicclassContadorWhile
{
publicstaticvoidmain(String[]args)
{
intcontador=1;//declaraeinicializa
//lavariabledecontrol

while(contador<=10)//condicindecontinuacindeciclo
{
System.out.println(contador);
contador++;//incrementalavariabledecontrolen1
}//findewhile
}//findelmtodomain
}//findelaclaseContadorWhile

Ral Oramas Bustillos 2012.

44

Fundamentos de Programacin con Java Instrucciones de repeticin.

WhileDemo.java
//Instruccinwhile.
importjava.util.Scanner;
publicclassWhileDemo
{
publicstaticvoidmain(String[]args)
{
intcontador=1;//variabledecontrol
intnumero;
Scannerentrada=newScanner(System.in);

System.out.print("Ingresaunnmeroentero:");
numero=entrada.nextInt();

while(contador<=numero)//condicinde
//continuacindeciclo
{
System.out.println(contador);
contador++;//incrementalavariabledecontrolen1
}//findewhile

System.out.println();
System.out.println("Findelprograma.");
}//findelmtodomain
}//findelaclaseWhileDemo

Ral Oramas Bustillos 2012.

45

Fundamentos de Programacin con Java Instrucciones de repeticin.

RaizCuadrada.java
//Razcuadradadeuncuadradoperfecto.
importjava.util.Scanner;
publicclassRaizCuadrada
{
publicstaticvoidmain(String[]args)
{
intraiz=0;
Scannerentrada=newScanner(System.in);

//lectura
System.out.print("Dameunnmeroentero?");
intnumero=entrada.nextInt();

//procesoysalida
if(numero>=0)
{
//proceso
while(raiz*raiz<numero)
raiz=raiz+1;

if(raiz*raiz!=numero)
System.out.println(numero+"noescuadradoperfecto");
else
System.out.println("Larazcuadradade"+numero
+"es"+raiz);
}
else
System.out.println(numero+"esunnmeronegativo");
}//findelmtodomain
}//findelaclaseRaizCuadrada

Ral Oramas Bustillos 2012.

46

Fundamentos de Programacin con Java Instrucciones de repeticin.

Adivinanza.java
//Programaparajugaradivinanzas.
importjava.util.Scanner;//paraleerdelteclado
publicclassAdivinanza
{
publicstaticvoidmain(String[]args)
{
//generaelnmeroaleatorioentre0y100
intnumeroSecreto=(int)(Math.random()*101);
Scannerentrada=newScanner(System.in);
//mensajedeusuario
System.out.println("Piensaunnmeroentre0y100.");
System.out.println("");

intnumero=1;
while(numero!=numeroSecreto)
{
//solicitaunnmeroalusuario
System.out.print("Nmero?");
numero=entrada.nextInt();

//evala
if(numero==numeroSecreto)
System.out.println("Adivinaste!");
elseif(numero<numeroSecreto)
System.out.println("Fro!");
else
System.out.println("Caliente!");
}//finwhile
}//findelmtodomain
}//findelaclaseAdivinanza

Ral Oramas Bustillos 2012.

47

Fundamentos de Programacin con Java Instrucciones de repeticin.

Ciclos controlados por centinelas.

Promedio.java
//Leeunaseriedenmerosenterosycalculasupromedio.
importjava.util.Scanner;//paraleerdelteclado
publicclassPromedio
{
publicstaticvoidmain(String[]args)
{
Scannerentrada=newScanner(System.in);
//mensajedeusuario
System.out.println(
"Ingresaunalistadenmerosenterospositivos.");
System.out.println(
"Marcaelfinaldelalistaconuncero.");
System.out.println(
"");
intcontador=0;
intsuma=0;

System.out.print("Ingresaunnmero(0paraterminar):");
intnumero=entrada.nextInt();
while(numero!=0)
{
suma=suma+numero;
contador=contador+1;
System.out.print("Ingresaunnmero(0paraterminar):");
numero=entrada.nextInt();
}//finwhile
if(contador==0)
System.out.println("Noingresasteningnnmero.");
else
{
doublepromedio=(double)suma/contador;
System.out.println("Nmerosledos:"+contador);
System.out.println("Elpromedioes:"+promedio);
}//finelse
}//findelmtodomain
}//findelaclasePromedio

Ral Oramas Bustillos 2012.

48

Fundamentos de Programacin con Java Instrucciones de repeticin.

Instruccin de repeticin do...while.

PruebaDoWhile.java
//Lainstruccinderepeticindo...while.
publicclassPruebaDoWhile
{
publicstaticvoidmain(String[]args)
{
intcontador=1;//inicializacontador

do
{
System.out.println(contador);
contador++;
}while(contador<=10);//findedo...while
}//findelmtodomain
}//findelaclasePruebaDoWhile

Ral Oramas Bustillos 2012.

49

Fundamentos de Programacin con Java Instrucciones de repeticin.

El ciclo for.

ContadorFor.java
//Repeticincontroladaconcontador.
publicclassContadorFor
{
publicstaticvoidmain(String[]args)
{
//elencabezadodelainstruccinfor
//incluyelainiacializacin
//lacondicindecontinuacindelcicloyelincremento
for(intcontador=1;contador<=10;contador++)
System.out.println(contador);
}//findelmtodomain
}//findelaclaseContadorFor

Ral Oramas Bustillos 2012.

50

Fundamentos de Programacin con Java Instrucciones de repeticin.

Instruccin break.

ForBreak.java
//Lainstruccinbreakparasalirdeunciclofor.
publicclassForBreak
{
//elmtodomainempiezalaejecucindelaaplicacinenJava
publicstaticvoidmain(String[]args)
{
intcuenta;//lavariabledecontroltambinseusa
//cuandoterminaelciclo

for(cuenta=1;cuenta<=10;cuenta++)//itera10veces
{
if(cuenta==5)//sicuentaes5
break;//terminaelciclo

System.out.println(cuenta);
}//findefor
System.out.println("Saliodelcicloencuenta="+cuenta);
}//findelmtodomain
}//findelaclaseForBreak

Ral Oramas Bustillos 2012.

51

Fundamentos de Programacin con Java Instrucciones de repeticin.

WhileBreak.java
//Lainstruccinbreakparasalirdeunciclowhile.
publicclassWhileBreak
{
publicstaticvoidmain(String[]args)
{
intsuma=0;
intnumero=0;

while(numero<20)
{
numero++;
suma+=numero;
if(suma>=100)
break;
}//finwhile

System.out.printf("Valorfinaldenmero="+numero);
System.out.printf("Lasuma="+suma);
}//findelmtodomain
}//findelaclaseWhileBreak

Ral Oramas Bustillos 2012.

52

Fundamentos de Programacin con Java Instrucciones de repeticin.

Instruccin continue.

PruebaContinue.java
//Instruccincontinue.
publicclassPruebaContinue
{
publicstaticvoidmain(String[]args)
{
for(intcuenta=1;cuenta<=10;cuenta++)
{
if(cuenta==5)//sicuentaes5,
continue;//omiteelrestodelcdigoenelciclo

System.out.println(cuenta);
}//findefor
System.out.println("Seusocontinueparaomitirimprimir5");
}//findelmtodomain
}//findelaclasePruebaContinue

Ral Oramas Bustillos 2012.

53

5. Mtodos.
Contenido:
Declaracin de un mtodo.................................................................................................................................... 55
Declaracin de un mtodo con un parmetro....................................................................................................... 58
Mtodos void vs. return......................................................................................................................................... 59
Declaracin de mtodos con mltiples parmetros..............................................................................................61
Orden en el paso de parmetros.......................................................................................................................... 62
Reutilizacin de cdigo......................................................................................................................................... 63
Mtodos sobrecargados (overload)...................................................................................................................... 66

Fundamentos de Programacin con Java Mtodos.

Declaracin de un mtodo.

Curso.java
//Declaracindeunmtodo.
publicclassCurso
{
//muestraunmensajedebienvenida
publicstaticvoidmostrarMensaje()
{
System.out.println("BienvenidoalcursodeJava.");
}//findelmtodomostrarMensaje

publicstaticvoidmain(String[]args)
{
mostrarMensaje();//llamadaalmtodo
}//findelmtodomain
}//findelaclaseCurso

Ral Oramas Bustillos 2012.

55

Fundamentos de Programacin con Java Mtodos.

Temperatura.java
//Utilizadosmtodosparaconvertirdecelsius
//afahrenheityviceversa.
importjava.util.Scanner;//paraleerdelteclado
publicclassTemperatura
{
//conviertedefahrenheitacelsius
publicstaticvoidfahrenheitCelsius()
{
//variableslocales
doublefahrenheit;
doublecelsius;

Scannerentrada=newScanner(System.in);

//leelatemperatura
System.out.print("Ingresaunatemperaturaenfahrenheit:");
fahrenheit=entrada.nextDouble();

//realizalaconversin
celsius=5.0/9.0*fahrenheit32;

//imprimeelresultado
System.out.println("Latemperaturaencelsiuses"+celsius);
}//findelmtodofahrenheitCelsius

//conviertedecelsiusafahrenheit
publicstaticvoidcelsiusFahrenheit()
{
//variableslocales
doublefahrenheit;
doublecelsius;

Scannerentrada=newScanner(System.in);

//leelatemperatura
System.out.print("Ingresaunatemperaturaencelsius:");
celsius=entrada.nextDouble();

//realizalaconversin
fahrenheit=9.0/5.0*celsius+32;

//imprimeelresultado
System.out.println("Latemperaturaenfahrenheites"
+fahrenheit);
}//findelmtodocelsiusFahrenheit

Ral Oramas Bustillos 2012.

56

Fundamentos de Programacin con Java Mtodos.

publicstaticvoidmain(String[]args)
{
intopcion;//variablelocal
Scannerentrada=newScanner(System.in);

//mensajedeusuario
System.out.println("1.ConvertirdeFahrenheitaCelsius.");
System.out.println("2.ConvertirdeCelsiusaFahrenheit.");
//leelaopcindelusuario
System.out.print("Opcin:");
opcion=entrada.nextInt();

if(opcion==1)
fahrenheitCelsius();
else
celsiusFahrenheit();
}//findelmtodomain
}//findelaclaseTemperatura

Ral Oramas Bustillos 2012.

57

Fundamentos de Programacin con Java Mtodos.

Declaracin de un mtodo con un parmetro.

Curso.java
//Declaracindeunmtodoconunparmetro.
publicclassCurso
{
//muestraunmensajedebienvenida
publicstaticvoidmostrarMensaje(StringnombreCurso)
{
System.out.println(
"Bienvenidoalcursode"+nombreCurso+".");
}//findelmtodomostrarMensaje

publicstaticvoidmain(String[]args)
{
mostrarMensaje("Java");//llamadaalmtodo
mostrarMensaje("CSharp");//llamadaalmtodo
}//findelmtodomain
}//findelaclaseCurso

Ral Oramas Bustillos 2012.

58

Fundamentos de Programacin con Java Mtodos.

Mtodos void vs. return.

TestMetodoVoid.java
//Defineunmtodovoid.
publicclassTestMetodoVoid
{
publicstaticvoidcalificar(doublecalificacion)
{
if(calificacion>=90.0)
System.out.println('A');
elseif(calificacion>=80.0)
System.out.println('B');
elseif(calificacion>=70.0)
System.out.println('C');
elseif(calificacion>=60.0)
System.out.println('D');
else
System.out.println('E');
}//findelmtodocalificar

publicstaticvoidmain(String[]args)
{
System.out.print("Obtuvisteuna");
calificar(78.5);

System.out.print("Obtuvisteuna");
calificar(59.5);
}//findelmtodomain
}//findelaclaseTestMetodoVoid

Ral Oramas Bustillos 2012.

59

Fundamentos de Programacin con Java Mtodos.

TestMetodoReturn.java
//Defineunmtodoreturn
publicclassTestMetodoReturn
{
publicstaticcharcalificar(doublecalificacion)
{
if(calificacion>=90.0)
return'A';
elseif(calificacion>=80.0)
return'B';
elseif(calificacion>=70.0)
return'C';
elseif(calificacion>=60.0)
return'D';
else
return'E';
}//findelmtodocalificar

publicstaticvoidmain(String[]args)
{
System.out.print("Obtuvisteuna"+calificar(78.5));
System.out.print("Obtuvisteuna"+calificar(59.5));
}//findelmtodomain
}//findelaclaseTestMetodoReturn

Ral Oramas Bustillos 2012.

60

Fundamentos de Programacin con Java Mtodos.

Declaracin de mtodos con mltiples parmetros.

Mayor.java
//Mtodoconmltiplesparmetros.
publicclassMayor
{
//devuelveelmximodesustresparmetrosdouble
publicstaticdoublemaximo(doublex,doubley,doublez)
{
doublevalorMaximo=x;//asumequexeselmayorparaempezar

//determinasiyeselmayorquevalorMaximo
if(y>valorMaximo)
valorMaximo=y;

//determinasizesmayorquevalorMaximo
if(z>valorMaximo)
valorMaximo=z;

returnvalorMaximo;
}//findelmtodomximo

publicstaticvoidmain(String[]args)
{
doublez=maximo(9.35,2.75,5.1);

System.out.println("Elmayores"+z);
}//findelmtodomain
}//findelaclaseMayor

Ral Oramas Bustillos 2012.

61

Fundamentos de Programacin con Java Mtodos.

Orden en el paso de parmetros.

PasoParametros.java
//Pasodeparmetros.
publicclassPasoParametros
{
publicstaticvoidnPrint(Stringmensaje,intn)
{
for(inti=0;i<n;i++)
System.out.println(mensaje);
}//findelmtodonPrint

publicstaticvoidmain(String[]args)
{
nPrint("Hola",3);//Elordendelosparmetrosescorrecto
nPrint(3,"Hola");//Elordendelosparmetrosesincorrecto
nPrint("Hola",3.5);//Eltipoesincorrecto

nPrint();//faltanargumentos
nPrint("Hola");//faltanargumentos
}//findelmtodomain
}//findelaclasePasoParametros

Ral Oramas Bustillos 2012.

62

Fundamentos de Programacin con Java Mtodos.

Reutilizacin de cdigo.

Mayor.java
//Reutilizacindecdigo.
publicclassMayor
{
//devuelveelmximodesustresparmetrosdouble
publicstaticdoublemaximo(doublex,doubley,doublez)
{
returnMath.max(x,Math.max(y,z));
}//findelmtodomximo

publicstaticvoidmain(String[]args)
{
doublez=maximo(9.35,2.75,5.1);

System.out.println("Elmayores"+z);
}//findelmtodomain
}//findelaclaseMayor

Ral Oramas Bustillos 2012.

63

Fundamentos de Programacin con Java Mtodos.

MaximoComunDivisor.java
//Programaparaobtenerelmximocomndivisordedosnmeros.
importjava.util.Scanner;//paraleerdelteclado
publicclassMaximoComunDivisor
{
publicstaticvoidmain(String[]args)
{
Scannerentrada=newScanner(System.in);

//solicitalosdosnmerosenteros
System.out.print("Ingresaelprimernmero:");
intn1=entrada.nextInt();

System.out.print("Ingresaelsegundonmero:");
intn2=entrada.nextInt();

System.out.println("Elmximocomndivisorpara"+n1
+"y"+n2+"es"+gcd(n1,n2));
}//findelmtodomain
//regresaelmximocomndivisor
publicstaticintgcd(intn1,intn2)
{
intgcd=1;//elgcdiniciales1
intk=2;//posiblegcd

while(k<=n1&&n2%k<=n2)
{
if(n1%k==0&&n2%k==0)
gcd=k;//actualizagcd
k++;
}//finwhile
returngcd;//regresaelgcd
}//findelmtodogcd
}//findelaclaseMaximoComunDivisor

Ral Oramas Bustillos 2012.

64

Fundamentos de Programacin con Java Mtodos.

NumeroPrimo.java
//Programaqueimprimelosprimeros50nmerosprimos.
publicclassNumeroPrimo
{
publicstaticvoidmain(String[]args)
{
System.out.println("Losprimeros50nmerosprimosson:");
imprimirNumerosPrimos(50);
}//findelmtodomain

publicstaticvoidimprimirNumerosPrimos(intnPrimos)
{
finalintPRIMO_POR_LINEA=10;//despliega10porlnea
intcontador=0;//cuentaelnmerodeprimos
intnumero=2;//nmeroaprobarsiesprimo

//encuentralosnmerosprimos
while(contador<nPrimos)
{
//imprimeelnmeroprimoeincrementaelcontador
if(esPrimo(numero))
{
contador=contador+1;
if(contador%PRIMO_POR_LINEA==0)
{
//imprimeelnmeroyavanzaunalnea
System.out.println(numero);
}//finif
else
System.out.print(numero+"");
}//finif
//buscasielsiguienteesnmeroprimo
numero=numero+1;
}//finwhile
}//findelmtodoimprimirNumerosPrimos

//verificasiunnmeroesprimo
publicstaticbooleanesPrimo(intnumero)
{
for(intdivisor=2;divisor<=numero/2;divisor++)
if(numero%divisor==0)
returnfalse;//elnmeronoesprimo
returntrue;//elnmeroesprimo
}//findelmtodoesPrimo
}//findelaclaseNumeroPrimo

Ral Oramas Bustillos 2012.

65

Fundamentos de Programacin con Java Mtodos.

Mtodos sobrecargados (overload).

Calculadora.java
//Mtodosoverload.
publicclassCalculadora
{
//sumadosnmerosenteros
publicstaticintsuma(intoperandoUno,intoperandoDos)
{
returnoperandoUno+operandoDos;
}//findelmtodosuma
//sumadosnmerosdouble
publicstaticdoublesuma(doubleoperandoUno,doubleoperandoDos)
{
returnoperandoUno+operandoDos;
}//findelmtodosuma
publicstaticvoidmain(String[]args)
{
System.out.println(suma(10,2));
System.out.println(suma(10,2.0));//promocindelargumento
System.out.println(suma(10.0,2.0));
}//findelmtodomain
}//findelaclaseCalculadora

Ral Oramas Bustillos 2012.

66

6. Arreglos de una dimensin.


Contenido:
Declaracin de un arreglo..................................................................................................................................... 81
Crear un arreglo.................................................................................................................................................... 82
Asignar valores a un arreglo................................................................................................................................. 83
El tamao del arreglo y valores por default........................................................................................................... 84
Acceder a los elementos de un arreglo................................................................................................................ 85
Inicializacin de un arreglo al declararlo............................................................................................................... 86
Inicializar un arreglo con valores desde el teclado...............................................................................................87
Inicializar un arreglo con valores aleatorios.......................................................................................................... 88
Imprimir el contenido de un arreglo...................................................................................................................... 89
Sumar todos los elementos del arreglo................................................................................................................ 90
Encontrar el elemento mayor del arreglo.............................................................................................................. 91
Intercambio aleatorio de los elementos del arreglo.............................................................................................. 92
Desplazar elementos del arreglo.......................................................................................................................... 93
Instruccin for mejorada....................................................................................................................................... 94
Paso de arreglos a los mtodos........................................................................................................................... 95
Regresar un arreglo desde un mtodo................................................................................................................. 97
Listas de argumentos de longitud variable............................................................................................................ 98
Uso de argumentos de lnea de comandos.......................................................................................................... 99

Fundamentos de Programacin con Java Arreglos de una dimensin.

Declaracin de un arreglo.

DeclararArreglo.java
//Declaraunarreglodeunasoladimensin.
publicclassDeclararArreglo
{
publicstaticvoidmain(String[]args)
{
double[]miArreglo;
//doublemiArreglo[];
}//findelmtodomain
}//findelaclaseDeclaraArreglo

Ral Oramas Bustillos 2012.

68

Fundamentos de Programacin con Java Arreglos de una dimensin.

Crear un arreglo.

CrearArreglo.java
//Declaraycreaunarreglo.
publicclassCrearArreglo
{
publicstaticvoidmain(String[]args)
{
//double[]miArreglo;
//miArreglo=newArreglo[10];
double[]miArreglo=newdouble[10];
}//findelmtodomain
}//findelaclaseCrearArreglo

Ral Oramas Bustillos 2012.

69

Fundamentos de Programacin con Java Arreglos de una dimensin.

Asignar valores a un arreglo.

ValoresArreglo.java
//Declaraunarreglodeunasoladimensin.
publicclassValoresArreglo
{
publicstaticvoidmain(String[]args)
{
double[]miArreglo=newdouble[10];

//inicializalosvaloresdelarreglo
miArreglo[0]=5.6;//elarregloiniciaenlaposicin0
miArreglo[1]=4.5;
miArreglo[2]=3.3;
miArreglo[3]=13.2;
miArreglo[4]=4.0;
miArreglo[5]=34.33;
miArreglo[6]=34.0;
miArreglo[7]=45.45;
miArreglo[8]=99.93;
miArreglo[9]=999;//elarregloterminaenlaposicin:n1
}//findelmtodomain
}//findelaclaseValoresArreglo

Ral Oramas Bustillos 2012.

70

Fundamentos de Programacin con Java Arreglos de una dimensin.

El tamao del arreglo y valores por default.

DefaultArreglo.java
//Tamaodelarregloyvalorespordefault.
publicclassDefaultArreglo
{
publicstaticvoidmain(String[]args)
{
double[]miArreglo=newdouble[10];
//accedelaprimeraposicindelarreglo
System.out.println("miArreglo[0]="+miArreglo[0]);
//utilizalapropiedadlengthparaobtenereltamaodelarreglo
System.out.println("Tamaodelarreglo="+miArreglo.length);
}//findelmtodomain
}//findelaclaseDefaultArreglo

Ral Oramas Bustillos 2012.

71

Fundamentos de Programacin con Java Arreglos de una dimensin.

Acceder a los elementos de un arreglo.

ElementosArreglo.java
//Accederaloselementosdeunarreglo.
publicclassElementosArreglo
{
publicstaticvoidmain(String[]args)
{
double[]miArreglo=newdouble[10];
//inicializalosvaloresdelarreglo
miArreglo[0]=5.6;
miArreglo[1]=4.5;
miArreglo[2]=3.3;

System.out.println("Lostresprimeroselementosdelarreglo:");
System.out.println("miArreglo[0]="+miArreglo[0]);
System.out.println("miArreglo[1]="+miArreglo[1]);
System.out.println("miArreglo[2]="+miArreglo[2]);
}//findelmtodomain
}//findelaclaseElementosArreglo

Ral Oramas Bustillos 2012.

72

Fundamentos de Programacin con Java Arreglos de una dimensin.

Inicializacin de un arreglo al declararlo.

DatosArreglo.java
//Declaraeinicializaunarreglo.
publicclassDatosArreglo
{
publicstaticvoidmain(String[]args)
{
double[]miArreglo={1.9,2.9,3.4,3.5};

System.out.println("Contenidodelarreglo:");
System.out.println("miArreglo[0]="+miArreglo[0]);
System.out.println("miArreglo[1]="+miArreglo[1]);
System.out.println("miArreglo[2]="+miArreglo[2]);
System.out.println("miArreglo[3]="+miArreglo[3]);
}//findelmtodomain
}//findelaclaseDatosArreglo

Ral Oramas Bustillos 2012.

73

Fundamentos de Programacin con Java Arreglos de una dimensin.

Inicializar un arreglo con valores desde el teclado.

LecturaArreglo.java
//Inicializarlosvaloresdeunarreglo.
importjava.util.Scanner;
publicclassLecturaArreglo
{
publicstaticvoidmain(String[]args)
{
Scannerentrada=newScanner(System.in);
double[]miArreglo;

System.out.print("Introduceeltamaodelarreglo?");
inttamao=entrada.nextInt();

//creaelarreglo
miArreglo=newdouble[tamao];

//leelosvaloresdelteclado
System.out.println("Lecturadelosdatosdelarreglo.");
for(inti=0;i<miArreglo.length;i++)
{
System.out.print("Valor?");
miArreglo[i]=entrada.nextDouble();
}//finfor

}//findelmtodomain
}//findelaclaseLecturaArreglo

Ral Oramas Bustillos 2012.

74

Fundamentos de Programacin con Java Arreglos de una dimensin.

Inicializar un arreglo con valores aleatorios.

ArregloAleatorio.java
//Inicializarlosvaloresdeunarreglo.
publicclassArregloAleatorio
{
publicstaticvoidmain(String[]args)
{
double[]miArreglo=newdouble[10];

//inicializaelarregloconvaloresaleatorios
for(inti=0;i<miArreglo.length;i++)
{
//0.0hasta100sinincluirlo
miArreglo[i]=Math.random()*100;
}//finfor
}//findelmtodomain
}//findelaclaseArregloAleatorio

Ral Oramas Bustillos 2012.

75

Fundamentos de Programacin con Java Arreglos de una dimensin.

Imprimir el contenido de un arreglo.

ImprimirArreglo.java
//Imprimelosvaloresdeunarreglo.
publicclassImprimirArreglo
{
publicstaticvoidmain(String[]args)
{
double[]miArreglo=newdouble[10];

//inicializaelarregloconvaloresaleatorios
for(inti=0;i<miArreglo.length;i++)
{
//0.0hasta100sinincluirlo
miArreglo[i]=Math.random()*100;
}//finfor

//imprimelosvaloresdelarreglo
System.out.println("Losvaloresdelarreglo:");
for(inti=0;i<miArreglo.length;i++)
{
System.out.println(miArreglo[i]);
}//finfor
}//findelmtodomain
}//findelaclaseImprimirArreglo

Ral Oramas Bustillos 2012.

76

Fundamentos de Programacin con Java Arreglos de una dimensin.

Sumar todos los elementos del arreglo.

SumaArreglo.java
//Sumarlosvaloresdeunarreglo.
publicclassSumaArreglo
{
publicstaticvoidmain(String[]args)
{
double[]miArreglo=newdouble[10];
doublesuma=0;
//inicializaelarregloconvaloresaleatorios
for(inti=0;i<miArreglo.length;i++)
{
//0.0hasta100sinincluirlo
miArreglo[i]=Math.random()*100;
//vasumandolosvaloresdelarreglo
suma=suma+miArreglo[i];
}//finfor

//imprimelasumadelarreglo
System.out.println(
"Lasumadelosvaloresdelarregloes"+suma);
}//findelmtodomain
}//findelaclaseSumaArreglo

Ral Oramas Bustillos 2012.

77

Fundamentos de Programacin con Java Arreglos de una dimensin.

Encontrar el elemento mayor del arreglo.

MayorArreglo.java
//Encuentraelelementomayordeunarreglo.
publicclassMayorArreglo
{
publicstaticvoidmain(String[]args)
{
double[]miArreglo={1.9,2.9,1.8,3.4,2.2};
doublemayor=miArreglo[0];//asumequeeselmayor

//procesaelarreglo,iniciandoenelindice1
for(inti=1;i<miArreglo.length;i++)
{
if(miArreglo[i]>mayor)
mayor=miArreglo[i];
}//finfor

//imprimelasumadelarreglo
System.out.println("Elelementomayores"+mayor);
}//findelmtodomain
}//findelaclaseMayorArreglo

Ral Oramas Bustillos 2012.

78

Fundamentos de Programacin con Java Arreglos de una dimensin.

Intercambio aleatorio de los elementos del arreglo.

Shuffling.java
//Intercambiaaleatoriamentelosvaloresdelarreglo.
publicclassShuffling
{
publicstaticvoidmain(String[]args)
{
double[]miArreglo={1,5,3,4,7,9};

//procesaelarreglo
for(inti=0;i<miArreglo.length;i++)
{
//generaelindicejaleatoriamente
intj=(int)(Math.random()*miArreglo.length);

//intercambiamiArreglo[i]conmiArreglo[j];
doubletemporal=miArreglo[i];
miArreglo[i]=miArreglo[j];
miArreglo[j]=temporal;
}//finfor
//imprimelosvaloresdelarreglo
System.out.println("Losvaloresdelarreglo:");
for(inti=0;i<miArreglo.length;i++)
{
System.out.print(miArreglo[i]+"");
}//finfor
}//findelmtodomain
}//findelaclaseShuffling

Ral Oramas Bustillos 2012.

79

Fundamentos de Programacin con Java Arreglos de una dimensin.

Desplazar elementos del arreglo.

RotarArreglo.java
//Rotarloselementosdeunarreglo.
publicclassRotarArreglo
{
publicstaticvoidmain(String[]args)
{
double[]miArreglo={1,5,3,4,7,9};
doubletemporal=miArreglo[0];//guardaelprimerelemento

//procesaelarreglo
for(inti=1;i<miArreglo.length;i++)
{
miArreglo[i1]=miArreglo[i];
}//finfor
//mueveelprimerelementoalltimo
miArreglo[miArreglo.length1]=temporal;

//imprimelosvaloresdelarreglo
System.out.println("Losvaloresdelarreglo:");
for(inti=0;i<miArreglo.length;i++)
{
System.out.print(miArreglo[i]+"");
}//finfor
}//findelmtodomain
}//findelaclaseRotarArreglo

Ral Oramas Bustillos 2012.

80

Fundamentos de Programacin con Java Arreglos de una dimensin.

Instruccin for mejorada.

ForEach.java
//Cicloforeach.
publicclassForEach
{
publicstaticvoidmain(String[]args)
{
double[]miArreglo={1,5,3,4,7,9};

//procesaelarreglo
for(doubleelemento:miArreglo)
System.out.println(elemento);
}//findelmtodomain
}//findelaclaseForEach

Ral Oramas Bustillos 2012.

81

Fundamentos de Programacin con Java Arreglos de una dimensin.

Paso de arreglos a los mtodos.

PasoParametros.java
//Pasodearreglosalosmtodos.
publicclassPasoParametros
{
publicstaticvoidmain(String[]args)
{
double[]x={12.0,34.0,43.4,12.0,23.4};
double[]y={11.4,31.7,13.4,12.8,21.8};
imprimir(x);
imprimir(y);
//usandounarregloannimo
imprimir(newdouble[]{11.0,12.0,13.0,14.0,15.0});
}//findelmtodomain
publicstaticvoidimprimir(double[]arreglo)
{
for(inti=0;i<arreglo.length;i++)
System.out.print(arreglo[i]+"");
System.out.println();
}//findelmtodoimprimir
}//findelaclasePasoParametros

Ral Oramas Bustillos 2012.

82

Fundamentos de Programacin con Java Arreglos de una dimensin.

PasoArreglo.java
//Pasodearreglosyelementosindividualesdeunarregloalosmtodos.
publicclassPasoArreglo
{
//maincreaelarregloyllamaamodificarArregloymodificarElemento
publicstaticvoidmain(String[]args)
{
intarreglo[]={1,2,3,4,5};

System.out.println(
"Efectosdepasarunareferenciaaunarreglocompleto:\n"+
"Losvaloresdelarreglooriginalson:");

//imprimeloselementosoriginalesdelarreglo
for(intvalor:arreglo)
System.out.print(""+valor);

modificarArreglo(arreglo);//pasalareferenciaalarreglo
System.out.println("\n\nLosvaloresdelarreglomodificadoson:");

//imprimeloselementosmodificadosdelarreglo
for(intvalor:arreglo)
System.out.printf(""+valor);

System.out.println(
"\n\nEfectosdepasarelvalordeunelementodelarreglo;\n"+
"arreglo[3]antesdemodificarElemento:"+arreglo[3]);

modificarElemento(arreglo[3]);//intentopormodificararreglo[3]
System.out.println(
"\narreglo[3]despuesdemodificarElemento:"+arreglo[3]);
}//findelmtodomain

//multiplicacadaelementodeunarreglopor2
publicstaticvoidmodificarArreglo(intarreglo2[])
{
for(intcontador=0;contador<arreglo2.length;contador++)
arreglo2[contador]=arreglo2[contador]*2;
}//findelmtodomodificarArreglo

//multiplicaelargumentopordos
publicstaticvoidmodificarElemento(intelemento)
{
elemento=elemento*2;
System.out.println(
"ValordelelementoenmodificarElemento:"+elemento);
}//findelmtodomodificarElemento
}//findelaclasePasoArreglo

Ral Oramas Bustillos 2012.

83

Fundamentos de Programacin con Java Arreglos de una dimensin.

Regresar un arreglo desde un mtodo.

ProductoVectores.java
//CalculaelproductodedosarreglosAyB.
importjava.util.Scanner;//paraleerdelteclado
publicclassProductoVectores
{
privatestaticfinalintMAX=10;//tamaodelarreglo

publicstaticvoidmain(String[]args)
{
//entrada
System.out.println("Arreglo1.");
int[]a=leerArreglo();
System.out.println("Arreglo2.");
int[]b=leerArreglo();

//proceso
intproducto=productoVectores(a,b);

//salida
System.out.println("ElproductodeAxB="+producto);
}//findelmtodomain

privatestaticint[]leerArreglo()
{
//creaelobjetodelectura
Scannerentrada=newScanner(System.in);
int[]temp=newint[MAX];
for(inti=0;i<temp.length;i++)
{
System.out.print("Valor?");
temp[i]=entrada.nextInt();
}//finfor
returntemp;
}//findelmtodoleerArreglo

privatestaticintproductoVectores(int[]a,int[]b)
{
intproducto=0;
for(inti=0;i<MAX;i++)
producto=producto+(a[i]*b[i]);

returnproducto;
}//findelmtodoproductoVectores
}//findelaclaseProductoVectores

Ral Oramas Bustillos 2012.

84

Fundamentos de Programacin con Java Arreglos de una dimensin.

Listas de argumentos de longitud variable.

PruebaVarargs.java
//Usodelistasdeargumentosdelongitudvariable.
publicclassPruebaVarargs
{
//calculaelpromedio
publicstaticdoublepromedio(double...numeros)
{
doubletotal=0.0;//inicializaeltotal

//calculaeltotalusandolainstruccinformejorada
for(doubled:numeros)
total=total+d;

returntotal/numeros.length;
}//findelmtodopromedio

publicstaticvoidmain(Stringargs[])
{
doubled1=10.0;
doubled2=20.0;
doubled3=30.0;
doubled4=40.0;

System.out.println("Valoresiniciales.");
System.out.println("");
System.out.println("d1="+d1);
System.out.println("d2="+d2);
System.out.println("d3="+d3);
System.out.println("d4="+d4);

System.out.println("Elpromedioded1yd2es"+
promedio(d1,d2));

System.out.println("Elpromedioded1,d2,d3yd4es"+
promedio(d1,d2,d3,d4));
}//findelmtodomain
}//findelaclasePruebaVarargs

Ral Oramas Bustillos 2012.

85

Fundamentos de Programacin con Java Arreglos de una dimensin.

Uso de argumentos de lnea de comandos.

Suma.java
//Usodelosargumentosargs.
publicclassSuma
{
publicstaticvoidmain(String[]args)
{
//compruebaelnmerodeargumentosdelneadecomandos
if(args.length!=2)
System.out.println("Senecesitandosargumentos.");
else
{
//obtienelosvaloresdelalneadecomandos
intnumUno=Integer.parseInt(args[0]);
intnumDos=Integer.parseInt(args[1]);
//obtienelasuma
intsuma=numUno+numDos;
//muestralasuma
System.out.println(args[0]+"+"+args[1]+"es"+suma);
}//findelmtodomain
}//findelaclaseSuma

Ral Oramas Bustillos 2012.

86

7. Arreglos bidimensionales.
Contenido:
Introduccin.......................................................................................................................................................... 15
Trabajando con nmeros................................................................................................................................ 15
Dificultades numricas.................................................................................................................................... 16
Clculos simples............................................................................................................................................. 16
Imprimir texto, versin 1.1..................................................................................................................................... 17
Imprimir texto, versin 1.2..................................................................................................................................... 18
Imprimir texto, versin 1.3..................................................................................................................................... 18
Variables............................................................................................................................................................... 18
Programa para sumar dos nmeros............................................................................................................... 18
Calculadora simple......................................................................................................................................... 19
Precedencia de los operadores............................................................................................................................ 20
Circulo Versin 1.0................................................................................................................................................ 20
Circulo Versin 1.1................................................................................................................................................ 21
Circulo Versin 1.2................................................................................................................................................ 22
Operadores de igualdad y relacionales................................................................................................................ 22
Instruccin if simple.............................................................................................................................................. 24

Fundamentos de Programacin con Java Arreglos bidimensionales.

Introduccin.

Ral Oramas Bustillos 2012.

88

Fundamentos de Programacin con Java Arreglos bidimensionales.

Declaracin de un arreglo.

DeclararArreglo.java
//Declaraunarreglodedosdimensiones.
publicclassDeclararArreglo2D
{
publicstaticvoidmain(String[]args)
{
double[][]matriz;
//doublematriz[][];
}//findelmtodomain
}//findelaclaseDeclararArreglo2D

Ral Oramas Bustillos 2012.

89

Fundamentos de Programacin con Java Arreglos bidimensionales.

Crear un arreglo.

CrearArreglo.java
//Declaraycreaunarreglodedosdimensiones.
publicclassCrearArreglo2D
{
publicstaticvoidmain(String[]args)
{
//double[][]matriz;
//matriz=newArreglo[10][10];
double[][]matriz=newdouble[10][10];
}//findelmtodomain
}//findelaclaseCrearArreglo2D

Ral Oramas Bustillos 2012.

90

Fundamentos de Programacin con Java Arreglos bidimensionales.

Asignar valores a un arreglo.

ValoresArreglo.java
//Declaraunarreglodedosdimensiones.
publicclassValoresArreglo2D
{
publicstaticvoidmain(String[]args)
{
double[][]matriz=newdouble[10][10];

//inicializalosvaloresdelarreglo2D
miArreglo[0][0]=5.6;
miArreglo[0][1]=4.5;
miArreglo[0][2]=3.3;
miArreglo[0][3]=13.2;
miArreglo[0][4]=4.0;
miArreglo[0][5]=34.33;
miArreglo[0][6]=34.0;
miArreglo[0][7]=45.45;
miArreglo[0][8]=99.93;
miArreglo[0][9]=99.54;
}//findelmtodomain
}//findelaclaseValoresArreglo2D

Ral Oramas Bustillos 2012.

91

Fundamentos de Programacin con Java Arreglos bidimensionales.

El tamao del arreglo y valores por default.

DefaultArreglo.java
//Tamaodelarregloyvalorespordefault.
publicclassDefaultArreglo2D
{
publicstaticvoidmain(String[]args)
{
double[][]matriz=newdouble[10][10];
//accedelaprimeraposicindelamatriz
System.out.println("matriz[0][0]="+matriz[0][0]);
//utilizalapropiedadlengthparaobtenereltamaodelarreglo
System.out.println("Tamaodelarreglo="+matriz.length);
System.out.println("Tamaodelrengln="+matriz[0].length);
}//findelmtodomain
}//findelaclaseDefaultArreglo2D

Ral Oramas Bustillos 2012.

92

Fundamentos de Programacin con Java Arreglos bidimensionales.

Acceder a los elementos de un arreglo.

ElementosArreglo2D.java
//Accederaloselementosdeunamatriz.
publicclassElementosArreglo2D
{
publicstaticvoidmain(String[]args)
{
double[][]matriz=newdouble[10][10];
//inicializalosvaloresdelamatriz
matriz[0][0]=5.6;
matriz[1][0]=4.5;
matriz[2][0]=3.3;

System.out.println("matriz[0][0]="+miArreglo[0][0]);
System.out.println("matriz[1][0]="+miArreglo[1][0]);
System.out.println("matriz[2][0]="+miArreglo[2][0]);
}//findelmtodomain
}//findelaclaseElementosArreglo2D

Ral Oramas Bustillos 2012.

93

Fundamentos de Programacin con Java Arreglos bidimensionales.

Inicializacin de un arreglo al declararlo.

DatosArreglo.java
//Declaraeinicializaunarreglodedosdimensiones.
publicclassDatosArreglo2D
{
publicstaticvoidmain(String[]args)
{
double[]matriz={{1.9,2.9,3.4,3.5},
{5.5,7.2,3.3,1,9},
{8.7,3.4,8.6,9.9}};
}//findelmtodomain
}//findelaclaseDatosArreglo2D

Ral Oramas Bustillos 2012.

94

Fundamentos de Programacin con Java Arreglos bidimensionales.

Inicializar un arreglo bidimensional con valores desde el teclado.

LecturaArreglo2D.java
//Inicializalosdatosdeunarreglo2Ddesdeelteclado.
importjava.util.Scanner;
publicclassLecturaArreglo2D
{
publicstaticvoidmain(String[]args)
{
Scannerentrada=newScanner(System.in);
int[][]tabla=newint[2][3];
System.out.println("Arreglocon"+tabla.length+
"renglonesy"+tabla[0].length+"columnas.");
System.out.println("Introducenmerosenteros:");

//lecturadelarreglo
for(intren=0;ren<tabla.length;ren++)
{
for(intcol=0;col<tabla[ren].length;col++)
{
System.out.print("Valor["+ren+"]["+col+"]?");
tabla[ren][col]=entrada.nextInt();
}//finfor
}//finfor

//imprimeelprimerrengln
System.out.print("Elrengln1=[");
System.out.print(tabla[0][0]+"");
System.out.print(tabla[0][1]+"");
System.out.print(tabla[0][2]+"]");
}//findelmtodomain
}//findelaclaseLecturaArreglo2D

Ral Oramas Bustillos 2012.

95

Fundamentos de Programacin con Java Arreglos bidimensionales.

Inicializar un arreglo bidimensional con valores aleatorios.

Arreglo2DAleatorio.java
//Inicializaunarreglo2Dconvaloresaleatorios.
publicclassArreglo2DAleatorio
{
publicstaticvoidmain(String[]args)
{
int[][]tabla=newint[2][3];
System.out.println("Arreglocon"+tabla.length+
"renglonesy"+tabla[0].length+"columnas.");
System.out.println("Elarreglo2Dtienevaloresrandom.");

//inicializaelarreglo2D
for(intren=0;ren<tabla.length;ren++)
for(intcol=0;col<tabla[ren].length;col++)
tabla[ren][col]=(int)(Math.random()*100);

//imprimeelprimerrengln
System.out.print("Elrengln1=[");
System.out.print(tabla[0][0]+"");
System.out.print(tabla[0][1]+"");
System.out.print(tabla[0][2]+"]");
}//findelmtodomain
}//findelaclaseArreglo2DAleatorio

Ral Oramas Bustillos 2012.

96

Fundamentos de Programacin con Java Arreglos bidimensionales.

Imprimir el contenido de un arreglo bidimensional.

ImprimirArreglo2D.java
//Imprimeelcontenidodeunarreglo2D.
publicclassImprimirArreglo2D
{
publicstaticvoidmain(String[]args)
{
//Declaraeinicializaunarreglo2Dde3renglones,3columnas
int[][]tabla={{1,2,3},
{4,5,6},
{7,8,9}};

System.out.println("Valoresdelarreglo.");
System.out.println("");
//imprimeelcontenidodelarreglo
for(intren=0;ren<tabla.length;ren++)
{
System.out.print("Renglon"+ren+"=[");
for(intcol=0;col<tabla[ren].length;col++)
System.out.print(tabla[ren][col]+"");
System.out.println("]");
}//finfor
}//findelmtodomain
}//findelaclaseImprimirArreglo2D

Ral Oramas Bustillos 2012.

97

Fundamentos de Programacin con Java Arreglos bidimensionales.

Sumar todos los elementos de un arreglo bidimensional.

SumaArreglo2D.java
//Sumatodosloselementosdelarreglo2D.
publicclassSumaArreglo2D
{
publicstaticvoidmain(String[]args)
{
//declaraeinicializaunarreglode4x5
double[][]tabulador={{10.50,12.00,14.50,16.75,18.00},
{20.50,22.28,24.00,26.25,27.50},
{34.00,36.50,38.00,40.35,43.00},
{50.00,60,00,70.00,80.00,99.99}};

System.out.println("Sumalosdatosdeltabulador.");
System.out.println("");
doublesuma=0.0;
for(intren=0;ren<tabulador.length;ren++)
for(intcol=0;col<tabulador[ren].length;col++)
suma=suma+tabulador[ren][col];
System.out.println("Suma="+suma);
}//findelmtodomain
}//findelaclaseSumaArreglo2D.

Ral Oramas Bustillos 2012.

98

Fundamentos de Programacin con Java Arreglos bidimensionales.

Suma los elementos de un arreglo bidimensional por columna.

SumaColumna.java
//Sumalascolumnasdeunarreglo2D.
publicclassSumaColumna
{
publicstaticvoidmain(String[]args)
{
//declaraeinicializaunarreglode4x5
double[][]tabulador={{10.50,12.00,14.50,16.75,18.00},
{20.50,22.28,24.00,26.25,27.50},
{34.00,36.50,38.00,40.35,43.00},
{50.00,60,00,70.00,80.00,99.99}};

System.out.println("Sumalosdatosxcolumna.");
System.out.println("");

for(intcol=0;col<tabulador[0].length;col++)
{
doublesumaCol=0.0;
for(intren=0;ren<tabulador.length;ren++)
sumaCol=sumaCol+tabulador[ren][col];

System.out.println("Columna"+col+"="+sumaCol);
}//finfor
}//findelmtodomain
}//findelaclaseSumaColumna

Ral Oramas Bustillos 2012.

99

Fundamentos de Programacin con Java Arreglos bidimensionales.

Suma por rengln y encuentra el mayor.

SumaRenglon.java
//Sumalosrenglonesdeunarreglo2Dyencuentraelmayor.
publicclassSumaRenglon
{
publicstaticvoidmain(String[]args)
{
//declaraeinicializaunarreglode4x5
double[][]tabulador={{10.50,12.00,14.50,16.75,18.00},
{20.50,22.28,24.00,26.25,27.50},
{34.00,36.50,38.00,40.35,43.00},
{50.00,60,00,70.00,80.00,99.99}};

System.out.println("Sumalosdatosxrengln.");
System.out.println("");
doublemax=0.0;//elrenglnmayor
//obtienelasumadelprimerrenglnyloasignaamax
for(intcol=0;col<tabulador[0].length;col++)
max=max+tabulador[0][col];

//procesaelarreglo2D,imprimelasumaporcadarengln
//ymuestraelrenglnconlasumamsgrande
for(intren=0;ren<tabulador.length;ren++)
{
doublesumaRen=0.0;
for(intcol=0;col<tabulador[ren].length;col++)
sumaRen=sumaRen+tabulador[ren][col];
if(sumaRen>max)//Buscalasumamsgrande
max=sumaRen;//actualizaelrenglnmayor
System.out.println("Rengln"+ren+"="+sumaRen);
}//finfor
System.out.println("Elrenglndemayorsuma="+max);
}//findelmtodomain
}//findelaclaseSumaRenglon

Ral Oramas Bustillos 2012.

100

Fundamentos de Programacin con Java Arreglos bidimensionales.

101

Intercambio aleatorio de un arreglo bidimensional.

Shuffling2D.java
//Intercambioaleatoriodeloselementosdeunarreglo2D.
publicclassShuffling2D
{
publicstaticvoidmain(String[]args)
{
//declaraeinicializaunarreglode3x3
int[][]tabla={{1,2,3},
{4,5,6},
{7,8,9}};

//procesaelarreglointercambiandolosvalores
for(intren=0;ren<tabla.length;ren++)
{
for(intcol=0;col<tabla[ren].length;col++)
{
//generaindicesaleatoriospararen,col
intrenAux=(int)(Math.random()*tabla.length);
intcolAux=(int)(Math.random()*tabla[col].length);

//intercambiatabla[ren][col]portabla[renAux][colAux]
inttemp=tabla[ren][col];
tabla[ren][col]=tabla[renAux][colAux];
tabla[renAux][colAux]=temp;
}//finfor
}//finfor
System.out.println("Elarreglodespusdelshuffling.");
//imprimeelcontenidodelarreglo
for(intren=0;ren<tabla.length;ren++)
{
System.out.print("Rengln"+ren+"=[");
for(intcol=0;col<tabla[ren].length;col++)
System.out.print(tabla[ren][col]+"");
System.out.println("]");
}//finfor
}//findelmtodomain
}//findelaclaseShuffling2D

Ral Oramas Bustillos 2012.

You might also like