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.


Mensajes - adrit

Páginas: 1 2 [3]
41
Hola RaGa, agrego lo que me falta.

Gracias!

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

public class EntradaDeTeclado {
    private String entradaTeclado;

    public EntradaDeTeclado ()  { //Constructor
        entradaTeclado="";
        pedirEntrada(); //Llamada al método interno
    } //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 void setEntrada (String entradaTeclado)  {
        this.entradaTeclado=entradaTeclado;
    }

    public String getEntrada () { return entradaTeclado; } //Cierre del método getEntrada
} //Cierre de la clase

42
Hola!!

EJERCICIO CU00666B

Citar
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: [Seleccionar]
public class Test {

    static ListaCantantesFamosos lista; //es estatico ya que lo vamos a inicializar y usar dentro del metodo main

    public static void main (String[] args) {

        lista = new ListaCantantesFamosos();
       
        System.out.println("\nMostrando lista Actual\n");
        lista.getListaCompleta();
        cantanteOpcional();
    }

    static void cantanteOpcional() {

        EntradaDeTeclado respuestaUsuario, ingresoCantante; //declaramos dos objetos de tipo EntradaDeTeclado

        do {
            System.out.println("\nDesea ingresar otro cantante? Y / N");
            respuestaUsuario = new EntradaDeTeclado();
            if (respuestaUsuario.getEntrada().toLowerCase().equals("y")) {
                System.out.println("\nIngrese otro cantante");
                ingresoCantante = new EntradaDeTeclado();
                //agregando el cantante ingresado al objeto lista
                lista.addCantante(ingresoCantante.getEntrada());
                System.out.println("Cantante agregado satisfactoriamente\n");
                System.out.println("Mostrando lista actualizada\n");
                lista.getListaCompleta();

            }else if (respuestaUsuario.getEntrada().toLowerCase().equals("n")) {
                break; //cuando la respuesta es "n" rompemos el loop do-while

            } else { //si respuesta distinta de "y" o "n" repreguntamos
                System.out.println("Por favor, ingrese Y o N");
                respuestaUsuario.setEntrada("y");
                /*cambiamos el valor por "y" para que se cumple la condicion en el while siguiente
                para ejecutar la sentencia del do nuevamente.
                Para poder cambiar el valor de respuestaUsuario agregamos un metodo setEntrada en la
                clase EntradaDeTeclado*/
                }
        }// fin de do
        while (respuestaUsuario.getEntrada().toLowerCase().equals("y"));
        System.out.println("\nMostrando lista final\n");
        lista.getListaCompleta();
        System.out.println("\nPrograma terminado");
    }
}

Usé la misma clase ListaCantantesFamosos anterior y modicando el metodo getListaCompleta con el for each

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

public class ListaCantantesFamosos {

    private ArrayList<String> listaCantantes;
    //constructor que inicializa el objeto listaCantantes y agrega 3 cantantes(strings)
    public ListaCantantesFamosos () {
        listaCantantes = new ArrayList<String>();
        listaCantantes.add("Bono"); listaCantantes.add("Freddie Mercury"); listaCantantes.add("Shakira");
    }
    //metodo para agregar otros strings
    public void addCantante (String nombre) { listaCantantes.add(nombre); }
    //metodo que devuelve todo el contenido del ArrayList listaCantantes
    public void getListaCompleta () {
        int i = 0;
        for (String nombre : listaCantantes) {
            System.out.println("Cantante "+(i+1)+" : "+nombre);
            i++;
        }
    }
}

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

public class EntradaDeTeclado {
    private String entradaTeclado;

    public EntradaDeTeclado ()  {
        entradaTeclado="";
        pedirEntrada(); //llamada al metodo interno
    }

    public void pedirEntrada ()  {         
        Scanner entradaEscaner = new Scanner (System.in);
        entradaTeclado = entradaEscaner.nextLine ();     }

    public void setEntrada (String entradaTeclado)  {
        this.entradaTeclado=entradaTeclado;
    }

    public String getEntrada () { return entradaTeclado; } //Cierre del método getEntrada
} //Cierre de la clase

Gracias!!

43
Hola!!

EJERCICIO

Citar
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: [Seleccionar]
import java.util.ArrayList;

public class ListaCantantesFamosos {

