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 - jupertivo

Páginas: [1]
1
Buenas noches a tod@s. Aquí os dejo mi solución al ejercicio del tema CU00675B, de Java desde cero.

Citar
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. ¿Qué tipo de datos almacena el array? ¿Qué tipo de datos almacena el ArrayList?

Código: [Seleccionar]
import java.util.ArrayList;
public class TestCopiaArraysConArrayList{
     public static void main(String[]Args){
        ArrayList<Integer>lista=new ArrayList<Integer>();
        lista.add(8);lista.add(12);lista.add(45);lista.add(-36);lista.add(101);
        int cont;
        int[]miArray={2,-4,3,-7};
        for(cont=0;cont<miArray.length;cont++){
            System.out.print("Array["+cont+"]= "+ miArray[cont]+"; ");}
        System.out.println("");
        cont=0;
        for(int elementolista:lista){
            System.out.print("ArrayList["+cont+"]= "+elementolista+"; ");
            cont++;}
        for(cont=0;cont<miArray.length;cont++){
            lista.add(miArray[cont]);} //Añado elementos de miArray a ArrayList
        System.out.println("");
        System.out.println("");
        cont=0;
        for(int elementolista:lista){
            System.out.println("ArrayList["+cont+"]= "+elementolista);
            cont++;}}}

Saludos

2
Hola a tod@s. Aquí os dejo mi resolución del ejercicio propuesto. Acepto mejoras, críticas, etc. Estamos para aprender ;D.


Clase AdivinarUnNumero, con el 'main':

Código: [Seleccionar]
public class AdivinarUnNumero{
    public static void main(String[]Args){
        Integer miInteger=0;
        boolean continuar=false;
        EntradaDeTeclado entrada; //Creo un objeto 'EntradaDeTeclado'
        NumeroAleatorio numero=new NumeroAleatorio(); //Creo un objeto 'Numeroaleatorio'
        numero.generarNumeroAleatorio(); //Genero un numero aleatorio
        System.out.println("\nEmpieza el programa. Para salir en cualquier momento, pulse 'Return'");
        System.out.print("Se ha generado un número entero aleatorio entre 1 y 100, ambos incluidos. Intente adivinarlo: ");
        entrada=new EntradaDeTeclado(); //Pido datos por teclado
        continuar=entrada.getContinuar(); //Compruebo si se ha pulsado 'Return'
        while(continuar){ //Si no se ha pulsado 'Return', entro
            miInteger=miInteger.valueOf(entrada.getEntrada()); //El valor del 'String' de entrada, se convierte en objeto tipo Integer
            if((int)miInteger==numero.getNumeroAleatorio()){
                System.out.println("\n¡Enhorabuena!. Ha acertado.");
                continuar=false;} //Se ha acertado, por lo que el programa finaliza
            else if((int)miInteger<numero.getNumeroAleatorio()){   
                System.out.print("No ha acertado. El número introducido es menor que el buscado. Intente adivinarlo introduciendo otro: ");}
            else if((int)miInteger>numero.getNumeroAleatorio()){   
                System.out.print("No ha acertado. El número introducido es mayor que el buscado. Intente adivinarlo introduciendo otro: ");}   
            if(continuar){ //Evita que se entre si se ha acertado
                entrada=new EntradaDeTeclado(); //Pido datos por teclado
                continuar=entrada.getContinuar();}} //Compruebo si se ha pulsado 'Return'               
        System.out.println("\nFin del programa");}}


Clase Numeroaleatorio;

Código: [Seleccionar]
import java.util.Random;
public class NumeroAleatorio{//Esta clase genera un entero aleatoriamente entre 1 y 100
    int numeroAleatorio=0;
    public NumeroAleatorio(){numeroAleatorio=0;} //Constructor
    public void generarNumeroAleatorio(){
        Random num=new Random();
        while(numeroAleatorio==0){ //Evito que me genere el cero
            numeroAleatorio=num.nextInt(101);}}
    public int getNumeroAleatorio(){return numeroAleatorio;} }


Clase EntradaDeTeclado:

