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

Páginas: 1 2 3 4 5 [6] 7 8 9 10 11 ... 25
101
Hola Dan

Tu evaluación es correcta.

Ahora quiero pedirte ¿que criterio has seguido para tomar el enunciado con expresiones ordenadas alfabéticamente para convertirlo en una lista con las mismas expresiones y su evaluación ordenadas numéricamente.?

No se ver la correspondencia entre uno y otra.

Saludos

102
Hola natagibson

Coincido con Dan_SB

Luego te pongo un enlace que te muestra ¿Cómo insertar código en el foro?
https://www.aprenderaprogramar.com/foros/index.php?topic=1460.0

Tu ejercicio está casi perfecto.

Te faltan los setters y getters de los atributos de nombre:
    formato y digital.

Se construyen de la misma forma que has hecho con los otros atributos.

Además, cuando no se indica nada, los atributos de tipo String se inicializan en el constructor con una cadena vacía (ejem. titulo = "")
Y tal como tu has hecho los int a cero y los boolean a false.

Saludos y bienvenido.

103
Hola calderas

    int numeroTecleado = Integer.valueOf(inputKB.nextLine());

Exacto, se puede hacer siempre. La expresión anterior es un ejemplo de la conversión de Integer a int.
Esta conversión (automática) la hace el compilador, pues el primitivo int y el objeto Integer guardan el mismo tipo de información (un número entero con un determinado rango de valores posibles). La diferencia entre estos tipos es que uno tiene métodos y el otro no.

Tal como se explica en entregas anteriores de este curso la elección de un primitivo int o un objeto de tipo Integer para nuestro código depende de:

Si solo queremos hacer operaciones matemáticas con el valor, usar un int.
Tipo primitivo sin métodos.

Si hemos de transformar el valor, averiguar propiedades, etc. usaremos un Integer para aprovechar sus métodos, como el valueOf(String) de este ejercicio.

La siguiente instrucción es igualmente válida:
    int numeroTecleado = (int) Integer.valueOf(inputKB.nextLine());
La ventaja que tiene es que todo está indicado y conducido aunque pueda decirse que es redundante.

Saludos

104
Hola Raga

Si, así es, siempre oirás decir que los campos de la clase o atributos se declaran private. (salvo excepciones muy raras en que necesitemos algo especial.)

Saludos

105
Hola Akjack

En este ejercicio no se pedía que las clases SalonCasa y CocinaCasa tuvieran constructores con parámetros, sino que inicializáramos a 0 y desconocido (eso se hace en un constructor sin parámetros)

Para estas clases puedes escribir el constructor sin parámetros y en la clase Casa utilizas esta instrucción para inicializar
    salonCasa= new SalonCasa();

Saludos

106
Hola calderas

Ejercicio correcto. Cumple su función, crear un número aleatorio y en un bucle while intentar adivinarlo en sucesivos intentos. Bien.

Además has realizado una colección de clases que todas juntas llegan a buen fin. Bien. Esto te servirá para proyectos más grandes.

Pero, sin menoscabar tu trabajo, aquí van unos comentarios.

En programación se usa la lógica de: ante un problema complejo, afrontarlo partiéndolo en varios componentes, y solucionar estos de uno en uno.
Pero esto no es lo mismo que dividir las 100 líneas de un código en cuatro módulos de 25 líneas cada una y llamarlos en el orden adecuado. Esto falsea el principio de: Divide y vencerás.

Además la compartimentación del código en varias clases tiene el propósito de que estas clases sean recipientes de código válidos para otras ocasiones sin cambiar su contenido.
Tu clase NumeroAleatorio solo te sirve para los cien primeros enteros.
La clase DeStringAInt si que sirve para cualquier ocasión de convertir un String a int, pero una solo línea de código puede sustituir a toda la clase.
Tu clase EntradaTeclado, es operativa, pero para obtener el String deseado has de ejecutar dos instrucciones cada vez.

Te adjunto una versión compacta de tu ejercicio.  (+ compacto, + eficiente)

Código: [Seleccionar]
import java.util.Random;
import java.util.Scanner;
public class AdivinaElNumeroBis
{
    public static void main(String[]args){
        Random aleatorioNumero = new Random();
        int valorSecreto = aleatorioNumero.nextInt(100) + 1;
        System.out.println("Se ha generado un número aleatorio entre 1 y 100, intente adivinarlo");
        Scanner inputKB = new Scanner(System.in);
        System.out.println("La KGB nos informa que el numero secreto es: " + valorSecreto);
//        int numeroTecleado = inputKB.nextInt();
        int numeroTecleado = Integer.valueOf(inputKB.nextLine());
        while (numeroTecleado != valorSecreto) {
            if (numeroTecleado < valorSecreto) {
                System.out.println("No has acertado, el número secreto es mayor. Prueba otra vez");
            } else {
                System.out.println("No has acertado, el número secreto es menor. Prueba otra vez");
            }
            numeroTecleado = inputKB.nextInt();
//           numeroTecleado = Integer.valueOf(inputKB.nextLine());
        }
        System.out.println("Enhorabuena!! has acertado");
    }
}

