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 - Dimitar Stefanov

Páginas: 1 ... 4 5 6 7 8 [9] 10 11 12 13 14
161
Buenas tardes.

Aquí dejo la solución del ejercicio CU00679B del curso Java desde cero.

Citar
EJERCICIO

Declara un array que contenga seis booleanos que sean true, true, false, false, true, false. A continuación, crea una lista de tipo LinkedList a partir de dicho array usando la clase Arrays del api de Java.

El código:

Código: [Seleccionar]
import java.util.LinkedList;
import java.util.Arrays;
import java.util.List;

public class TransformacionEnArrayList{
    public static void main(String []Args){
        Boolean [] miListaDeBooleans = {true,true,false,false,true,false};
        List<Boolean> miListaLinkedList = new LinkedList<Boolean>();
        miListaLinkedList = Arrays.asList(miListaDeBooleans);
    }
}

Gracias.

162
Buenas noches.

Una posible solución del ejercicio CU00678B del curso Java desde cero.

Citar
EJERCICIO

La interface Set de Java es implementada por las clases HashSet y TreeSet. Busca información sobre estas clases en la documentación del api Java. Crea un programa Java que haga lo siguiente:

a) Declarar un ArrayList de objetos de tipo Set.

b) Crear un objeto de tipo HashSet para contener Strings y haz que contenga las cadenas “sol”, “luna”, “saturno”.

c) Crear un objeto TreeSet para contener Integers y haz que contenga los números 2, 8, 5.

d) Añade los objetos HashSet y TreeSet como elementos del ArrayList.

e) Usa iteradores para recorrer los elementos del ArrayList y recorrer el contenido de cada uno de los elementos y mostrar este contenido por pantalla. Por pantalla deberás obtener “sol”, “luna”, “saturno”, 8, 5, 2.

El código:

Código: [Seleccionar]
import java.util.ArrayList;
import java.util.Set;
import java.util.HashSet;
import java.util.TreeSet;
import java.util.Iterator; //Todos los "import" los podíamos haber hecho con: import java.util.*

public class PolimorfismoJava{
    public static void main(String [] Args){
        //Definimos y creamos objeto "misListas" de clase "ArrayList" que implementa la interfaz "Set".
        ArrayList<Set> misListas;
        misListas = new ArrayList<Set>();
       
        //Definimos y creamos objeto "miListaHashSet" (de clase "HashSet") que tendrá tipos "String". La clase "HashSet" implementa la interfaz "Set".
        HashSet<String> miListaHashSet;
        miListaHashSet = new HashSet<String>();
       
        //Definimos y creamos (en una línea) objeto "miListaTreeSet" (de clase "TreeSet") que tendrá tipos "Integer". La clase "TreeSet" implementa la interfaz "Set".
        TreeSet<Integer> miListaTreeSet = new TreeSet<Integer>();
       
        //Añadimos elementos a la array "miListaHashSet".
        miListaHashSet.add("sol");
        miListaHashSet.add("luna");
        miListaHashSet.add("saturno");
       
        //Añadimos elementos a la array "miListaTreeSet".
        miListaTreeSet.add(8);
        miListaTreeSet.add(5);
        miListaTreeSet.add(2);
       
        //Añadimos los objetos "miListaHashSet" y "miListaTreeSet" a la array "misListas".
        misListas.add(miListaHashSet);
        misListas.add(miListaTreeSet);
       
        //Definimos objetos "Iterator" de tipo "Set", "String" y "Integer" respectivamente.
        Iterator<Set> it;
        Iterator<String> itHashSet;
        Iterator<Integer> itTreeSet;
       
        //Invacamos el método ".iterator()" sobre los objetos "misListas", "miListaHashSet" y "miListaTreeSet" para crear copias de su contenido (colección).
        it = misListas.iterator();
        itHashSet = miListaHashSet.iterator();
        itTreeSet = miListaTreeSet.iterator();
       
        //El bucle "while" exterior recorre los elementos del objeto "misListas", mientras los bucles "while" interiores recorren los objetos "miListaHashSet" y "miListaTreeSet" respectivamente."
        while(it.hasNext()){
            if(it.next() instanceof HashSet){
                System.out.println("Colección en HashSet:");
                while(itHashSet.hasNext()){
                    System.out.print(itHashSet.next()+"; ");
                }
                System.out.println();
            }else{
                System.out.println("Colección en TreeSet");
                while(itTreeSet.hasNext()){
                    System.out.print(itTreeSet.next()+"; ");
                }
            }
        }
       
       
    }
}

Gracias.

163
Citar
EJERCICIO

Crea un programa Java donde declares un array de enteros tipo int miArray1 cuyo contenido inicial sea {2, -4, 3, -7}. Muestra su contenido por pantalla. Copia el contenido de este array a un ArrayList denominado lista1 y muestra su contenido por pantalla

Código de la clase "EjercicioArrays":

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

public class EjercicioArrays{
    public static void main(){
        int [] miArray1 = {2, -4, 3, -7};
        int i=0;
       
        for(int array: miArray1){ //bucle extendido
            System.out.print("miArray1["+i+"]="+array+"; ");
            i++;
        }
       
       
        ArrayList<Integer> lista1 = new ArrayList<Integer> (); //Creamos el objeto "lista1" de la clase "ArrayList" de tipo "Integer"
        for(int j=0;j<miArray1.length;j++){
            lista1.add(miArray1[j]); //Añadimos a cada array de ArrayList los arrays de "miArray1" que son de tipo primitivo "int"
        }
        System.out.println();
       
        //Imprimimos cada array de "ArrayList" que son de tipo objeto "Integer" mediante el método "lista1.get(posicionDelArray)"
        for(int j=0;j<lista1.size();j++){
            System.out.print("lista1["+j+"]="+lista1.get(j)+"; ");
        }
       
       
    }
}

Citar
¿Qué tipo de datos almacena el array?