Código: [Seleccionar]
import java.util.Scanner;
public class EntradaDeTeclado{
    private String entradaTeclado;
    boolean continuar=true;
    public EntradaDeTeclado(){ //Constructor
        entradaTeclado="";
        pedirEntrada();} //Al crear un objeto, se ejecuta este método
    public void pedirEntrada(){
        Scanner entradaEscaner=new Scanner(System.in);
        entradaTeclado=entradaEscaner.nextLine();
        if (entradaTeclado.length()==0) {continuar=false;}} //Si pulso 'Return', finalizará el programa
    public boolean getContinuar(){return continuar;}
    public String getEntrada(){return entradaTeclado;}}


Saludos a todos los foreros. :)


3
Hola a tod@s. Os transcribo el código de dicho ejercicio. Acepto todo tipo de mejoras, críticas, etc.  :).


Clase MesesDelaño:

Código: [Seleccionar]
public class MesesDelAño {
    public static void main (String[]args) {
        String[]MesesDelAño={"enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"};
        String mesSecreto=MesesDelAño[4];
        EntradaDeTeclado entrada;
        System.out.println("Empezamos el programa. Para salir, pulse 'return'");
        System.out.println("\nAdivine el mes secreto. Introduzca el nombre del mes en minúsculas: ");
        do{ 
            entrada=new EntradaDeTeclado();
            if(entrada.getContinuar()) {//Si no se teclea 'Return'
                if(entrada.getEntrada().equals(mesSecreto)) {//Si se acierta el mes secreto
                System.out.println("\n¡Enhorabuena!. Ha acertado.");
                break;}
                    else {System.out.println("No ha acertado. Intente adivinarlo introduciendo otro mes: ");} }//Si no se acierta
            else {break;} }//Si se teclea 'Return'
        while(entrada.getContinuar());//Compruebo que no se teclea 'Return'
        System.out.println("\nFin del programa"); } }


Clase EntradaDeTeclado:

Código: [Seleccionar]
import java.util.Scanner;
public class EntradaDeTeclado {
    private String entradaTeclado;
    boolean continuar=true;
    public EntradaDeTeclado() { //Constructor
        entradaTeclado="";
        pedirEntrada(); } //Al crear un objeto, se ejecuta este método
    public void pedirEntrada() {
        Scanner entradaEscaner=new Scanner(System.in);
        entradaTeclado=entradaEscaner.nextLine();
        if (entradaTeclado.length()==0) {continuar=false;} }
        //Si pulso 'Return', no se introducirán más datos
    public boolean getContinuar() {return continuar;}
    public String getEntrada() {return entradaTeclado;} }


Gracias por vuestra atención. Saludos

4
Buenas noches a tod@s. A continuación os transcribo el código que he realizado sobre el ejercicio propuesto en la entrega CU00667B de "Java desde cero".

Clase TestListaCantantesFamosos, con el 'main':

Código: [Seleccionar]
public class TestListaCantantesFamosos {
    public static void main (String [ ] args) {
        String nombreDeLaLista="\"Cantantes famosos y sus discos más vendidos\"";
        EntradaDeTeclado entrada;
        CantantesFamosos cantante;
        System.out.println("Empezamos el programa. Para salir, pulse 'return'");
        ListaCantantesFamosos lista=new ListaCantantesFamosos(nombreDeLaLista);
        cantante=new CantantesFamosos();
        cantante.setNombre("Madonna");
        cantante.setDiscoConMasVentas("All I Want Is You");lista.addNombre(cantante);
        cantante=new CantantesFamosos();
        cantante.setNombre("Jorge Negrete");
        cantante.setDiscoConMasVentas("Jalisco");lista.addNombre(cantante);
        System.out.println("La lista se llama: "+nombreDeLaLista);
        System.out.println("La lista inicial contiene los siguientes datos: ");
        lista.listarTodosLosNombres();
        do{  //Bucle do-while para ingresar datos en la lista
            System.out.println("\nPor favor, introduzca los datos de otro cantante. Para salir, pulse 'Return'");
            entrada=new EntradaDeTeclado();
            //Si pulsamos 'RETURN' en cualquiera de las dos entradas,
            //el objeto 'CantantesFamosos' actual no se añadirá a la lista
            if(entrada.getContinuar()) {//1ª Entrada: Introducción del cantante
                cantante=new CantantesFamosos();
                cantante.setNombre(entrada.getEntrada());
                entrada=new EntradaDeTeclado();
                if(entrada.getContinuar()) {//2ª Entrada: Introducción del disco
                    cantante.setDiscoConMasVentas(entrada.getEntrada());
                    lista.addNombre(cantante);
                    System.out.println("\nLa lista actualizada contiene los siguientes datos: ");
                    lista.listarTodosLosNombres(); } } }
        while(entrada.getContinuar()); ////Si pulso 'Return', se acabará la introducción de datos
        System.out.println("\nLa lista actualizada contiene los siguientes datos: ");
        lista.listarTodosLosNombres();
        System.out.println("\nFin del programa"); } }


