You are on page 1of 19

Listado de ejercicios

JAVA BSICO (2)

Rafael Garca Maliga | 1 DAW | October 5, 2012

1. Las direcciones MAC son nmeros de 6 bytes que identifican a las tarjetas de red. Cuando contienen el valor mximo (FFFFFFFFFFFF) se considera que el mensaje quiere enviarse no a una tarjeta de red, sino a todas las de la red. A esa direccin especial se le denomina direccin broadcast. Crea la clase AlmacenaMac que almacene y muestre la direccin de broadcast.
Cdigo: /** Las direcciones MAC son nmeros de 6 bytes que identifican a las tarjetas de red. Cuando contienen el valor mximo (FFFFFFFFFFFF) se considera que el mensaje quiere enviarse no a una tarjeta de red, sino a todas las de la red. A esa direccin especial se le denomina direccin broadcast. Crea la clase AlmacenaMac que almacene y muestre la direccin de broadcast. * @author Rafael Garca Maliga * @version 0.1 */ public class AlmacenaMac { public static void main (String[] args){ long macBroadcast = 0xFFFFFFFFFFFFL; //Almacena la direccin de broadcast en Hex String cadena = String.format("%x", macBroadcast); /* Damos formato a la cadena de salida con el especificador de conversin %x para indicarle que represente dicha cadena como un nmero hexadecimal. Ms especificadores: http://mundogeek.net/archivos/2009/05/17/formateo-de-cadenasen-java/ */ System.out.print("\n La direccin de broadcast es: " + cadena + "\n\n"); // Imprimimos la cadena ya formateada } }

Resultado:

PAGE 1

2. Define la clase ALaDeUna que muestre el siguiente resultado. Utiliza los bucles indicados.
Cdigo: /** Entrega un programa que muestre: A la de 1... A la de 2... A la de 3.... Utilizando el bucle while, el do..while y el for * @author Rafael Garca Maliga * @version 0.1 Alpha */ public class A123 { public static void main (String[] args){ int i = 1; System.out.println("\nCon while (i<4){ System.out.println("A } i = 1; System.out.println("\nCon do{ System.out.println("A }while(i<4); while"); la de " + i++ + "..."); do..while"); la de " + i++ + "...");

System.out.println("\nCon for"); for (i=1; i<4; ++i){ System.out.println("A la de " + i + "..."); } } }

Resultado:

PAGE 2

3. Define la clase MortadeloYFilemon que muestre 5 veces el mensaje Mortadelo y Filemn. Realzalo usando el decremento y los tres bucles for, while y do..while.
Cdigo: /** Define la clase MortadeloYFilemon que muestre 5 veces el mensaje Mortadelo y Filemn. Realzalo usando el decremento y los tres bucles for, while y do..while. * @author Rafael Garca Maliga * @version 0.1 */ public class MortadeloYFilemon { public static void main (String[] args){ System.out.println("Bucle For: \n"); for(int ciclo = 5; ciclo > 0; ciclo--){ System.out.println("Mortadelo y Filemn"); } System.out.println("\nBucle While: \n"); int ciclo2 = 5; while(ciclo2 > 0){ System.out.println("Mortadelo y Filemn"); ciclo2--; } System.out.println("\nBucle Do While: \n"); ciclo2 = 5; do { System.out.println("Mortadelo y Filemn"); ciclo2--; }while(ciclo2 > 0); System.out.println(""); } }

PAGE 3

Resultado:

4. Define la clase Aleatorios que muestre:


