Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Temas - david82

Páginas: [1]
1
Buenas.

Aquí dejo mi solución al ejercicio propuesto CU00914C del curso avanzado de programación Java.

Código: [Seleccionar]
public class EjercicioStringBuilder {

public static void main(String[] args) {
StringBuilder cadena = new StringBuilder("Hola Caracola");

System.out.println("El StringBuilder es: "+cadena);
System.out.println("Capacidad Inicial: "+cadena.capacity());
System.out.println("Su longitud inicial es: "+cadena.length());
System.out.println();
cadena.replace(0,cadena.length(),"Hay caracolas"); //cambio de contenido
System.out.println(cadena);
cadena.insert(4, "5000 "); //adicion de 5000 despues de Hay
System.out.println(cadena);
cadena.append(" en el mar"); //adicion al final del contenido inicial
System.out.println(cadena);
System.out.println(cadena.substring(cadena.length()-4, cadena.length()));
System.out.println("Capacidad Final: "+cadena.capacity());
System.out.println("Su longitud Final es: "+cadena.length());

}

}

Código: [Seleccionar]
public class EjercicioStringBuffer {
public static void main(String[] args) {
StringBuffer cadena = new StringBuffer("Hola Caracola");

System.out.println("El StringBuilder es: "+cadena);
System.out.println("Capacidad Inicial: "+cadena.capacity());
System.out.println("Su longitud inicial es: "+cadena.length());
System.out.println();
cadena.replace(0,cadena.length(),"Hay caracolas"); //cambio de contenido
System.out.println(cadena);
cadena.insert(4, "5000 "); //adicion de 5000 despues de Hay
System.out.println(cadena);
cadena.append(" en el mar"); //adicion al final del contenido inicial
System.out.println(cadena);
System.out.println(cadena.substring(cadena.length()-4, cadena.length()));
System.out.println("Capacidad Final: "+cadena.capacity());
System.out.println("Su longitud Final es: "+cadena.length());

}

}

Saludos!!! :)

2
Buenas tardes. Esta es mi solución propuesta al ejercicio planteado CU00909C del curso avanzado de programación Java.

Código: [Seleccionar]
package estandar;
import java.util.Scanner;

public class EntradaDeTeclado {
private String entrada;
private Scanner entradaTeclado;

public EntradaDeTeclado() {
entrada = "";
entradaTeclado=new Scanner(System.in);
}

public void setEntrada(){entrada = entradaTeclado.nextLine();}

public String getEntrada(){return entrada;}
public int getEntero(){return Integer.valueOf(entrada);}
public double getDecimal(){return Double.valueOf(entrada);}

}

Código: [Seleccionar]
package intermedio.ejercicios;
import java.util.Random;
import java.util.Arrays;

public class LoteriaPrimitiva {
private int [] numerosSorteo;
private int numeroAciertos;
private int i,j;
private boolean repetido;
Random tombola = new Random();

public LoteriaPrimitiva(int cantidadNumeros){
numeroAciertos=0;
repetido=false;
numerosSorteo = new int[cantidadNumeros];
numerosSorteo[0]=0;
setNumerosSorteo();
}

public void setNumerosSorteo(){
for(i=0;i<numerosSorteo.length;i++)
numerosSorteo[i]=tombola.nextInt(49)+1;
Arrays.sort(numerosSorteo); //método de la API de Java que ordena un array de menor a mayor
}

public void getNumerosSorteo(){
for(i=0;i<numerosSorteo.length;i++)
System.out.print(numerosSorteo[i]+" ");
System.out.println();
}

public void getNumerosSorteo(int[] numerosApuesta){
Arrays.sort(numerosApuesta);
for(i=0;i<numerosApuesta.length;i++)
System.out.print(numerosApuesta[i]+" ");
System.out.println();
}

public boolean comprobarApuesta(int numeroApostado,int[] numerosApuesta){
for(i=0;i<numerosApuesta.length;i++){
if(numeroApostado==numerosApuesta[i]){
repetido = true;
break;
}
else
repetido = false;
}
return repetido;
}

public int numeroDeAciertos(int[]numerosApuesta){
for(i=0;i<numerosSorteo.length;i++)
for(j=0;j<numerosSorteo.length;j++){
if(numerosApuesta[i]==numerosSorteo[j])
numeroAciertos++;
else{}
}
return numeroAciertos;
}
}

Código: [Seleccionar]
package intermedio.ejercicios;

import estandar.EntradaDeTeclado;