Clase ListaCantantesFamosos:

Código: [Seleccionar]
import java.util.Iterator;
import java.util.ArrayList;
public class ListaCantantesFamosos { //Clase que representa una lista de objetos 'CantantesFamosos' manejada con la clase ArrayList de Java
    private String nombreDeLaLista; //Establecemos un atributo nombre de la lista
    private ArrayList<CantantesFamosos>listaCantantesFamosos; //Declaramos un ArrayList que contiene objetos 'CantantesFamosos'
    public ListaCantantesFamosos(String nombre) {//Constructor
        nombreDeLaLista=nombre;
        listaCantantesFamosos=new ArrayList<CantantesFamosos>();}
    public void addNombre(CantantesFamosos cantante) {listaCantantesFamosos.add(cantante);}
    public void listarTodosLosNombres() {
        int i=1;
        Iterator<CantantesFamosos>it=listaCantantesFamosos.iterator(); //Creamos el objeto it de tipo Iterator con objetos tipo 'CantantesFamosos'
        CantantesFamosos cantante;
        while(it.hasNext()) {//'True' si el objeto tratado no es el último
            cantante= it.next();
            System.out.println("Cantante "+i+": "+cantante.getNombre()+"    "+"Disco con más Ventas: "+cantante.getDiscoConMasVentas());
            i++; } } }


Clase CantantesFamosos:

Código: [Seleccionar]
public class CantantesFamosos{
    private String nombre;
    private String discoConMasVentas;
    public CantantesFamosos() {} //Constructor vacío
    public void setNombre(String valorNombre) {nombre=valorNombre;}
    public void setDiscoConMasVentas(String valorDiscoConMasVentas) {discoConMasVentas=valorDiscoConMasVentas;}
    public String getNombre() {return nombre;}
    public String getDiscoConMasVentas() {return discoConMasVentas;} }


Clase EntradaDeTeclado:

Código: [Seleccionar]
import java.util.Scanner;
public class EntradaDeTeclado {
    private String entradaTeclado;
    boolean continuar=true;
    public EntradaDeTeclado() { //Constructor
        entradaTeclado="";
        pedirEntrada(); } //Al crear un objeto, se ejecuta este método
    public void pedirEntrada() {
        Scanner entradaEscaner=new Scanner(System.in);
        entradaTeclado=entradaEscaner.nextLine();
        if (entradaTeclado.length()==0) {continuar=false;} }
        //Si pulso 'Return', no se introducirán más datos
    public boolean getContinuar() {return continuar;}
    public String getEntrada() {return entradaTeclado;} }


Gracias por vuestra atención. saludos.

5
Hola a tod@s. A continuación transcribo el código del ejercicio propuesto.

Clase TestListaCantantesFamosos, con el 'main':

Código: [Seleccionar]
public class TestListaCantantesFamosos {
    public static void main (String [ ] args) {
        String nombreDeLaLista="\"Cantantes famosos\"";
        EntradaDeTeclado entrada;
        int veces=1;
        System.out.println("Empezamos el programa. Para salir, pulse 'return'");
        ListaCantantesFamosos lista=new ListaCantantesFamosos(nombreDeLaLista);
        System.out.println("La lista se llama: "+nombreDeLaLista);
        lista.listarTodosLosNombres();
        do{  //Bucle do-while para ingresar datos en la lista
            if (veces==1) {System.out.println("\nIntroduzca un/a cantante más:");}
                else if (veces==2) {
                    System.out.println("\nIntroduzca más cantantes. Para salir, pulse 'return'");
                    veces++; }
            entrada=new EntradaDeTeclado();
            if(entrada.getContinuar()) {//el 'if' evita que el 'Return' último sea añadido a la lista
                lista.addNombre(entrada.getEntrada());
                if(veces==1) {lista.listarTodosLosNombres();veces++;}}}
        while(entrada.getContinuar()); ////Si pulso 'Return', se acabará la introducción de datos
        lista.listarTodosLosNombres();} }