    private ArrayList<String> listaCantantes;
    //constructor que inicializa el objeto listaCantantes y agrega 3 cantantes(strings)
    public ListaCantantesFamosos () {
        listaCantantes = new ArrayList<String>();
        listaCantantes.add("Bono"); listaCantantes.add("Freddie Mercury"); listaCantantes.add("Shakira");
    }
    //metodo para agregar otros strings
    public void addCantante (String nombre) { listaCantantes.add(nombre); }
    //metodo que devuelve todo el contenido del ArrayList listaCantantes
    public void getListaCompleta () {
        System.out.println("Mostrando lista completa...");
        for (int n = 0 ; n < listaCantantes.size() ; n++) {
            System.out.println("Cantante "+(n+1)+" : "+listaCantantes.get(n));
        }
    }
}

Código: [Seleccionar]
public class Test {
   
    public static void main (String[] args) {
       
        System.out.println("ingrese un cantante");
        EntradaDeTeclado entrada1 = new EntradaDeTeclado();
        System.out.println("ingrese otro cantante");
        EntradaDeTeclado entrada2 = new EntradaDeTeclado();
        ListaCantantesFamosos lista = new ListaCantantesFamosos();
        //agregando el primer cantante ingresado al objeto lista
        lista.addCantante(entrada1.getEntrada());
        //agregando el segundo cantante ingresado al objeto lista
        lista.addCantante(entrada2.getEntrada());
        //metodo que nos devuelve todo el contenido del objeto lista
        lista.getListaCompleta();
    }
}

Gracias!!

44

Hola, voy a hacer una corrección a mis respuestas.

b) Al momento de crear el objeto, sino inicializamos los atributos en el constructor no habría  relación de identidad entre los 3 atributos.

c) Serian 3 objetos distintos.

Gracias!


45
Hola!!

Pongo mis respuestas para el ejercicio CU00663B, muchas gracias!

EJERCICIO

Considera una clase Java que se denomina TripulacionAvion y que tiene como atributos a tres objetos de tipo Persona: Persona piloto; Persona copiloto1; Persona copiloto2.

a) ¿Sería posible que al crear un objeto TripulacionAvion se produjera que piloto, copiloto1 y copiloto2 apuntaran a un mismo objeto, es decir, que existiera una relación de identidad entre los tres atributos?

Respuesta: Si, podríamos asignar a los 3 objetos  un mismo espacio de memoria, es decir, un mismo objeto.


b) ¿Existiría relación de identidad cuando creemos un objeto TripulacionAvion entre los tres atributos si no se inicializaran en el constructor?

Resp: Podría, porque son objetos que ya fueron creados.


c) ¿Cuál sería el contenido de los atributos si no se inicializan en el constructor y creamos un objeto de tipo TripulacionAvion?

Resp: Dependerá de los atributos con los que fueron creados anteriormente.



46
Aprender a programar desde cero / Re:Java desde cero
« en: 12 de Julio 2015, 17:38 »
Y en que parte vas...

Voy por el capitulo 65.

Saludos!

47
Hola!! Respuesta al ejercicio CU00662B:


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

public class Comparacion {

    public static void main (String[] args) {

        Scanner Scanner1 = new Scanner (System.in);

        System.out.println("Ingresa palabra1");
        String entradaTeclado1 = Scanner1.next();

        System.out.println("Ingresa palabra2");
        String entradaTeclado2 = Scanner1.next();
       
        //if para distinguir la entrada mas corta y considero la opción de que sean iguales
        if (entradaTeclado1.length() >= entradaTeclado2.length()) {
            compararEntradas(entradaTeclado2,entradaTeclado1);
        } else compararEntradas(entradaTeclado1,entradaTeclado2);
       
    }
   
    //metodo que compara ambdas entradas
    public static  void compararEntradas (String entradaTecladoCorto, String entradaTecladoLargo) {
        boolean vof; //variable que define verdadero o falso
        int n;
        for (n = 0 ; n < entradaTecladoCorto.length() ; n++) {
            if (entradaTecladoCorto.substring(n,n+1).equals(entradaTecladoLargo.substring(n,n+1))){
                vof = true;
            } else vof = false;
            System.out.println("¿Letra "+(n+1)+" igual en las dos palabras? "+vof);
        }
        //while para analizar la cadena mas larga
        while (n < entradaTecladoLargo.length()) {
            System.out.println("¿Letra "+(n+1)+" igual en las dos palabras? La palabra "+entradaTecladoCorto+" no tiene letra "+(n+1));
            n++;
        }
    }
}

