Upload
darkboxstudios
View
260
Download
0
Embed Size (px)
Citation preview
Rafael García Maliga | 1º DAW | October 5, 2012
Listado de ejercicios JAVA BÁSICO (2)
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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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.