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

Páginas: 1 2 3 [4] 5 6 7 8 9 ... 91
61
Buenas, aunque no creo que un diseñador le diera el visto bueno también creo que se puede resolver forzando el texto a encuadrarse en celdas de tabla que impiden que se desalinee.

A mí me aparece alineado poniendo este fragmento de código en sustitución del anterior:

Código: [Seleccionar]
            <tr>
            <td><span class="blue-text"><i class="fa fa-file" aria-hidden="true"></i></span></td>
            <td style='font: 11pt arial'><a href="#" class="info2_ET1">Tema 1 - Jujubes marzipan chocolate cake wafer biscuit.</a></td>
            </tr>
<tr >
<tr hidden class="info2_submenu1">
<td><span class="blue-text"><i class="fa fa-angle-double-right" aria-hidden="true"></i></span></td>
    <td>
    <a href="pagina.htm">Cap. 1/Sec. 1 - Jujubes marzipan chocolate cake wafer biscuit.</a><br>
</tr>
<tr hidden class="info2_submenu1">
<td><span class="blue-text"><i class="fa fa-angle-double-right" aria-hidden="true"></i></span></td>
    <td>
    <a href="pagina.htm">Cap. 1/Sec. 2 - Jujubes marzipan chocolate cake wafer biscuit. Biscuit powder danish croissant cupcake macaroon.</a><br>
</tr>
    </td>
</tr>
        </table>



Salu2

