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 ... 89
61
Buenas, indico algunas sugerencias de corrección.

En la respuesta a) dices "Es una variable contador y representa la coordenada x o posición vertical..."

La respuesta correcta para el apartado a) sería: "Representa la coordenada horizontal(X) que tendrá nuevaVentana. Su valor inicial es 0 para que nuevaVentana aparezca lo mas a la izquierda posible de la pantalla."

En la respuesta b) dices: "representa la coordenada y, o posición horizontal..." cuando lo correcto es "Representa la coordenada vertical (Y) que tendrá nuevaVentana. Su valor inicial es la división de la altura del viewport del navegador entre 2 menos 125. Es decir, le damos una coordenada(Y) inicial a nuevaVentana. Ej: Si window.innerHeight=800, positionY=800/2-125"

También dices "Posicionar la ventana en el centro horizontal de la pantalla. " cuando lo correcto sería "Posicionar la ventana en el centro vertical de la pantalla."

En el f) y g) me han funcionado bien con un monitor o sin paneles laterales del navegador abiertos, es decir, en situación normal. Si lo pruebo con dos monitores o con paneles laterales abiertos no me ha funcionado del todo bien (esto es solo una curiosidad, no vamos a pretender que el código esté preparado para este tipo de cosas). Por tanto el código todo bien.

Salu2

62
Buenas, en la respuesta de César Krall tienes los códigos. Pulsa en seleccionar y copia el código de cada clase. Salu2

64
Buenas, todo bien aunque en este ejercicio me ha dado algo de problemas el CSS que has introducido porque los iframe no me aparecen siempre uno a la izquierda y otro a la derecha. No creo que sea aquí el lugar para hablar de CSS ya que en la web hay un curso específico sobre CSS así que no voy a entrar en esto.

A mí con el espectador me ocurre lo mismo: no carga la web y viendo consola salta el error Load denied by X-Frame-Options: https://www.elespectador.com/noticias does not permit cross-origin framing. Esto se debe a la configuración del servidor de esta web, que rechaza servir la web en frames por seguridad contra ataques, por motivos de copyright o por otras razones. No es una cuestión por tanto del navegador ni del código.

Salu2

66
Buenas, buena presentación y buen código. En mi caso con MSIE tampoco ha funcionado. En primer lugar, debido a la configuración de seguridad del navegador. A mí me aparece el mensaje "Internet Explorer no permitió que esta página web ejecutara scripts o controles ActiveX en el equipo". Si le indico "Permitir" en la parte de expresiones regulares sigue sin funcionarme, y en la parte de indexOf me aparece "Usted está usando el navegador: Navegador desconocido".

En window.navigator.userAgent lo que me devuelve es: Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; .NET4.0E; .NET4.0C; .NET CLR 3.5.30729; .NET CLR 2.0.50727; .NET CLR 3.0.30729; rv:11.0) like Gecko

Mozilla era la mascota de Netscape, y Netscape fue uno de los navegadores más populares (o el más popular) en la época en que internet se expandió y comenzó a ser usado por todo el mundo. Confunde porque cuando vemos Mozilla normalmente pensamos en Mozilla Firefox, pero en este caso no es el user-agent de Firefox sino de una versión del Explorer.

Tradicionalmente siempre que los navegadores eran Microsoft Internet Explorer, en el user-agent string aparecía MSIE, pero hay versiones donde no aparece y tendrían que ser identificados de otra manera.

En fin, un pequeño lío. De cualquier forma, el objetivo en el curso es tener una idea general sobre el reconocimiento de navegadores y por ese lado misión cumplida.
 
Salu2

67
Buenas, todo bien. Los inconvenientes que tendría el uso de closures sería que si se crean indiscriminadamente en número excesivo, consumen recursos del computador innecesariamente.

Salu2

