19
Rafael García Maliga | 1º DAW | October 5, 2012 Listado de ejercicios JAVA BÁSICO (2)

Lista_ejercicios_Java_Básico2_Garcia_Maliga_Rafael

Embed Size (px)

Citation preview

Page 1: Lista_ejercicios_Java_Básico2_Garcia_Maliga_Rafael

Rafael García Maliga | 1º DAW | October 5, 2012

Listado de ejercicios JAVA BÁSICO (2)

Page 2: Lista_ejercicios_Java_Básico2_Garcia_Maliga_Rafael

PAGE 1

1. Las direcciones MAC son números de 6 bytes que identifican a las tarjetas de red.

Cuando contienen el valor máximo (FFFFFFFFFFFF) se considera que el mensaje quiere

enviarse no a una tarjeta de red, sino a todas las de la red. A esa dirección especial se le

denomina dirección broadcast. Crea la clase AlmacenaMac que almacene y muestre la

dirección de broadcast.

Código:

/**

Las direcciones MAC son números de 6 bytes que identifican a las

tarjetas de red.

Cuando contienen el valor máximo (FFFFFFFFFFFF) se considera que el

mensaje quiere enviarse no a una tarjeta de red, sino a todas las de la

red. A esa dirección especial se le denomina dirección broadcast. Crea

la clase AlmacenaMac que almacene y muestre la dirección de broadcast.

* @author Rafael García Maliga

* @version 0.1

*/

public class AlmacenaMac {

public static void main (String[] args){

long macBroadcast = 0xFFFFFFFFFFFFL; //Almacena la dirección de

broadcast en Hex

String cadena = String.format("%x", macBroadcast); /*

Damos formato a la cadena de salida con el especificador de

conversión %x para indicarle que represente dicha cadena como un número

hexadecimal.

Más especificadores:

http://mundogeek.net/archivos/2009/05/17/formateo-de-cadenas-

en-java/

*/

System.out.print("\n La dirección de broadcast es: " + cadena +

"\n\n"); // Imprimimos la cadena ya formateada

}

}

Resultado:

Page 3: Lista_ejercicios_Java_Básico2_Garcia_Maliga_Rafael

PAGE 2

2. Define la clase ALaDeUna que muestre el siguiente resultado. Utiliza los bucles

indicados.

Código:

/**

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 García Maliga

* @version 0.1 Alpha

*/

public class A123 {

public static void main (String[] args){

int i = 1;

System.out.println("\nCon while");

while (i<4){

System.out.println("A la de " + i++ + "...");

}

i = 1;

System.out.println("\nCon do..while");

do{

System.out.println("A la de " + i++ + "...");

}while(i<4);

System.out.println("\nCon for");

for (i=1; i<4; ++i){

System.out.println("A la de " + i + "...");

}

}

}

Resultado:

Page 4: Lista_ejercicios_Java_Básico2_Garcia_Maliga_Rafael

PAGE 3

3. Define la clase MortadeloYFilemon que muestre 5 veces el mensaje “Mortadelo y

Filemón”. Realízalo usando el decremento y los tres bucles for, while y do..while.

Código:

/**

Define la clase MortadeloYFilemon que muestre 5 veces el mensaje

“Mortadelo y Filemón”. Realízalo usando el decremento y los tres bucles

for, while y do..while.

* @author Rafael García 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 Filemón");

}

System.out.println("\nBucle While: \n");

int ciclo2 = 5;

while(ciclo2 > 0){

System.out.println("Mortadelo y Filemón");

ciclo2--;

}

System.out.println("\nBucle Do While: \n");

ciclo2 = 5;

do {

System.out.println("Mortadelo y Filemón");

ciclo2--;

}while(ciclo2 > 0);

System.out.println("");

}

}

Page 5: Lista_ejercicios_Java_Básico2_Garcia_Maliga_Rafael

PAGE 4

Resultado:

4. Define la clase Aleatorios que muestre:

10 números enteros del 0 al 4

10 números enteros del 1 al 5

10 números decimales entre el 0 y el 9,9..

10 números decimales entre el 0 y el 99,9..

Código:

/**

Define la clase Aleatorios que muestre:

a. 10 números enteros del 0 al 4

b. 10 números enteros del 1 al 5

c. 10 números decimales entre el 0 y el 9,9..

d. 10 números decimales entre el 0 y el 99,9..

* @author Rafael García 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++){

Page 6: Lista_ejercicios_Java_Básico2_Garcia_Maliga_Rafael

PAGE 5

System.out.print(i + "\t " + (int)

Math.round((Math.random()*4)) ); // 10 números enteros del 0 al 4

System.out.print("\t " + (1 + (int)

Math.round((Math.random()*4))) ); // 10 números enteros del 1 al 5

System.out.print("\t " + Math.rint(Math.random()*99)/10 );

// 10 números decimales entre el 0 y el 9,9..

System.out.print("\t " + Math.rint(Math.random()*99)/100 +

"\n"); // 10 números decimales entre el 0 y el 99,9..

}

System.out.println();

}

}

Resultado:

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

Código:

/**

Indica los resultados de las siguientes sentencias (AleatoriosDos):

* @author Rafael García 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 número generado de forma aleatorio (entero).

*/