62
Buenas, para quien tenga interés en esto que se comentaba, he hecho pruebas en varios navegadores (Firefox, Chrome, Explorer) y en todos he obtenido el mismo resultado: el texto aparece correctamente alineado, excepto cuando se reduce el tamaño de la ventana a un tamaño tal que la línea no cabe en una sola línea, y al generarse el salto de línea se produce la desalineación. En el caso de la web JSFiddle es precisamente esto lo que ocurre: los resultados se muestran sobre un frame de dimensiones muy reducidas, y debido a ello el contenido no puede visualizarse en una sola línea, generándose el salto de línea y la desalineación, que en caso de usarse un frame de mayores dimensiones no se produciría. En el curso CSS (https://aprenderaprogramar.com/index.php?option=com_content&view=category&id=75&Itemid=203) se comenta una opción que puede ser útil en <<CSS text-align, color, text-decoration, text-indent, white-space nowrap, pre, pre-wrap, pre-line (CU01040D)>>

En el código habría que añadir la opción nowrap así:

Código: [Seleccionar]
    .oculto1,.oculto2,.oculto3{
      white-space:nowrap;
            margin-left: 1%;
            display: none;
        }

Esto evita que al no haber espacio disponible la línea se divida en dos, es decir, la línea se mantiene siempre como una única línea (alineada), haya espacio suficiente o no.

Salu2

63
Buenas, lo que comentas no parece nada trivial. Sobre todo porque una cosa es recopilar información pública (que únicamente requiere acceder a una web), y otra cosa es acceder remotamente a un sistema y operar sobre él. Pienso que puede resolverse con un script php (también podría ser un script en otro lenguaje como java u otros) siempre que el sitio que visitas no te imponga ciertas barreras (como captchas duros o similar), pero para ello requieres conocimientos avanzados de PHP, java o lenguaje que utilices (así como del protocolo HTTP). En el curso de PHP (https://aprenderaprogramar.com/index.php?option=com_content&view=category&id=70&Itemid=193) se menciona algo [Extraer código fuente de página web con PHP. Leer archivos completos: file_get_contents y nl2br (CU00838B)] pero el contenido de este curso es básico y no abarca el poder realizar lo que comentas.

Salu2

64
Buenas, largos días se han perdido por problemas más insignificantes que ese... cosas de la programación  ???

65
Buenas, las respuestas son correctas. Una curiosidad es que en Java "Juan Romero Sánchez" se considera un objeto (es un String), y anónimo porque no está asociado a ninguna variable que apunte a él. No obstante muchas veces los String se consideran objetos un tanto especiales. En https://aprenderaprogramar.com/foros/index.php?topic=1033.0 puede verse un ejemplo curioso como personajeM2 = new PersonajeMaldito("Lady Westfalia", new MaldadBipolar("Destruye sueños", "Encierra miradas"));
En ese ejemplo el segundo parámetro que se pasa al constructor es un objeto sin nombre que se inicializa al mismo tiempo que es pasado como constructor. En este caso el compilador tiene que en primer lugar crear el objeto MaldadBipolar e inicializarlo con los parámetros indicados, y luego crear el objeto PersonajeMaldito e inicializarlo a partir del String y del objeto MaldadBipolar creado.

Salu2

67
Buenas, el ejercicio cumple con lo requerido. Algunos comentarios.

En la clase ListaCantantesFamosos hay dos métodos que usan un parámetro llamado registroCantante, pero un caso con un significado y en otro caso con otro:

Código: [Seleccionar]
public void addCantanteFamoso (CantanteFamoso registroCantante) { listaCantantes.add (registroCantante); }
public CantanteFamoso getCantanteFamoso(int registroCantante) {return listaCantantes.get(registroCantante);}

En el primer caso registrocantente alude a un objeto CantanteFamoso. En el segundo alude a un entero (tipo primitivo). Esto aunque está permitido no es "muy elegante" porque puede originar algo de confusión. Mi recomendación sería usar algo como:

Código: [Seleccionar]
public void addCantanteFamoso (CantanteFamoso registroCantante) { listaCantantes.add (registroCantante); }
public CantanteFamoso getCantanteFamoso(int numRegistroCantante) {return listaCantantes.get(numRegistroCantante);}

Que básicamente es lo mismo, pero donde queda un poco más diferenciado que en un caso se alude a un objeto y en el otro a un entero.

Para quien esté siguiendo el curso y consulte este ejercicio, tener en cuenta que hay algún fragmento de código fuera de los contenidos del curso, por  ejemplo:

Código: [Seleccionar]
// Pausar la salida por pantalla *******************
System.out.print("\n******************** PULSE INTRO PARA CONTINUAR ***************\n");
try{
System.in.read();
}catch (IOException ex) {  } 

El ejercicio puede resolverse sin necesidad de este código, para ver un ejemplo consultar https://aprenderaprogramar.com/foros/index.php?topic=2889.0

Salu2

68
Buenas, se aconseja porque si necesitas contar en general es preferible usar un for normal (con contador) en lugar de usar un for extendido. En el for normal ya tienes el contador incorporado y no tienes que preocuparte por esa cuestión. Es decir, si no hubiera que hacerlo con un for extendido porque lo pide el ejercicio, bastaría usar

    public void mostrarCantantes(){
        for(int i=0;1<getTamaño();i++){
        System.out.println ("Elemento "+(i+1)+": " + getNombre(i) );
    }

y dejar que el control del contador lo lleve el propio for.

Pero como tú dices, puedes usar un contador en un for extendido (si quieres). Y también como has indicado, cuanto más compacto y menos redundante sea el código, mejor.

Salu2

69
Buenas, el código funciona bien y tiene una buena solución para evitar tener que estar respondiendo continuamente ¿Quiere continuar? (s/n), de hecho es mucho más cómodo como lo has programado, y es interesante para quien esté buscando formas de solucionar el ejercicio ver cómo lo has planteado. Un par de cosas a comentar. El for extendido está en la clase ListaCantantesFamosos y no en el main, lo cual está bien, aunque el enunciado parece más bien pedir que esté en el main. Creo que puede darse por bueno tanto una cosa como otra. En cuanto al uso de un contador con un for extendido, creo que es interesante que se lea lo que se comenta en https://aprenderaprogramar.com/foros/index.php?topic=3210.0

Salu2

70
Buenas, he intentado buscar si existe alguna explicación para el orden de letras que se eligieron y no he encontrado nada.

Algún comentario: la letra es únicamente un código de control, para comprobar si se ha escrito mal el número. Se divide el número entre 23 y el resto (de 0 a 22) nos da la posición de la letra en una tabla determinada (no ordenada alfabéticamente).

¿Por qué la tabla tiene ese orden concreto (y no otro)?

Posiblemente porque el creador (o el equipo que creó) del sistema decidió que fuera así. Podía haber decidido cualquier otro orden y hubiera sido igualmente válido. Si el orden es aleatorio o no no lo sabemos (al menos yo no lo sé). Puede que sea aleatorio, o puede que no.

Sí tiene un sentido qué letras se eligieron, por ejemplo:

No se utilizan las letras: I, Ñ, O, U

La I y la O se descartan para evitar confusiones con otros caracteres, como 1, l o 0. La Ñ para evitar confusiones con la N.

Se usan veintitrés letras por ser éste un número primo.

Dentro del DNI se usa otra tabla, que es esta, para calcular algunos dígitos de verificación (en este caso se trata de las cadenas de letras y números que aparecen en el reverso del DNI).

A 0
B 1
C 2
D 3
E 4
F 5
G 6
H 7
I 8
J 9
K 10
L 11
M 12
N 13
O 14
P 15
Q 16
R 17
S 18
T 19
U 20
V 21
W 22
X 23
Y 24
Z 25

El motivo de por qué una tabla y no otra habría que preguntárselo a quienes crearon estos algoritmos...

Salu2

71
Buenas, para pegar código, poner título a los temas, etc. mírate este hilo: https://aprenderaprogramar.com/foros/index.php?topic=1460.0 Para pegar código hazlo como se indica en ese hilo, no lo pegues como citas.

En tu código empieza por revisar la sintaxis del if else, no la tienes bien. Mira en https://aprenderaprogramar.com/index.php?option=com_content&view=article&id=797:if-else-if-else-if-javascript-condicionales-del-flujo-o-estructuras-de-decision-ejemplos-ejercicios-cu01119e&catid=78&Itemid=206 cómo se construye un if else.

En este fragmento tienes un error de sintaxis ya que no tienes bien cerradas las llaves del if.

 if ( !expr.test(correo) )
   {
        alert("Error: La dirección de correo " + correo + " es incorrecta.");
        return false;
     
   else if( !expr.test(nombre) )


Tienes que revisar toda la sintaxis de tu código. En el curso de JavaScript en https://aprenderaprogramar.com/index.php?option=com_content&view=category&id=78&Itemid=206 puedes ver ejemplos de todas las construcciones JavaScript y de validaciones

Salu2

72
Buenas, todo correcto. Muchos programadores prefieren no usar eñes en nombre de variables o métodos porque a la larga puede traer problemas, pero en teoría con Java no debería haberlos.

Salu2

73
Buenas, todo bien. Los "métodos mixtos" son relativamente comunes. Es una práctica antigua en programación proviniente quizás de Unix y C, donde es habitual que una función realice una tarea (por ejemplo la escritura en un archivo) y al mismo tiempo devuelva un valor entero. En base a dicho valor entero se puede saber si la operación deseada (p.ej. la escritura en archivo) se completó con éxito o no. Por ejemplo si devuelve 0 se puede considerar completado con éxito y si es otro valor, indica que ha ocurrido un fallo al intentar escribir el archivo.

Salu2

74
Buenas, es muy raro que ocurra pero ocasionalmente una clase se puede corromper (más que la clase, los ficheros que se crean asociados a esa clase) ó bien contener caracteres ocultos que generen errores de compilación. En ese caso, es recomendable copiar el código, eliminar la clase que da problemas y crear una nueva clase. Si aún así da problemas, ir pegando y compilando fragmento a fragmento hasta determinar qué fragmento ocasiona el problema.

Salu2

75
Buenas, yo sigo sin entender tu respuesta al apartado a) (igual me equivoco en algo). Si quieres pon un ejemplo del código tal y como lo estás pensando (puedes usar clases vacías para no tener que escribir código). Salu2

76
Buenas, comento algunas respuestas.

Pregunta a) No entiendo tu respuesta. "Si. Apuntan a un mismo objeto, el objeto Persona y a la hora de crearlos estos se crean con los mismos valores de los parametros que hay dentro del constructor esten o no por defecto."

Persona no es un objeto, es una clase. Puede haber un objeto Persona, o dos, o tres, o mil... Hablas del objeto Persona ¿a qué objeto persona te refieres?

Pregunta b) La pregunta dice que los atributos no se han inicializado en el constructor ¿Por qué dices que sus valores son diferentes?

Hay una relación de identidad especial en null. Mira lo que se comenta en https://aprenderaprogramar.com/foros/index.php?topic=1964.0

Pregunta c) Correcta