El tipo de datos que almacena array son "int". Es un tipo primitivo.

Citar
¿Qué tipo de datos almacena el ArrayList?

ArrayList almacena datos de tipo "Integer". Son datos de tipo objetos.

Gracias.

164
Buenas noches.

A continuación dejo una posible solución del ejercicio CU00673B del curso Java desde cero.

Citar
EJERCICIO

Define una clase Java denominada Circulo que tenga como atributo de clase (estático) y constante numeroPi, siendo esta constante de tipo double y valor 3.1416. Además la clase tendrá el atributo radio (tipo double) que representa el radio del círculo, y los métodos para obtener y establecer los atributos. También debe disponer de un método para calcular el área del círculo (método tipo funcion areaCirculo que devuelve el área) y la longitud del círculo (método tipo función que devuelve la longitud). Busca información sobre las fórmulas necesarias para crear estos métodos en internet si no las recuerdas. En una clase con el método main, declara el código que cree un objeto círculo, le pida al usuario el radio y le devuelva el área y la longitud del círculo.

El código de la clase "EntradaDeTeclado":

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

public class EntradaDeTeclado{
    private double entradaTeclado;
   
   
    public EntradaDeTeclado(){
        entradaTeclado = 0;
       
    }
   
    //Creamos un objeto "Scanner" de tipo "double" con el método ".nextDouble"
    public void pedirEntrada(){
        Scanner entradaEscaner = new Scanner(System.in);
        entradaTeclado = entradaEscaner.nextDouble();
    }
   
    public double getEntrada(){
        return entradaTeclado;}

}

El código de la clase "Circulo":

Código: [Seleccionar]
public class Circulo{
    private static final double PI = 3.1416;
    private double radio;
   
    public Circulo(){
        radio = 0;
    }
   
    public void setRadio(double valor_radio){
        radio = valor_radio;
    }
   
    public double getPI(){return PI;}
   
    public double getRadio(){return radio;}
   
    public double getAreaCirculo(){
        double areaCirculo;
        areaCirculo = PI * (radio*radio);
        return areaCirculo;
    }
   
    public double getLongitud(){
        double longitud;
        longitud = 2*PI*radio;
        return longitud;
    }
   
   
}

El código de la clase "AreaYLongitudDelCirculo":

Código: [Seleccionar]
public class AreaYLongitudDelCirculo{
   
    public static void main(){
        Circulo circulo = new Circulo();
        EntradaDeTeclado entrada = new EntradaDeTeclado();
        /*Si entramos el decimal con "." nos da error:
         "java.util.InputMismatchException:
          null(in java.util.Scanner)" */
        System.out.print("Entra (si es número decimal con \",\" y no con \".\") el radio: ");
        entrada.pedirEntrada();
       
        //Entramos el valor del radio mediante el método "entrada.getEntrada()"
        circulo.setRadio(entrada.getEntrada());
       
        System.out.println("El area del círculo es: "+circulo.getAreaCirculo());
       
        System.out.print("La longitud del círculo es: "+circulo.getLongitud());
       
   
   }
}

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

No es posible porque la el número "Pi" lo hemos declarado como una constante y no como una variable mediante la palabra clave "final".

Gracias.

165
Buenas noches.

Aquí dejo una posible solución del ejercicio CU00672B del curso Java desde cero.

Citar
EJERCICIO

Crea un programa Java que permita “jugar a adivinar un número” como se expone a continuación. El programa debe iniciarse indicando “Se ha generado un número aletatorio entero entre 1 y 100, intente adivinarlo”. El usuario introducirá un número y si el número aleatorio generado por el ordenador es menor deberá indicarse “No has acertado: el número es menor. Prueba otra vez”. Si el usuario introduce un número menor que el número aleatorio deberá indicarse “No has acertado: el número es mayor”. El programa terminará cuando el usuario introduzca el número aleatorio que había escogido el ordenador.

Código "EntradaDeTeclado":

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

public class EntradaDeTeclado{
    private String entradaTeclado;
    private Integer tmpInteger;
   
    public EntradaDeTeclado(){
        entradaTeclado = "";
        tmpInteger = 0;
    }
   

    //Creamos un objeto "Scanner" y convertimos "entradaTeclado" en tipo objeto "Integer"
    public void pedirEntrada(){
        Scanner entradaEscaner = new Scanner(System.in);
        entradaTeclado = entradaEscaner.nextLine();
        tmpInteger = tmpInteger.valueOf(entradaTeclado);
    }
   
    public Integer getEntrada(){
       
        return tmpInteger;}

}

El código de la clase "NumeroAleatorio":

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

public class NumeroAleatorio{
    private Random numeroAleatorio;
    private Integer numero;
   
    public void NumeroAletorio(){
       Integer numero = 0;
    }
   
    public void generarNumeroAletorio(){
        numeroAleatorio = new Random();
        numero = numero.valueOf (numeroAleatorio.nextInt(101));
        System.out.println("Se ha creado un número aleatorio entre 1 y 100, intente adivinarlo :)");
    }
   
    public Integer recuperarNumeroAleatorio(){return numero;}
}

Código de la clase "ElJuego":

Código: [Seleccionar]
public class ElJuego{
    public static void main(){
        NumeroAleatorio numeroAleatorio = new NumeroAleatorio();
        numeroAleatorio.generarNumeroAletorio();
        EntradaDeTeclado entradaTeclado = new EntradaDeTeclado();
        //Integer tmpInteger = 0;
        //tmpInteger = tmpInteger.valueOf (entradaTeclado.getEntrada() );
       
        //Mientras "entradaTeclado.getEntrada()" no sea igual al número que ha elegido el pc al azar, que se repita este bucle de tipo "while".
        while(entradaTeclado.getEntrada().equals(numeroAleatorio.recuperarNumeroAleatorio())==false){
        System.out.print("Entre un número: ");
        entradaTeclado.pedirEntrada();
       
       
        //Cada vez que el compilador pase por aquí que valore si la "entradaTeclado.getEntrada()" cumple estas condicionales.
        if(entradaTeclado.getEntrada().equals(numeroAleatorio.recuperarNumeroAleatorio())){
            System.out.println("Bravo! Has acertado!");
        }else if(entradaTeclado.getEntrada()>numeroAleatorio.recuperarNumeroAleatorio()){
            System.out.println("No has acertado: el número es menor. Prueba otra vez");
        }else if(entradaTeclado.getEntrada()<numeroAleatorio.recuperarNumeroAleatorio()){
            System.out.println("No has acertado: el número es mayor");
        }
    }
    }
}

