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 ... 35 36 37 38 39 [40] 41 42 43 44 45 ... 100
781
Buenas Boletos todo bien

A mí también me sorprende lo de la tipografía  ::)

En los div no has incluido varios párrafos como pedía el ejercicio

Salu2

782
Buenas bermartinv

Por favor cuando escribas el título de un tema hazlo como se explica en https://www.aprenderaprogramar.com/foros/index.php?topic=1460.0 por ejemplo es preferible "JavaScript crear objetos vacíos y añadirle métodos ejercicio CU01145E" en lugar de CU01145E

El código que has propuesto como solución no me funciona bien. Por ejemplo pulso el botón y sale:

Cuál es el nombre de usuario: Florencio

Introduzca identificador de usuario: 9

Hasta luego Florencio

Tenemos un objeto gestionDeUsuarios con propiedades nombre:Florencioe id: Florencio

Esta es la funcion despedir() y accedemos a la definicion del objeto con nombre: undefined

Te he señalado en rojo las cosas incorrectas (no sale el id, sale undefined...)

Te recomiendo revisar el código y corregirlo, puedes orientarte revisando lo propuesto en https://www.aprenderaprogramar.com/foros/index.php?topic=3341.0

Salu2

783
Buenas bermartinv

En este ejercicio se intenta trabajar con objetos JavaScript. A la hora de nombrar una función definidora de objeto debes ponerle un nombre que refleje lo que va a ser un objeto creado con dicha función, por ejemplo en este caso sería function Medico porque lo que se va a crear con esa función son objetos de tipo Medico

De este modo después de esta línea podrás decir:

var medico1 = new crearMedico("Pep",3,"urologo");

He creado un objeto Medico denominado medico1

En lugar de "he creado un objeto crearMedico denominado medico1"

Tienes que mejorar varias cosas:

El ejercicio pedía "Crea dos objetos del tipo definido, e invoca sus métodos para comprobar que funcionan correctamente." No has invocado sus métodos, con lo cual no se comprueba que funcionen correctamente.

De hecho tienes este código:      this.curarPersona=function (){curados--; } ¿En lugar de ir curando cada vez más personas el médico va curando cada vez menos? Es al revés, cada vez que invocas el método debe incrementarse en una unidad el número de personas curadas.

Revisa el código y para probarlo en el propio código crea varios médicos, invoca los métodos sobre los objetos y después de invocar los métodos muestra los datos, de ese modo puedes comprobar si después de ejecutar el método ha habido cambios en el objeto o no y si los cambios son los deseados. Por ejemplo después de invocar el método curarPersona si pides los datos del médico deberá mostrarte que ha curado una persona más de lo que llevaba anteriormente.

Salu2

784
Buenas dimiste

1) Correcto

2) Correcto

3) Correcto

Por tanto todo bien  :D

Salu2

785
Buenas Boletos No hacía falta partirse los ojos  :'( pero bueno lo has hecho perfecto!

Los saltos en Chrome ten en cuenta que cada navegador puede hacer cosas distintas de otro, es posible que Chrome haga un redondeo cuando se trata de decimales o valores pequeños

Salu2

786
Buenas Boletos las mejoras a realizar serían:

No has aplicado bien los valores en letter-spacing. Si consideramos la medida normal como 1 em, un 5 % superior a lo normal sería 1.05em. Un 5 % inferior a lo normal sería 0.95em. Al aplicar 0.05 estás aplicando una compresión imposible, con lo que realmente no hay compresión alguna, es como si no estuviera esa regla.

Por otro lado con este fin de separación entre letras te recomiendo usar ex en lugar de em como se explica en https://www.aprenderaprogramar.com/foros/index.php?topic=3202.0

Para aplicar estilos a la primera letra de cada párrafo debes usar la sintaxis p::first-letter como se explica en el mismo hilo anterior

Fíjate que lleva ::

Los dos puntos son dobles

Salu2

787
Buenas Pandemia

Te repito lo que te comentaban en otro hilo:

Como recomendación, a la hora de tomar imágenes es preferible tomar urls en lugar de rutas locales, ya que las imágenes locales sólo las puedes ver operando desde tu pc, mientras que las urls pueden ser vistas por cualquier persona con conexión a internet.

Ejemplo ruta local:

Código: [Seleccionar]
<img src="c:/EJERCICIOS CURSO CSS/simson.jpg">

Ejemplo con url:

Código: [Seleccionar]
<img src="http://cdnb.20m.es/trasdos/files/2011/07/Simpsons_on_Tracey_Ullman.png">

En el ejercicio 1, en el div 1 y en el div 2 tienes cambiado lo que debía ser el borde izquierdo está como borde derecho y viceversa (en el ejercicio 1 por ejemplo el efecto groove debe estar en el borde izquierdo y no en el derecho).

En el ejercicio 1 tienes los estilos mal aplicados:

