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 - Mario R. Rancel

Páginas: 1 ... 14 15 16 17 18 [19] 20 21 22 23 24 ... 32
361
Gracias por las aclaraciones. Buen trabajo. Saludos y a seguir...

362
Hola Lorenzo, este ejercicio tiene su complicación pero para eso estamos aquí, también hay que saber enfrentarse a situaciones un poco más complejas. Has resuelto el ejercicio de manera un poco distinta a como lo suelen hacer otras personas ya que has utilizado varias clases. Si te fijas las clases Numeros y Estrellas vienen siendo muy similares a TreeSet y HashSet por lo que podemos decir que no son estrictamente necesarias. No obstante es positivo que hayas hecho un diseño así porque demuestras que sabes definir clases y trabajar con objetos.

La clase ConjuntoSet también podemos decir que está bien planteada. En esta clase hay un problema: el nombre de la clase. Haz puesto como nombre ConjuntoSet y este nombre no es adecuado por un motivo: en Java son dos cosas distintas un conjunto y una lista. Tu clase representa una lista, por lo que el nombre "ConjuntoSet" no es adecuado. Sería preferible ListaSet. Ten en cuenta que en inglé set es conjunto y list lista. En el api de java set y list son dos interfaces y cada una tiene características diferentes y conviene no mezclar la terminología.

La clase GestorIterador está muy bien resuelta, posiblemente una de las mejores soluciones que he visto planteada en los foros, enhorabuena.

Una pequeña mejora sería separar las líneas (simplemente he introducido un salto de línea):

Código: [Seleccionar]
import java.util.Iterator;
import java.util.Set;
public class GestorIterador {
    public static void main (String [] args){
        ConjuntoSet prueba = new ConjuntoSet();
        Iterator <Set> iterConjunto = prueba.getConjunto().iterator();
        while(iterConjunto.hasNext()){
            Iterator iterObjetos = iterConjunto.next().iterator();
                System.out.print("Elementos: ");
              while(iterObjetos.hasNext()){
                  System.out.print(iterObjetos.next() + ", "); }
                System.out.println("");
        }
    }
}

También sería posible eliminar la coma final pero eso lo dejamos como ejercicio para quien quiera realizarlo.

Saludos.

363
Hola Dan, ejercicio bien resuelto. Ya que vas bien y se ve que tienes interés te planteo cuestiones para que tengas en cuenta.

Has declarado variables de clase:

static Scanner in = new Scanner(System.in);
static String palabra1, palabra2;
static int mayor, menor, aux;

Esto puede aceptarse, pero no parece un planteamiento realmente bueno. ¿Para qué queremos definir variables de clase pudiendo hacerlo con variables temporales propias del método main?

No es necesario puesto que el ejercicio está bien resuelto, pero te voy a plantear algo que sería útil para trabajar como lo haría un programador en programación orientada a objetos (realmente a esta escala de pequeños ejercicios es más difícil de plantear por la poca extensión de código, pero se puede hacer). Esto ya sería más de lo que pide el ejercicio realmente.

Planteamiento alternativo:

Definimos una clase denominada ComparadorPalabras. Esta clase no tiene atributos sino un único método, denominado compararPalabras (String palabra1, String palabra2), que se encarga de realizar la lógica de comparación y mostrar los mensajes oportunos por pantalla.

Definimos otra clase denominada GestorEntradas que básicamente permite pedir un dato.

En la clase con el main creamos un objeto GestorEntradas y lo invocamos cuando sea necesario para pedir las palabras. Por otro lado creamos un objeto ComparadorPalabras e invocamos su método pasándole las dos palabras.


Planteamiento doblemente alternativo: definir el método para comparar palabras como String compararPalabras (String palabra1, String palabra2) de modo que el método no se encarga de mostrar nada por pantalla, simplemente lo que hace es devolver un String con el resultado de la comparación. Quien se encargará de mostrar ese String por pantalla será el método main. Por ejemplo un String podría ser este:
"Primera palabra: calzo
Segunda palabra: cabeza
¿Letra 1 es igual en las dos palabras? true
¿Letra 2 es igual en las dos palabras? true
¿Letra 3 es igual en las dos palabras? false
¿Letra 4 es igual en las dos palabras? false
¿Letra 5 es igual en las dos palabras? false
¿Letra 6 es igual en las dos palabras? La palabra 1 no tiene letra 5
"

Es un String largo, pero es un String.

El resultado con cualquier planteamiento de estos no varía respecto al que has obtenido tú, pero si analizas los planteamientos extraerás cosas interesantes de ellos.

Saludos

364
Hola Lorenzo, tus respuestas son correctas.