Gracias.

166
Posible solución del ejercicio CU00670B del curso Java desde cero.

Citar
EJERCICIO

El API de Java proporciona herramientas para pedir datos al usuario a través de ventanas. Un ejemplo de ello es el uso de la clase JOptionPane perteneciente al paquete javax.swing.JOptionPane del API Java. El método showInputDialog permite pedir un dato al usuario y almacena su respuesta en un objeto de tipo String. Queremos crear un programa que pida al usuario un número y muestre por pantalla el doble de ese número. Para ello hemos creado este código:

import javax.swing.JOptionPane;
public class ejemplo1 {
    public static void main (String[] Args) {
        String entradaUsuario = JOptionPane.showInputDialog ( "Introduzca un número:" );
        System.out.println ("El doble del número introducido es: " + 2*entradaUsuario); 
    }
}

El problema que tenemos es que nos salta un mensaje de error “operator * cannot be applied to int, java.lang.String”. ¿Qué interpretación haces de este mensaje de error? ¿Cómo se puede corregir el código para que a través de una conversión de tipos se ejecute el programa?

Código: [Seleccionar]
import javax.swing.JOptionPane;
public class ejemplo1{
    public static void main(String []Args){
        String entradaUsuario = JOptionPane.showInputDialog("Introduzca un número");
        Integer convertir; //Por lo que he leido en los foros, tamibén se puede declarar así: int convertir; y el compilador automáticament (en segundo plano convierte "convertir" en un objeto Integer
        convertir = Integer.valueOf(entradaUsuario);
        System.out.println("El dobre del número introducido es: "+2*convertir);
    }
}

Gracias.

167
Hola a todos.

Os pongo una posible solución del ejercicio CU00669B del curso Java desde cero.

Citar
EJERCICIO