Cdigo: /** Define la clase Aleatorios que muestre: a. 10 nmeros enteros del 0 al 4 b. 10 nmeros enteros del 1 al 5 c. 10 nmeros decimales entre el 0 y el d. 10 nmeros decimales entre el 0 y el * @author Rafael Garca Maliga * @version 0.1 */ public class Aleatorios { public static void main (String[] args){ System.out.println("\n#\t0-4\t1-5\t0-9.9\t0-0.99"); for(int i=1; i<=10; i++){ 10 nmeros enteros del 0 al 4 10 nmeros enteros del 1 al 5 10 nmeros decimales entre el 0 y el 9,9.. 10 nmeros decimales entre el 0 y el 99,9..

9,9.. 99,9..

PAGE 4

System.out.print(i + "\t " + (int) Math.round((Math.random()*4)) ); // 10 nmeros enteros del 0 al 4 System.out.print("\t " + (1 + (int) Math.round((Math.random()*4))) ); // 10 nmeros enteros del 1 al 5 System.out.print("\t " + Math.rint(Math.random()*99)/10 ); // 10 nmeros decimales entre el 0 y el 9,9.. System.out.print("\t " + Math.rint(Math.random()*99)/100 + "\n"); // 10 nmeros decimales entre el 0 y el 99,9.. } System.out.println(); } }

Resultado:

5. Indica los resultados de las siguientes sentencias (AleatoriosDos):


Cdigo: /** Indica los resultados de las siguientes sentencias (AleatoriosDos): * @author Rafael Garca Maliga * @version 0.1 */ public class AleatoriosDos { public static void main (String[] args){ int numEntero = (int)Math.random(); /* Declara e inicializa la variable de tipo int asignandole un nmero generado de forma aleatorio (entero). */ double numDecimal = Math.round((Math.random()));/* Declara e inicializa la variable de tipo double asignandole un nmero redondeado (devuelve un entero) generado de

PAGE 5

forma aleatoria. */ System.out.println(numEntero); System.out.println(numDecimal); System.out.println(numDecimal = Math.rint(Math.random()));/* Se asigna a la variable un valor aleatorio redondeado devolviendo en este caso un nmero de tipo double. */ System.out.println(numDecimal = Math.random()*100);/* Se asigna a la variable un valor aleatorio multiplicado por 100 y devolviendo un valor de tipo double. */ System.out.println(numDecimal = (int)Math.random()*100);/* Se asigna a la variable un valor aleatorio multiplicado por 100 y devolviendo un valor de tipo entero (int). */ System.out.println(numDecimal = (int)(Math.random()*100));/* Se asigna a la variable un valor aleatorio multiplicado por 100 y devolviendo un valor de tipo entero (int) para el conjunto de la operacin (entre parntesis). */ } }

Resultado:

6. Define la clase IndicaMesIf que muestre el nombre del mes en funcin del nmero obtenido aleatoriamente (del 1 al 7). Utiliza la estructura condicional If. Ha de mostrar 10 resultados.
Cdigo: /** Define la clase IndicaMesIf que muestre el nombre del mes en funcin del nmero obtenido aleatoriamente (del 1 al 7). Utiliza la estructura condicional If. Ha de mostrar 10 resultados. * @author Rafael Garca Maliga * @version 0.1 */ public class IndicaMesIf {

PAGE 6

public static void main (String[] args){ //bucle 10 ciclos for(int i=1; i<=10; i++){ int mesAleatorio = (1 + (int) Math.round((Math.random()*6))); // Nmero (entero) aleatorio del 1 al 7 if(mesAleatorio==1) System.out.println("Enero \t#" + mesAleatorio); if(mesAleatorio==2) System.out.println("Febrero \t#" + mesAleatorio); if(mesAleatorio==3) System.out.println("Marzo \t#" + mesAleatorio); if(mesAleatorio==4) System.out.println("Abril \t#" + mesAleatorio); if(mesAleatorio==5) System.out.println("Junio \t#" + mesAleatorio); if(mesAleatorio==6) System.out.println("Julio \t#" + mesAleatorio); if(mesAleatorio==7) System.out.println("Agosto \t#" + mesAleatorio); } } }

Resultado:

7. Define la clase IndicaMesSwitch. Semejante al anterior, pero usando la estructura Switch.


Cdigo: /** Define la clase IndicaMesSwitch. Semejante al anterior, pero usando la estructura Switch * @author Rafael Garca Maliga * @version 0.1 */

PAGE 7

public class IndicaMesSwitch { public static void main (String[] args){ //bucle 10 ciclos for(int i=1; i<=10; i++){ int mesAleatorio = (1 + (int) Math.round((Math.random()*6))); // Nmero (entero) aleatorio del 1 al 7 switch(mesAleatorio){ case 1: System.out.println("Enero \t#" + mesAleatorio); break; case 2: System.out.println("Febrero \t#" + mesAleatorio); break; case 3: System.out.println("Marzo \t#" + mesAleatorio); break; case 4: System.out.println("Abril \t#" + mesAleatorio); break; case 5: System.out.println("Junio \t#" + mesAleatorio); break; case 6: System.out.println("Julio \t#" + mesAleatorio); break; case 7: System.out.println("Agosto \t#" + mesAleatorio); break; default: System.out.println("Error..."); } } } }

Resultado:

PAGE 8

8. Define la clase SonIguales que lea dos valores numricos, y determine si son iguales y, en caso de no serlo, indique cul de ellos es el mayor.
Cdigo: /** Define la clase SonIguales que lea dos valores numricos, y determine si son iguales y, en caso de no serlo, indique cul de ellos es el mayor. * @author Rafael Garca Maliga * @version 0.1 */ public class SonIguales { public static void main (String[] args){ //Declaramos las dos variables numricas int x = 20, y = 50; //Comprobamos las variables if(x == y) { System.out.println(x + " es igual que " + y); }else if (x < y) { System.out.println(x + " es menor que " + y); }else if (x > y) { System.out.println(x + " es mayor que " + y); } } }

Resultado:

9. Define la clase IgualesDeTres que lea tres nmeros de teclado y determine si la suma de cualquier pareja de ellos es igual al tercer nmero. Si se cumple esta condicin, escribir Iguales y en caso contrario escribir Distintos.
Cdigo: /** Define la clase IgualesDeTres que lea tres nmeros de teclado y determine si la suma de cualquier pareja de ellos es igual al tercer nmero. Si se cumple esta condicin, escribir Iguales y en caso contrario escribir Distintos. * @author Rafael Garca Maliga * @version 0.1 */ public class IgualesDeTres { public static void main (String[] args){

PAGE 9

Console console = System.console(); try { //Try por si insertamos un valor icorrecto int numero1 = Integer.parseInt(console.readLine("#1? ")); //lee la entrada y la convierte a int int numero2 = Integer.parseInt(console.readLine("#2? ")); //lee la entrada int numero3 = Integer.parseInt(console.readLine("#3? ")); //lee la entrada if(numero1+numero2 == numero3){ //Sumamos y comprobamos los nmeros System.out.print( numero1 + "+" + numero2 + " es igual que " + numero3 + "\n\n"); }else{ System.out.print( numero1 + "+" + numero2 + " es distinto a " + numero3 + "\n\n"); } }catch(Exception e){ System.out.println("Valores incorrectos!"); //error } } }

Resultado:

10. Define la clase EligeOpcion que permita visualizar los siguientes mensajes, dependiendo del nmero que pulsamos. Ha de mostrar 10 resultados.
Cdigo: import java.io.Console; (1) Procesador de textos (2) Hoja de clculo (3) Base de datos otro nmero, la tecla pulsada es errnea.

PAGE 10

/** . Define la clase EligeOpcion que permita visualizar los siguientes mensajes, dependiendo del nmero que pulsamos. Ha de mostrar 10 resultados. a. (1) Procesador de textos b. (2) Hoja de clculo c. (3) Base de datos d. otro nmero, la tecla pulsada es errnea. * @author Rafael Garca Maliga * @version 0.1 */ public class EligeOpcion { public static void main (String[] args){ Console console = System.console(); try { //Try por si insertamos un valor icorrecto String mensaje; int opcion = Integer.parseInt(console.readLine(" (1)Procesador de textos\n" + " (2)Hoja de clculos\n" + " (3)Base de datos\n")); //lee la entrada y la convierte a int switch(opcion){ //comprobamos la entrada y actuamos en consecuencia case 1: mensaje break; case 2: mensaje break; case 3: mensaje break; default: mensaje = "Procesador de textos"; = "Hoja de clculos"; = "Base de datos";

= "Opcin no existe"; } //bucle, imprimimos 10 veces el mensaje for(int i=0; i<10; i++){ System.out.println("\t" + mensaje); } }catch(Exception e){ System.out.println("Opcin invalida"); //error } } }

Resultado:

PAGE 11

11. Define la clase MenorDeTres que lea tres nmeros y calcule cul de ellos es el menor. Suponemos que los tres nmeros son distintos.
Cdigo: import java.io.Console; /** Define la clase MenorDeTres que lea tres nmeros y calcule cul de ellos es el menor. Suponemos que los tres nmeros son distintos. * @author Rafael Garca Maliga * @version 0.1 */ public class MenorDeTres { public static void main (String[] args){ Console console = System.console(); try { //Try por si insertamos un valor icorrecto int numero1 = Integer.parseInt(console.readLine("#1? ")); //lee la entrada y la convierte a int int numero2 = Integer.parseInt(console.readLine("#2? ")); //lee la entrada "" int numero3 = Integer.parseInt(console.readLine("#3? ")); //lee la entrada "" if(numero1 < numero2 && numero1 < numero3){ //Comprobamos los nmeros System.out.print( numero1 + " y que " + numero3 + "\n\n"); }else if(numero2 < numero1 && System.out.print( numero2 + " y que " + numero3 + "\n\n"); }else if(numero3 < numero1 && + " es menor que " + numero2 numero2 < numero3){ + " es menor que " + numero1 numero3 < numero2){

PAGE 12

System.out.print( numero3 + " es menor que " + numero1 + " y que " + numero2 + "\n\n"); } }catch(Exception e){ System.out.println("Valores incorrectos!"); //error } } }

Resultado:

12. Define la clase MayorMenorCero que permita saber si un nmero ledo por teclado es mayor, menor o igual a cero, mostrando en pantalla las diferentes salidas. Ha de mostrar 10 resultados.
Cdigo: import java.io.Console; /** Define la clase MayorMenorCero que permita saber si un nmero ledo por teclado es mayor, menor o igual a cero, mostrando en pantalla las diferentes salidas. Ha de mostrar 10 resultados. * @author Rafael Garca Maliga * @version 0.1 */ public class MayorMenorCero { public static void main (String[] args){ Console console = System.console(); try { //Try por si insertamos un valor icorrecto int numero1 = Integer.parseInt(console.readLine("Introduzca un nmero: ")); //lee la entrada y la convierte a int if(numero1 < 0){ //Comprobamos los nmeros System.out.print( numero1 + " es menor que cero.\n\n"); }else if(numero1 > 0){ System.out.print( numero1 + " es mayor que cero.\n\n"); }else if(numero1 == 0){ System.out.print( " Es igual a cero.\n\n"); }

PAGE 13

}catch(Exception e){ System.out.println("Valor incorrecto!"); //error } } }

Resultado:

13. Define la clase SumaMientrasNoSeaNegativo que sume todos aquellos nmeros ledos mientras no sean negativos.
Cdigo: /** Define la clase SumaMientrasNoSeaNegativo que sume todos aquellos nmeros ledos mientras no sean negativos. * @author Rafael Garca Maliga * @version 0.1 */ public class SumaMientrasNoSeaNegativo { public static void main (String[] args){ int [] numeros = {1,8,90,34,22,6,0,-2,-8,10}; //Arreglo con los nmeros (enteros) int sumaTotal = 0; for(int numero : numeros) { //foreach //Mostramos los nmeros slo como informacin en pantalla System.out.print(numero + ", "); if(numero > 0){ /* Si el nmero es mayor que cero se suma, en caso contrario se descarta. */ sumaTotal = sumaTotal + numero; }

PAGE 14

} //Imprimimos en pantalla el resultado System.out.println("\n\nTodos los nmeros positivos sumados dan un resultado de: " + sumaTotal + "\n"); } }

Resultado:

14. Define la clase SumaDel1Al10 que calcule la suma de los enteros entre 1 y 10, es decir 1+2+3+4+5,...
Cdigo: /** Define la clase SumaDel1Al10 que calcule la suma de los enteros entre 1 y 10, es decir 1+2+3+4+5,... * @author Rafael Garca Maliga * @version 0.1 */ public class SumaDel1Al10 { public static void main (String[] args){ int sumaTotal = 0; for(int i=1; i<=10; i++){ sumaTotal = sumaTotal + i; if(i<10){ //Slo para eliminar el ltimo smbolo "+" al finalizar la secuencia System.out.print(i + "+"); }else{ System.out.print(i); } } //Resultado System.out.print(" = " + sumaTotal + "\n\n"); } }

Resultado:

PAGE 15

15. Define la clase SumaYProducto que obtenga la suma y el producto de los nmeros del 1 al 100.
Cdigo: /** Define la clase SumaYProducto que obtenga la suma y el producto de los nmeros del 1 al 100. * @author Rafael Garca Maliga * @version 0.1 */ public class SumaYProducto { public static void main (String[] args){ int sumaTotal = 0; long productoTotal = 1L; for(int i=1; i<=100; i++){ sumaTotal = sumaTotal + i; productoTotal = productoTotal*(long)i; //Fuera de rango //System.out.print(productoTotal + "\n"); } //Resultado System.out.print("Suma = " + sumaTotal + "\nProducto = " + productoTotal + "\n\n"); } }

Resultado:

Nota: Producto fuera de rango.

PAGE 16

16. Define la clase SumaPares que sume los nmeros pares comprendidos entre 7 y 101.
Cdigo: /** Define la clase entre 7 y 101. SumaPares que sume los nmeros pares comprendidos

* @author Rafael Garca Maliga * @version 0.1 */ public class SumaPares { public static void main (String[] args){ int sumaTotal = 0; for(int i=7; i<=101; i++){ //Comprobamos si es par if(i%2==0){ //par lo sumamos, sino se descarta. sumaTotal = sumaTotal + i; } } //Resultado System.out.print("\nSuma de nmeros pares comprendidos entre 7 y 101 = " + sumaTotal + "\n\n"); } }

Resultado:

17. Muestra la tabla de caracteres Unicode. Utiliza el carcter tabulador.


Cdigo: /** Muestra la tabla de caracteres Unicode. Utiliza el carcter tabulador. Unicode Chart http://www.ssec.wisc.edu/~tomw/java/unicode.html * @author Rafael Garca Maliga * @version 0.1 */ public class CaracteresUnicode { public static void main (String[] args){

PAGE 17

for(int i=0; i<=127; i++){ //Solo mostraremos el unicode "Basic Latin" es decir del 0 al 127 (en decimal) System.out.print("\t " + (char)i); } System.out.print("\n\n"); } }

Resultado:

Nota: Slo Basic Latin.

PAGE 18

You might also like