#div1{border-top-style: dotted;border-width: 10px;border-color: green;
border-left-style: dashed;border-width: 2px;border-color: blue;
border-bottom-style: double;border-width: 10px;border-color:#A52A2A;
border-right-style: groove;border-width: 30px;border-color: #2F4F4F;}

Estás repitiendo varias veces la propiedad border-width. El resultado es que todos los bordes quedan con el ancho establecido en último lugar, es decir, todos los bordes quedan con border-width: 30px;

Para establecer anchos de bordes para cada lado tienes que usar border-top-with, border-right-width, border-bottom-width y border-left-width

Lo mismo ocurre con border-color. Revisa las explicaciones y el resumen de bordes que aparece en la entrega del curso.

Te recomiendo tener en cuenta todo lo indicado y repetir el ejercicio

Salu2

790
Buenas Pedro todo correcto

Para quien tenga curiosidad, un DNI puede ser validado con JavaScript ya que la letra del DNI se obtiene con un algoritmo a partir de los números. Por ello puede validarse si se desea que el dni sea correcto (que la letra indicada se correspond a los números).

Código para validación:

Código: [Seleccionar]
function nif(dni) {
  var numero
  var letr
  var letra
  var expresion_regular_dni
 
  expresion_regular_dni = /^\d{8}[a-zA-Z]$/;
 
  if(expresion_regular_dni.test (dni) == true){
     numero = dni.substr(0,dni.length-1);
     letr = dni.substr(dni.length-1,1);
     numero = numero % 23;
     letra='TRWAGMYFPDXBNJZSQVHLCKET';
     letra=letra.substring(numero,numero+1);
    if (letra!=letr.toUpperCase()) {
       alert('Dni erroneo, la letra del NIF no se corresponde');
     }else{
       alert('Dni correcto');
     }
  }else{
     alert('Dni erroneo, formato no válido');
   }
}

Explicación:

Citar

1º La función recibe una variable con el DNI como string.

2º Tras definir las variables creamos una expresión regular que valida si el DNI está compuesto por 8 letras y un caracter, ya sea en mayúscula o minúscula.

3º Extraemos el número del DNI (es decir, un substring con la longitud del DNI entero menos una letra) y la letra (un substring de un solo caracter que empieza en la posición de la longitud total menos uno).

4º Hacemos la operación de módulo entre el número extraído y 23, reutilizando la variable número para almacenar el resultado. Hacemos esto porque lo necesitamos para calcular si la letra del NIF es válida.

5º Creamos una string con las letras del abecedario ( sin la ñ) en este orden específicamente: TRWAGMYFPDXBNJZSQVHLCKET

6º Cogemos un substring de un solo caracter de esa cadena de letras que empiece en la posición marcada por el número que conseguimos en el punto cuatro al hacer la operación de módulo, reutilizando la variable módulo.

7º Comprobamos que la letra cogida de la cadena de letras sea igual a la letra cogida del DNI. Si se cumple la condición sacamos un aviso de que es correcto y si no sacamos el de error.

El código tal cual es para introducir un dni con la letra pegada al número. Si se quiere admitir un guión entre los números y la letra habría que modificar la función.

Salu2

791
Hola Pandemia en la entrega CU01025D no veo ejercicios ¿A qué corresponde el código que has puesto?

Salu2

792
Buenas salvador los cursores y efectos de cursores funcionan bien

Te ha faltado establecer los anchos de los div que pedía el ejercicio. Tampoco los has puesto en horizontal. Puedes ver un ejemplo de cómo hacerlo en https://www.aprenderaprogramar.com/foros/index.php?topic=3792.0