Crea una clase con el método main donde declares una variable de tipo array de Strings que contenga los doce meses del año, en minúsculas y declarados en una sola línea. A continuación declara una variable mesSecreto de tipo String, y hazla igual a un elemento del array (por ejemplo mesSecreto = mes[9]. El programa debe pedir al usuario que adivine el mes secreto y si acierta mostrar un mensaje y si no pedir que vuelva a intentar adivinar el mes secreto.  Puedes comprobar si tu  código es correcto consultando en los foros aprenderaprogramar.com.

Un ejemplo de ejecución del programa podría ser este:

Adivine el mes secreto. Introduzca el nombre del mes en minúsculas: febrero

No ha acertado. Intente adivinarlo introduciendo otro mes: agosto

No ha acertado. Intente adivinarlo introduciendo otro mes: octubre

¡Ha acertado!

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

public class TestMeses{
   
    public static void main(String []Args){
        //String [] meses;
        //meses = new String [12];
        String []mes = {"enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"};;
        String mesSecreto = mes[9];
        System.out.print("Adivina el mes secreto. Introduzca el nombre del mes en minúsculas:");
        String entradaTeclado = "";
        Scanner entradaScanner = new Scanner(System.in);
        entradaTeclado = entradaScanner.nextLine();
        while(entradaTeclado.equals(mesSecreto)==false){
            System.out.print("No has acertado. Intenta adivinar introduciendo otro mes: ");
            entradaTeclado = entradaScanner.nextLine();}
        if(entradaTeclado.equals(mesSecreto)){
            System.out.print("Has acertado!!!");
        }
       
    }


}

Gracias

168
Buenas tardes.

A continuación os pongo una posible solución del ejercicio CU00667B del curso Java desde cero.

Citar
EJERCICIO

Crea una clase denominada ListaCantantesFamosos que disponga de un atributo ArrayList listaCantantesFamosos que contenga objetos de tipo CantanteFamoso. La clase debe tener un método que permita añadir objetos de tipo CantanteFamoso a la lista. Un objeto de tipo CantanteFamoso tendrá como atributos nombre (String) y discoConMasVentas (String), y los métodos para obtener y establecer los atributos. Crea una clase test con el método main que inicialice un objeto ListaCantantesFamosos y añade manualmente dos objetos de tipo CantanteFamoso a la la lista. Usando iterator muestra los nombres de cada cantante y su disco con más ventas por pantalla. Se debe pedir al usuario un nombre y disco con más ventas de otro cantante famoso, y una vez introducidos los datos mostrar la lista actualizada usando iterator. Una vez mostrada la lista actualizada, se debe dar opción a elegir entre volver a introducir los datos de otro cantante o salir del programa (se podrán introducir tantos datos de cantantes como se desee. Para ello usa un bucle while que dé opción a elegir al usuario).

Código de la clase "CantanteFamoso":

Código: [Seleccionar]
public class CantanteFamoso{
    public String nombre;
    public String discoConMasVentas;
   
    public CantanteFamoso(String valor_nombre, String valor_discoConMasVentas){
        nombre = valor_nombre;
        discoConMasVentas = valor_discoConMasVentas;
    }
   
   
    public String getNombre(){return nombre;}
   
    public String getDiscoConMasVentas(){return discoConMasVentas;}
   
    public void mostrarCantantes(){
        System.out.println("Cantante: "+nombre+"\nDisco más vendido: "+discoConMasVentas);
    }
}

Código de la clase "ListaCantantesFamosos":

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

public class ListaCantantesFamosos{
   
    private ArrayList<CantanteFamoso> listaCantantes;
   
    public ListaCantantesFamosos(){
        listaCantantes = new ArrayList<CantanteFamoso>();
    }
   
    public void añadirCantante(String valor_nombre, String valor_discoConMasVentas){
        listaCantantes.add(new CantanteFamoso(valor_nombre, valor_discoConMasVentas));
    }
   
    public int getTamaño(){return listaCantantes.size();}
   
    public CantanteFamoso obtenerInfo(int posicion){return listaCantantes.get(posicion);}
   
    public ArrayList<CantanteFamoso> obtenerLista(){
        return listaCantantes;
    }

}

Código de la clase "Test":

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

public class Test{
   
    private Scanner entradaScanner;
    private ListaCantantesFamosos listaCantantes;
   
    public static void main(String Args[]){
        ListaCantantesFamosos listaCantantes = new ListaCantantesFamosos();
        listaCantantes.añadirCantante("Michael Jackson","Thriller");
        listaCantantes.añadirCantante("Luis Miguel","Mi jardín oculto");
        Scanner entradaScanner = new Scanner(System.in);
        String entradaTeclado03;
        System.out.println("Cantantes en la lista:");
        Iterator<CantanteFamoso> iteratorCantante = listaCantantes.obtenerLista().iterator();
        while(iteratorCantante.hasNext()){
            iteratorCantante.next().mostrarCantantes();
        }
        do{ 
        System.out.print("Introduce otro cantante:");
        String entradaTeclado01;
        entradaTeclado01 = entradaScanner.nextLine();
        System.out.print("Introduce su disco de más ventas:");
        String entradaTeclado02;
        entradaTeclado02 = entradaScanner.nextLine();
        listaCantantes.añadirCantante(entradaTeclado01,entradaTeclado02);
        iteratorCantante = listaCantantes.obtenerLista().iterator();
         while(iteratorCantante.hasNext()){
            iteratorCantante.next().mostrarCantantes();
         }
       
         System.out.print("Quieres introducir más cantantes? sí/no: ");
        entradaTeclado03 = entradaScanner.nextLine();
    }while(entradaTeclado03.equals("sí"));
    if(entradaTeclado03.equals("sí")==false){
        System.out.print("Gracias por usar nuestro programa.\nHasta pronto!");
    }
  }
       
       
    }
 

PD: Para esta solución me ha servido de ayuda la resolución de barriway desde el siguiente hilo:

https://www.aprenderaprogramar.com/foros/index.php?topic=2889.0

Gracias.

169
Una posible solución del ejercicio CU00666B del curso Java desde cero.

Citar
EJERCICIO

Crea una clase denominada ListaCantantesFamosos que al ser inicializada contenga un ArrayList con tres Strings que sean el nombre de cantantes famosos. Crea una clase test con el método main que inicialice un objeto ListaCantantesFamosos y usando un for extendido muestre los cantantes en la lista por pantalla. Se debe pedir al usuario un nombre más de cantante famoso, y una vez introducido mostrar la lista actualizada usando un for extendido. Una vez mostrada la lista actualizada, se debe dar opción a elegir entre volver a introducir otro cantante o salir del programa (se podrán introducir tantos cantantes como se desee, para ello usa un bucle while que dé opción a elegir al usuario).

Código "ListaCanstantesFamosos":

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

public class ListaCantantesFamosos{
    private ArrayList<String> listacantantesfamosos;
   
    public ListaCantantesFamosos(){
        listacantantesfamosos = new ArrayList<String>();
        listacantantesfamosos.add("Joan Bon Jovi");
        listacantantesfamosos.add("Michael Jackson");
        listacantantesfamosos.add("Julio Iglesias");
    }
   
    public void addNombre(String valor_nombre){
        listacantantesfamosos.add(valor_nombre);
    }
   
    public void cantantesEnLaLista(){
        int i = 1;
        for(String cantante: listacantantesfamosos){
            System.out.println("Cantante "+i+": "+cantante);
            i++;
        }
    }
}

Código "Test":

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

public class Test{
    public static void main(String []args){
        System.out.println("Los cantantes famosos en la lista son:");
        ListaCantantesFamosos listacantantes = new ListaCantantesFamosos();
        listacantantes.cantantesEnLaLista();
        System.out.print("Introduzca otro cantante:");
        String entradaTeclado = "";
        Scanner entradaScaner = new Scanner(System.in);
        entradaTeclado = entradaScaner.nextLine();
        listacantantes.addNombre(entradaTeclado);
        listacantantes.cantantesEnLaLista();
        String entradaDesicion = "";
        System.out.print("Deseas entrar más cantante: Sí/No: ");
        entradaDesicion = entradaScaner.nextLine();
        while(true){
            if(entradaDesicion.equals("Sí") || entradaDesicion.equals("Si") || entradaDesicion.equals("sí")|| entradaDesicion.equals("si"))
            System.out.print("Introduzca otro cantante:");
            entradaTeclado = entradaScaner.nextLine();
            listacantantes.addNombre(entradaTeclado);
            listacantantes.cantantesEnLaLista();
            System.out.print("Deseas entrar más cantante: Sí/No: ");
            entradaDesicion = entradaScaner.nextLine();
            if(entradaDesicion.equals("No") || entradaDesicion.equals("no")){
            System.out.println("Gracias por utilizar nuestro programa.");
            break;
            }
        }
        }
}

Gracias

170
Buenas noches.

Aquí dejo una posible solución del ejercicio CU00665B del curso Java desde cero.

Citar
EJERCICIO

Crea una clase denominada ListaCantantesFamosos que al ser inicializada contenga un ArrayList con tres Strings que sean el nombre de cantantes famosos. Crea una clase test con el método main que inicialice un objeto ListaCantantesFamosos, pida dos cantantes famosos más al usuario, los añada a la lista y muestre el contenido de la lista por pantalla.

Código de clase "ListaCantantesFamosos":

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

public class ListaCantantesFamosos{
    private ArrayList<String> listacantantesfamosos;
   
    public ListaCantantesFamosos(){
        listacantantesfamosos = new ArrayList<String>();
        listacantantesfamosos.add("Joan Bon Jovi");
        listacantantesfamosos.add("Michael Jackson");
        listacantantesfamosos.add("Julio Iglesias");
    }
   
    public void addNombre(String valor_nombre){
        listacantantesfamosos.add(valor_nombre);
    }
   
    public String getNombre(int posicion){
        if(posicion >=0 && posicion<listacantantesfamosos.size()){
            return listacantantesfamosos.get(posicion);
        }else{return "No existe cantante para la posición solicitada";}
    }
   
    public int getTamaño(){return listacantantesfamosos.size();}
   
}

Código de la clase "EntradaDeTeclado":

Código: [Seleccionar]
import java.util.Scanner; //Importación del código de la clase Scanner desde la biblioteca Java
//Definimos una clase EntradaDeTeclado aprenderaprogramar.com
public class EntradaDeTeclado{

    private String entradaTeclado; //Variable de instrancia (campo) de clase
   
    public EntradaDeTeclado(){ //Constructor
        entradaTeclado = "";
        pedirEntrada(); //Esto es una llamada a un método interno. Al crear un objeto ejecutamos el método
    } //Cierre del constructor
   
    public void pedirEntrada(){ //Método de la clase
        Scanner entradaEscaner = new Scanner(System.in);
        entradaTeclado = entradaEscaner.nextLine();
    } //Cierre del método pedirEntrada
   
    public String getEntrada(){return entradaTeclado;} //Cierre del método getEntrada
   
} //Cierre de la clase

Clase "Test":

Código: [Seleccionar]
public class Test{
    public static void main(String []args){
        System.out.println("Introduzca nombre de un cantante famoso:");
        EntradaDeTeclado entrada1 = new EntradaDeTeclado();
        System.out.println("Introduzca nombre de otro cantante famoso:");
        EntradaDeTeclado entrada2 = new EntradaDeTeclado();
        ListaCantantesFamosos lista1 = new ListaCantantesFamosos();
        lista1.addNombre(entrada1.getEntrada());
        lista1.addNombre(entrada2.getEntrada());
        for(int i=0;i<lista1.getTamaño();i++){
            System.out.println("El cantante "+(i+1)+" es: "+lista1.getNombre(i));
        }
    }
}


171
Buenas noches.

A continuación dejo la solución del ejercicio CU00662B del curso Java desde cero.

Citar
EJERCICIO

Crea una clase en cuyo método main ejecutes una comparación letra a letra usando equals de dos palabras usando bucles. Por ejemplo si las palabras son “avispa” y “ave” el programa debe dar como resultado: ¿Letra 1 igual en las dos palabras? True. ¿Letra 2 igual en las dos palabras? True ¿Letra 3 igual en las dos palabras? False ¿Letra 4 igual en las dos palabras? La palabra 2 no tiene letra 4 ¿Letra 5 igual en las dos palabras? La palabra 2 no tiene letra 5 ¿Letra 6 igual en las dos palabras? La palabra 2 no tiene letra 6.

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

public class CompararDosCadenas{
   
    public static void main(String []args){
        System.out.println("Introduzca la primera entrada: ");
        Scanner entradaEscaner = new Scanner(System.in);
        String entradaTeclado01;
        entradaTeclado01 = entradaEscaner.nextLine();
        System.out.println("Introduzca la segunda entrada: ");
        String entradaTeclado02;
        entradaTeclado02 = entradaEscaner.nextLine();
        int comparador01 = entradaTeclado01.length();
        if(entradaTeclado01.length()>entradaTeclado02.length()){ //Comparamos cuál de las dos entradas tiene menos carácteres
            comparador01 = entradaTeclado02.length(); //Establecemos el comparador a la entrada que tiene menos carácteres
        }
        int comparador02 = entradaTeclado01.length();
        if(entradaTeclado01.length()<entradaTeclado02.length()){ //Comparamos cuál de las dos entradas tiene más carácteres
            comparador02 = entradaTeclado02.length(); //Establecemos el comparador a la entrada que tiene más carácteres
        }
        comparador02 -= comparador01; //Calculamos la diferencia del comparador que tiene más valor menos el que tiene menos, para así saber cuantas veces tenemos que repetir la frase "La palabra no tiene esta letra"
        for(int i=0;i<comparador01;i++){
        System.out.println("¿La letra: "+(i+1)+" igual en las dos palabras?: "+entradaTeclado01.substring(i,i+1).equals(entradaTeclado02.substring(i,i+1)));
        }
        String palabraCorta = entradaTeclado01;
        if(entradaTeclado01.length() > entradaTeclado02.length()){
            palabraCorta = entradaTeclado02;
        }
        for(int j=0;j<comparador02;j++){
            System.out.println("La palabra: \""+palabraCorta+"\" no tiene letra: "+(j+comparador01+1));
        }
    } //Cierre del main
   
} //Cierre de la clase

Gracias.

172
Buenas a todos.

Os dejo una posible solución del ejercicio CU00659B del curso Java desde cero.

Citar
EJERCICIO

Crea una clase con un método main que pida una entrada de teclado y usando un bucle while, el método length de la clase String y el método substring de la clase String, muestre cada una de las letras que componen la entrada. Por ejemplo si se introduce “ave” debe mostrar:

Letra 1: a
Letra 2: v
Letra 3: e

Código: [Seleccionar]
import java.util.Scanner; //Importación del código de la clase Scanner desde la biblioteca Java

public class BucleWhile{

    public static void main(String []args){
        System.out.println("Introduzca una cadena de texto");
        String msg = "";
        Scanner entradaPorConsola = new Scanner(System.in); //Creación de un objeto Scanner
        msg = entradaPorConsola.nextLine(); //Invocación un método sobre un objeto Scanner
        int i=0;
        while(i<msg.length()){
            System.out.println("Letra "+(i+1)+":"+msg.substring(i,i+1));
            i++;
            if(i==msg.length()){break;}
        }
    }
}

Gracias

173
Buenas noches.

Aquí dejo la solución a la que he podido llegar para el ejercicio CU00658B del curso Java desde cero.

Citar
EJERCICIO

Crea una clase con un método main que pida una entrada de teclado y usando un bucle for, el método length de la clase String y el método substring de la clase String, muestre cada una de las letras que componen la entrada. Por ejemplo si se introduce “ave” debe mostrar:

Letra 1: a
Letra 2: v
Letra 3: e

Código: [Seleccionar]
import java.util.Scanner; //Importación del código de la clase Scanner desde la biblioteca Java

public class Bucle{
   
    public static void main(String []args){
        System.out.println("Introduzca una palabra");
        String msg = "";
        Scanner entradaEscanner = new Scanner(System.in); //Creación de un objeto Scanner
        msg = entradaEscanner.nextLine(); //Invocación un método sobre un objeto Scanner
        for(int i=0; i<msg.length();i++){
            System.out.println("Letra "+(i+1)+":"+msg.substring(i,i+1));
        }
    } //Cierre del main
   
} //Cierre de la clase

Quería preguntar qué significa: "(String []args)" en la línea:

Código: [Seleccionar]
public static void main(String []args){
Será un array tipo "String"? Pero qué quiere decir el "args" después del signo del array?

Gracias.


174
Buenas tardes.

Aquí dejo mi solución del ejercicio CU00657B del curso Java desde cero.

Citar
EJERCICIO

Crea una clase con un método main que pida una entrada de teclado y usando condicionales, el método length de la clase String y el método substring de la clase String, muestre un mensaje indicando:

a) Si la cadena introducida tiene menos de 5 caracteres, entre 5 y 15 caracteres o más de 15 caracteres.

b) Si la cadena introducida comienza por la letra a.