Estas dos líneas se puede intercambiar, hacen lo mismo.
            numeroTecleado = inputKB.nextInt();
            numeroTecleado = Integer.valueOf(inputKB.nextLine());

Saludos

107
Hola urdaneta

Puedes aportar tu clase EntradaDeTeclado.

Una pregunta. ¿A ti te funciona el código?

Saludos

108
Hola urdaneta

Ejercicio correcto.

Si, usa el método nextInt() para el objeto entradaS.
Puedes ver más información de la clase Scanner en el API de Java
http://docs.oracle.com/javase/6/docs/api/

Saludos

109
Hola urdaneta

Ejercicio correcto. OK

Si, esta es la forma correcta de declarar e inicializar un array de String, tal como has hecho tu:
Citar
    String []  meses = {"enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"};

Y si, cuando aciertas el més, el programa finaliza.

Saludos

110
Hola MadVlad

En primer lugar te pongo un enlace que te muestra ¿Cómo insertar código en el foro?
https://www.aprenderaprogramar.com/foros/index.php?topic=1460.0

Bien a la estuctura de tu clase.

Aporto conceptos a tener en cuenta.

Que el atributo que tu bautizas DNI sea un int o un String, es indiferente para este ejercicio.
Solo piensa que un DNI no se usa para sumar o dividir por 2, éstas no son manipulaciones para un numeroDocumentoIdentidad

Los atributos de una clase por convención (no oblicación) en Java han de empezar con minúscula, igual que los métodos (que tu has bautizado bien) y las variables de distinta índole que se utilicen en la clase.
Solo las clases comienzan su nombre con mayúscula (para distinguirlas de variables y métodos)

El atributo Casado o casado, solo puede tener dos valores: true o false. Además asignando a un atributo su propio valor, ¿que sentido o ventaja tiene?

Los métodos get están todos bien, y de los set, están los métodos
    setNombre y    setApellidos que no están bien.

El método:
Citar
    public void setNombre (String valorNombre){
        Nombre= "Nombre" +valorNombre;
    }
debe ser
Citar
    public void setNombre (String valorNombre){
        Nombre = valorNombre;
    }
Pues nadie se llama NombreVictor.

El mismo cambio se ha de realizar en el método setApellidos

Si entiendes todo lo expuesto, no hace falta que vuelvas a enviar el ejercicio. Si no, aquí nos tienes.

Saludos

111
Hola Dan

Tu ejercicio está perfecto.
Declaración de atributos
Inicialización de atributos
Setters y Getters
Y método calculoParaMultiploEdad

Todo OK. Enhorabuena.
Cuando se avanza paso a paso, a la aparición de un problema, se soluciona o reconduce. Y el progreso continúa sin dejar espacios vacíos atrás.

Saludos y adelante.



112
Hola RaGA

Tu ejercicio está perfecto. OK

A esta altura del curso, quiero comentarte que para una eficiencia del código y mayor coherencia, en la clase Test, el método llamado 
    mostrarLista(...)
debería estar en la clase ListaCantantesFamosos, pues manipula información 100% exclusiva de esa clase ListaCantantesFamosos.

De esta forma el método main se descarga de código y se encarga exclusivamente de dar órdenes usando los métodos del resto de las clases del proyecto.

Saludos

113
Hola Lorenzo

Tu clase está perfecta. Incluido el método calculoParaMultipoEdad

En esta clase se puede acceder al atributo edad, invocando directamente dicho atributo o su método get como tú has hecho.
Si esta clase formara parte de un proyecto con más clases, este método sería la única forma de acceder al valor de este atributo.

Saludos y adelante.

114
Hola Killer

Tu clase está bien, excepto en una cosa, no tiene getters.

Algunas veces no hacen falta algunos métodos. Pero nosotros estamos empezando y tenemos que colocarlo todo en su sitio.

Imagina que el entrenador envía a su equipo al terreno de juego solo con órdenes de ataque. Nada de defender. No es una táctica válida.

Nuestras clases deben estar preparadas para todo. Resumiendo, si nuestra clase tiene atributos, tendrá también setters y getters.

Saludos

115
Hola emma

Veo que tienes claro que una signatura se compone de la totalidad del método excepto de las llaves y del código dentro de ellas.

Quiero comentarte para posteriores usos, que los comentarios para un método dentro de la clase, se añaden antes del método en cuestión.
Dentro del método se colocan los comentarios a líneas o bloques de código, y también antes del código en cuestión.

Comento tu respuesta:

1) public void getDiscTime()
Este método debería devolver un float, y como pide de una canción, tal vez será mejor getSongTime. Y dentro de los paréntesis, de que canción queremos la duración, resumiendo:
    public float getSongTime(int numeroCancion)