68
Comunidad / Re:Hola a todos
« : 22 de Junio 2018, 19:05 »
Buenas Toshirou, da gusto ver cómo en esta web nos entremezclamos personas de todo el planeta con interés por la programación. Esperamos contar contigo para enriquecer los foros. Salu2 desde España

69
Buenas, todo bien. Copio una explicación que me ha parecido interesante: "Toda función define un ámbito y una función dentro de otra función puede hacer que this no se refiera a lo mismo según dónde lo usemos. Por ejemplo, si tenemos una función anónima dentro de otra, this en la función externa puede estar haciendo referencia al objeto envolvente mientras que this en la función anónima puede estar haciendo referencia al objeto global window.

La solución para mantener una referencia a this en una función anónima interna puede estar en crear un closure. Definiríamos como variable local a la función externa var that = this;, y luego en la función anónima interna haríamos referencia a that, variable auxiliar que nos sirve para mantener la referencia deseada."


Salu2

70
Buenas, todo bien. Las variables que has indicado Tipo Numérica Entera se corresponderían con el tipo Number de JavaScript, que es el tipo que se asigna por defecto a valores numéricos cuando no hay una declaración explícita de tipo.

Salu2

71
Buenas, felicitarte porque el comentario del código está muy completo y con el juego del frontón, más allá de que sea mejorable, se demuestra que has ido adquiriendo manejo de numerosos conocimientos de programación, toda una base de gran interés y ejemplo para otras personas que consulten los foros y vean cómo se puede progresar dedicándole tiempo y esfuerzo ;)

Salu2

72
Buenas, el ejercicio 1 funciona correctamente. Hay una cosa que no me parece demasiado "limpia". Si el usuario acierta el número, para forzar la salida del bucle de solicitud de número escribes i=31; Esto en cierta medida es decir, si el usuario lleva 6 intentos y acierta el número, para salir decimos que el usuario lleva 30 intentos. Esto aunque funcione puede generar problemas de depuración en programas largos. Imagina que en un  momento dado se decide mostrar el número de intentos que ha tardado en acertar el número. Ahí podrían venir problemas. Desde mi punto de vista sería más adecuado que en la propia condición del bucle se controlara si lleva menos de 30 y no ha acertado, en lugar de valernos de "un truco".

Otra cosa que no veo correcta del ejercicio 1 es que empiece diciendo "Le quedan 29 intentos" y que termine dicendo "Le quedan 0 intentos". Creo que sería preferible que empezara diciendo que le quedan 30 intentos y que terminara diciendo que le queda 1 intento.

El ejercicio 2 y 3 todo bien. Bueno, a mí me ha mareado un poco que el texto volador vaya cambiando de colores :)

Salu2

73
Buenas, he estado mirando alternativas y lo que me ha funcionado mejor es  

Se recomienda que el código vaya dentro de etiquetas <pre> ... </pre> ya que en caso contrario los navegadores tienden a colapsar de forma automática los espacios en blaco.

Este código me ha servido, aunque si quisieras cuadrar textos de longitudes muy diferentes quizás tendrías que ponerte a contar caracteres para cuadrarlo con exactitud.

Código: [Seleccionar]
<!DOCTYPE html>
<html>

<head>
<meta charset="utf-8">
<title>Ejemplo del uso de formularios - aprenderaprogramar.com</title>
</head>

<body>
<form method="get" action="http://aprenderaprogramar.com/action.php">

Elije solo una opción, como en los botones radio:
<pre>
<select name="entradalista1">

<option>Pedro Perez de la Rosa &emsp; 41 años &emsp; Piel blanca</option>
<option>Juan &emsp; 42 años si no se tiene en cuenta que fue inscrito tarde &emsp; Piel blanca</option>
<option>Alfredo Perez &emsp; 43 años &emsp; Piel blanca</option>

</select>
</pre>
<br /><br /><br /><br />

</form>
</body>
</html>

Salu2