Ejemplo: se pide la entrada y el usuario introduce “vereda”. Por pantalla se debe mostrar: “La cadena introducida tiene entre 5 y 15 caracteres y no comienza por a”.

Código: [Seleccionar]
import java.util.Scanner; //Importación del código de la clase Scanner desde la biblioteca Java

public class EjercicioCU00657B{

    public static void main(String []args){
        System.out.println("Introduzca una cadena por teclado:");
        String entradaPorTeclado = "";
        String msg = "La cadena tiene menos de 5 carácteres y empieza por la letra \"a\"";
        Scanner entradaMetodoScanner = new Scanner(System.in); //Creación de un objeto Scanner
        entradaPorTeclado = entradaMetodoScanner.nextLine();
        if(entradaPorTeclado.length() < 5 && entradaPorTeclado.matches("a.*") != true ){
            msg = "La cadena tiene menos de 5 carácteres y NO empieza por la letra \"a\"";
        }else if(5 <= entradaPorTeclado.length() && entradaPorTeclado.length()<= 15 && entradaPorTeclado.matches("a.*") == true){
            msg = "La cadena tiene más de 5 y menos de 15 carácteres y empieza por la letra \"a\"";
        }else if(5 <= entradaPorTeclado.length() && entradaPorTeclado.length()<= 15 && entradaPorTeclado.matches("a.*") != true){
            msg = "La cadena tiene más de 5 y menos de 15 carácteres y NO empieza por la letra \"a\"";
        }else if(entradaPorTeclado.length()> 15 && entradaPorTeclado.matches("a.*") == true){
            msg = "La cadena tiene más de 15 carácteres y empieza por la letra \"a\"";
        }else if(entradaPorTeclado.length()>15 && entradaPorTeclado.matches("a.*") != true){
            msg = "La cadena tiene más de 25 carácteres y NO empieza por la letra \"a\"";
        }
            System.out.println(msg);
       
    } //Cierre del método "main"
} //Cierre de la clase

