ejercicios de programación en java

Upload: jose-raul-cruz-ojeda

Post on 31-Oct-2015

115 views

Category:

Documents


1 download

TRANSCRIPT

  • F.M.PrezMontes

    EjerciciosdeProgramacinenJavaCondicionales,Bucles,TablasyFunciones

    Afianzatusconocimientosdeprogramacinmediantelaresolucindeejercicios

    www.detodoprogramacion.com

  • Esta obra est publicada bajo una licencia: Creative Commons Reconocimiento-No Comercial-Sin Obra Derivada 3.0 Espaa, que le permite copiar, distribuir y comunicar pblicamente la obra, siempre y cuando reconozca el

    crdito del autor, lo haga sin fines comerciales y no altere, transforme o genere una obra derivada a partir de sta.

    Dispone del texto legal completo en la siguiente direccin: http://creativecommons.org/licenses/by-nc-nd/3.0/es/

    2011, Francisco Manuel Prez Montes. Algunos derechos reservados.

    Edita Asoc. Por la Innovacin Educativa Eduinnova.Esta obra se encuentra disponile en: http://www.eduinnova.es/monografias2011/ene2011/java.pdf

    Depsito legal: SE 1211-2011.ISBN: 978-84-614-7595-7.

    www.detodoprogramacion.com

  • AmihijaClaudia,lasolucinatodoslosproblemas.

    www.detodoprogramacion.com

  • www.detodoprogramacion.com

  • AGRADECIMIENTOS

    Atodoslosquehanhechoposibleestelibro.Enespecialamiamigoycompaero:AlfonsoJimnez,

    porsusinnumerablescorreccionesyporlaclaseEntrada.

    www.detodoprogramacion.com

  • NDICE

    Prlogo ............................................... Pgina 1

    Introduccin .......................................... Pgina 4

    Boletn 1 (Variables y condicionales) ................. Pgina 6

    Boletn 2 (Condicionales y bucles) .................... Pgina 35

    Boletn 3 (Bucles anidados) ........................... Pgina 62

    Boletn 4 (Tablas) .................................... Pgina 69

    Boletn 5 (Tablas n-dimensionales) .................... Pgina 96

    Boletn 6 (Funciones) ................................. Pgina 115

    Apndice I (Boletines completos) ...................... Pgina 192Apndice II (Clase Entrada) ........................... Pgina 206

    I

    www.detodoprogramacion.com

  • PRLOGOEl libro Ejercicios de Programacin en Java: Condicionales, Bucles, Tablas y Funciones

    nace como fruto de aos de docencia en materias relacionadas: Algortmica, Programacin, Lenguaje C y Java, entre otros.

    Con el paso del tiempo he constatado que aprender un lenguaje de programacin es relativamente sencillo y sobre este tema existen muchos y muy buenos textos. Pero aprender a programar es algo totalmente distinto, que necesita de un mayor esfuerzo y abordar el problema desde otra perspectiva. Siempre utilizo la metfora del pianista para explicar el tndem programar/lenguaje de programacin: saber tocar las notas de un piano es relativamente fcil, tan solo debemos anotar en cada una de las teclas a qu nota musical corresponde. Esto sera similar a conocer un lenguaje de programacin. Es muy sencillo utilizar un if o entender la mecnica de un while.

    Volviendo al piano: una vez que dominamos la relacin tecla/nota, un pianista debe aprender muchas otras cosas para que aquello que est tocando suene bien; esto sera saber tocar el piano. Para saber programar, no basta saber cmo funciona una instruccin sino saber

    Ejercicios de Programacin en Java 1

    www.detodoprogramacion.com

  • utilizarla conjuntamente con otras, en el orden y la forma adecuadas para que la aplicacin que estamos creando suene bien.

    Esta obra no es un libro para aprender java ni sus numerosas bibliotecas, es un libro que por medio de ejercicios resueltos, desde cero, y con la prctica facilita la asimilacin de las tcnicas de programacin. Para aprender a programar la mejor forma es desvincular la lgica de la aplicacin (cmo hacerlo) del lenguaje utilizado para implementarlo. Dicho en otras palabras: lo mejor es utilizar seudocdigo (un lenguaje terico de alto nivel) donde no tengamos que preocuparnos por las particularidades del lenguaje de programacin, ni por la rigidez de su sintaxis. El inconveniente de utilizar seudocdigo es que el lector no tiene nada tangible, nada con lo que se pueda comprobar el buen funcionamiento de la aplicacin; por este motivo se ha decidido utilizar Java. Esta eleccin se justifica frente a otras alternativas, como el lenguaje C, que tambin es muy didctico, simplemente por el hecho de que con Java podemos abstraernos un poco ms, al ser un lenguaje de ms alto nivel. Tambin hay que decir que en la medida de lo posible no profundizaremos en las bibliotecas del lenguaje; en otras ocasiones esto ser totalmente imposible de llevar a la prctica y hemos de trabajar con los detalles.

    Para finalizar, deseara comentar que el libro se estructura como un conjunto de boletines de ejercicios que se resuelven de la forma ms didctica posible. Un programador

    Ejercicios de Programacin en Java 2

    www.detodoprogramacion.com

  • experto seguramente encontrar soluciones mucho ms elegantes y eficientes. Aqu nuestro principal objetivo es que el lector entienda qu est haciendo y por qu lo hace.

    La dificultad de los boletines crece gradualmente y en cada boletn se trata un tema distinto. Una vez resueltos los ejercicios de un boletn podremos disponer de ellos para utilizarlos en posteriores boletines.

    La resolucin de los ejercicios no es nica, y en ocasiones merece la pena ver otro enfoque distinto. Es por esto por lo que en algunos casos se han incluido varias soluciones.

    Si el lector se enfrenta a la tarea de aprender a programar, este libro, junto con las clases que pueda recibir en una facultad, escuela tcnica o ciclo formativo de grado superior, sern una ayuda eficaz para llevar a cabo su objetivo. Esta tarea debe tomarse sin prisas, entendiendo los detalles sutiles y dedicando mucho tiempo a la prctica.

    Sevilla, octubre de 2010Francisco M. Prez Montes

    Ejercicios de Programacin en Java 3

    www.detodoprogramacion.com

  • INTRODUCCIN

    Este libro est compuesto como una coleccin de boletines de ejercicios (se encuentran disponibles en el Apndice I). En cada boletn se resuelven ejercicios con una temtica comn, de la siguiente forma:

    Boletn 1...... Variables y condicionalesBoletn 2...... Condicionales y buclesBoletn 3...... Bucles anidadosBoletn 4...... Tablas Boletn 5...... Tablas n-dimensionalesBoletn 6...... Funciones

    Los ejercicios no tienen solucin nica, aqu se plantea la ms didctica y fcil de entender, dejando de lado la eficiencia. Cuando existen distintas soluciones, utilizando distintos enfoques, se incluye ms de una solucin por ejercicio.

    La resolucin de los ejercicios de programacin, son el complemento ideal para las clases de programacin impartidas en una facultas, escuela tcnica o ciclo formativo de grado superior.

    Ejercicios de Programacin en Java 4

    www.detodoprogramacion.com

  • Otro aspecto importante es la entrada por teclado, algo primordial para poder introducir datos y probar nuestros programas. En un principio el alumno no debe tener los conocimientos necesarios para escribir el cdigo que le proporcione dicha entrada. Algo similar ocurre en las asignaturas de programacin, lo que plantea el problema de empezar a explicar cdigo y funciones que se escapan al programador novel.

    Por todo esto, se ha diseado la clase Entrada, que permite realizar de forma transparente la entrada por teclado. Aprender a utilizarla es sencillo y proporciona una herramienta cmoda y fiable para dejar de preocuparnos por la entrada de datos. La clase Entrada se encuentra en el Apndice II. Las funciones que proporciona la clase Entrada son:

    Entrada.entero() Lee un nmero entero por teclado y lo devuelve

    Entrada.real() Lee un nmero real por teclado y lo devuelve

    Entrada.cadena() Lee una cadena de caracteres y la devuelve

    Entrada.caracter() Lee un solo carcter por teclado y lo devuelve

    Ejercicios de Programacin en Java 5

    www.detodoprogramacion.com

  • Boletn 1Variables y condicionales

    1. Pedir los coeficientes de una ecuacin se 2 grado, y muestre sus soluciones reales. Si no existen, debe indicarlo.

    package bol01ej01;

    public class Main {

    public static void main(String[] args) { double a,b,c; // coeficientes ax^2+bx+c=0 double x1,x2,d; // soluciones y determinante

    System.out.println("Introduzca primer coeficiente (a):"); a=Entrada.entero(); System.out.println("Introduzca segundo coeficiente: (b):"); b=Entrada.entero(); System.out.println("Introduzca tercer coeficiente: (c):"); c=Entrada.entero();

    // calculamos el determinante d=((b*b)-4*a*c); if(d

  • // si a=0 nos encontramos una divisin por cero. x1=(-b+Math.sqrt(d))/(2*a); x2=(-b-Math.sqrt(d))/(2*a); System.out.println("Solucin: " + x1); System.out.println("Solucin: " + x2);

    } }}

    2. Pedir el radio de un crculo y calcular su rea. A=PI*r^2.

    package bol01ej02;

    public class Main {

    public static void main(String[] args) { double a,r; // rea y radio

    System.out.print("Introduce el radio de un circulo: "); r=Entrada.real();

    a=Math.PI*(r*r); // para elevar al cuadrado otra opcin es: Math.pow (r, 2) System.out.println("El rea de una circunferencia de radio " + r+ " es: " + a); }}

    3. Pedir el radio de una circunferencia y calcular su longitud.

    package bol01ej03;

    public class Main {

    Ejercicios de Programacin en Java 7

    www.detodoprogramacion.com

  • public static void main(String[] args) { double l,r; // longitud y radio

    System.out.print("Introduce el radio de una circunferencia: "); r=Entrada.real();

    l=2*Math.PI*r; System.out.println("La longitud de una circunferencia de radio " + r+ " es: " + l); }}

    4. Pedir dos nmeros y decir si son iguales o no.

    package bol01ej04;

    public class Main {

    public static void main(String[] args) { int n1,n2;

    System.out.print("Introduce un nmero: "); n1=Entrada.entero(); System.out.print("Introduce otro nmero: "); n2=Entrada.entero();

    if(n1==n2) System.out.println("Son iguales"); else System.out.println("No son iguales"); }}

    Ejercicios de Programacin en Java 8

    www.detodoprogramacion.com

  • 5. Pedir un nmero e indicar si es positivo o negativo.

    package bol01ej05;

    public class Main {

    public static void main(String[] args) { int num;

    System.out.print("Introduce un nmero: "); num=Entrada.entero(); if( num < 0) System.out.println("Negativo"); else // suponemos que el 0 es positivo. System.out.println("Positivo"); }}

    6. Pedir dos nmeros y decir si uno es mltiplo del otro.

    package bol01ej06;

    public class Main {

    public static void main(String[] args) { int n1,n2;

    System.out.print("Introduce un nmero: "); n1=Entrada.entero();

    System.out.print("Introduce otro nmero: "); n2=Entrada.entero();

    Ejercicios de Programacin en Java 9

    www.detodoprogramacion.com

  • if(n1%n2==0) System.out.println("Son mltiplos"); else System.out.println("No son mltiplos"); }}

    7. Pedir dos nmeros y decir cual es el mayor.

    package bol01ej07;

    public class Main {

    public static void main(String[] args) { int n1,n2;

    System.out.print("Introduce un nmero: "); n1=Entrada.entero(); System.out.print("Introduce otro nmero: "); n2=Entrada.entero(); // si ambos nmeros son iguales dira que n2 es mayor que n1 if(n1>n2) System.out.println(n1 + " es mayor que " + n2); else System.out.println(n2 + " es mayor que " + n1); }}

    Ejercicios de Programacin en Java 10

    www.detodoprogramacion.com

  • 8. Pedir dos nmeros y decir cual es el mayor o si son iguales.

    package bol01ej08;

    public class Main {

    public static void main(String[] args) { int n1,n2;

    System.out.print("Introduce un nmero: "); n1=Entrada.entero(); System.out.print("Introduce otro nmero: "); n2=Entrada.entero(); if(n1==n2) System.out.println("Son iguales"); else { if(n1>n2) System.out.println(n1 + " es mayor que " + n2); else System.out.println(n2 + " es mayor que " + n1); } }}

    9. Pedir dos nmeros y mostrarlos ordenados de mayor a menor.

    package bol01ej09;

    public class Main {

    public static void main(String[] args) { int n1,n2;

    Ejercicios de Programacin en Java 11

    www.detodoprogramacion.com

  • System.out.print("Introduce un nmero: "); n1=Entrada.entero(); System.out.print("Introduce otro nmero: "); n2=Entrada.entero(); if(n1>n2) System.out.println(n1 + " y " + n2); else System.out.println(n2 + " y " + n1); }}

    10. Pedir tres nmeros y mostrarlos ordenados de mayor a menor.

    package bol01ej10;

    public class Main {

    public static void main(String[] args) { int a,b,c;

    System.out.print("Introduzca primer nmero: "); a=Entrada.entero(); System.out.print("Introduzca segundo nmero: "); b=Entrada.entero(); System.out.print("Introduzca tercer nmero: "); c=Entrada.entero();

    if(a>b && b>c) System.out.println( a+", "+b+", "+c); else{ if(a>c && c>b) System.out.println(a+", "+c+", "+b);

    Ejercicios de Programacin en Java 12

    www.detodoprogramacion.com

  • else{ if(b>a && a>c) System.out.println(b+", "+a+", "+c); else{ if(b>c && c>a) System.out.println(b+", "+c+", "+a); else{ if(c>a && a>b) System.out.println(c+", "+a+", "+b); else{ if(c>b && b>a) System.out.println(c+", "+b+", "+a); } } } } } }}

    11. Pedir un nmero entre 0 y 9.999 y decir cuantas cifras tiene.

    package bol01ej11;

    public class Main {

    public static void main(String[] args) { int num;

    System.out.print("Introduzca un nmero entre 0 y 99.999: "); num=Entrada.entero();

    if(num

  • else{ if(num
  • System.out.print("Introduzca un nmero entre 0 y 99.999: "); num=Entrada.entero();

    // unidad u = num % 10; num = num / 10;

    // decenas d = num % 10; num = num / 10;

    // centenas c = num % 10; num = num / 10;

    // unidades de millar um = num % 10; num = num / 10;

    // decenas de millar dm = num;

    // lo imprimimos al revs: System.out.println (u + " " + d + " " + c + " " + um + " " + dm);

    // otra forma de hacerlo es num = 10000*u + 1000*d + 100*c + 10*um + dm; System.out.println (num); }}

    13. Pedir un nmero entre 0 y 9.999, decir si es capica.

    package bol01ej13;

    Ejercicios de Programacin en Java 15

    www.detodoprogramacion.com

  • public class Main {

    public static void main(String[] args) { int num; int dm, um, c, d, u;

    // 9 9 . 9 9 9 a cada guarismo lo llamaremos: //dm um c d u: dm (decenas de millar), um:(unidades de millar) // c: (centenas), d: (decenas), u: (unidades)

    System.out.print("Introduzca un nmero entre 0 y 99.999: "); num=Entrada.entero();

    // unidad u = num % 10; num = num / 10;

    // decenas d = num % 10; num = num / 10;

    // centenas c = num % 10; num = num / 10;

    // unidades de millar um = num % 10; num = num / 10;

    // decenas de millar dm = num;

    // el nmero ser capica si las cifras son iguales dos a dos por los extremos // las centenas no las tenemos en cuenta

    Ejercicios de Programacin en Java 16

    www.detodoprogramacion.com

  • if (dm == u && um == d) System.out.println ("el nmero es capica"); else System.out.println ("el nmero NO es capica");

    // hay que tener en cuenta que en este ejercicio el nmero 121 es similar al 00121 y // resulta que 121 es capica, pero nuestro cdigo lo identifica como NO capica. Ya // que trabajamos con el 00121. No tendremos en cuenta este pequeo error. } }

    package bol01ej13;

    public class Main {

    public static void main(String[] args) { int num; int dm, um, c, d, u;

    boolean capicua = false; // suponemos que el nmero no es capica;

    // 9 9 . 9 9 9 a cada guarismo lo llamaremos: //dm um c d u: dm (decenas de millar), um:(unidades de millar) // c: (centenas), d: (decenas), u: (unidades)

    // En esta versin haremos que el nmero 121 el 33 sea visto como capica. // La idea es no tener en cuenta los ceros por la derecha.

    System.out.print("Introduzca un nmero entre 0 y 99.999: "); num=Entrada.entero();

    // unidad u = num % 10; num = num / 10;

    Ejercicios de Programacin en Java 17

    www.detodoprogramacion.com

  • // decenas d = num % 10; num = num / 10;

    // centenas c = num % 10; num = num / 10;

    // unidades de millar um = num % 10; num = num / 10;

    // decenas de millar dm = num;

    //si el nmero tiene 5 cifras (dm, um, c, d, u) if (dm == u && um == d) capicua = true;

    //si el nmero tiene 4 cifras (0, um, c, d, u) if (dm == 0 && um == u && c == d) capicua = true; //si el nmero tiene 3 cifras (0, 0, c, d, u) if (dm == 0 && um==0 && c == u) capicua = true; //si el nmero tiene 2 cifras (0, 0, 0, d, u) if (dm == 0 && um == 0 && c == 0 && d == u) capicua = true; // se entiende que un nmero de una cifra no es capica

    if (capicua) System.out.println ("el nmero es capica");

    Ejercicios de Programacin en Java 18

    www.detodoprogramacion.com

  • else System.out.println ("el nmero NO es capica"); } }

    14. Pedir una nota de 0 a 10 y mostrarla de la forma: Insuficiente, Suficiente, Bien...

    package bol01ej14;

    public class Main {

    public static void main(String[] args) { int nota;

    System.out.print("Introduzca una nota: "); nota=Entrada.entero();

    // tanto los if's como los else's encierran a una sola instruccin // y no es necesario utilizar llaves { } if(nota>=0 && nota

  • if(nota==9 || nota==10 ) System.out.println("SOBRESALIENTE"); } }

    package bol01ej14b;

    public class Main {

    public static void main(String[] args) { int nota;

    System.out.print("Introduzca una nota: "); nota=Entrada.entero();

    switch(nota){ case 0: case 1: case 2: case 3: case 4: System.out.println("INSUFICIENTE"); break; case 5: System.out.println("SUFICIENTE"); break; case 6: System.out.println("BIEN"); break; case 7: case 8: System.out.println("NOTABLE"); break; case 9:

    Ejercicios de Programacin en Java 20

    www.detodoprogramacion.com

  • case 10: System.out.println("SOBRESALIENTE"); break; default: System.out.println("ERROR"); break; } }}

    15. Pedir el da, mes y ao de una fecha e indicar si la fecha es correcta. Suponiendo todos los meses de 30 das.

    package bol01ej15;

    public class Main {

    public static void main(String[] args) { int dia,mes,ao;

    // para que una fecha sea correcta se tiene que cumplir // da en el rango 1..30 // mes en el rango 1..12 // ao cualquiera distinto del 0

    System.out.print("Introduzca da: "); dia=Entrada.entero(); System.out.print("Introduzca mes: "); mes=Entrada.entero(); System.out.print("Introduzca ao: "); ao=Entrada.entero(); if (dia >= 1 && dia = 1 && mes

  • if (ao != 0) System.out.println ("Fecha correcta"); else System.out.println ("Ao incorrecto"); else System.out.println("Mes incorrecto"); else System.out.println("Da incorrecto"); }}

    16. Pedir el da, mes y ao de una fecha e indicar si la fecha es correcta. Con meses de 28, 30 y 31 das. Sin aos bisiestos.

    package bol01ej16;

    public class Main {

    public static void main(String[] args) { int dia,mes,ao;

    System.out.print("Introduzca da: "); dia=Entrada.entero(); System.out.print("Introduzca mes: "); mes=Entrada.entero(); System.out.print("Introduzca ao: "); ao=Entrada.entero(); // el nico ao que no existe es el 0 if(ao==0) System.out.println("Fecha incorrecta"); else{ if(mes==2 && (dia>=1 && dia

  • System.out.println(dia + "/" + mes + "/" + ao+": Fecha correcta"); else{ if((mes==4 || mes==6 || mes==9 || mes==11) && (dia>=1 && dia=1 && dia
  • dias_del_mes = 0; // si se utiliza un mes fuera del rango 1..12 // supondremos que los das del mes son 0.

    if(ao==0) // el nico ao que no existe es el 0 fecha_correcta = false; if (dia31) // un da fuera del rango 1..31 no tiene sentido fecha_correcta = false; if (mes12) // un mes fuera del rango 1..12 no tiene sentido fecha_correcta = false;

    if(mes==2 ) dias_del_mes = 28; if(mes==4 || mes==6 || mes==9 || mes==11) dias_del_mes = 30; if(mes==1 || mes==3 || mes==5 || mes==7 || mes==8 || mes==10 || mes==12) dias_del_mes = 31;

    if (dia > dias_del_mes) fecha_correcta = false;

    if (fecha_correcta) System.out.println(dia + "/" + mes + "/" + ao+": Fecha correcta"); else System.out.println("Fecha incorrecta"); }}

    17. Pedir el da, mes y ao de una fecha correcta y mostrar la fecha del da siguiente. suponer que todos los meses tienen 30 das.

    package bol01ej17;

    public class Main {

    Ejercicios de Programacin en Java 24

    www.detodoprogramacion.com

  • public static void main(String[] args) { int dia,mes,ao;

    System.out.print("Introduzca da: "); dia=Entrada.entero(); System.out.print("Introduzca mes: "); mes=Entrada.entero(); System.out.print("Introduzca ao: "); ao=Entrada.entero();

    // suponemos que la fecha introducida es correcta // incrementamos el da dia ++;

    // si el da supera 30, lo reiniciamos a 1 e incrementamos el mes if (dia >= 30) { dia = 1; mes ++;

    // si el mes supera 12, lo reiniciamos a 1 e incrementamos el ao if (mes >= 12) { mes = 1; ao ++; } } // habra que tener en cuenta que el ao pasa del -1 al +1 // en este cdigo pasaramos del ao -1 al 0 (que nunca existi) // para corregirlo:

    if (ao == 0) ao = 1;

    Ejercicios de Programacin en Java 25

    www.detodoprogramacion.com

  • System.out.println (dia + "/"+ mes + "/" + ao); }}

    18. dem que el ej. 17, suponiendo que cada mes tiene un nmero distinto de das (suponer que febrero tiene siempre 28 das).

    package bol01ej18;

    public class Main {

    public static void main(String[] args) { int dia,mes,ao; int dias_del_mes=0; // guardaremos el nmero de das que tiene el mes

    System.out.print("Introduzca da: "); dia=Entrada.entero(); System.out.print("Introduzca mes: "); mes=Entrada.entero(); System.out.print("Introduzca ao: "); ao=Entrada.entero();

    // suponemos que la fecha introducida es correcta

    if(mes==2 ) dias_del_mes = 28; if(mes==4 || mes==6 || mes==9 || mes==11) dias_del_mes = 30; if(mes==1 || mes==3 || mes==5 || mes==7 || mes==8 || mes==10 || mes==12) dias_del_mes = 31;

    // incrementamos el da dia ++;

    Ejercicios de Programacin en Java 26

    www.detodoprogramacion.com

  • // si el da supera el nmero de das del mes, // lo reiniciamos a 1 e incrementamos el mes if (dia >= dias_del_mes) { dia = 1; mes ++;

    // si el mes supera 12, lo reiniciamos a 1 e incrementamos el ao if (mes >= 12) { mes = 1; ao ++; } } // habra que tener en cuenta que el ao pasa del -1 al +1 // en este cdigo pasaramos del ao -1 al 0 (que nunca existi) // para corregirlo:

    if (ao == 0) ao = 1; System.out.println (dia + "/"+ mes + "/" + ao); }}

    19. Pedir dos fechas y mostrar el nmero de das que hay de diferencia. Suponiendo todos los meses de 30 das.

    package bol01ej19;

    public class Main {

    Ejercicios de Programacin en Java 27

    www.detodoprogramacion.com

  • public static void main(String[] args) { int dia1,mes1,ao1; int dia2,mes2,ao2; int total_dias;

    System.out.println ("Fecha 1:"); System.out.print("Introduzca da: "); dia1=Entrada.entero(); System.out.print("Introduzca mes: "); mes1=Entrada.entero(); System.out.print("Introduzca ao: "); ao1=Entrada.entero();

    System.out.println ("Fecha 2:"); System.out.print("Introduzca da: "); dia2=Entrada.entero(); System.out.print("Introduzca mes: "); mes2=Entrada.entero(); System.out.print("Introduzca ao: "); ao2=Entrada.entero();

    // suponemos que las fecha introducidas son correctas

    // convertimos las dos fechas a das y calculamos la diferencia total_dias = dia2-dia1 + 30*(mes2-mes1)+365*(ao2-ao1);

    System.out.println ("Das de diferencia: " + total_dias); }}

    20. Pedir una hora de la forma hora, minutos y segundos, y mostrar la hora en el segundo siguiente.

    package bol01ej20;

    Ejercicios de Programacin en Java 28

    www.detodoprogramacion.com

  • public class Main {

    public static void main(String[] args) { int h,m,s; // hora, minutos y segundos

    System.out.print("Introduzca hora: "); h=Entrada.entero(); System.out.print("Introduzca minutos: "); m=Entrada.entero(); System.out.print("Introduzca segundos: "); s=Entrada.entero();

    // suponemos que la hora introducida es correcta // incrementamos los segundos s ++;

    // si los segundos superan 59, los reiniciamos a 0 e incrementamos los minutos if (s >= 60) { s = 0; m ++;

    // si los minutos superan 59, los reiniciamos a 0 e incrementamos la hora if (m >= 60) { m = 0; h ++; // si la hora supera 23, la reiniciamos a 0 if (h>=24) h=0; } } System.out.println ("Fecha: "+ h + ":"+ m + ":" + s); }}

    Ejercicios de Programacin en Java 29

    www.detodoprogramacion.com

  • 21. Pedir una nota numrica entera entre 0 y 10, y mostrar dicha nota de la forma: cero, uno, dos, tres...

    package bol01ej21;

    public class Main {

    public static void main(String[] args) { int num; System.out.print("Introduzca una nota numrica entre 0 y 10: "); num=Entrada.entero(); switch(num){ case 0: System.out.println("CERO"); break;

    case 1: System.out.println("UNO"); break;

    case 2: System.out.println("DOS"); break;

    case 3: System.out.println("TRES"); break;

    case 4: System.out.println("CUATRO"); break;

    case 5: System.out.println("CINCO"); break;

    Ejercicios de Programacin en Java 30

    www.detodoprogramacion.com

  • case 6: System.out.println("SEIS"); break;

    case 7: System.out.println("SIETE"); break;

    case 8: System.out.println("OCHO"); break;

    case 9: System.out.println("NUEVE"); break;

    case 10: System.out.println("DIEZ"); break; } }}

    22. Pedir un nmero de 0 a 99 y mostrarlo escrito. Por ejemplo, para 56 mostrar: cincuenta y seis.

    package bol01ej22;

    public class Main {

    public static void main(String[] args) { int num; int unidades, decenas; // esta versin muesrta 11 como diez y uno. // es una forma de hacerlo bastante burda.

    Ejercicios de Programacin en Java 31

    www.detodoprogramacion.com

  • // se puede poner algunos condicionales para los nmeros especiales: 11,12,... // y otro condicional para mostrar "y"

    System.out.print("Introduzca un nmero (0 a 99): "); num=Entrada.entero(); unidades = num % 10; decenas = num / 10;

    switch(decenas){ case 0: System.out.print(""); break;

    case 1: System.out.print("diez"); break;

    case 2: System.out.print("veinte"); break;

    case 3: System.out.print("treinta"); break;

    case 4: System.out.print("cuarenta"); break;

    case 5: System.out.print("cincuenta"); break;

    case 6: System.out.print("sesenta");

    Ejercicios de Programacin en Java 32

    www.detodoprogramacion.com

  • break;

    case 7: System.out.print("setenta"); break;

    case 8: System.out.print("ochenta"); break;

    case 9: System.out.print("noventa"); break; } System.out.print (" y ");

    switch(unidades){ case 0: System.out.println(""); break;

    case 1: System.out.println("uno"); break;

    case 2: System.out.println("dos"); break;

    case 3: System.out.println("tres"); break;

    case 4: System.out.println("cuatro");

    Ejercicios de Programacin en Java 33

    www.detodoprogramacion.com

  • break;

    case 5: System.out.println("cinco"); break;

    case 6: System.out.println("seis"); break;

    case 7: System.out.println("siete"); break;

    case 8: System.out.println("ocho"); break;

    case 9: System.out.println("nueva"); break; } }}

    Ejercicios de Programacin en Java 34

    www.detodoprogramacion.com

  • Boletn 2Condicionales y bucles

    1. Leer un nmero y mostrar su cuadrado, repetir el proceso hasta que se introduzca un nmero negativo.package bol02ej01;

    public class Main {

    public static void main(String[] args) { int num,cuadrado; // num guardar el nmero que leamos // y cuadrado guardar el cuadrado de num

    System.out.print("Introduzca nmero: "); num=Entrada.entero();

    while(num>=0){ // repetimos el proceso mientras el nmero ledo no sea negativo cuadrado=num*num; System.out.println(num+ " es igual a "+ cuadrado); System.out.print("Introduzca otro nmero: "); num=Entrada.entero(); // volvemos a leer num } }}

    Ejercicios de Programacin en Java 35

    www.detodoprogramacion.com

  • 2. Leer un nmero e indicar si es positivo o negativo. El proceso se repetir hasta que se introduzca un 0.

    package bol02ej02;

    public class Main {

    public static void main(String[] args) { int num; System.out.print("Introduzca un nmero: "); num=Entrada.entero();

    while(num!=0) // mientras num sea distinto de 0 { if(num>0) // mayor que cero: positivo System.out.println("Positivo"); else // si no es positivo: es negativo System.out.println("Negativo");

    // repetimos el proceso y volvemos a leer num System.out.print("Introduzca otro nmero: "); num=Entrada.entero(); } // al salir del mientras tenemos la certeza que num es 0 }}

    3. Leer nmeros hasta que se introduzca un 0. Para cada uno indicar si es par o impar.

    package bol02ej03;

    Ejercicios de Programacin en Java 36

    www.detodoprogramacion.com

  • public class Main {

    public static void main(String[] args) { int num; System.out.print("Introduzca un nmero: "); num=Entrada.entero();

    while(num!=0) // mientras num sea distinto de 0 { if(num%2 == 0) // si el resto de dividir entre dos es cero: esto indica que es par System.out.println("Par"); else // en caso contrario: impar System.out.println("Impar");

    // repetimos el proceso y volvemos a leer num System.out.print("Introduzca otro nmero: "); num=Entrada.entero(); } // al salir del mientras tenemos la certeza que num es 0 }}

    4. Pedir nmeros hasta que se teclee uno negativo, y mostrar cuntos nmeros se han introducido.

    package bol02ej04;

    public class Main {

    public static void main(String[] args) { int num, contador;

    Ejercicios de Programacin en Java 37

    www.detodoprogramacion.com

  • // num guardar los nmeros introducidos // y contador se incrementar para llevar la cuenta de los nmeros introducidos System.out.print("Introduzca un nmero: "); num=Entrada.entero();

    contador=0; // al comienzo el nmero de nmeros introducidos es 0 while(num>0) // mientras num sea positiva { contador =contador+1; // contador toma el valor que tuviera en este momento ms uno // en definitiva: contador se incrementa en uno

    System.out.print("Introduzca otro nmero: "); num=Entrada.entero(); }

    System.out.println("Se han introducido: " +contador + " nmeros"); // sin tener en cuenta el ltimo nmero negativo. }}

    5. Realizar un juego para adivinar un nmero. Para ello pedir un nmero N, y luego ir pidiendo nmeros indicando mayor o menor segn sea mayor o menor con respecto a N. El proceso termina cuando el usuario acierta.

    package bol02ej05;

    public class Main {

    public static void main(String[] args) { int n, num;

    Ejercicios de Programacin en Java 38

    www.detodoprogramacion.com

  • // n es el nmero que hay que acertar // num guarda los nmeros introducidos

    System.out.print("Introduce N: "); n =Entrada.entero();

    System.out.print("Introduce nmero: "); num=Entrada.entero(); while(num!=n) // mientras no coincidan ambos nmeros { if(num>n) System.out.println("menor"); else System.out.println("mayor");

    System.out.print("Introduce nmero: "); num=Entrada.entero(); }

    // al salir del mientras tenemos la certeza que num es igual a n System.out.println("acertaste..."); }}

    package bol02ej05;

    public class Main {

    public static void main(String[] args) { int n, num; // n es el nmero que hay que acertar // num guarda los nmeros introducidos

    Ejercicios de Programacin en Java 39

    www.detodoprogramacion.com

  • n=(int)(Math.random()*100)+1; // en lugar de pedir n... podemos hacer que se n tome un valor // aleatorio entre 1 y 100. // As el juego es algo ms entretenido.

    System.out.print("Introduce nmero: "); num=Entrada.entero(); while(num!=n) // mientras no coincidan ambos nmeros { if(num>n) System.out.println("menor"); else System.out.println("mayor");

    System.out.print("Introduce nmero: "); num=Entrada.entero(); }

    // al salir del mientras tenemos la certeza que num es igual a n System.out.println("acertaste..."); }}

    6. Pedir nmeros hasta que se teclee un 0, mostrar la suma de todos los nmeros introducidos.

    package bol02ej06;

    public class Main { public static void main(String[] args) {

    Ejercicios de Programacin en Java 40

    www.detodoprogramacion.com

  • int num,suma; suma=0;

    do { System.out.print("Introduzca un nmero: "); num=Entrada.entero();

    suma=suma+num; }

    while(num!=0);

    System.out.println("La suma de todos los nmeros es: "+suma); }}

    7. Pedir nmeros hasta que se introduzca uno negativo, y calcular la media.

    package bol02ej07;

    public class Main { public static void main(String[] args) { int num, suma, elementos; float media; // la media puede tener decimales

    // num: guardar los nmeros introducidos por el usuario // suma: almacenar la suma de todos los nmeros introducidos // elementos: ser un contador que indicar el nmeros de nmeros 8o elementos) introducidos

    Ejercicios de Programacin en Java 41

    www.detodoprogramacion.com

  • System.out.print("Introduzca un nmero: "); num=Entrada.entero(); suma= 0; elementos= 0; while(num>=0) // nos interesan los positivos y el cero { suma+=num; elementos++;

    System.out.print("Introduzca otro nmero: "); num=Entrada.entero(); }

    if (elementos == 0) // dara un error de divisin por cero System.out.println("Imposible hacer la media"); else { media= (float)suma/elementos; System.out.println("La media es de: " + media); } }}

    8. Pedir un nmero N, y mostrar todos los nmeros del 1 al N.

    package bol02ej08;

    public class Main {

    public static void main(String[] args) {

    Ejercicios de Programacin en Java 42

    www.detodoprogramacion.com

  • int i,num;

    System.out.print("Introduce un nmero: "); num=Entrada.entero();

    i=1; // i es el contador que tomar los valores de 1 a n

    while(i=0;i-=7) System.out.println(i);

    // el for al llevar una sola instruccin en su cuerpo de ejecucin // no precisa de llaves { } }}

    Ejercicios de Programacin en Java 43

    www.detodoprogramacion.com

  • 10.Pedir 15 nmeros y escribir la suma total.

    package bol02ej10;

    public class Main {

    public static void main(String[] args) { int num,suma_total;

    suma_total=0; for (int i=1;i

  • el producto siempre valdr 0.

    // para calcular los 10 primeros nmeros impares utilizamos un for que: // // comience en 1 // y en cada vuelta se incremente en 2, as obtenemos // 1, 3, 5, 7, 9, 11, 13, 15, 17, 19.

    for (int i=1; i

  • factorial=1; // es importante inicializarlo a 1, ya que multiplicar-

    // por ejemplo: el factorial de 10 es: // 10*9*8*7*6*5*4*3*2*1 for (int i=num;i>0;i--) { factorial=factorial*i; }

    System.out.println("El factorial de " + num + " es: " + factorial); }}

    13.Pedir 10 nmeros. Mostrar la media de los nmeros positivos, la media de los nmeros negativos y la cantidad de ceros.

    package bol02ej13;

    public class Main {

    public static void main(String[] args) { int num; int cont_ceros; // el contador de ceros int cont_pos; // contador de positivos int cont_neg; // contador de negativos int suma_pos,suma_neg; // suma de los nmeros positivos y negativos float media_pos,media_neg; // las medias 8positivas y negativa9 pueden tener decimales

    Ejercicios de Programacin en Java 46

    www.detodoprogramacion.com

  • cont_ceros=0; cont_pos=0; cont_neg=0;

    suma_pos=0; suma_neg=0; for (int i=1;i0) { cont_pos++; suma_pos+=num; } else { cont_neg++; suma_neg+=num; } } }

    // tratamos los ceros System.out.println("El nmero de ceros introducidos es de: "+cont_ceros);

    //Tratamos los positivos if (cont_pos ==0) System.out.println("No se puede hacer la media de los positivos");

    Ejercicios de Programacin en Java 47

    www.detodoprogramacion.com

  • else { media_pos= (float)suma_pos/cont_pos; System.out.println("Media de los positivos: "+ media_pos); } // tratamos los negativos if (cont_pos ==0) System.out.println("No se puede hacer la media de los negativos"); else { media_neg= (float)suma_neg/cont_neg; System.out.println("Media de los negativos: "+ media_neg); } }}

    14.Pedir 10 sueldos. Mostrar su suma y cuantos hay mayores de 1000.

    package bol02ej14;

    public class Main {

    public static void main(String[] args) { int sueldo,suma,mayor_1000; suma=0; mayor_1000=0; for (int i=1;i1000) mayor_1000++;

    Ejercicios de Programacin en Java 48

    www.detodoprogramacion.com

  • suma=suma+sueldo; } System.out.println("Mayores de 1000 hay: "+mayor_1000); System.out.println("la suma es de: "+suma); }}

    15.Dadas las edades y alturas de 5 alumnos, mostrar la edad y la estatura media, la cantidad de alumnos mayores de 18 aos, y la cantidad de alumnos que miden ms de 1.75.

    package bol02ej15;

    public class Main {

    public static void main(String[] args) { int edad,media_edad,suma_edad,mayor_edad,mayor_175; //mayor_edad: mayores de 18 aos double altura,media_altura,suma_alt;

    mayor_edad=0; media_altura=0; mayor_175=0; suma_edad=0; suma_alt=0;

    for (int i=1;i18) mayor_edad++;

    Ejercicios de Programacin en Java 49

    www.detodoprogramacion.com

  • if(altura>1.75) mayor_175++;

    suma_edad=suma_edad+edad; suma_alt=suma_alt+altura; }

    media_edad=suma_edad/5; media_altura=suma_alt/5;

    System.out.println("\n\nLa edad media es de: " +media_edad); System.out.println("La altura media es de: " +media_altura); System.out.println("Mayor de 18 aos: " +mayor_edad); System.out.println("Mayor de 1.75: " +mayor_175); }}

    16.Pide un nmero (que debe estar entre 0 y 10) y mostrar la tabla de multiplicar de dicho nmero.

    package bol02ej16;

    public class Main {

    public static void main(String[] args) { int num;

    do { System.out.print("Introduce nmero (de 0 a 10): "); num=Entrada.entero(); }

    Ejercicios de Programacin en Java 50

    www.detodoprogramacion.com

  • while ( ! (0
  • int mas_600; // contador que sirve para llevar la cuenta de cuantas facturas hay de ms de 600

    facturacion_total = 0; litros_cod1 = 0; mas_600 = 0;

    for (int i=1;i= 600) mas_600 ++;

    }

    System.out.println("\n\n\nResumen de ventas\n"); // facturacin total System.out.println("La facturacin total es de: " +facturacion_total + "");

    Ejercicios de Programacin en Java 52

    www.detodoprogramacion.com

  • // litros del articulo 1 System.out.println("Ventas del producto 1: " + litros_cod1 + " litros"); // factura de mas de 600 euros System.out.println("Factura superior a 600: " + mas_600); }}

    18.Igual que el anterior pero suponiendo que no se introduce el precio por litro. Solo existen tres productos con precios:

    1- 0,6 /litro, 2- 3 /litro y 3- 1,25 /litro.

    package bol02ej18;

    public class Main {

    public static void main(String[] args) { int codigo; // el cdigo del artculo en cada factura int litros; // la cantidad de litros en cada factura float precio; // ahora el precio no se pide por teclado

    float importe_factura; // guardar el importe de la factura con la que estemos trabajando

    float facturacion_total; // el importe de todas las facturas int litros_cod1; // el total de litros vendidos del producto 1 en todas las facturas int mas_600; // contador que sirve para llevar la cuenta de cuantas facturas hay de ms de 600

    facturacion_total = 0;

    Ejercicios de Programacin en Java 53

    www.detodoprogramacion.com

  • litros_cod1 = 0; mas_600 = 0;

    for (int i=1;i

  • litros_cod1 += litros;

    if(importe_factura >= 600) mas_600 ++; }

    System.out.println ("\n\n\nResumen de ventas\n"); // facturacin total System.out.println("La facturacin total es de: " +facturacion_total + "");

    // litros del articulo 1 System.out.println("Ventas del producto 1: " + litros_cod1 + " litros"); // factura de mas de 600 euros System.out.println("Factura superior a 600: " + mas_600);

    }}

    19.Dadas 6 notas, escribir la cantidad de alumnos aprobados, condicionados (=4) y suspensos.

    package bol02ej19;

    public class Main {

    public static void main(String[] args) { int nota,aprobados,suspensos,condicionados;

    aprobados=0; suspensos=0;

    Ejercicios de Programacin en Java 55

    www.detodoprogramacion.com

  • condicionados=0; for (int i=1;i= 5) aprobados++; else if(nota < 4) // este if sobra, ya que es el nico caso posible suspensos++; }

    System.out.println("Aprobados: " +aprobados); System.out.println("Suspensos: " +suspensos); System.out.println("Condicionados: "+condicionados); }}

    20.Pedir un nmero N, introducir N sueldos, y mostrar el sueldo mximo.

    package bol02ej20;

    public class Main {

    public static void main(String[] args) {

    Ejercicios de Programacin en Java 56

    www.detodoprogramacion.com

  • int sueldo, sueldo_max; int n;

    sueldo_max = 0; // como los sueldos son positivos, inicializamos el sueldo // mximo a cero.

    System.out.print("Nmero de sueldos: "); n = Entrada.entero();

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

    for (int i=1;i sueldo_max) sueldo_max = sueldo; // si leemos un sueldo mayor que el mximo, este sueldo ser el nuevo mximo. }

    System.out.println("\nEl sueldo mximo es: " +sueldo_max); }}

    package bol02ej20;

    public class Main {

    public static void main(String[] args) { int sueldo, sueldo_max=0; int n;

    Ejercicios de Programacin en Java 57

    www.detodoprogramacion.com

  • boolean primer_sueldo_asignado; // esta bandera indica si hemos asignado el primer sueldo como sueldo mximo // con esto podremos tener sueldos negativos

    primer_sueldo_asignado = false;

    System.out.print("Nmero de sueldos: "); n = Entrada.entero();

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

    for (int i=1;i sueldo_max) sueldo_max = sueldo; // si leemos un sueldo mayor que el mximo, este sueldo ser el nuevo mximo. }

    System.out.println("\nEl sueldo mximo es: " +sueldo_max); }}

    Ejercicios de Programacin en Java 58

    www.detodoprogramacion.com

  • 21.Pedir 10 nmeros, y mostrar al final si se ha introducido alguno negativo.

    package bol02ej21;

    public class Main {

    public static void main(String[] args) { int num; boolean hay_negativo; // la variable hay_negativo segn los dos posibles valores indica: // false: no se ha introducido ningn nmero negativo // true: al menos hay un nmero negativo

    hay_negativo =false; // suponemos que no habr ningn negativo

    for (int i=1;i

  • 22.Pedir 5 calificaciones de alumnos y decir al final si hay algn suspenso.

    package bol02ej22;

    public class Main {

    public static void main(String[] args) { int notas; boolean suspensos;

    suspensos=false; // suponemos que en principio no hay ningn suspenso

    for (int i=0;i

  • public static void main(String[] args) { int num; boolean multiplo_3;

    multiplo_3=false;

    for (int i=0;i

  • Boletn 3Bucles anidados

    1. Realiza detenidamente una traza al siguiente programa y muestra cual seria la salida por pantalla:

    PROGRAMA ej_1VARIABLES

    suma, i, j: ENTEROCOMIENZO

    PARA i

  • package bol03ej01;

    public class Main { public static void main(String[] args) { int suma; for (int i=0;i0;j--){ suma=i*10+j; System.out.println(suma); } } }}

    2. Realiza una traza del siguiente algoritmo y muestra la salida generada por pantalla.

    PROGRAMA ej_1VARIABLES

    i, j: ENTEROCOMIENZO

    PARA i

  • package bol03ej02;

    public class Main {

    public static void main(String[] args) { int j; for (int i=0;i

  • { System.out.println (tabla + " x " + i + " = " + tabla*i); } } }}

    4. Dibuja un cuadrado de n elementos de lado utilizando *.

    package bol03ej04;

    public class Main {

    public static void main(String[] args) { int n; // tamao del lado int fila, col;

    System.out.print ("Lado del cuadrado: "); n = Entrada.entero();

    for (fila=1; fila

  • 5. Necesitamos mostrar un contador con 5 dgitos (X-X-X-X-X), que muestre los nmeros del 0-0-0-0-0 al 9-9-9-9-9, con la particularidad que cada vez que aparezca un 3 lo sustituya por una E.

    package bol03ej05;

    public class Main {

    public static void main(String[] args) { for (int i=0;i

  • System.out.print("E"); else System.out.print(m);

    System.out.println(" ");

    } } } } } }}

    6. Realizar un programa que nos pida un nmero n, y nos diga cuantos nmeros hay entre 1 y n que son primos.

    package bol03ej06;

    public class Main {

    public static void main(String[] args) { int j,num,cont_pri; boolean primo;

    cont_pri=0; System.out.print("Introduce numero: "); num=Entrada.entero();

    // vamos procesando todos los nmeros entre 1..num for(int i=1;i

  • // para cada nmero i, calcularemos si es primo // veremos si el nmero i es divisible en el rango 2..i-1 // El bucle while se puede hacer con menos vuelta... consultar algoritmos para primos

    primo=true; j=2; while (j

  • Boletn 4Tablas

    1. Leer 5 nmeros y mostrarlos en el mismo orden introducido.

    package bol04ej01;

    public class Main {

    public static void main(String[] args) { int t[]; t = new int[5];

    for (int i=0;i

  • 2. Leer 5 nmeros y mostrarlos en orden inverso al introducido.

    package bol04ej02;

    public class Main {

    public static void main(String[] args) { int t[]=new int[5]; for (int i=0;i=0;i--) System.out.println(t[i]); }}

    3. Leer 5 nmeros por teclado y a continuacin realizar la media de los nmeros positivos, la media de los negativos y contar el nmero de ceros.

    package bol04ej03;

    public class Main {

    public static void main(String[] args) { int t[]=new int [5]; int suma_pos,cont_pos,suma_neg,cont_neg,cont_cero;

    Ejercicios de Programacin en Java 70

    www.detodoprogramacion.com

  • suma_pos=0; cont_pos=0; suma_neg=0; cont_neg=0; cont_cero=0;

    // utilizamos un bucle para leer los datos y otro para procesarlos // se podran hacer ambas operaciones, leer y procesar, en un solo bucle for (int i=0;i

  • System.out.println("La media de los negativos: " + (float)suma_neg/cont_neg);

    System.out.println("La cantidad de cero es de: " + cont_cero); }}

    4. Leer 10 nmeros enteros. Debemos mostrarlos en el siguiente orden: el primero, el ltimo, el segundo, el penltimo, el tercero, etc.

    package bol04ej04;

    public class Main {

    public static void main(String[] args) { int i, t[];

    t = new int[10];

    for (i=0;i

  • // como en cada vuelta de for se muestran dos nmeros // para mostrarlos todos, solo necesitaremos la mitad de vueltas. }}

    5. Leer por teclado dos tablas de 10 nmeros enteros y mezclarlas en una tercera de la forma: el 1 de A, el 1 de B, el 2 de A, el 2 de B, etc.

    package bol04ej05;

    public class Main {

    public static void main(String[] args) { int a[], b[], c[]; int i,j;

    a=new int[10]; b=new int[10];

    // la tabla c tendr que tener el doble de tamao que a y b. c = new int [20];

    // leemos la tabla a System.out.println("Leyendo la tabla a");

    for (i=0;i

  • System.out.println("Leyendo la tabla b");

    for (i=0;i

  • public class Main {

    public static void main(String[] args) { int a[], b[], c[]; int i,j;

    a=new int[12]; b=new int[12];

    // la tabla c tendr que tener el doble de tamao que a y b. c = new int [24];

    // leemos la tabla a System.out.println("Leyendo la tabla a");

    for (i=0;i

  • while (i
  • 7. Leer por teclado una serie de 10 nmeros enteros. La aplicacin debe indicarnos si los nmeros estn ordenados de forma creciente, decreciente, o si estn desordenados.

    package bol04ej07;

    public class Main {

    public static void main(String[] args) { int numeros[]; int i;

    boolean creciente, decreciente; // creciente indicar si los nmeros estn ordenados de forma creciente // decreciente indicar si la serie est ordenada de forma decreciente

    // los posible valores para creciente y decreciente son:

    /* creciente decreciente * false false -> cuando todos los nmeros sean idnticos * false true -> orden decreciente * true false -> orden creciente * true true -> desordenado * * si, para algn i, se cumple t[i]>t[i+1]: la serie t[i], t[i+1] es decreciente * * o el caso contrario. * */

    numeros = new int [10];

    creciente = false; decreciente = false;

    Ejercicios de Programacin en Java 77

    www.detodoprogramacion.com

  • // leemos los nmeros System.out.println("Leyendo nmeros:");

    for (i=0;i

  • 8. Disear una aplicacin que declare una tabla de 10 elementos enteros. Leer mediante el teclado 8 nmeros. Despus se debe pedir un nmero y una posicin, insertarlo en la posicin indicada, desplazando los que estn detrs.

    package bol04ej08;

    public class Main {

    public static void main(String[] args) { int t[]=new int[10]; int elemento, posicion;

    // leemos 8 nmeros System.out.println("Leyendo datos..."); for (int i=0;i

  • for (int i=7;i>=posicion;i--) t[i+1]=t[i];

    //insertamos el nuevo elemento t[posicion] =elemento;

    System.out.println("La tabla queda:"); for (int i=0;i

  • // desplazamos hacia abajo (de 0 hacia la ltima posicin) // al desplazar perdemos el ltimo valor, por eso lo hemos guardado antes. for (int i=8;i>=0;i--) t[i+1]=t[i];

    // el ltimo valor pasa a ser el primero t[0] =ultimo; System.out.println("La tabla queda:"); for (int i=0;i

  • n = Entrada.entero();

    // del ejercicio anterior tenemos una versin que desplaza una sola // posicin. Si repetimos este proceso n veces, conseguiremos // desplazar n veces. // este algoritmo es muy fcil de implementar, pero es muy costoso en tiempo.

    for (int vueltas=1;vueltas =0;i--) t[i+1]=t[i];

    // el ltimo valor pasa a ser el primero t[0] =ultimo; }

    System.out.println("La tabla queda:"); for (int i=0;i

  • public static void main(String[] args) { int t[]=new int[10]; int n;

    // leemos la tabla for (int i=0;i

  • 11. Leer 5 elementos numricos que se introducirn ordenados de forma creciente. stos los guardaremos en una tabla de tamao 10. Leer un nmero N, e insertarlo en el lugar adecuado para que la tabla contine ordenada.

    package bol04ej11;

    public class Main {

    public static void main(String[] args) { int t[]=new int[10]; int num,sitio_num,j;

    for (int i=0;i

  • for (int i=4; i>=sitio_num; i--) t[i+1]=t[i];

    // por ltimo ponemos num en su sitio para que todo siga ordenado t[sitio_num]=num;

    System.out.println("La nueva serie ordenada queda: "); for (int i=0;i

  • System.out.println();

    // leemos la posicin que nos interesa // suponemos que la posicin est en el rango 0..9 System.out.print("Posicin a eliminar: "); posicion=Entrada.entero();

    // desplazamos desde posicin hasta el final todos los elementos un lugar hacia la izquierda // con lo que el elemento que est en posicin se pierde (se borra)

    for (int i=posicion;i

  • */

    public static void main(String[] args) { int t[]; int cont_par, par[]; // contador de nmeros pares y tabla para guardarlos int cont_impar,impar[]; // dem para los impares

    t = new int[10];

    // Leemos los valores de la tabla for (int i=0;i

  • if(t[i]%2==0) { par[cont_par]=t[i]; cont_par++; } else { impar[cont_impar]=t[i]; cont_impar++; } System.out.println("\n\nTabla par:"); for (int i=0;i
  • int impar[];

    t = new int[10];

    // Leemos los valores de la tabla for (int i=0;i

  • 14. Leer dos series de 10 enteros, que estarn ordenados crecientemente. Copiar (fusionar) las dos tablas en una tercera, de forma que sigan ordenados.

    package bol04ej14;

    public class Main {

    public static void main(String[] args) { int a[], b[], c[]; int i,j,k; a =new int[10]; b =new int[10];

    // leemos a System.out.println("Datos para a:"); for (i=0;i

  • c = new int [20];

    // comenzamos a fusionar a y b en c i=0; // utilizaremos i como ndice de a; j=0; // utilizaremos j como ndice de b; k=0; // utilizaremos k como ndice de c

    while(i

  • { c[k] = a[i]; i++; k++; }

    System.out.println("Mostramos la tabla c:");

    for (k=0;k

  • System.out.println("Introduzca numero a buscar: "); num=Entrada.entero(); j=0; while(j
  • public static void main(String[] args) { int primer[], segundo[], tercer[]; // notas del primer, segundo y tercer trimestre int num,i;

    int suma_primer, suma_segundo, suma_tercer; double media_alumno;

    // creamos las tablas necesarias primer = new int [5]; segundo = new int [5]; tercer = new int [5];

    // el programa consta de dos partes: entrada de datos y procesado. Se podran procesar las // notas mientras se leen. Preferimos utilizar dos bloques por tener un cdigo ms legible.

    // leemos las notas del primer trimestre System.out.println("Notas de primer trimestre:"); for (i=0;i

  • }

    // calculamos las medias suma_primer = 0; // ponemos a 0 los acumuladores suma_segundo = 0; suma_tercer = 0;

    for (i =0; i < 5; i++) { suma_primer += primer[i]; suma_segundo += segundo[i]; suma_tercer += tercer[i]; }

    // mostramos datos System.out.println("Media primer trimestre: "+ suma_primer/5.0); System.out.println("Media segundo trimestre: "+ suma_segundo/5.0); System.out.println("Media tercer trimestre: "+ suma_tercer/5.0); System.out.println();

    // leemos la posicin del alumnos que nos interesa // una posible mejora es comprobar que el ndice se encuentre // entre 0 y 4 System.out.print ("Introduzca posicin del alumno (de 0 a 9): "); num=Entrada.entero();

    // la media del alumno es la suma de sus notas entre 3 media_alumno = (double) (primer[num]+segundo[num]+tercer[num])/3; System.out.println("La media del alumno es: " + media_alumno); }}

    Ejercicios de Programacin en Java 95

    www.detodoprogramacion.com

  • Boletn 5Tablas n-dimensionales

    1. Crear una tabla bidimensional de tamao 5x5 y rellenarla de la siguiente forma: la posicin T[n,m] debe contener n+m. Despus se debe mostrar su contenido.

    package bol05ej01;

    public class Main {

    public static void main(String[] args) { int t[][]; // definimos t como una tabla bidimensional

    t = new int [5][5]; // creamos la tabla de 5x5

    for (int i=0;i

  • for (int i=4;i>=0;i--) { System.out.println(); for (int j=0;j
  • }

    simetrica=true; // suponemos que la matriz es simtrica, y en caso de // encontrar un caso donde t[i][j] sea distinta de t[j][i] pondremos // simtrica a falso.

    //una solucin es mirar todos los elementos de la matriz, pero se hacen comprobaciones // dobles, un ejemplo: comprobamos t[1][2] con t[2][1]... pero ms tarde comprobaremos // t[2][1] con t[1][2]

    // la solucin ser mirar solo la zona inferior o superior a la diagonal principal. // En el momento que tengamos la constancia de que no es simtrica, pararemos // todas las comprobaciones

    i=0; while(i

  • 3. Crear y cargar dos matrices de tamao 3x3, sumarlas y mostrar su suma.

    package bol05ej03;

    public class Main {

    public static void main(String[] args) { int a[][], b[][], suma[][]; int i,j;

    a = new int[3][3]; b = new int[3][3];

    // Leemos los datos System.out.println ("Matriz A:");

    for (i=0;i

  • // hacemos la suma suma = new int[3][3];

    for (i=0;i

  • int aux;

    for (int i=0;i

  • // mostramos la matriz transpuesta

    System.out.println(); System.out.println("---------------------"); System.out.println ("Matriz transpuesta");

    for (int i=2;i>=0;i--){ System.out.println(); for (int j=0;j

  • // inicializan a 0. Por lo que esta instruccin no es necesaria. Se aa_ // de para que el cdigo sea ms comprensible.

    // mostramos la matriz // la forma de ver la matriz no es la tpica que estamos acostumbrados en // matemtica... pero desde el punto de vista del algoritmo no es relevante.

    System.out.println ("Matriz:"); for (i=0;i

  • t[i][j]=Entrada.entero(); } }

    // sumamos columna a columna System.out.println(); for (i=0;i

  • int i,j; a = new int[5][9]; b = new int [9][5];

    for (i=0;i

  • 8. Crear una matriz marco de tamao 8x6: todos sus elementos deben ser 0 salvo los de los bordes que deben ser 1. Mostrarla.

    package bol05ej08;

    public class Main {

    public static void main(String[] args) { int i,j; int t[][]; t = new int[8][6]; // se inicializa toda la tabla a 0.

    // rellenamos la matriz marco for (i=0;i

  • package bol05ej09;

    public class Main {

    public static void main(String[] args) { int t[][][]; int i,j,k;

    t = new int[9][9][9];

    for (i=0;i

  • }}

    10.Los siguientes programas piden una serie de datos y tras procesarlos ofrecen unos resultados por pantalla. Mostrar el resultado:

    PROGRAMA Ej10aVARIABLES i, m, a: ENTEROS t: TABLA [5] ENTEROSCOMIENZO PARA i0 HASTA 4 leer (t[i]) FIN PARA m 0 PARA i 0 HASTA 4 SI t[i] > m m t[i] FIN SI FIN PARA a t[4-m] t[4-m] t[m] t[m] a PARA i 0 HASTA 4 escribir (t[i]) FIN PARAFIN PROGRAMADatos de entrada: -4, 0, 1, 3 y 2.

    PROGRAMA Ej10bVARIABLES n, i: ENTEROS a, b: TABLA [100] ENTEROSCOMIENZO n 10 PARA i0 HASTA n-1 leer (a[i]) FIN PARA PARA i 0 HASTA n/2 b[i] a[n-1-i] b[n-1-i] a[i] FIN PARA PARA i 0 HASTA n-1 SI i mod 2 = 0 escribir (a[i]) SINO escribir (b[i]) FIN SI FIN PARAFIN PROGRAMADatos de entrada: 6, 2, 8, 9, 2, 5, 8, 2, 6 y 1.

    Ejercicios de Programacin en Java 108

    www.detodoprogramacion.com

  • package bol05ej10;

    public class Main {

    public static void main(String[] args) { int i, m, a;

    // la idea de este ejercicio es hacer una traza de forma manual, y tras // sta, escribir el cdigo equivalente para comprobar el resultado. // Debemos destacar que este algoritmo no tiene sentido ni hace nada en concreto // incluso con otros datos de entrada el algoritmo puede dar un error, al // utilizar datos como ndices de tablas sin las pertinentes // comprobaciones.

    int t = new int [5];

    for (i=0; i

  • package bol05ej10;

    public class Main {

    public static void main(String[] args) { int n, i;

    /* la idea de este ejercicio es hacer una traza de forma manual, y tras sta, escribir el cdigo equivalente para comprobar el resultado. Debemos destacar que este algoritmo no tiene sentido ni hace nada en concreto incluso con otros datos de entrada el algoritmo puede dar un error, al utilizar datos como ndices de tablas sin las pertinentes comprobaciones. */

    int a[] = new int [10]; int b[] = new int [10];

    for (i=0; i

  • 11-Se pretende realizar un programa para gestionar la lista de participaciones en una competicin de salto de longitud. El nmero de plazas disponible es de 10. Sus datos se irn introduciendo en el mismo orden que vayan inscribindose los atletas. Disear el programa que muestre las siguientes opciones:

    1- Inscribir un participante.2- Mostrar listado de datos.3- Mostrar listado por marcas.4- Finalizar el programa.

    Si se selecciona 1, se introducirn los datos de uno de los participantes: Nombre, mejor marca del 2002, mejor marca del 2001 y mejor marca del 2000.Si se elige la opcin 2, se debe mostrar un listado por nmero de dorsal.La opcin 3 mostrar un listado ordenado por la marca del 2002, de mayor a menor.Tras procesar cada opcin, se debe mostrar de nuevo el men inicial, hasta que se seleccione la opcin 4, que terminar el programa.

    package bol05ej11;

    public class Main {

    public static void main(String[] args) { final int TAM=10,D=0,M0=1,M1=2,M2=3; // TAM: Nmero mximo de participantes // D: nmero de dorsal // M0, M1, M2: Marca del 2000, 2001, y 2002 int opc,numc,dorsal,i,aux; boolean d_rep,inter;

    int part[][]=new int[TAM][4]; numc=0; opc=0;

    Ejercicios de Programacin en Java 111

    www.detodoprogramacion.com

  • do{ System.out.println(); System.out.println("--------------------------------"); System.out.println("1. Inscribir participantes"); System.out.println("2. Mostrar listado por datos"); System.out.println("3. Mostrar listado por marcas"); System.out.println("4. Salir"); System.out.println("--------------------------------"); System.out.print("Por favor, introduzca una opcin: "); opc=Entrada.entero(); System.out.println(); switch(opc){ case 1: if(numc==20) System.out.println("Listado completo"); else{ do{ System.out.print("Introduzca dorsal: "); dorsal=Entrada.entero();

    d_rep=false; i=0; while(i

  • System.out.print("Introduzca marca del 2001: "); part[numc][M1]=Entrada.entero(); System.out.print("Introduzca marca del 2002: "); part[numc][M2]=Entrada.entero(); System.out.println(); numc++; } } break;

    case 2: // mtodo de ordenacin por burbuja, controlado por intercambio inter=true; while(inter==true){ inter=false; for (int j=0;jpart[j+1][D]){ for (int k=0;k

  • inter=true; while(inter==true){ inter=false; for (int j=0;jpart[j+1][M2]){ for (int k=0;k
  • Boletn 6Funciones

    1. Realizar una funcin, a la que se le pase como parmetro un nmero N, y muestre por pantalla N veces, el mensaje: Mdulo ejecutndose

    package bol06ej01;

    public class Main { public static void main(String[] args) { int num;

    System.out.print("Introduzca un numero: "); num=Entrada.entero(); System.out.println("---------------------------"); mostrar(num); System.out.println("---------------------------"); }

    static void mostrar(int num){ for (int i=0;i

  • 2. Disear una funcin que tenga como parmetros dos nmeros, y que calcule el mximo.

    package bol06ej02;

    public class Main { static int maximo(int a, int b){ // suponemos que los tres nmeros sern distintos int max; if(a>b) max=a; else max=b;

    return(max); }

    public static void main(String[] args) { int max; int a,b;

    System.out.print("Introduzca un numero: "); a=Entrada.entero(); System.out.print("Introduzca otro numero: "); b=Entrada.entero();

    max =maximo (a, b); System.out.println("El nmero mayor es: " +max); }}

    Ejercicios de Programacin en Java 116

    www.detodoprogramacion.com

  • 3. dem una versin que calcule el mximo de 3 nmeros.

    package bol06ej03;

    public class Main { static int maximo(int a, int b, int c){ int max; if(a>b && a>c) // si a es mayor que b y c, entonces a es el mximo max=a; else if(b>a && b>c) // si b es el mayor de todos, entonces b es el mximo max=b; else // si el mximo no es a ni b, ser c max=c; return(max); }

    public static void main(String[] args) { int max; int a, b, c;

    System.out.print("Introduzca un numero: "); a=Entrada.entero();

    System.out.print("Introduzca otro numero: "); b=Entrada.entero();

    System.out.print("Introduzca el ltimo: "); c=Entrada.entero();

    Ejercicios de Programacin en Java 117

    www.detodoprogramacion.com

  • System.out.println("");

    max =maximo (a, b, c); System.out.println("El nmero mayor es: " +max); }}

    4. dem una versin que calcule el mximo de una tabla de n elementos.

    package bol06ej04;

    public class Main {

    /** * Esto funciona solo para tablas con un tamao mnimo de 1 * */ static int maximo(int t[]){ int max;

    max = t[0]; for (int i = 0; i < t.length; i++) if (t[i]>max) // si t[i] es mayor que max, entonces t[i] es el nuevo mximo max=t[i]; return(max); }

    public static void main(String[] args) { int max; int t[];

    Ejercicios de Programacin en Java 118

    www.detodoprogramacion.com

  • t=new int [6];

    for (int i = 0; i < t.length; i++) // llenamos la tabla con valores aleatorios entre 1 y 100 t[i]=(int)(Math.random()*100+1); System.out.println("Los valores son:"); for (int i = 0; i < t.length; i++) System.out.print(t[i] +" ");;

    max = maximo (t); System.out.println("\nEl nmero mayor es: " +max); }}

    5. Funcin a la que se le pasan dos enteros y muestra todos los nmeros comprendidos entre ellos, inclusive.

    package bo0l6ej05;

    public class Main {

    static void mostrar(int a,int b){ int mayor, menor; // desconocemos el orden en el que vienen a y b. // Lo que haremos es poner los valores correctos en mayor, menor. if(a>b){ // a es el mayor. Se podra utilizar la funcin maximo() implementada anteriormente. mayor=a; menor=b; } else{ // en este caso b ser el mayor

    Ejercicios de Programacin en Java 119

    www.detodoprogramacion.com

  • mayor=b; menor=a; }

    for (int i=menor;i

  • int doble;

    doble=2*num; // calculamos el doble de num

    System.out.println("El doble es: " +doble); }

    public static void main(String[] args) { int num;

    System.out.print("Introduzca un nmero: "); num=Entrada.entero(); doble(num); }}

    7. Realizar una funcin que calcule (muestre en pantalla) el rea o el volumen de un cilindro, segn se especifique. Para distinguir un caso de otro se le pasar el carcter 'a' (para rea) o 'v' (para el volumen). Adems hemos de pasarle a la funcin el radio y la altura.

    package bol06ej07;

    public class Main {

    static void area_o_volumen_cilindro(double radio, double altura, char opcion){ double volumen,area;

    switch (opcion) { case 'v': volumen =Math.PI*radio*radio*altura; // radio*radio es el radio al cuadrado System.out.println("El volumen es de: " +volumen);

    Ejercicios de Programacin en Java 121

    www.detodoprogramacion.com

  • break; case 'a': area = 2*Math.PI*radio*altura + 2*Math.PI*radio*radio; System.out.println("El rea es de: "+area); break; default: System.out.println("Indicador del clculo errneo"); } }

    public static void main(String[] args) { double radio,alt; char tipo_calculo;

    System.out.print("Introduzca radio: "); radio=Entrada.real(); System.out.print("Introduzca altura: "); alt=Entrada.real(); System.out.print("Que desea calcular (a/v): "); tipo_calculo =Entrada.caracter();

    System.out.println(""); area_o_volumen_cilindro(radio,alt,tipo_calculo); }}

    8. dem que devuelva una tabla con el rea y el volumen.

    package bol06ej08;

    public class Main {

    Ejercicios de Programacin en Java 122

    www.detodoprogramacion.com

  • static double[] area_y_volumen_cilindro(double radio, double altura) { double volumen,area; double calculo[]; calculo = new double [2]; // [0] para el volumen y [1] para el rea

    calculo[0] =Math.PI*radio*radio*altura; // radio*radio es el radio al cuadrado calculo[1] =2*Math.PI*radio*altura + 2*Math.PI*radio*radio;

    return (calculo); }

    public static void main(String[] args) { double radio,alt; double resultado[]; //esta tabla no necesita new, ya que apunta a // la tabla creada dentro de la funcin

    System.out.print("Introduzca radio: "); radio=Entrada.real(); System.out.print("Introduzca altura: "); alt=Entrada.real(); resultado =area_y_volumen_cilindro(radio,alt); // resultado hace referencia a la tabla devuelta // por la funcin.

    System.out.println("El volumen es de: " +resultado[0]); System.out.println("El rea es de: " +resultado[1]);

    }}

    Ejercicios de Programacin en Java 123

    www.detodoprogramacion.com

  • 9. Mdulo al que se le pasa un nmero entero y devuelve el nmero de divisores primos que tiene.

    package bol06ej09;

    public class Main {

    // la funcin es_primo indica si el nmero pasado es o no primo // recordamos que un nmero primo es solo divisible por el mismo y 1 static boolean es_primo(int num) { boolean primo; int i;

    primo=true; // suponemos que el nmero es primo

    // este algoritmo se puede mejorar sabiendo que si un nmero no es // divisible entre 2 y su raz cuadrada, entonces ya no ser divisible // por ningn otro nmeros -> ser primo // // con esta mejora podemos ahorrar muchas vueltas del while para // nmeros grandes

    i=2; while(i

  • // esta funcin devuelve el nmero de divisores primos del nmero pasado como parmetro. // // un ejemplo: // los divisores de 24 son: 2 y 3 // aunque 4 y 6 tambin dividen a 24, no se consideran divisores primos, al no ser primos // por lo que 24 tiene tres divisores primos: el 1, el 2 y el 3.

    static int num_divisores (int num){ int cont;

    cont=1; // siempre habr un divisor seguro, el 1.

    for (int i=2;i

  • 10.dem disear una funcin que devuelve una tabla con los divisores.

    package bol06ej10;

    public class Main {

    // la funcin es_primo indica si el nmero pasado es o no primo // recordamos que un nmero primo es solo divisible por el mismo y 1 static boolean es_primo(int num) { boolean primo; int i;

    primo=true; // suponemos que el nmero es primo

    // este algoritmo se puede mejorar sabiendo que si un nmero no es // divisible entre 2 y su raz cuadrada, entonces ya no ser divisible // por ningn otro nmeros -> ser primo // // con esta mejora podemos ahorrar muchas vueltas del while para // nmeros grandes

    i=2; while(i

  • // esta funcin me devuelve el nmero de divisores del nmero // los divisores a tener en cuenta solo son aquellos que son primos // // un ejemplo: // los divisores de 24 son: 2 y 3 // aunque 4 y 6 tambin dividen a 24, no se consideran divisores, al no ser primos // por lo que 24 tiene tres divisores (el 1, el 2 y el 3)

    static int num_divisores(int num){ int cont;

    cont=1; // siempre habr un divisor seguro, el 1.

    for (int i=2;i

  • { div[cont] =i; // incrementamos el nmero de divisores cont++; }

    return(div); }

    public static void main(String[] args) { int num, divisores[]; System.out.print("Introduce numero: "); num=Entrada.entero(); divisores =divisores(num);

    System.out.println("Los divisores de " + num + " son:"); for (int i = 0; i < divisores.length; i++) System.out.print(divisores[i] + " ");

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

    11.Escribir una funcin que calcule el mximo comn divisor de dos nmeros.

    package bol06ej11;

    public class Main {

    // el mximo comn divisor de dos nmeros es el nmero ms grande que // es capaz de dividir a ambos nmeros // Para calcularlo podramos utilizar algn algoritmo existente o hacerlo // un poco por la "cuenta de la vieja".

    Ejercicios de Programacin en Java 128

    www.detodoprogramacion.com

  • // La idea es dividir por todos los nmeros desde 1 hasta mnimo(a, b) // y quedarnos con el mayor.

    static int max_comun_divisor (int a, int b) { int mcd=1; int min;

    min = minimo (a,b);

    mcd=1; // existe un mcd seguro, el 1, que divide a y b.

    for (int i=2;ib) min=b; else min=a;

    return(min); }

    public static void main(String[] args) { int a, b, mcd;

    Ejercicios de Programacin en Java 129

    www.detodoprogramacion.com

  • System.out.print("Introduce numero: "); a=Entrada.entero();

    System.out.print("Introduce otro: "); b=Entrada.entero();

    System.out.println("");

    mcd = max_comun_divisor (a, b);

    System.out.println("El mcd de "+a+" y "+b+" es: "+mcd); }}

    12.dem con tres nmeros.

    package bol06ej12;

    public class Main {

    // el mximo comn divisor de tres nmeros es el nmero ms grande que // es capaz de dividir a todos nmeros // Para calcularlo podramos utilizar algn algoritmo existente o hacerlo // un poco por la "cuenta de la vieja". // La idea es dividir por todos los nmeros desde 1 hasta mnimo(a, b, c) // y quedarnos con el mayor.

    static int max_comun_divisor (int a, int b, int c) { int mcd=1; int min;

    // para no implementar la funcin mnimo para tres nmeros

    Ejercicios de Programacin en Java 130

    www.detodoprogramacion.com

  • // utilizaremos la funcin con solo dos parmetros; min = minimo (a,minimo(b,c));

    mcd=1; // existe un mcd seguro, el 1, que divide a y b.

    for (int i=2;ib) min=b; else min=a;

    return(min); }

    public static void main(String[] args) { int a, b,c , mcd;

    System.out.print("Introduce a: "); a=Entrada.entero();

    System.out.print("Introduce b: "); b=Entrada.entero();

    System.out.print("Introduce c: ");

    Ejercicios de Programacin en Java 131

    www.detodoprogramacion.com

  • c=Entrada.entero();