2) public String CargaDuracPistas(String nombrePista)
En el enunciado no se pide que este método devuelva nada, por lo tanto devolverá void (procedimiento). Y como nombre de método podría ser: tomaTituloYDuracionTodasLasCanciones. Y no recibe ningún parámetro, resumiendo:
    public void tomaTituloYDuracionTodasLasCanciones()

3) public void CalculaTotalDurac()
El nombre del método está bien, pero ese cálculo es el que ha de devolver el método, ha de devolver un float, resumiendo:
    public float calculaTotalDurac()
Nota: los métodos por convención empiezan siempre con minúscula.

4) public void AgregarCancion(String tituloCancion, float durac)
Esta signatura está perfecta, excepto que debería empezar con minúscula.

Cuando se habla de signaturas, se habla de la parte visible y pública del método, no de su contenido, del código que incluye, es decir:

Para el método: public float getSongTime(int numeroCancion)
ambito del método: public
retorno del método: float
nombre del método: getSongTime
parámetros del método: int numeroCancion

Y eso es todo.

Saludos

116
Hola Dan

He visto tu ejercicio, y hay mucho que comentar:

¿Has oido esa frase que se atribuye a Napoleón Bonaparte que le decía a su asistente?
    Vísteme despacio que tengo prisa.

Pues yo te voy a pedir que vayas más despacio siguiendo este curso. No me refiero a que ralentizes las entregas, sino a que no quieras hacer más de lo que se pide en la lección del día.

Tu clase Medico que es la que se pedía, no está completa. Tal vez porque querías ponerlo en el main.
Pero he de decirte, que primero lo básico. Crear la clase Medico tal como te pedimos.
Y cuando eso lo tengas hecho, junto con los siguientes ejercicios. Ya llegaremos al método main.

Por decirlo de alguna manera, tu estás prestando atención al paso 4, cuando todavía estamos en el paso 2. Así pues, cada cosa a su tiempo.

Respecto a tu clase main voy a hacer un comentario global.
Parece que codificas para Java usando un estilo de programación de otro lenguaje. Y te puedo asegurar que no es apropiado.

Finalmente, he visto las imágenes con capturas de BetBeans, creo.
He de decirte que este curso está especialmente diseñado para seguirlo con el IDE BlueJ. Entre otras cosas, por las características inmejorables que tiene para la enseñanza de Java.

Así, que si no usas BlueJ, te lo recomiendo encarecidamente, por lo menos mientras vemos lo básico de Java. Luego puedes usar el IDE que quieras.

En la entrega CU00613B y siguiente tienes indicaciones sobre este IDE y cómo instalarlo.
Si tienes alguna pregunta no dudes en hacerla.

Te adjunto enlace al mismo ejercicio de otro usuario.
https://www.aprenderaprogramar.com/foros/index.php?topic=1462.msg7788#msg7788

Ah. Has enviado este mensaje dos veces. Son mensajes idénticos. He borrado uno para evitar confusiones.

Saludos

117
Hola Akjack

Si, todo tu código está bien excepto lo que te hace bailar la cabeza en la clase Casa.

En la clase Casa, en el constructor sin parámetros inicializas el objeto salonCasa usando la instrucción:
    salonCasa= new SalonCasa();
donde SalonCasa() hace referencia al constructor de la clase SalonCasa que no recibe parámetros (los paréntesis del constructor están vacíos), cuando en tu clase SalonCasa el único constructor que hay recibe dos parámetros.
Ahí está el error.
Por cierto, no tiene sentido crear un constructor con parámetros y luego no usarlos para inicializar los atributos.

Así pues, si el constructor del objeto que quieres crear no recibe parámetros, se invoca el constructor con los paréntesis vacíos. Y si tiene parámetros, se invoca aportando entre los paréntesis los parámetros requeridos.

Lo mismo te ocurre con el atributo cocinaCasa.

Visto esto, creo que sabrás subsanar el error. Si tienes alguna duda, pregunta.

Saludos.

118
Hola emma

La explicación que tu citas, dice como son las cosas en Java.

Más adelante en el texto de la lección termina así:
Citar
Utilizar una variable sin haberla inicializado es una práctica no recomendada en Java (mal estilo de programación) que puede dar lugar a errores o al malfuncionamiento de los programas.

Lo que tu comentas de que declarar un tipo primitivo implica su inicialización automáticamente. Eso puede ser cierto en otros lenguajes, pero en Java no se garantiza.

Por lo que, en Java si no quieres tener sorpresas, primero declaras, luego inicializas y luego todo lo demás.

Saludos

119
Hola matru

Ejercicio correcto. OK.

Saludos

120
Hola Raga

Tu código hace el trabajo de una forma determinada. No puede decirse que sea un error.
Lo que si has captado, es que la clase se convierte en
Citar
un paquetito cerrado y bien modular para futuras necesidades.

Saludos

Páginas: 1 2 3 4 5 [6] 7 8 9 10 11 ... 25

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