74
Buenas, todo correcto, buen código. Por comentar algo, en lugar de gettexto preferible getTexto. En cuanto a nombre de la clase, GestionTeclado no es demasiado adecuado porque suena muy bien decir "he creado un objeto gestión de teclado". Preferible GestorTeclado para poder decir "he creado un objeto gestor de teclado". La forma de nombrar clases en Java se comenta en https://aprenderaprogramar.com/foros/index.php?topic=3035.msg13698#msg13698

Salu2

76
Buenas, el ejercicio 1 está correcto. En el ejercicio 2 al hacer pruebas me he encontrado un pequeño problema. Si le introduzco como fecha 1 un día y como fecha 2 el mismo día, me aparece un mensaje del tipo:

Desde las 00:00 del dia :5/6/2094 A las 00:00 del dia : 5/6/2094
hay : 1 dia(s) de diferencia
Primer dia incluido desde las 00:00 horas

Si introduzco un día de diferencia me dice que hay 2

Desde las 00:00 del dia :5/6/2094 A las 00:00 del dia : 6/6/2094
hay : 2 dia(s) de diferencia
Primer dia incluido desde las 00:00 horas

Esto no es correcto, habría que corregir el código.

Una sorpresa con la que me he encontrado es que en el navegador que estoy utilizando al tener input type="date" automáticamente me aparece un calendario de selección cuando hago click en la caja para selección de fecha. En navegadores más antiguos creo que esto no funcione.

Al igual que en otras ocasiones indicar que hay algo que no es adecuado: el nombre de la función Comenzar no describe lo que es o hace la función. Esto se considera una mala práctica de programación porque en programas de miles de líneas hace el código confuso y difícil de depurar. Si se quiere incluir todo en una función en este caso podría llamarse codigo_ejercicio_CU01163E_1, algo que indique qué es o qué hace el código.

Salu2

77
Buenas, el ejercicio está bien resuelto. Hay un aspecto del diseño del código que recomendaría mejorar. Con esto me refiero a los nombres de las funciones y el contenido de las mismas. El nombre de una función debe representar lo que es o lo que hace. En el caso de una función entrarDatos debería servir únicamente para entrar datos. Sin embargo en esta función vemos que entrarDatos recupera la fecha, genera una tabla, etc.

Código: [Seleccionar]
function entrarDatos()
{
fechaActual=new Date();
cogerMesAñoDia();
generaTabla();
atributosTabla();
return fechaActual;
}

Esto se recomienda una mala práctica de programación porque en programas de miles de líneas hace el código confuso y difícil de depurar.

Para evitar problemas con los juegos de caracteres recomendamos no usar eñes en el código, por ejemplo en lugar de cogerMesAñoDia usar cogerMesAnnoDia

Salu2

78
Buenas, el ejercicio 1 funciona bien, no obstante, parece repetitivo ejecutar la función con onkeyup, onkeypress y onkeydown. En este otro hilo https://aprenderaprogramar.com/foros/index.php?topic=6432.0 se hace solo con onkeypress que supuestamente debe ir bien en todos los navegadores. No sé si lo has hecho por tener problemas con algún navegador.

Ejercicio 2 correcto.

Salu2

79
Buenas, creo que habría muchos factores que valorar: si se da más importancia al precio o a la calidad del servicio, si se requiere soporte telefónico o no, si se quiere un hosting compartido o uno dedicado, si el servidor lo quiere administrar uno mismo o que se lo administren, qué base de datos se va a utilizar, etc. Salu2

80
Buenas, el ejercicio está bien resuelto. No entiendo muy bien por qué le restas 430 y 120. A mí por ejemplo me salen en algunos casos coordenadas negativas. Una buena idea sería determinar como coordenadas (0,0) la esquina inferior izquierda del div, y hacer que se muestren las coordenadas a partir de ese punto. Por ejemplo, si estuviéramos en la esquina superior derecha del div debería mostrar (500, 400)

Salu2

Páginas: 1 2 3 [4] 5 6 7 8 9 ... 89
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".