public class TestLoteriaPrimitiva {

public static void main(String[] args) {
EntradaDeTeclado entrada = new EntradaDeTeclado();
int apuesta;

do{
LoteriaPrimitiva loteria = new LoteriaPrimitiva(6);
int[] numerosApostados = new int[6];

System.out.println("Introduzca 6 números del 1 al 50 sin repetir ninguno: ");

for(int i=0;i<6;i++){
entrada.setEntrada();
apuesta = entrada.getEntero();
while(apuesta<1 || apuesta>50){
System.out.println("Número no permitido, intente de nuevo!!");
entrada.setEntrada();
apuesta=entrada.getEntero();
}
while(loteria.comprobarApuesta(apuesta, numerosApostados)==true){
System.out.println("El número apostado ya está en la lista. Intente con otro...");
entrada.setEntrada();
apuesta = entrada.getEntero();
}
numerosApostados[i]=apuesta;
}

System.out.println("Los números ganadores son: ");
loteria.getNumerosSorteo();
System.out.println("Los números apostados fueron: ");
loteria.getNumerosSorteo(numerosApostados);
System.out.println();
System.out.println("Usted tuvo "+loteria.numeroDeAciertos(numerosApostados)+" aciertos");
System.out.println();
System.out.println("Quiere intentar otra vez (S/N)? ");
entrada.setEntrada();
}while(entrada.getEntrada().toUpperCase().equals("S"));
System.out.println("Adios!");
}
}

3
Buenas tardes.

Esta es mi solución al ejercicio propuesto CU00905C del tutorial avanzado de programación Java:

Código: [Seleccionar]
package estandar;
import java.util.Scanner;

public class EntradaDeTeclado {
private String entrada;
private Scanner entradaTeclado;

public EntradaDeTeclado() {
entrada = "";
entradaTeclado=new Scanner(System.in);
}

public void setEntrada(){entrada = entradaTeclado.nextLine();}

public String getEntrada(){return entrada;}

}

Código: [Seleccionar]
import estandar.EntradaDeTeclado;

public class TestArrayPaisesYCiudades {
public static void main(String[] args) {
int i,j;
String paisesYCiudades[][]=new String[4][4];
EntradaDeTeclado entrada = new EntradaDeTeclado();

System.out.println("Introduzca cuatro paises:");
for(i=0;i<4;i++){
entrada.setEntrada();
paisesYCiudades[i][0]=entrada.getEntrada();
}
for(i=0;i<4;i++){
System.out.println("Introduzca tres ciudades para "+paisesYCiudades[i][0]);
for(j=1;j<4;j++){
entrada.setEntrada();
paisesYCiudades[i][j]=entrada.getEntrada();
}
}
System.out.println("El listado de ciudades por pais es:");
System.out.println();
for(i=0;i<4;i++){
for(j=0;j<4;j++)
System.out.println(paisesYCiudades[i][j]);
}
}

}

Una sugerencia adicional. En el curso dice:
Citar
Para obtener el número de filas de la matriz, podemos recurrir a la propiedad “length” de los arrays, de la siguiente manera:

int filas = matriz.length;

 

Para el caso del número de columnas sería de la siguiente forma :

int columnas = matriz[0].length;

Sin embargo, esto no es del todo cierto, debido a que, según leí, Java interpreta los arrays multidimensionales como instancias de vectores. Es decir que cada fila puede tener diferente número de elementos.

Por lo tanto debería decir:
Citar
int columnas = matriz[fila].length

Saludos!!! :)

4
Hola. Mis soluciones propuestas al ejercicio CU00690B del tutorial de programación Java con BlueJ son las siguientes:

Citar
a) ¿Un objeto de tipo estático declarado Taxi puede contener a un objeto Vehiculo en tiempo de ejecución?

Rta: Sí. Se podría hacer un casting pero causaría un código complejo de mantener si no se tiene control del mismo con instanceof.

Citar
b) ¿Un objeto de tipo estático declarado Vehiculo puede contener a un objeto Taxi en tiempo de ejecución?

Rta: Sí. Debido a que Vehículo es superclase de Taxi.

Citar
c) Escribe el código de una clase Vehiculo con los atributos matricula (String) y numeroDeRuedas (int), constructor, métodos getters y setters y método toString() para mostrar la información de un vehículo.

Código: [Seleccionar]
public class Vehiculo2 {
private String matricula;
private int numeroDeRuedas;

public Vehiculo2() {
matricula = null;
numeroDeRuedas=4;
}

public String getMatricula(){return matricula;}
public int getNumeroDeRuedas(){return numeroDeRuedas;}
public void setMatricula(String unaMatricula){matricula = unaMatricula;}
public void setNumeroDeRuedas(int numeroDeRuedas){this.numeroDeRuedas = numeroDeRuedas;}

public String toString(){return matricula+" "+numeroDeRuedas;}

}

Citar
d) Escribe el código de una clase Taxi que herede de vehículo y que además de los atributos de Vehiculo lleve un atributo adicional nombreDelConductor (String) y numeroDePlazas (int), constructor, métodos getters y setters y método toString() para mostrar la información de un Taxi.

Código: [Seleccionar]
public class Taxi extends Vehiculo2{
private String nombreDelConductor;
private int numeroDePlazas;

public Taxi(){
super();
nombreDelConductor = null;
numeroDePlazas = 1;
}

public String getnombreDelConductor(){return nombreDelConductor;}
public int getNumeroDePlazas(){return numeroDePlazas;}
public void setNumeroDelConductor(String nombreDelConductor){this.nombreDelConductor=nombreDelConductor;}
public void setNumeroDePlazas(int numeroDePlazas){this.numeroDePlazas=numeroDePlazas;}
public String toString(){return nombreDelConductor+" "+numeroDePlazas;}

}