Clase ListaCantantesFamosos:


Código: [Seleccionar]
import java.util.ArrayList;
public class ListaCantantesFamosos { //Clase que representa una lista de nombres manejada con la clase ArrayList de Java
    private String nombreDeLaLista; //Establecemos un atributo nombre de la lista
    private ArrayList<String>listadenombres; //Declaramos un ArrayList que contiene objetos String
    public ListaCantantesFamosos(String nombre) { //Constructor: crea una listainicial de 3 cantantes
        nombreDeLaLista=nombre;
        listadenombres=new ArrayList<String>();
        listadenombres.add("Aretha Franklin");listadenombres.add("Etta James");listadenombres.add("Nina Simone");
    }//Creamos el objeto de tipo ArrayList
    public void addNombre(String valor_nombre) {listadenombres.add(valor_nombre);}
    public void listarTodosLosNombres() {
        int i=1;
        if (listadenombres.size()!=0) {
           System.out.println("\nLa lista está formada por "+listadenombres.size()+" cantantes");
           //System.out.println("Mostramos todos los nombres con un ciclo for-each");   
           for (String nombre:listadenombres) { //Ciclo for-each
               System.out.println("Cantante "+i+": "+nombre);i++;} }
        else {System.out.println("La lista está vacía");} } }


Clase EntradaDeTeclado:

Código: [Seleccionar]
import java.util.Scanner;
public class EntradaDeTeclado {
    private String entradaTeclado;
    boolean continuar=true;
    public EntradaDeTeclado() { //Constructor
        entradaTeclado="";
        pedirEntrada(); } //Al crear un objeto, se ejecuta este método
    public void pedirEntrada() {
        Scanner entradaEscaner=new Scanner(System.in);
        entradaTeclado=entradaEscaner.nextLine();
        if (entradaTeclado.length()==0) {continuar=false;} }
        //Si pulso 'Return', no se introducirán más datos
    public boolean getContinuar() {return continuar;}
    public String getEntrada() {return entradaTeclado;} }


Gracias por vuestra atención. Saludos.

6
Hola a tod@s. Os transcribo los códigos del ejercicio propuesto en esta lección. Me ha costado depurarlo para dejarlo como está. Quería que me pidiera cantantes hasta una indicación para finalizar. Pero ahora funciona (por el momento ;D). Me ha servido de mucho los comentarios en https://www.aprenderaprogramar.com/foros/index.php?topic=2220.msg10706#msg10706 .


Primero la clase TestListaCantantesFamosos, donde está el 'main':

Código: [Seleccionar]
public class TestListaCantantesFamosos {
    public static void main (String [ ] args) {
        EntradaDeTeclado entrada;
        System.out.println ("Empezamos el programa. Para salir, pulse 'return'");
        ListaCantantesFamosos lista = new ListaCantantesFamosos("Cantantes introducidos por usuario");
        do{
            System.out.println ("Por favor introduzca un/a cantante:");
            entrada=new EntradaDeTeclado();
            lista.addNombre (entrada.getEntrada()); }
        while(entrada.getContinuar()); ////Si pulso 'Return', 'while' será falso y se acabará la introducción de datos
        System.out.println ("La lista ha quedado formada por "+(lista.getTamaño()-1)+" cantantes");
        for (int i=0;i<lista.getTamaño()-1;i++) {
            System.out.println ("Cantante "+(i+1)+": "+lista.getNombre(i));} } }



A continuación, la clase ListaCantantesFamosos, para crear un ArrayList:

Código: [Seleccionar]
import java.util.ArrayList;
public class ListaCantantesFamosos { //Clase que representa una lista de nombres manejada con la clase ArrayList de Java
    private String nombreDeLaLista; //Establecemos un atributo nombre de la lista
    private ArrayList<String> listadenombres; //Declaramos un ArrayList que contiene objetos String
    public ListaCantantesFamosos (String nombre) { //Constructor: crea una lista de nombres vacía
        nombreDeLaLista=nombre;
        listadenombres=new ArrayList<String>();
        System.out.println ("La lista se llama: "+nombreDeLaLista);
    }//Creamos el objeto de tipo ArrayList
    public void addNombre (String valor_nombre) {listadenombres.add (valor_nombre);}
    public String getNombre (int posicion) {
        if (posicion>=0 && posicion<listadenombres.size()) {
            return listadenombres.get(posicion);}
        else {return "No existe nombre para la posición solicitada";} }
    public int getTamaño () {return listadenombres.size();} }


