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 ... 5 6 7 8 9 [10] 11 12 13 14 15 ... 32
181
Buenos días Pandemia

A la hora de plantear el código CSS debes tener en cuenta que cuando varios elementos comparten un mismo estilo, la definición de estilos debe hacerse de forma conjunta para evitar la repetición.

Por ejemplo, si los elementos con id a, b y c son de 300 píxeles de ancho debemos escribir:

#a, #b, #c {width: 300px;}

De este modo evitamos las repeticiones como

#a {width: 300px;}
#b {width: 300px;}
#c {width: 300px;}

Como ves de este modo nos ahorramos muchas líneas y muchas repeticiones.

Sería conveniente que modificaras el código del ejercicio 1 teniendo esto en cuenta

El ejercicio 2 está correcto

En el ejercicio 3 se produce un efecto extraño. Al definir una altura para el elemento con id parrafo_2

Código: [Seleccionar]
#parrafo_2{
width:900px;
height: 300px;
border-style: dashed;
border-color: green;
border-width: 4px;
}

Si el texto excede la altura disponible, se ve la caja de altura 300px con el borde verde punteado y el texto sin embargo se sale de la caja (porque la altura no es suficiente).

Para evitar que ocurra esto, normalmente no se definen valores heigth, de este modo la altura será la necesaria automáticamente evitando que ocurran efectos como el que he descrito.

Saludos

182
Buenos días, aunque el código funciona deberías corregir una línea errónea

La línea if(i==msg.length()){break;} no es útil, ya que la condición de entrada al bucle es while(i<msg.length()). Si i fuera i==msg.length() no se habría entrado al bucle. Esto significa que esa condición nunca se va a cumplir. Si nunca se va a cumplir no tiene sentido tener esa línea ahí.

El otro motivo para no tener esa línea ahí es que en un bucle while siempre debe producirse la salida del bucle a través de la condición del bucle. Una salida con break solo debe usarse en casos excepcionales donde sea estrictamente necesario usar el break.

Si lees comentarios en otros hilos, salir de un while con un break se compara con salir de una casa por la ventana ¿Se consideraría correcto salir de una casa por la ventana pudiendo salir por la puerta? No, por eso en un bucle while se debe salir del bucle a través de su condición en lugar de a través de un break.

Saludos

183
Buenos días el ejercicio perfecto

De momento te diría que no prestes atención a String[] args, simplemente acostúmbrate a escribirlo. Por ahora no será necesario más, aunque como comentas es un parámetro que recibe el método que es un array de String, y el nombre de la variable es args (o se suele porner args por convención, realmente se puede poner otro nombre si queremos).

Como truco para que se coloque el cursor en la misma línea puedes usar  System.out.print("Introduzca una palabra: "); de este modo no salta el cursor a la siguiente línea.
 
Saludos

184
Buenos días bien las respuestas; en la respuesta a este ejercicio es conveniente incluir el código HTML para poder visualizar tanto la tabla inicial como la tabla con los cambios propuestos

También como has propuesto mejoras sería interesante verlas directamente sobre un código HTML
 
Saludos

185
Buenos días creo que te ha faltado el código del apartado b), aparece la pregunta en vez del código
 
Saludos

186
Buenos días
 
No sé si ya lo resolviste, cuando dices que el echo "todo OK" lo hace en una nueva ventana no sé muy bien a qué te refieres porque no veo echo "todo OK"; en el código

Para operar con Ajax y un formulario debes tener en cuenta lo siguiente: Ajax supone operar en segundo plano con el servidor, mientras que cuando un usuario pulsa el botón enviar de un formulario, se produce la redirección hacia donde apunte el action.

Si quieres operar puramente con Ajax de forma que no haya recarga tendrías que anular la posibilidad de que se envíe el formulario, o directamente no usar formulario sino exclusivamente Ajax.

Saludos

187
Buenos días bien las respuestas
 
Pequeña errata var seconds-left --> tambien una variable local, de tipo 'number'. Está definida por una operacion donde interviene  una variable global local y una variable local.

En el apartado b) si se declara current_date en ámbito local el código no responde porque la variable no se redefine cada segundo, por ello no veríamos el efecto de cuenta atrás

En el apartado d) los métodos que devuelven valores en milisegundos son el método getTime() de objetos de tipo Date. Para pasar los valores devueltos a segundos se divide por mil como en (target_date - current_date) / 1000;