double numDecimal = Math.round((Math.random()));/*

Declara e inicializa la variable de tipo double asignandole

un número redondeado (devuelve un entero) generado de

Page 7: Lista_ejercicios_Java_Básico2_Garcia_Maliga_Rafael

PAGE 6

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 número 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 operación (entre paréntesis).

*/

}

}

Resultado:

6. Define la clase IndicaMesIf que muestre el nombre del mes en función del número

obtenido aleatoriamente (del 1 al 7). Utiliza la estructura condicional If. Ha de mostrar 10

resultados.

Código:

/**

Define la clase IndicaMesIf que muestre el nombre del mes en función

del número obtenido aleatoriamente (del 1 al 7). Utiliza la estructura

condicional If. Ha de mostrar 10 resultados.

* @author Rafael García Maliga

* @version 0.1

*/

public class IndicaMesIf {

Page 8: Lista_ejercicios_Java_Básico2_Garcia_Maliga_Rafael

PAGE 7

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))); // Número (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.

Código:

/**

Define la clase IndicaMesSwitch. Semejante al anterior, pero usando la

estructura Switch

* @author Rafael García Maliga

* @version 0.1

*/

Page 9: Lista_ejercicios_Java_Básico2_Garcia_Maliga_Rafael

PAGE 8

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))); // Número (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 10: Lista_ejercicios_Java_Básico2_Garcia_Maliga_Rafael

PAGE 9

8. Define la clase SonIguales que lea dos valores numéricos, y determine si son iguales y,

en caso de no serlo, indique cuál de ellos es el mayor.

Código:

/**

Define la clase SonIguales que lea dos valores numéricos, y determine

si son iguales y, en caso de no serlo, indique cuál de ellos es el

mayor.

* @author Rafael García Maliga

* @version 0.1

*/