Quería aclarar varios asuntos.

Primero: como podéis ver he utilizado "!= true" en vez de "== false". No sé si su utilización es muy correcta.

Segundo: con el método "matches(expresionRegularParaCoincidencias)" y de la manera que lo he utilizado yo si se puede verificar si empieza o no la cadena por "a", pero como podría comprobar si contiene la "a". He probado con "nombreDeLaVariable.matches("*.a.*")", pero me salió un error.

Tercero: aquí os dejo el enlace para los que queráis ver la información del método ".matches()".

Gracias

175
Buenas noches a todos.

A continuación pongo la solución del ejercicio CU00654B del curso Java desde cero.

Citar
EJERCICIO

Define una clase Profesor considerando los siguientes atributos de clase: nombre (String), apellidos (String), edad (int), casado (boolean), especialista (boolean). Define un constructor que reciba los parámetros necesarios para la inicialización y otro constructor que no reciba parámetros. El nombre de los parámetros debe ser el mismo que el de los atributos y usar this para asignar los parámetros recibidos a los campos del objeto. Crea los métodos para poder establecer y obtener los valores de los atributos, con sobrecarga de nombres y uso de this en los métodos setters (los que sirven para establecer el valor de los atributos). Compila el código para comprobar que no presenta errores, crea un objeto usando el constructor con sobrecarga. Comprueba que se inicializa correctamente consultando el valor de sus atributos después de haber creado el objeto. Usa los métodos setters y comprueba que funcionen correctamente.

Código: [Seleccionar]
public class Profesor{
    private String nombre;
    private String apellidos;
    private int edad;
    private boolean casado;
    private boolean especialista;
   
    public Profesor(String nombre, String apellidos, int edad, boolean casado, boolean especialista){
        this.nombre = nombre;
        this.apellidos = apellidos;
        this.edad = edad;
        this.casado = casado;
        this.especialista = especialista;
    }
   