Citar
e) Escribe el código de una clase test con el método main que cree un objeto cuyo tipo es Vehiculo, instanciado como Taxi. Establece valores para sus atributos y usa el método toString(). ¿Qué método toString() resulta de aplicación, el propio de la clase Vehiculo o el propio de la clase Taxi? ¿Por qué?

Código: [Seleccionar]
public class TestVehiculo2 {

public static void main(String[] args) {
Vehiculo2 v1 = new Taxi();

v1.setMatricula("NKG-345");
v1.setNumeroDeRuedas(6);

System.out.println(v1.toString());
}
}

El método aplicado es el toString() de la clase Taxi(), debido a que cambia dinámicamente en tiempo de compilacion y el compilador de java considera a v1 como un tipo estático de Taxi, por lo tanto se ejecuta su propio método normalmente.

5
Buenas. Respuestas para el ejercicio CU00683B del curso básico de programación Java.

La respuesta es que desde un método estático como lo es main, no se puede acceder a otro método o atributo de la misma clase que lo contenga. Por ello marca error al utilizar el this.

La solución que propondría sería la siguiente.

Código: [Seleccionar]
public class Test {
    static int atributo1;
    Test (int atrib) {atributo1 = 0;}
    public static void main (String[ ] Args) {
        System.out.println ("Mensaje 1");
        System.out.println ("Atributo 1 vale" + getAtrib1());
    } //Cierre del main
    public static int getAtrib1() {return atributo1;}
} //Cierre de la clase

Gracias! ;D

6
Respuestas al ejercicio CU00673B del tutorial de programación orientada a objetos con Java y entorno BlueJ.

¿Es posible crear un método en la clase Circulo para establecer el valor de numeroPi? ¿Por qué?

Respuesta: NO. Debido a que se declara numeroPi como final. Esto define que no se trata de una variable sino de una constante, por lo tanto es inmodificable;

Código: [Seleccionar]
import java.util.Scanner;

public class EntradaDeTeclado {
private String entrada;
private Scanner entradaTeclado;

public EntradaDeTeclado() {
entrada = "";
entradaTeclado=new Scanner(System.in);
}

public void setEntrada(){entrada = entradaTeclado.nextLine();}

public String getEntrada(){return entrada;}

}

Código: [Seleccionar]
public class Circulo {
private static final double NUMEROPI = 3.1416;
private double radio;

public Circulo() {
// TODO Auto-generated constructor stub
}

public void setRadio(double unradio){this.radio=unradio;}
public double getRadio(){return radio;}

public double calcularArea(){return NUMEROPI*radio*radio;}
public double calcularLongitud(){return 2*NUMEROPI*radio;}
}

Código: [Seleccionar]
public class TestCirculo {

public static void main(String[] args) {
Circulo circulo = new Circulo();
EntradaDeTeclado entrada = new EntradaDeTeclado();

System.out.println("Introduzca el valor del radio: ");
entrada.setEntrada();

circulo.setRadio(Double.valueOf(entrada.getEntrada()));

System.out.println("Longitud: "+circulo.calcularLongitud());
System.out.println("Area: "+circulo.calcularArea());

}

}

7
Esta es mi solución para el ejercicio CU00672B del tutorial Aprende programación Java como si estuviera en primero de aprenderaprogramar.

Código: [Seleccionar]
import java.util.Scanner;

public class EntradaDeTeclado {
private String entrada;
private Scanner entradaTeclado;

public EntradaDeTeclado() {
entrada = "";
entradaTeclado=new Scanner(System.in);
}

public void SetEntrada(){entrada = entradaTeclado.nextLine();}

public String GetEntrada(){return entrada;}

}

Código: [Seleccionar]
import java.util.Random;

public class GenerarAleatorio {
private int numero;
private Random aleatorio = new Random();

public GenerarAleatorio() {
numero = aleatorio.nextInt(100);
System.out.println("Se ha generado un número entre 0 y 100. Intente adivinarlo");
}

public int getAleatorio(){return numero;}
}

Código: [Seleccionar]
public class TestGenerarAl {

public static void main(String[] args) {
GenerarAleatorio adivinar = new GenerarAleatorio();
EntradaDeTeclado entrada = new EntradaDeTeclado();
int miNumero;

entrada.SetEntrada();
miNumero=Integer.valueOf(entrada.GetEntrada());

while(adivinar.getAleatorio()!=miNumero)
{
if(miNumero>adivinar.getAleatorio())
{
   System.out.println("No has acertado: el número es menor. Prueba otra vez");
   entrada.SetEntrada();
}
else if(miNumero<adivinar.getAleatorio())
{
System.out.println("No has acertado: el número es mayor. Prueba otra vez");
entrada.SetEntrada();
}
else
{}
miNumero=Integer.valueOf(entrada.GetEntrada());
}

if(miNumero==adivinar.getAleatorio())
System.out.println("Felicidades! Ha adivinado! El número era "+adivinar.getAleatorio());
}
}

Páginas: [1]

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".