Gracias!!

48
Muy claro ahora.

Gracias!!

49
Aprender a programar desde cero / Re:Java desde cero
« en: 10 de Julio 2015, 16:28 »
Hola, yo lo estoy haciendo y es un excelente curso, te lo recomiendo.

50
Estimados RaGa, como siempre muchas gracias por una respuesta tan completa.

Lo que me confunde es que cuando escribo "for (i=0; i < entradaTeclado.length() ; i++) "
entiendo que si el método length() para un ejemplo con String "hola" devuelve 4 como resultado, "i" nunca podría valer 4 ya que, la condición en el for es que "i" debe valer menos que "4" (usando el ejemplo de "hola"). No estoy usando <=.
Es decir, "i" alcanzaria un valor maximo de 3 (for haría 4 pasadas ya que i = 0). Si agrego "- 1" "i" alcanzaría un valor máximo de 2 y no llegaría a recorrer toda la cadena, y por eso no comprendo como el loop for llega hasta el espacio que está al final de "hola"

La prueba con el metodo getPrimeraPalabra sin usar -1 me devuelve la primera palabra sin dar error.

Hay algo que estoy razonando mal y no me puedo dar cuenta que es.

51
Hola, quisiera consultar acerca del siguiente código, ya que no entiendo porque el uso de - 1 en i < entradaTeclado.length() - 1

Código: [Seleccionar]

for (int i=0; i < entradaTeclado.length() - 1; i++) {
            if (entradaTeclado.substring (i, i+1).equals(" ") ) {     //IMPORTANTÍSIMO: COMPARAMOS CON EQUALS
                return entradaTeclado.substring(0, i+1);         }

Probé no agregarlo a mi código y el resultado fue el mismo.

Desde ya muchas gracias.

Saludos

53
Hola! Respuesta al ejercicio CU00657B:

Código: [Seleccionar]

import java.util.Scanner;

public class ScannerTest {
    public static void main (String[] args) {
        String entradaTeclado = "";
        Scanner scanner1 = new Scanner (System.in);
        System.out.println ("Ingrese una cadena");
        entradaTeclado = scanner1.nextLine();
       
       //contador de letras
        if (entradaTeclado.length() < 5 ) {
            System.out.print("La cadena ingresada contiene menos de 5 letras");
        } else if (entradaTeclado.length() >= 5 && entradaTeclado.length() <= 15) {
            System.out.print("La cadena ingresada contiene entre 5 y 15 letras");
        } else System.out.print("La cadena ingresada contiene mas de 15 letras");
       
        //comprueba si empieza con o sin "a" minúscula o mayúscula
        if (entradaTeclado.substring(0,1).startsWith("a") || entradaTeclado.substring(0,1).startsWith("A")) {
            System.out.println (" y empieza con \"a\"");
        } else System.out.println (" y no empieza con \"a\"");
    }
}

Suponiendo que el código sea correcto me podrían explicar porque no me funcionó esta sentencia?

Código: [Seleccionar]

if (entradaTeclado.substring(0,1) == "a" || entradaTeclado.substring(0,1) == "A") {
            System.out.println (" y empieza con \"a\"");
        } else System.out.println (" y no empieza con \"a\"");


Gracias!

54
Solución propuesta al ejercicio CU00654B:

Código: [Seleccionar]
    public class Profesor {
    private String nombre, apellidos;
    private int edad;
    private boolean casado, especialista;

    public Profesor () {
        nombre ="";
        apellidos = "";
        edad = 0;
        casado = false;
        especialista = false;
    }//cierre constructor sin argumentos

    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;
    } // cierre constructor con argumentos

    public void setNombre (String nombre) {
        this.nombre = nombre;
    }

    public void setApellido (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 especiaslista) {
        this.especialista = especialista;
    }

    public String getNombre () {
        return nombre;
    }

    public String getApellidos () {
        return apellidos;
    }

    public int getEdad () {
        return edad;
    }

    public boolean getCasado () {
        return casado;
    }

    public boolean getEspecialista () {
        return especialista;
    }

}

Gracias,

Saludos!

55
Hola! van las preguntas:

1) Fíjate en el resultado que ofrece el método CombinadoSiempre cuando se le pasan como parámetros dos cadenas vacías. ¿Te parece lógico el resultado?