Saludos

188
Buenos días bermartinv

En el ejercicio 1 tienes un error en el formato de comentarios. Dentro de un archivo html (ó de definición de un documento html, el archivo podría tener otra extensión como .php) podemos tener código de distintos tipos: código html, código css, código javascript... Cada lenguaje lleva los comentarios según el formato de comentarios del lenguaje y no podemos mezclar comentarios ni código de un lenguaje con comentarios y código de otro.

En este código que has presentado has escrito comentarios como:

//etiqueta para que los navegadores sepan que se trata de un documento html
  <!DOCTYPE html>
// etiquetamos nuestro documento html y el documento está definido por head y body. En head definiremos caracteristicas de la pagina
<html><head>

Esto no está bien, de hecho algunos o casi todos los navegadores mostrarán por pantalla //etiqueta para que...

¿Por qué?

Porque estás poniendo el símbolo de comentario JavaScript dentro de un fragmento de código que es HTML. Al estar en HTML estos comentarios deberían ir así:

<!--etiqueta para que los navegadores sepan que se trata de un documento html-->
  <!DOCTYPE html>
<!--etiquetamos nuestro documento html y el documento está definido por head y body. En head definiremos caracteristicas de la pagina-->
<html><head>

Los comentarios CSS deberán ir entre /* y */ y los comentarios JavaScript después de // o entre /* y */

Más abajo veo que sí has escrito los comentarios correctamente, no sé por qué se han quedado esos comentarios así.

Te faltan algunas líneas por comentar, puede complementarse con la solución propuesta en https://www.aprenderaprogramar.com/foros/index.php?topic=3578.0


En el ejercicio 2 creo que has cumplido bien el objetivo del ejercicio, felicitarte porque se ve un código bien trabajado y donde usas numerosos conceptos de JavaScript que demuestran un buen nivel en programación

Te comento algunos detalles: en lugar de ocultar la flecha izquierda cuando nos situamos en el lado derecho creo que quedaría más bonito que aparezcan ambas flechas, pero por ejemplo que la más próxima sea más opaca y la otra menos

Hay algún fragmento como

    puntitos[0].onclick=cambio;
    puntitos[1].onclick=cambio;
    puntitos[2].onclick=cambio;
    puntitos[3].onclick=cambio;
    puntitos[4].onclick=cambio;
    puntitos[5].onclick=cambio;
    puntitos[6].onclick=cambio;

Donde hubiera sido más elegante usar un bucle for para evitar repetir tantas líneas iguales

Como ejercicio creo que está muy bien, de hecho creo que le faltaría muy poco para que fuera realmente un slideshow profesional

Saludos

189
Buenos días, todo correcto

Este ejercicio está pensado para crear un objeto usando BlueJ y probar el método usando el banco de objetos de BlueJ. Si se hace así, no es necesario realizar un System.out.println ya que a través de BlueJ se pueden comprobar los resultados creando el objeto e invocando el método (recordar que para pasar los parámetros tipo cadena deben ir entre comillas).

Saludos

190
Buenos días Maxzama dado que has puesto la consulta repetida en dos hilos pedirte que no hagas esta repetición pues crear contenido duplicado confunde en los foros. Además para plantear una consulta abre siempre un nuevo hilo. Solo responde sobre hilos ya creados si es para hablar sobre lo que se está tratando en ese hilo. Esto es para mantener ordenados los foros.

mysql_db_query es una función obsoleta (deprecated)

Siempre te salta la segunda opción porque no tienes bien planteado el código

Guíate por este curso para ver cómo plantear las consultas y recuperar los resultados: http://aprenderaprogramar.com/index.php?option=com_content&view=category&id=70&Itemid=193 en el curso está explicado paso a paso

Saludos

191
Buenos días, explicit instantiation se traduciría como "instanciación explícita". En el lenguaje común no se usa el verbo instanciar, de hecho es posible que ni siquiera exista, pero en programación sí se usa para referirse a la creación de una instancia (un ejemplar, un individuo, un objeto, etc.) de algo. En http://aprenderaprogramar.com/index.php?option=com_content&view=article&id=411:conceptos-de-objetos-y-clases-en-java-definicion-de-instancia-ejemplos-basicos-y-practicos-cu00619b&catid=68:curso-aprender-programacion-java-desde-cero&Itemid=188 hay una definición de instancia

Saludos