    public Profesor(){
        nombre = "";
        apellidos = "";
        edad = 0;
        casado = false;
        especialista = false;
    }
   
    public void setNombre(String nombre){
        this.nombre = nombre;
    }
   
    public void setApellidos(String apellidos){
        this.apellidos = apellidos;
    }
   
    public void setEdad(int edad){
        this.edad = edad;
    }
   
    public void setCasado(boolean casado){
        this.casado = casado;
    }
   
    public void setEspecialista(boolean especialista){
        this.especialista = especialista;
    }
   
    public String getNombre(){return this.nombre;}
   
    public String getApellidos(){return this.apellidos;}
   
    public int getEdad(){return this.edad;}
   
    public boolean getCasado(){return this.casado;}
   
    public boolean getEspecialista(){return this.especialista;}
}

Gracias

176
Buenas tardes.

Aquí dejo el ejercicio CU00649B del curso Java desde cero.

Citar
EJERCICIO

Crea una clase (ponle el nombre que quieras) que carezca de atributos y cuyo constructor esté vacío. En dicha clase debe existir un método tipo función que reciba 3 cadenas de texto y devuelva la cadena de texto combinación de: las dos primeras letras de la primera cadena, seguidas por un espacio en blanco, seguidas de las cuatro primeras letras de la segunda cadena, seguidas de un guión medio y seguido de las 6 primeras letras de la tercera cadena.

Código: [Seleccionar]
public class CU00649B{
    //Constructor
    CU00649B(){
        //Nada que declarar
    }
   
    String mix(String a, String b, String c){
        String msg = a.substring(0,2) + " " + b.substring(0,4) + "-" + c.substring(0,6);
        System.out.println(msg);
        return msg;
    }
}

Gracias

177
Buenas tardes.

Aquí dejo la solución del ejercicio CU00647B del curso Java desde cero.

Citar
EJERCICIO

Una operación frecuente con valores numéricos puede ser obtener su valor absoluto, es decir, su valor sin signo. Por ejemplo el valor absoluto de -3.22 es 3.22 (hemos eliminado el signo negativo) y el valor absoluto de 7.15 es 7.15 (al ser este número positivo coincide con su valor absoluto). Otra operación frecuente es el cálculo de la raíz cuadrada de un número. Consulta la documentación de la clase Math del api Java para comprobar qué métodos permiten realizar estas tareas. Crea una clase denominada miniCalculadoraEjemplo que tenga dos métodos (basados en el uso de métodos de la clase Math): un método valorAbsoluto que recibe un número de tipo double y devuelva su valor absoluto, y otro método raizCuadrada que reciba un número de tipo double y devuelva su raíz cuadrada.

Código: [Seleccionar]
public class miniCalculadoraEjemplo{
   
    //Constructor
    public miniCalculadoraEjemplo(){
        //Nada que declarar
    }
   
    public double valorAbsoluto(double a){
        return Math.abs(a);
    }
   
    public double raizCuadrada(double a){
        return Math.sqrt(a);
    }
}

Gracias.

178
Buenas.

Pongo una posible solución del ejercicio CU00644B del curso Java desde cero.

Citar
EJERCICIO

Define una clase denominada multiplicadorDieces con un constructor vacío y que contenga un método denominado multiplicarPorDieces que reciba dos parámetros: el primero un número de tipo double y el segundo un número de tipo entero. El método debe devolver el resultado de multiplicar por 10 elevado al segundo número el primer número. Ejemplo: multiplicarPorDieces (2.55, 2) devuelve 2.55*100 = 255. multiplicarPorDieces (3, 5) devuelve 3*100000 = 300000. MultiplicarPorDieces (-0.0563, 3) devuelve -0.563 * 1000 = -56.3. Crea un objeto y comprueba que el método opera correctamente.

Código: [Seleccionar]
public class multiplicadorDieces{
    //Constructor
        public multiplicadorDieces(){
            //Nada que declarar
        }
       
    //Método 1 para calcular la potencia
    public double multiplicarPorDieces(double m, int n){
        double resultado = 1;
        int b = 10;
        for(int i=1;i<=n;i++){
            resultado = resultado * b;
        }
        resultado = resultado * m;
        return resultado;
    } //Cierre del método
       
} //Cierre de la clase

Gracias.

179
Buenas a toda la comunidad de programadores:)

Aquí pongo la solución del ejercicio CU00642B del curso Java desde cero.

Citar
EJERCICIO

Define tres clases: Casa, SalonCasa y CocinaCasa. La clase SalonCasa debe tener como atributos numeroDeTelevisores (int) y tipoSalon (String) y disponer de un constructor que los inicialice a 0 y “desconocido”. La clase CocinaCasa debe tener como atributos esIndependiente (boolean) y numeroDeFuegos (int) y un constructor que los inicialice a false y 0. La clase Casa tendrá los siguientes atributos de clase: superficie (double), direccion (String), salonCasa (tipo SalonCasa) y cocina (tipo CocinaCasa). Define un constructor para la clase Casa que establezca a unos valores de defecto los atributos simples y que cree nuevos objetos si se trata de atributos objeto. Define otro constructor que reciba como parámetros la superficie, dirección y un objeto de tipo SalonCasa y otro de tipo CocinaCasa. Compila el código para comprobar que no presenta errores, y crea un objeto de tipo Casa usando el constructor que recibe parámetros. Ten en cuenta que antes tendrás que haber creado los objetos de tipo SalonCasa y CocinaCasa para poder pasárselos al constructor. Comprueba que el objeto Casa se inicializa correctamente consultando el valor de sus atributos después de haber creado el objeto.

Código del objeto (clase) salón casa:

Código: [Seleccionar]
public class SalonCasa{
    private int numeroDeTelevisores;
    private String tipoSalon;
   
    public SalonCasa(){
        numeroDeTelevisores = 0;
        tipoSalon = "desconocido";
    }
   