Dos cadenas vacías devuelven un String con un espacio porque el método combinadoSiempre suma un espacio " " ademas de los substrings de los parámetros ingresados.

Código: [Seleccionar]
CombinadoSiempre = valor_texto1.substring (0,longitud_texto1)+" "+ valor_texto2.substring (0, longitud_texto2);
2) Los dos campos son inicializados en el constructor pero no son usados en ningún método. Para este caso podríamos haber usado un constructor vacío.

Código: [Seleccionar]

    private String texto1;
    private String texto2;
    public Combinador () { texto1 = ""; texto2 = ""; }

56
Hola, copio mis codigos para el ejercicio CU00650B

Código: [Seleccionar]

   
    //Método que combina las tres primeras letras de cada cadena
    public String combinacion (String valor_texto1, String valor_texto2) {
        if (valor_texto1.length() >=3 && valor_texto2.length() >=3) {
            String combinacion = valor_texto1.substring (0,3) + " " + valor_texto2.substring (0,3);
            return combinacion;
        }
        else return "No aporta cadenas validas";
    } //Cierre del método
   
    //Metodo que combina siempre
    public String combinadoSiempre (String valor_texto1, String valor_texto2) {
        String combinacion = "";
        if (valor_texto1.length() <3 && valor_texto2.length() <3) {
            combinacion = valor_texto1.substring(0,valor_texto1.length())+"       "+valor_texto2.substring(0,valor_texto2.length());
        } else combinacion = valor_texto1.substring(0,3)+" "+valor_texto2.substring(0,3);
        return combinacion;

    }//cierre combinadoSiempre

Gracias,

Saludos!

57
Muy claro nuevamente!!

Voy a continuar con el curso para ver en detalle este tema.

Me parece interesante comentar lo siguiente;
Este es el segundo curso por internet que hago de java. Por lo tanto me es inevitable querer adelantarme como este caso, por tener o creer tener una idea del tema.
Para todos los que están aprendiendo java, les recomiendo hacer un segundo curso de cero ya que es muy positivo, es como preguntarle a un compañero o ir a clases particulares.
No se si me explico, ver la misma película dos veces es sumamente útil.

No mezclen contenido, un curso a la vez, empiecen algo y no parar hasta terminarlo. Y luego vean como continuar el aprendizaje, como complementarlo, en mi caso lo hago tomando clases de este excelente curso de nivel inicial.

Gracias!

58
Estimado RaGa, te respuesta es muy completa, muchas gracias por tu dedicación.

Voy a poner un ejemplo de mi constructor
Código: [Seleccionar]
//Constructor
    public TaxiCond (Taxi objetoTaxi, Persona objetoPersona) {
        //Creamos un objeto Taxi con los mismos datos del Taxi recibido como parámetro
        //vehiculoTaxi = new Taxi (objetoTaxi.getMatricula(), objetoTaxi.getDistrito(),     objetoTaxi.getTipoMotor() );
        vehiculoTaxi = objetoTaxi;
        //Creamos un objeto Persona con los mismos datos de la Persona recibidos como    parámetro
        conductorTaxi = objetoPersona;    }

Que sucede en este caso que no estoy usando la sentencia "new taxi ()" para llamar al constructor de clase?
Estoy creando un nuevo objeto "vehiculoTaxi" con los parametros de "objetoTaxi"?
Podriamos decir que

Código: [Seleccionar]
vehiculoTaxi = new Taxi (objetoTaxi.getMatricula(), objetoTaxi.getDistrito(),     objetoTaxi.getTipoMotor() );
        vehiculoTaxi = objetoTaxi;

y

Código: [Seleccionar]
vehiculoTaxi = objetoTaxi;
Son lo mismo en este ejercicio?

59
Hola, soy Adrian y estoy haciendo mis primeros pasos en JAVA.

En el ejercicio CU00642B al crear el objeto taxiCond2 (en mi caso) toma perfectamente los campos de los objetos taxi1 y persona1.

La duda que me surge, es que pasa si después de crear taxiCond2 hago un cambio en un campo de taxi1, por ejemplo en la matricula.

Llevé esto a la practica y el resultado fue que taxiCond2 quedó con la matricula original y no con la nueva modificada en taxi1.

Según entendí estamos haciendo referencia a otro objeto, por tal motivo no debería actualizarse "matricula" en taxiCond2?

Páginas: 1 2 [3]

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