Salu2

77
Buenas, el código funciona a la perfección y tiene la originalidad respecto a otras soluciones que se pueden ver en el foro de que va mostrando ambas letras de las dos palabras que se comparan (cuando existen en las dos palabras), así que todo bien ;)

Salu2

78
Buenas, todo bien, el código cumple con lo que se pedía. Como comentamos en otro hilo, 0+i es lo mismo que i, luego sobra sumarle cero ;) Aunque no es objeto de este ejercicio dejo alguna pregunta planteada para quien quiera responderla. Si cuando nos pide la cadena pulsamos enter directamente (sin introducir ningún carácter), salta un error

java.lang.StringIndexOutOfBoundsException: String index out of range: 1

¿Por qué? ¿Cómo podríamos mejorar el código para que no salte ese error?

Otra curiosidad: en la octava línea, entre usar String entradaTeclado = ""; y String entradaTeclado; ¿Cuál es la diferencia? ¿Qué efecto tiene en el programa hacerlo de una manera u otra?

Salu2

79
Buenas y bienvenido, este foro es para presentarse a la comunidad. Para escribir en los foros mira este hilo y las indicaciones que da respecto a cómo poner títulos, pegar código, etc. : https://aprenderaprogramar.com/foros/index.php?topic=1460.0

En este curso tienes ejercicios similares resueltos: https://aprenderaprogramar.com/index.php?option=com_content&view=category&id=70&Itemid=193

En particular en las entregas CU00832B y siguientes puedes ver ejercicios de este tipo

Cambio el hilo al foro C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más

Salu2

80
Buenas, todo bien. Has escrito System.out.print(entradaTeclado.substring(0+i, i+1) +"\n"); pero como 0+i es lo mismo que i te podrías haber ahorrado dos caracteres de código, es decir, lo mismo da 0+i que i  :D

Salu2

Páginas: 1 2 3 [4] 5 6 7 8 9 ... 91
Esto es un laboratorio de ideas...
Aprender a programar

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