valueOf y parseInt son métodos que en algunos casos pueden resultar equivalentes, aunque no son exactamente lo mismo. Si consultamos el api de java lo comprobamos:

valueOf(String s) devuelve una instancia de Integer que contiene el valor indicado por el String

public static int parseInt(String s) devuelve un tipo primitivo int con el valor indicado por el String


La diferencia principal es que un método te devuelve un tipo primitivo y el otro un objeto, y no es lo mismo un tipo primitivo que un objeto, aunque algunas veces podamos trabajar con ellos como si fueran equivalentes.

Saludos

365
Hola Marcos, un pequeño detalle a tener en cuenta. El curso está organizado de una forma un tanto particular con criterios didácticos, y con un IDE (BlueJ) enfocado también a la didáctica y un tanto peculiar. En el curso el método main no se ve hasta la entrega CU00655B, por tanto de acuerdo con el programa del curso tu invitación al main debería posponerse hasta esa entrega.

Saludos

366
Hola, ahora parece que está correcto   :D

Saludos

367
Ahora parece todo correcto  :)

Saludos

368
Hola hay algunas cosas que no me cuadran (me referiré a la última tabla):

¿Por qué la columna 3 es no juvenil (adulto) y tiene como acción Acceso gimnasio? Según el enunciado gimnasio sólo sería para juveniles...

Las columnas 7 y 8 parecen tener las mismas acciones y todos los parámetros iguales excepto categoría juvenil, con lo cual parece que ahí podrías fusionar esas dos columnas introduciendo un - (indistinto) para la categoría

Saludos

369
Hola tendríamos:

Condicionantes:

- Es juvenil (o no)

- Primer puesto

- Segundo puesto

- Tercer puesto

- Es de la novena región (o no)


Yo no estaría de acuerdo con que hayas omitido la condición tercer puesto, porque estás suponiendo que si no es primer puesto ni segundo puesto es tercer puesto. ¿Pero qué ocurre si es cuarto puesto? A tí te van a dar los datos y con esos datos tienes que determinar las acciones que corresponden. Si te pasan los datos con un cuarto puesto según tu tabla de decisión las acciones serían las mismas que para un tercer puesto, eso es lo que no veo correcto (ya que creo que esto es una consideración que has hecho tú, no algo que dijera el enunciado).

Saludos.

370
Hola tendríamos:

Condicionantes:

- Antiguedad mayor o igual a dos años

- Promedio mayor o igual a 600.000

- Promedio entre 400 y 600.000

- Promedio entre 250 y 400.000


Las condiciones en tu tabla no reflejan los intervalos, sin embargo parece que el planteamiento que has hecho es bueno, aunque expresando las cosas de otra manera.

Para ceñirte al enunciado tendrías que poner como condiciones:

- Antinguedad >= 2 años

- Promedio > 600.000

- Promedio entre 400 y 600.000

- Promedio entre 250 y 400.000

Si haces esto te saldría un resultado distinto, por ejemplo la primera columna es inviable porque el promedio no puede ser al mismo tiempo los tres casos (mayor de 600, entre 400 y 600 o entre 250 y 400).

No obstante, si como parece los dos planteamientos serían correctos, deberías obtener un resultado "simétrico" al hacer esto, es decir, 6 columnas viables y el resto inviables. Si tienes curiosidad puedes hacerlo, como te digo el resultado debería ser el mismo al que has obtenido tú pero con equivalencias. (Tu columna Sí-Sí-Si-Si sería equivalente a la columna Si-Si-No-No de la tabla con la otra forma de expresión).

Saludos.

371
Ahora lo veo perfecto. Saludos.

372
Ahora creo que lo has dejado perfecto. Saludos.

373
Hola Marcel, al hacer esto:

Código: [Seleccionar]
public void setSalonCasa (SalonCasa valorSalonCasa){
        salonCasa=valorSalonCasa;
    }

Lo que se está haciendo es pasar un objeto (completo) al método. Y la asignación aquí implica que se transfieren todos los valores asociados al objeto que se recibe "de golpe".

En este link hay una explicación un poco más amplia que te puede ser útil: https://www.aprenderaprogramar.com/foros/index.php?topic=1220

Saludos

374
Hola los condicionantes que tenemos aquí son:


- Película de estreno (si no lo es, es que es normal)

- Atrasos anteriores

- Arrienda más de dos películas


A mí me salen 3 condicionantes, sin embargo veo que tú has puesto 5 condicionantes.

La diferencia de interpretación pienso que está aquí:

- Tú estás considerando que video y película son cosas distintas, yo estoy considerando que son lo mismo (un video "contiene" una película)

