Professional Documents
Culture Documents
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
1. Introduccin a Java.
Contenido:
Un programa simple en Java.................................................................................................................................. 6
Otro programa simple en Java................................................................................................................................ 7
HolaMundo.java
publicclassHolaMundo
{
publicstaticvoidmain(String[]args)
{
System.out.println("HolaMundo.");
}
}
Bienvenido.java
//Programaparaimprimirtexto.
publicclassBienvenido
{
//elmtodomainempiezalaejecucindelaaplicacinenJava
publicstaticvoidmain(String[]args)
{
System.out.print("Bienvenido");
System.out.println("alCursoJava!");
}//findelmtodomain
}//findelaclaseBienvenido
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
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
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
10
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
11
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
12
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
13
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
14
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
15
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
16
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
17
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:
18
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
19
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
20
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
21
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
22
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
23
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
24
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
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
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
27
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
28
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
29
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
30
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
31
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
32
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
33
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
34
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
35
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
36
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
37
38
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
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
39
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
40
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)
41
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
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
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
44
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
45
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
46
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
47
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
48
PruebaDoWhile.java
//Lainstruccinderepeticindo...while.
publicclassPruebaDoWhile
{
publicstaticvoidmain(String[]args)
{
intcontador=1;//inicializacontador
do
{
System.out.println(contador);
contador++;
}while(contador<=10);//findedo...while
}//findelmtodomain
}//findelaclasePruebaDoWhile
49
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
50
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
51
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
52
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
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
Declaracin de un mtodo.
Curso.java
//Declaracindeunmtodo.
publicclassCurso
{
//muestraunmensajedebienvenida
publicstaticvoidmostrarMensaje()
{
System.out.println("BienvenidoalcursodeJava.");
}//findelmtodomostrarMensaje
publicstaticvoidmain(String[]args)
{
mostrarMensaje();//llamadaalmtodo
}//findelmtodomain
}//findelaclaseCurso
55
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
56
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
57
Curso.java
//Declaracindeunmtodoconunparmetro.
publicclassCurso
{
//muestraunmensajedebienvenida
publicstaticvoidmostrarMensaje(StringnombreCurso)
{
System.out.println(
"Bienvenidoalcursode"+nombreCurso+".");
}//findelmtodomostrarMensaje
publicstaticvoidmain(String[]args)
{
mostrarMensaje("Java");//llamadaalmtodo
mostrarMensaje("CSharp");//llamadaalmtodo
}//findelmtodomain
}//findelaclaseCurso
58
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
59
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
60
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
61
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
62
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
63
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
64
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
65
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
66
Declaracin de un arreglo.
DeclararArreglo.java
//Declaraunarreglodeunasoladimensin.
publicclassDeclararArreglo
{
publicstaticvoidmain(String[]args)
{
double[]miArreglo;
//doublemiArreglo[];
}//findelmtodomain
}//findelaclaseDeclaraArreglo
68
Crear un arreglo.
CrearArreglo.java
//Declaraycreaunarreglo.
publicclassCrearArreglo
{
publicstaticvoidmain(String[]args)
{
//double[]miArreglo;
//miArreglo=newArreglo[10];
double[]miArreglo=newdouble[10];
}//findelmtodomain
}//findelaclaseCrearArreglo
69
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
70
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
71
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
72
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
73
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
74
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
75
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
76
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
77
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
78
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
79
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
80
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
81
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
82
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
83
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
84
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
85
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
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
Introduccin.
88
Declaracin de un arreglo.
DeclararArreglo.java
//Declaraunarreglodedosdimensiones.
publicclassDeclararArreglo2D
{
publicstaticvoidmain(String[]args)
{
double[][]matriz;
//doublematriz[][];
}//findelmtodomain
}//findelaclaseDeclararArreglo2D
89
Crear un arreglo.
CrearArreglo.java
//Declaraycreaunarreglodedosdimensiones.
publicclassCrearArreglo2D
{
publicstaticvoidmain(String[]args)
{
//double[][]matriz;
//matriz=newArreglo[10][10];
double[][]matriz=newdouble[10][10];
}//findelmtodomain
}//findelaclaseCrearArreglo2D
90
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
91
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
92
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
93
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
94
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
95
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
96
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
97
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.
98
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
99
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
100
101
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