Por último, la clase EntradaDeTeclado:

Código: [Seleccionar]
import java.util.Scanner;
public class EntradaDeTeclado {
    private String entradaTeclado;
    boolean continuar=true;
    public EntradaDeTeclado () { //Constructor
        entradaTeclado="";
        pedirEntrada(); } //Al crear un objeto, se ejecuta este método
    public void pedirEntrada () {
        Scanner entradaEscaner = new Scanner (System.in);
        entradaTeclado = entradaEscaner.nextLine ();
        if (entradaTeclado.length()==0) {continuar=false;} } //Si pulso 'Return', saldré del programa
    public boolean getContinuar () {return continuar;}
    public String getEntrada () {return entradaTeclado;} }


Saludos y gracias a tod@s.

7
Os adjunto el código del ejercicio propuesto. A mi me funciona. Lo que pregunto es si la forma elegida de resolverlo es la más adecuada, o a estas alturas del curso tendría que haberlo hecho de otra forma más eficiente o adecuada.

Gracias por todo.

Código: [Seleccionar]
public class TestPrograma2 {
    public static void main (String [ ] args) {
        Scanner entradaEscaner;
        String entradaTeclado = "";
        int longitudTexto = 0;
        String primeraLetra = "";
               
        System.out.println ("");
        System.out.println ("Empezamos el programa");
        System.out.println ("Por favor introduzca una cadena por teclado:");
        entradaEscaner = new Scanner (System.in); //Creación de un objeto Scanner
        entradaTeclado = entradaEscaner.nextLine (); //Invocamos un método sobre un objeto Scanner
        System.out.println ("");
        System.out.println ("Entrada recibida por teclado es: \"" + entradaTeclado + "\"");
       
        longitudTexto = entradaTeclado.length();
        primeraLetra = entradaTeclado.substring (0,1);
       
        switch (primeraLetra) {
            case "a":
                if (longitudTexto < 5) {
                    System.out.println ("La cadena introducida tiene menos de 5 caracteres y empieza por la letra 'a'.");}
                else if (longitudTexto >= 5 && longitudTexto <= 15) {
                    System.out.println ("La cadena introducida tiene entre 5 y 15 caracteres y empieza por la letra 'a'.");}
                else {
                    System.out.println ("La cadena introducida tiene más de 15 caracteres y empieza por la letra 'a'.");}
                break;
            default:
                if (longitudTexto < 5) {
                    System.out.println ("La cadena introducida tiene menos de 5 caracteres y no empieza por la letra 'a'.");}
                else if (longitudTexto >= 5 && longitudTexto <= 15) {
                    System.out.println ("La cadena introducida tiene entre 5 y 15 caracteres y no empieza por la letra 'a'.");}
                else {
                    System.out.println ("La cadena introducida tiene más de 15 caracteres y no empieza por la letra 'a'.");}
                break;
        }
     } //Cierre del main
} //Cierre de la clase

8
Hola amigos. Lo primero enhorabuena por el curso de Java desde cero. Poco a poco voy avanzando sin demasiadas penuras, y en parte, por cómo habéis redactado y explicado el curso.

Pero ahora he llegado a una duda para la que no obtengo respuesta. He buscado por los foros y en San Google, pero no obtengo la respuesta "precisa".

Entrega CU00652B, primer ejemplo. Lo transcribo a BlueJ, compilo, OK. Creo un objeto New Deposito, donde me pide los valores del diámetro, altura y el Id. Introduzco, p.e., d=3.256, h=4.954 e id="001".

En esa misma ventana me contesta en la parte de abajo: "Error: incompatible types: possible lossy conversion from double to float".

No lo entiendo. En el código, las variables están definidas como "float", y los valores introducidos no son tan "grandes" como para que los considere "double".

Si cambio en el programa las variables a tipo "double", no da error. Si introduzco valores enteros (ej.: 2 y 3), no da error. ¿Qué está pasando?

Gracias por vuestra atención.

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