    public SalonCasa(int valorNumeroDeTelevisores, String valorTipoSalon){
        numeroDeTelevisores = valorNumeroDeTelevisores;
        tipoSalon = valorTipoSalon;
    }
   
    public void setNumeroDeTelevisores(int valorNumeroDeTelevisores){
        numeroDeTelevisores = valorNumeroDeTelevisores;
    }
   
    public void setTipoSalon(String valorTipoSalon){
        tipoSalon = valorTipoSalon;
    }
   
    public int getNumeroDeTelevisores(){return numeroDeTelevisores;}
   
    public String getTipoSalon(){return tipoSalon;}
}

Código del objeto (clase) CocinaCasa:

Código: [Seleccionar]
public class CocinaCasa{
    private boolean esIndependiente;
    private int numeroDeFuegos;
   
    public CocinaCasa(){
        esIndependiente = false;
        numeroDeFuegos = 0;
    }
   
    public CocinaCasa(boolean valorEsIndependiente, int valorNumeroDeFuegos){
        esIndependiente = valorEsIndependiente;
        numeroDeFuegos = valorNumeroDeFuegos;
    }
   
    public void setEsIndependiente(boolean valorEsIndependiente){
        esIndependiente = valorEsIndependiente;
    }
   
    public void setNumeroDeFuegos(int valorNumeroDeFuegos){
        numeroDeFuegos = valorNumeroDeFuegos;
    }
   
    public boolean getEsIndependiente(){return esIndependiente;}
   
    public int getNumeroDeFuegos(){return numeroDeFuegos;}
}

Código del objeto (clase) Casa:

Código: [Seleccionar]
public class Casa{
    private double superficie;
    private String direccion;
    private SalonCasa salonCasa;
    private CocinaCasa cocina;
   
    public Casa(){
        superficie = 0;
        direccion = "";
        salonCasa = new SalonCasa();
        cocina = new CocinaCasa();
    }
   
    public Casa(double valorSuperficie, String valorDireccion, SalonCasa classSalonCasa, CocinaCasa classCocinaCasa){
        superficie = valorSuperficie;
        direccion = valorDireccion;
        salonCasa = new SalonCasa(classSalonCasa.getNumeroDeTelevisores(), classSalonCasa.getTipoSalon());
        cocina = new CocinaCasa(classCocinaCasa.getEsIndependiente(), classCocinaCasa.getNumeroDeFuegos());
    }
}

Quería comentar (consultar) algo. Si en el objeto (clase) CocinaCasa el código es:

Código: [Seleccionar]
public class CocinaCasa{
    private boolean esIndependiente;
    private int numeroDeFuegos;
   
    public CocinaCasa(){
        esIndependiente = false;
        numeroDeFuegos = 0;
    }
   
   
    public void setEsIndependiente(boolean valorEsIndependiente){
        esIndependiente = valorEsIndependiente;
    }
   
    public void setNumeroDeFuegos(int valorNumeroDeFuegos){
        numeroDeFuegos = valorNumeroDeFuegos;
    }
   
    public boolean getEsIndependiente(){return esIndependiente;}
   
    public int getNumeroDeFuegos(){return numeroDeFuegos;}
}

en vez de:

Código: [Seleccionar]
public class CocinaCasa{
    private boolean esIndependiente;
    private int numeroDeFuegos;
   
    public CocinaCasa(){
        esIndependiente = false;
        numeroDeFuegos = 0;
    }
   
    public CocinaCasa(boolean valorEsIndependiente, int valorNumeroDeFuegos){
        esIndependiente = valorEsIndependiente;
        numeroDeFuegos = valorNumeroDeFuegos;
    }
   
    public void setEsIndependiente(boolean valorEsIndependiente){
        esIndependiente = valorEsIndependiente;
    }
   
    public void setNumeroDeFuegos(int valorNumeroDeFuegos){
        numeroDeFuegos = valorNumeroDeFuegos;
    }
   
    public boolean getEsIndependiente(){return esIndependiente;}
   
    public int getNumeroDeFuegos(){return numeroDeFuegos;}
}

No me funciona los constructores en el código del objeto "Casa". Como que tiene que haber un constructor que se le pasan los valores de los atributos por parametros, en las clases usadas, para que funcione también el constructor de los parámetros en la clase que usa.

No sé si me he explicado bien. Creo que mejor lo veréis con los códigos que os he puesto antes. Lo mismo pasa con el código de la clase "SalonCasa". Si le quito el constructor que usa parámetros, tampoco me funciona el constructor con parámetros en la clase "Casa".

Gracias

180
Buenas noches.

Aquí dejo una posible solución del ejercicio CU00641B del curso Java desde cero.

Citar
EJERCICIO

Define tres clases: Casa, SalonCasa y CocinaCasa. La clase SalonCasa debe tener como atributos numeroDeTelevisores (int) y tipoSalon (String) y disponer de un constructor que los inicialice a 0 y “desconocido”. La clase CocinaCasa debe tener como atributos esIndependiente (boolean) y numeroDeFuegos (int) y un constructor que los inicialice a false y 0. La clase Casa tendrá los siguientes atributos de clase: superficie (double), direccion (String), salonCasa (tipo SalonCasa) y cocina (tipo CocinaCasa). Define un constructor para la clase Casa que establezca a unos valores de defecto los atributos simples y que cree nuevos objetos si se trata de atributos objeto. Compila el código para comprobar que no presenta errores, crea un objeto de tipo Casa. Comprueba que se inicializan correctamente consultando el valor de sus atributos después de haber creado los objetos.

Código: [Seleccionar]
public class Casa{
    private double superficie;
    private String direccion;
    private SalonCasa salonCasa;
    private CocinaCasa cocina;
   
    public Casa(){
        superficie = 0;
        direccion = "";
        salonCasa = new SalonCasa();
        cocina = new CocinaCasa();
    }
}

Gracias

Páginas: 1 ... 4 5 6 7 8 [9] 10 11 12 13 14

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".