public class SonIguales {

public static void main (String[] args){

//Declaramos las dos variables numéricas

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 números de teclado y determine si la suma de

cualquier pareja de ellos es igual al tercer número. Si se cumple esta condición, escribir

“Iguales” y en caso contrario escribir “Distintos”.

Código:

/**

Define la clase IgualesDeTres que lea tres números de teclado y

determine si la suma de cualquier pareja de ellos es igual al tercer

número. Si se cumple esta condición, escribir “Iguales” y en caso

contrario escribir “Distintos”.

* @author Rafael García Maliga

* @version 0.1

*/

public class IgualesDeTres {

public static void main (String[] args){

Page 11: Lista_ejercicios_Java_Básico2_Garcia_Maliga_Rafael

PAGE 10

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

números

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 número que pulsamos. Ha de mostrar 10 resultados.

(1) Procesador de textos

(2) Hoja de cálculo

(3) Base de datos

otro número, la tecla pulsada es errónea.

Código:

import java.io.Console;

Page 12: Lista_ejercicios_Java_Básico2_Garcia_Maliga_Rafael

PAGE 11

/**

. Define la clase EligeOpcion que permita visualizar los siguientes

mensajes,

dependiendo del número que pulsamos. Ha de mostrar 10 resultados.

a. (1) Procesador de textos

b. (2) Hoja de cálculo

c. (3) Base de datos

d. otro número, la tecla pulsada es errónea.

* @author Rafael García 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 cálculos\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 = "Procesador de textos";

break;

case 2:

mensaje = "Hoja de cálculos";

break;

case 3:

mensaje = "Base de datos";

break;

default:

mensaje = "Opción 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("Opción invalida"); //error

}

}

}

Resultado:

Page 13: Lista_ejercicios_Java_Básico2_Garcia_Maliga_Rafael

PAGE 12

11. Define la clase MenorDeTres que lea tres números y calcule cuál de ellos es el menor.

Suponemos que los tres números son distintos.

Código:

import java.io.Console;

/**

Define la clase MenorDeTres que lea tres números y calcule cuál de

ellos es el menor.

Suponemos que los tres números son distintos.

* @author Rafael García 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 números

System.out.print( numero1 + " es menor que " + numero2

+ " y que " + numero3 + "\n\n");

}else if(numero2 < numero1 && numero2 < numero3){

System.out.print( numero2 + " es menor que " + numero1

+ " y que " + numero3 + "\n\n");

}else if(numero3 < numero1 && numero3 < numero2){

Page 14: Lista_ejercicios_Java_Básico2_Garcia_Maliga_Rafael

PAGE 13

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 número leído por teclado es

mayor, menor o igual a cero, mostrando en pantalla las diferentes salidas. Ha de mostrar

10 resultados.

Código:

import java.io.Console;

/**

Define la clase MayorMenorCero que permita saber si un número leído

por teclado es

mayor, menor o igual a cero, mostrando en pantalla las diferentes

salidas. Ha de

mostrar 10 resultados.

* @author Rafael García 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 número: ")); //lee la entrada y la convierte a int

if(numero1 < 0){ //Comprobamos los números

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 15: Lista_ejercicios_Java_Básico2_Garcia_Maliga_Rafael

PAGE 14

}catch(Exception e){

System.out.println("Valor incorrecto!"); //error

}

}

}

Resultado:

13. Define la clase SumaMientrasNoSeaNegativo que sume todos aquellos números leídos

mientras no sean negativos.

Código:

/**

Define la clase SumaMientrasNoSeaNegativo que sume todos aquellos

números leídos

mientras no sean negativos.

* @author Rafael García 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

números (enteros)

int sumaTotal = 0;

for(int numero : numeros) { //foreach

//Mostramos los números sólo como información en pantalla

System.out.print(numero + ", ");

if(numero > 0){

/*

Si el número es mayor que cero se suma,

en caso contrario se descarta.

*/

sumaTotal = sumaTotal + numero;

}

Page 16: Lista_ejercicios_Java_Básico2_Garcia_Maliga_Rafael

PAGE 15

}

//Imprimimos en pantalla el resultado

System.out.println("\n\nTodos los números 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,...

Código:

/**

Define la clase SumaDel1Al10 que calcule la suma de los enteros entre

1 y 10, es decir

1+2+3+4+5,...

* @author Rafael García 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){ //Sólo para eliminar el último símbolo "+" al

finalizar la secuencia

System.out.print(i + "+");

}else{

System.out.print(i);

}

}

//Resultado

System.out.print(" = " + sumaTotal + "\n\n");

}

}

Resultado:

Page 17: Lista_ejercicios_Java_Básico2_Garcia_Maliga_Rafael

PAGE 16

15. Define la clase SumaYProducto que obtenga la suma y el producto de los números del 1

al 100.

Código:

/**

Define la clase SumaYProducto que obtenga la suma y el producto de los

números del 1 al 100.

* @author Rafael García 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 18: Lista_ejercicios_Java_Básico2_Garcia_Maliga_Rafael

PAGE 17

16. Define la clase SumaPares que sume los números pares comprendidos entre 7 y 101.

Código:

/**

Define la clase SumaPares que sume los números pares comprendidos

entre 7 y 101.

* @author Rafael García 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 números pares comprendidos entre 7

y 101 = " + sumaTotal + "\n\n");

}

}

Resultado:

17. Muestra la tabla de caracteres Unicode. Utiliza el carácter tabulador.

Código:

/**

Muestra la tabla de caracteres Unicode. Utiliza el carácter tabulador.

Unicode Chart

http://www.ssec.wisc.edu/~tomw/java/unicode.html

* @author Rafael García Maliga

* @version 0.1

*/

public class CaracteresUnicode {

public static void main (String[] args){

Page 19: Lista_ejercicios_Java_Básico2_Garcia_Maliga_Rafael

PAGE 18

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: Sólo Basic Latin.