192
Buenos días, felicitarte porque el calendario te ha quedado muy bien y además has añadido algún detalle como marcar el día actual de un color diferente. 

Como has indicado hubiera sido deseable que el código estuviera comentado explicando el cometido de las distintas funciones.

Voy a hacer un pequeño recorrido por el código.

Al cargarse la página tiene el evento onload y se llama a la función calendario(). En esta función se define una propiedad para todos los objetos Date a la que se denomina monthDays y que nos devuelve el número de días del mes asociado al objeto Date invocado.

Se crea un objeto Date sin parámetros (tiempo del sistema) y se llama a la función fechaActual que se encarga de mostrar por pantalla el texto de la fecha actual en formato tipo "Febrero de 2076"

Se crea un array con las abreviaturas de los días Lu, Ma, Mi...

Se establece el día de comienzo para el mes invocando la función emprezarDia(fecha) que nos devuelve un valor entre 0 y 6 representando qué día de la semana es el primer día del mes. Por ejemplo 0 sería domingo, 1 lunes, 2 martes, etc.

Por último se invoca la función escribirCalendario pasándole la fecha actual, el array con los nombres de los días Lu, Ma, Mi..., el día de comienzo de 0 a 6 y el número de días que tiene el mes: escribirCalendario(fecha,nombreDias,diacomienzo,dias);

La función escribirCalendario va recorriendo las celdas de la tabla (elementos td) rellenando la primera fila con los días de la semana Lu, Ma, Mi...

Luego si el día de comienzo del mes es el 4 por ejemplo va rellenando con espacios en blanco hasta llegar al día de comienzo. Una vez en el día de comienzo empieza a escribir en cada celda los días del mes hasta alcanzar el final. Si el día coincide con el día actual, lo pinta de rojo.

El código lo veo sencillo y efectivo, hace perfectamente lo que pedía el ejercicio. Hay algún detalle como usar:

    Date.prototype.monthDays= function(){
    var d= new Date(this.getFullYear(), this.getMonth()+1, 0);
    return d.getDate();
}

Esto no parece que realmente fuera necesario, pero es un buen ejemplo de uso de prototype para conseguir por herencia características comunes a objetos.

Quien quiera ver otra solución puede hacerlo en este otro hilo https://www.aprenderaprogramar.com/foros/index.php?topic=3522.0

Saludos

193
Buenos días Pedro, perfecto también. La idea era ver cómo el api canvas nos facilita dibujar usando javascript. Queda claro con tu código.

Saludos

194
Buenos días Pedro, perfecto el ejercicio. La idea era ver cómo el uso de librerías nos puede facilitar enormemente resolver determinadas tareas... lo que queda claro con tu código

Saludos

195
Buenos días Pedro

Respecto a lo que pedía el ejercicio lo único que veo que te falte es "comentarios en línea para describir los aspectos más relevantes". Qué son los aspectos más relevantes depende de cada persona.

Hay una cosa importante: los comentarios sobre las funciones ("comentarios cabecera de función") deben ir justo antes de la declaración de la función (no justo después). Esto es una convención para casi todos los lenguajes de programación y esto sí es importante que lo corrijas y lo tengas en cuenta.

Ya a modo de curiosidad, sobre el indentado, el otro día me comentaron sobre un plugin para Notepad++ que te hace el indentado automático, que he probado y parece que va bien. El plugin se llama "Indent by Fold" y se puede instalar desde el plugin manager de Notepad++. Además de este hay otros plugins similares para Notepad++ (que ordenan e indentan el código).

Saludos

196
Buenos días si hacemos echo 'HOLA1 tenemos '.count($tablaJugadores[$x]).'<br/>';

Comprobamos que nos devuelve HOLA1 tenemos 0, es decir, no te está devolviendo lo que tú esperas que te devuelva.

El motivo es que aunque podríamos esperar que los índices funcionaran, siguiendo el orden de declaración, php no considera esta opción como válida. Para recorrer un array asociativo debes usar un bucle foreach, ver https://www.aprenderaprogramar.com/foros/index.php?topic=1350.0

Para tratar de asimilar esto podemos considerar que los arrays asociativos en php son considerados conjuntos de elementos clave-valor no ordenados, es decir,

$jugador['delantero']['manchester'] no tendría ningún orden frente a $jugador['defensa']['chelsea']