Para que quienes revisemos el código podamos ver las imágenes es recomendable que como rutas de imágenes escribas una url en lugar de una ruta local, de ese modo podremos verlas, en cambio si es un archivo local sólo lo puedes ver tú :(

Salu2

793
Buenas Pedro el ejercicio cumple con todo lo que se pedía

Habría cosas que se podrían mejorar para que el comportamiento fuera más coherente, por ejemplo:

- Si selecciono en primer lugar como ciudad Barcelona, me aparece automáticamente como país España. Hasta ahí todo correcto. Ahora da opción a elegir entre cualquier ciudad. Ahí realmente al estar elegido España como país, deberían deshabilitarse todas las ciudades que no fueran de España.

- Otra situación: Si selecciono en primer lugar como ciudad Barcelona, me aparece automáticamente como país España. Hasta ahí todo correcto. Ahora voy a intentar elegir país y está todo deshabilitado excepto "Elija opción" y "España". Si selecciono "elija opción", se debería borrar la ciudad elegida y quedar como elija opción también para ciudad, pero sin embargo se mantiene como ciudad elegida Barcelona. Además una vez seleccionado "Elija opción" siguen estando deshabilitados el resto de países, con lo cual no puedo elegir ahora Colombia por ejemplo.

Salu2

794
Buenas dimiste el ejercicio cumple a la perfección con lo solicitado

Hay un detalle para el que te voy a dar una recomendación

Has definido var restantes=[5,4,3,2,1]

Esto en programación nunca se hace por ser innecesario o redundante (o mejor dicho, solo se haría en casos especiales donde estuviera justificado).

Siempre que se tenga que contar o hacer operaciones repetitivas se usan bucles o los contadores de los bucles evitando crear nuevas variables. En este ejercicio lo haríamos así evitando tener que crear una variable adicional:

Código: [Seleccionar]
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title>Curso JavaScript</title>
<style type="text/css">
body{
text-align: center;
}
</style>
<script type="text/javascript">
function operar(){
var nodoDiv=document.getElementsByTagName('div');
var Numero=[];
msg='Multiplicamos por 3 los números introducidos: \n';
for(i=0;i<5;i++){
Numero[i]=Number(prompt('Introduce un número. Te quedan: '+(5-i)+' por introducir'));
msg=msg+Numero[i]+'*3='+Numero[i]*3+',          ';
}
nodoDiv[0].textContent=msg;
}
</script>
</head>
<body>
<h1>Ejercicio curso aprenderaprogramar.com</h1>
<div> </div>
<input style="margin:20px;" type="button" value="Probar ejercicio" onclick="operar()"></input>
</body>
</html>

Salu2

795
Buenas fijándonos en lo que pide el ejercicio:

1. La función debe mostrar por pantalla...

2. La función debe devolver un array...

Cuando se pida devolver un array, la función debe devolver un array como en el ejemplo de Pedro:

Código: [Seleccionar]
function obtenerImporteConImpuestos2(importeSinImpuestos){
var resultado=[];
resultado =[undefined, (importeSinImpuestos*1.21), (importeSinImpuestos*1.10), (importeSinImpuestos*1.05)]
return resultado;
}

Aquí lo que devuelve la función es lo que va en el return. En el return se devuelve un array, que es lo que pedía el ejercicio.

En cambio aquí:

Código: [Seleccionar]
return ('Para precio sin impuestos'+importeSinImpuestos+' si el producto es tipo 1 el importe es '+resultado[1]+' , si el producto es tipo 2 el importe es '+resultado[2]/100+' y si el producto es tipo 3 el importe es '+resultado[3]);

Lo que devuelve la función es una cadena (un texto entre comillas).

Si no te queda claro, consulta de nuevo.

Salu2

796
Buenas JurreNawijn las cosas mejorables serían

- El ejercicio pide que la función obtenerImporteConImpuestos reciba dos parámetros. Aunque tú has definido que recibe dos parámetros, en realidad es como si la hubieras definidio recibiendo sólo uno, porque después redefines tipoDeProducto en la línea

tipoDeProducto = Number(prompt("Menú: \n\n 1) ...

De este modo no estás usando el segundo parámetro, es como si hubieras escrito function obtenerImporteConImpuestos(importeSinImpuesto) de modo que no cumples con lo que se pide

- Igual que haces la operación importeSinImpuesto*110/100 deberías hacer el resto de operaciones, debes mantener un criterio homogéneo, no hacerlo en unos sitios de ese modo y en otros importeSinImpuesto*1.21 (aquí si seguimos el mismo criterio debería ser importeSinImpuesto*121/100)

- Cada función debe encargarse de una tarea y no de varias (principio de cohesión). Por ello es preferible que la petición de datos tenga lugar en una función y los cálculos de impuestos en otro. Puedes fijarte en cómo se hace aquí donde hay un mejor diseño: https://www.aprenderaprogramar.com/foros/index.php?topic=3259.0 (todavía podría mejorarse separando en otra función el mostrar resultados)

Salu2

798
Buenas dimiste me parece que has complicado los nombres de variables, no te recomiendo usar un nombre de variable como \u03C0. Los nombres de variables en general empiezan con una letra minúscula y son nombres descriptivos con el fin de hacer comprensible el código.

Creo que sin cambiar nada se entiende mejor esto únicamente variando los nombres de variables:

Código: [Seleccionar]
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title>Portal web</title>
</head>
<body>
<script type="text/javascript">
var piTexto;
piTexto='\u03C0';
var piNumero;
piNumero=3.1416;
alert('El número '+piTexto+' vale '+piNumero);
</script>
</body>
</html>

Salu2

800
Buenas bermartinv

1) He probado el código en dos navegadores y no hace nada ¿A tí te hace algo? ¿Con qué navegador? ¿Qué es lo que observas que hace al hacer click?

2) Lo veo bien resuelto

3) También lo veo bien resuelto

Una curiosidad es que el código 2 y el código 3 no responden igual, es decir, con el código 2 si pulsamos sobre un nodo hijo se añade un nuevo hijo, en cambio con el código 3 si pulsamos sobre un hijo no se añade un hijo (esto sólo lo logramos pulsando sobre el nodo inicial).

Salu2

Páginas: 1 ... 35 36 37 38 39 [40] 41 42 43 44 45 ... 100

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