- Tú has incluido tres variantes: más de dos vídeos, más de dos películas y más de dos estrenos. Para mí todo eso es lo mismo: más de dos. Dado que un cliente solo puede llevar un tipo de película a la vez, es decir, de alquiler o de estreno, esto ya estaría contemplado en la fila que indica si la película es de estreno o no.

Saludos

375
Hola aquí lo veo todo correcto. El hecho de que existan muchas incompatibilidades que llevan a imposible hacen que al final la tabla se reduzca bastante.

Por cierto, ¿con qué programa estás creando las tablas? (Lo digo porque veo que lo haces rápido y la presentación es bastante buena)

Saludos

376
Ahora lo veo correcto. Lo único que podrías añadir es simplificar la tabla T1 (como se explica en http://aprenderaprogramar.com/index.php?option=com_content&view=article&id=157:ejemplos-de-problemas-resueltos-usando-una-tabla-de-decision-i-simplificar-tablas-de-decision-cu00113a&catid=28:curso-bases-programacion-nivel-i&Itemid=59)

Al tener Si-Si y No-Si conducentes a la misma acción, podrías unir en una columna que fuera - / rechazada, es decir, que si es rechazada la solicitud es indiferente que sea nuevo o no.

Saludos

377
Si lo entiendes así lo puedes dar por bueno.

Yo atendiendo al enunciado

Citar
Si lo hace fuera del plazo establecido, deberá elevar una solicitud.

Entendía que sólo quien presenta fuera de plazo debería elevar solicitud y que por eso no podría aparecer fuera de plazo no y aceptada sí.

Si lo interpretas de esa otra manera estaría bien.

378
Hola, para desarrollos web los cursos que recomendamos son los que aparecen en http://aprenderaprogramar.com/index.php?option=com_content&view=article&id=57&Itemid=86

Siguiendo este orden: HTML -- > CSS -- > JavaScript -- > PHP

Esto suponiendo que se parte de unos conocimientos básicos de programación. Si no se tienen esos conocimientos básicos recomendamos leer esto: https://www.aprenderaprogramar.com/foros/index.php?topic=1313.0

A partir de ahí se puede seguir profundizando en cuestiones más específicas de HTML5, Ajax, bases de datos, etc.

Respecto a esta cuestión:

Citar
Hay etiquetas html que pueden ser substituidas por css pero que no son "deprecated"

¿es aconsejable usar css, html, o es indiferente?

Habría que verla caso por caso, si quieres plantea un caso específico para tratar de analizar qué puede ser lo más recomendable. En principio si no son elementos deprecated se podrían usar con tranquilidad.

Saludos.

379
Hola con la lógica que explicas sería posible:

- Ser alumno nuevo (o no)

- Ser alumno nuevo (sí) y con beca (sí o no)

Respecto al plazo de pago sería posible:

- Pagar en plazo

- Pagar fuera de plazo

Respecto a la solicitud que se debe elevar si pagó fuera de plazo puede resultar (esto es un caso peculiar, ya que depende a su vez de que se haya presentado solicitud):

- Aceptada

- Rechazada


Con esto tendríamos:

Columna 1: posible

Columna 2: imposible (no es nuevo y tiene beca)

Columna 3: posible

Columna 4: posible

Columna 5: entiendo que no sería posible (por contra tú has puesto que sí es posible). Digo que no sería posible porque si no ha pagado fuera de plazo no ha presentado solicitud, y si no ha presentado solicitud no puede figurar solicitud aceptada = sí

Pienso que para reflejar esta problemática puede ser preferible desglosar lo que ocurre introduciendo una tabla de decisión derivada como se indica aquí: http://aprenderaprogramar.com/index.php?option=com_content&view=article&id=161:ejercicio-ejemplo-resuelto-con-tablas-de-decision-ii-simplificar-y-anidar-tablas-de-decision-cu00114a&catid=28:curso-bases-programacion-nivel-i&Itemid=59

La referencia T2 (a la nueva tabla) habría que ponerla siempre en la casilla donde toque la acción "Elevar solicitud".

La nueva tabla de decisión serviría para desglosar lo que ocurre cuando se presenta solicitud. En esta tabla tendríamos estas filas:

Alumno nuevo
Solicitud rechazada

Y como acciones:

Fuera del proceso
Inscribe asignaturas
Paga multa


En la tabla T1 habría que eliminar las acciones que únicamente pueden producirse como consecuencia de la aceptación o rechazo de la solicitud.

También habría que eliminar la fila "Aceptada" pues esto se reflejaría en la tabla T2.

Saludos

380
Ahora sí diría que está correcto (aunque el enunciado no me ha parecido del todo claro). Saludos.

Páginas: 1 ... 14 15 16 17 18 [19] 20 21 22 23 24 ... 32

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