php no sabe cómo ordenar y trabaja con estos elementos como sin orden intrínseco, al contrario que los arrays numéricos donde el orden viene determinado por el valor de los índices

En resumen: con arrays asociativos hay que usar foreach

Saludos

197
Hola, tienes razón en que hay un conflicto o no equivalencia exacta de tipos. No obstante, en este caso lo que hace el compilador es un parseado automático, automáticamente te convierte de int a Integer o viceversa si le es posible. De este modo lo que hace el compilador es transformar al tipo necesario.

Puedes declarar entero como Integer y podríamos decir que evitas esa conversión de tipos y es más correcto, aunque en este caso no tiene demasiada relevancia.

El compilador realiza ciertas acciones de forma automática en segundo plano. "Se puede hacer" todo lo que te permita el compilador, aunque hay ciertas cosas que aunque se pueden hacer podrían calificarse como malas prácticas de programación, pero en este caso como te he comentado tiene poca importancia.

Saludos

198
Buenos días, mencioné el operador módulo pensando que era necesario realizar un conteo del tipo 0-1-2-3 y volver a empezar 0-1-2-3 varias veces, eso te lo permite hacer el operador módulo. Pero mirándolo con calma tampoco es necesario. El código de lo que creo sería una solución más estándar (sin usar el switch... ni siquiera if; también he ordenado por apartados) sería este:

Código: [Seleccionar]
<meta charset="utf-8">
<!DOCTYPE html>
<html>
<head> <meta charset="utf-8"/> </head>
<body>
<?php
$idioma[0]='Inglés'$idioma[1]='Francés'$idioma[2]='Alemán'$idioma[3]='Ruso';
$nivel[0]='Nivel Básico'$nivel[1]='Nivel Medio'$nivel[2]='Nivel Perfeccionamiento';

echo '<h2> Apartado a) Ejercicio </h2>';
$alumnosA[0][0] = 1$alumnosA[0][1] = 14$alumnosA[0][2] = 8$alumnosA[0][3] = 3;
$alumnosA[1][0] = 6$alumnosA[1][1] = 19$alumnosA[1][2] = 7$alumnosA[1][3] = 2;
$alumnosA[2][0] = 3$alumnosA[2][1] = 13$alumnosA[2][2] = 4$alumnosA[2][3] = 1;

for($i=0;$i<3;$i++){
for($j 0$j 4$j++){
echo $nivel[$i]. " - ".  $idioma[$j] .": "$alumnosA[$i][$j]. " alumnos <br/>";
}
}

echo '<br/><br/><br/>';
echo '<h2> Apartado b) Ejercicio </h2>';
$alumnosB = array( array(11483),
array(61972),
array(31341) );

for($i=0;$i<3;$i++){
for($j 0$j 4$j++){
echo $nivel[$i]. " - ".  $idioma[$j] .": "$alumnosB[$i][$j]. " alumnos <br/>";
}
}

echo '<br/><br/><br/>';
echo '<h2> Apartado c) Ejercicio </h2>';
$alumnosC[0] = array(11483);
$alumnosC[1] = array(61972);
$alumnosC[2] = array(31341);

for($i=0;$i<3;$i++){
for($j 0$j 4$j++){
echo $nivel[$i]. " - ".  $idioma[$j] .": "$alumnosC[$i][$j]. " alumnos <br/>";
}
}

?>

</body>
</html>

Saludos

199
Buenos días Jonathan, gracias por tus comentarios. Te invitamos a que sigas participando en los foros ayudándonos a responder a personas que estén iniciándose, es algo que siempre agradecemos. Respecto a la numeración de las entregas del curso tienes razón en ello, gracias por comentarlo. Los nuevos cursos que vamos a ir publicando ya van a llevar la numeración tal y como has indicado. Saludos cordiales.

200
Buenas noches, todo bien

Este código que has definido es un ejemplo interesante de definición y asignación de valores a una matriz en php:

Código: [Seleccionar]
$numeroDeAlumnos = array(
'basico' => array ( 'ingles' => 1, 'frances' => 14, 'aleman' => 8, 'ruso' => 3),
'medio' => array  ( 'ingles' => 6, 'frances' => 19, 'aleman' => 7, 'ruso' => 2),
'alto' => array ( 'ingles' => 3, 'frances' => 13, 'aleman' => 4, 'ruso' => 1),
);

Saludos

Páginas: 1 ... 5 6 7 8 9 [10] 11 12 13 14 15 ... 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".