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

Páginas: 1 2 3 4 5 [6] 7 8 9 10 11 ... 13
101
Hola. Dejo el  Ejercicio (CU00630B) Concepto de signatura de métodos en Java. Primera definición de interfaz o interface, del curso básico de programación gratuito en Java.

 EJERCICIO
 
Considera estás desarrollando un programa Java donde necesitas trabajar con objetos de tipo DiscoMusical. Define las signaturas para métodos dentro dicha clase e indica si deberán ser procedimientos o funciones para los siguientes objetivos planteados:

1) Obtener la duración de una canción expresada como un número decimal en minutos (por ejemplo podría ser 3,22 minutos) recibiendo como dato el número de canción dentro del disco.
 
2) Pedir a un administrador de una compañía discográfica que introduzca la duración de todas las canciones (dichas duraciones se almacenarán como información del objeto). Es decir, el método se encargará de saludar al usuario y pedirle que vaya introduciendo una por una la duración de las canciones.

3) Obtener la duración del disco completo (suma de las duraciones de cada una de las canciones).

4) Añadir una canción al disco recibiendo como información para ello el título de la canción y su duración (se añadirá como última canción en el disco. Si el disco tenía por ejemplo 10 canciones, al añadirse una canción pasará a tener 11). 

1) public double getDurCancion(int cancion ) {} función

2) public void saludoIntroducirDuracionCancion (){}   procedimiento.

3) public int getDuracionDisco(){} función.

4) public void agregarCancion(String nuevoTitulo, int nuevaDuracion),{}procedimiento


Gracias.
 :D

102
Hola. Voy con el segundo ejercicio: CU00624B del curso de programación java desde cero de aprenderaprogramar.

EJERCICIO

Considera estás desarrollando un programa Java donde necesitas trabajar con objetos de tipo DiscoMusical. Define una clase DiscoMusical análoga a la que hemos visto para taxis, pero en este caso considerando los siguientes atributos de clase: titulo (String), autor (String), añoEdicion (int), formato (String), digital (boolean). Define un constructor y los métodos para poder establecer y obtener los valores de los atributos. Compila el código para comprobar que no presenta errores. Crea un objeto y comprueba sus métodos como hemos hecho con los objetos Taxi. Para comprobar la corrección de tu solución puedes consultar en los foros aprenderaprogramar.com.

Código: [Seleccionar]

public class DiscoMusical{//Nombre de la clase
    // Propiedades, Atributos o Campos
    private String titulo;// titulo de cada objeto DiscoMusical
    private String autor; // autor de cada objeto DiscoMusical
    private String yearEdicion; //añoEdicion de cada objeto DiscoMusical
    private String formato; //formato de cada objeto DiscoMusical
    private boolean digital; //digital de cada objeto DiscoMusical

    //Constructor: cuando se cree un objeto DiscoMusical se ejecutará el código que incluyamos en el constructor
    public DiscoMusical () {
        titulo = "";
        autor = "";
        yearEdicion = "";
        formato = "";
        digital=false;
    } //Cierre del constructor … el código continúa …
    //Método para establecer el titulo del DiscoMusical
    public void setTitulo (String valorTitulo) {
        titulo = valorTitulo; //El titulo del objeto DiscoMusical adopta el valor indicado en valorTitulo
    } //Cierre del método

    //Método para establecer el autor del DiscoMusical
    public void setAutor (String valorAutor) {
        autor = valorAutor; //El autor del objeto DiscoMusical adopta el valor indicado en valorAutor
    } //Cierre del método

    //Método para establecer el añoEdicion del DiscoMusical
    public void setYearEdicion (String valorYearEdicion) {
        yearEdicion = valorYearEdicion; //El añoEdicion del objeto DiscoMusical adopta el valor indicado en valorYearEdicion
    } //Cierre del método

    //Método para establecer el formato del DiscoMusical
    public void setFormato (String valorFormato) {
        formato = valorFormato; //El fomato del objeto DiscoMusical adopta el valor indicado en valorFormato
    } //Cierre del método

    //Método para establecer digital del DiscoMusical
    public void setDigital (boolean valorDigital) {
        digital = valorDigital; //digital del objeto DiscoMusical adopta el valor indicado en valorDigital
    } //Cierre del método

    //Métodos para obtener las propiedades del objeto DiscoMusical
    public String getTitulo () { return titulo; } //Cierre del método
    public String getAutor () { return autor; } //Cierre del método
    public String getYearEdicion () { return yearEdicion; } //Cierre del método
    public String getFormato() {return formato;}//Cierre del método
    public boolean getDigital(){return digital;}//Cierre del método
   
} //Cierre de la clase
Gracias de antemano.
Un saludo. ;)

103
Hola de nuevo. Aquí dejo el ejercicio CU00623B deL manual java desde cero de aprenderaprogramar

Código: [Seleccionar]
//Esta clase representa una Persona
public class Persona{//Nombre de la clase
    // Propiedades, Atributos o Campos
    private String nombre;// Nombre de la Persona
    private String apellidos; // Apellidos de la Persona
    private int edad; //Edad de la Persona
    private boolean casado; //Estado Civil de la persona  0=soltero , 1= casado
    private String numeroDNI; // Nº de lDocumento Nacional de Identidad
    //Constructor: cuando se cree un objeto taxi se ejecutará el código que incluyamos en el constructor
    public Persona () {
        nombre = "Paquito";
        apellidos = "";
        edad = 0;
        casado =false;
        numeroDNI="";
    } //Cierre del constructor … el código continúa …
    //Método para establecer el nombre
    public void setNombre (String valorNombre) {
        nombre = valorNombre; //El nombre del Objeto Persona adopta el valor de valorNombre
    } //Cierre del método

    //Método para establecer los apellidos del objeto Persona
    public void setApellidos(String valorApellidos) {
        apellidos = valorApellidos; //Los apellidos del objeto Persona adopta el valor valorApellidos
    } //Cierre del método

    public void setEdad (int valorEdad) {
        edad = valorEdad; // La edad del objeto Persona adopta el valor de valorEdad
    } //Cierre del método

    public void setCasado (boolean valorCasado) {
        casado = valorCasado; // La propiedad casado del objeto Persona adopta el valor de valorCasado
    } //Cierre del método

    public void setDNI (String valorDNI) {
        numeroDNI = valorDNI; // EL DNI del objeto Persona adopta el valor de valorDNI
    } //Cierre del método

    //Método para obtener el nombre del objeto Persona
    public String getNombre () { return nombre; } //Cierre del método
    //Método para obtener los apellidos del objeto Persona
    public String getApellidos () { return apellidos; } //Cierre del método
    //Método para obtener la edad del objeto Persona
    public int getEdad () { return edad; } //Cierre del método
    //Método para obtener el estado casado del objeto Persona
    public boolean getCasado () { return casado; } //Cierre del método
    //Método para obtener el DNI del objeto Persona
    public String getDNI () { return numeroDNI; } //Cierre del método

} //Cierre de la clase

Hasta pronto y Gracias  ;).

104
Hola Ogramar.
Gracias por corregirme lo de los paréntesis.
En JavaScript los traga sin miramientos en vb.net me llevan de pu.... cu...
Gracias.
 ;)

105
Hola Ogramar. Lo puse asi porque en los navegadores que tengo yo no funcionaba con onkeypress solamente. Gracias
Un Saludazo
 ;)

106
Hola Ogramar .
Gracias por corregirme los ejercicios.

Últimamente no tengo tiempo de dedicarme a js y veo que me estas corrigiendo los ejercicios.
Gracias.

En este ultimo no entiendo la corrección que me haces ya que yo en ningún momento he creado un objeto que se llame planta cultivada.

Una planta cultivada es también un árbol y no tiene nada que ver con el ejercicio.

El primer objeto que creo es el Objeto hortaliza.
Con este creo el objeto verdura que es un derivado de la hortaliza.
y dentro de verduras creo pepino, tomate, lechuga, zanahoria.

Hortaliza(Verdura(Pepino)), etc.
Todos los elementos están contenidos dentro de hortalizas.

No se si tu corrección es para decirme que tenia que haber creado un objeto que se llamara vegetales o plantas cultivadas en el cual estuvieran todos los demás.

Gracias.
Un saludo.
 ;)

107
Hola. Dejo la solucion al ejercicio CU01174E métodos window javascript confirm prompt open focus moveTo, del curso básico de programación JavaScript de aprenderaprogramar.

a) ¿Qué representa la variable start?

Es una variable contador y representa la coordenada x o posición vertical en píxeles de la ventana con respecto a la pantalla.


¿Qué significado tiene que su valor inicial sea cero?

 Que se posicione la ventana en la parte superior vertical de la pantalla.


b) ¿Qué representa la variable positionY?

Es una variable contador y representa la coordenada y, o posición horizontal en píxeles de la ventana  con respecto a  la pantalla


¿Qué significado tiene que su valor inicial sea window.innerHeight/2-125 ?

Obtener el alto de la pantalla.
altura/ 2= mitad de la pantalla.
altura nueva ventana =250 - 125 = mitad de la altura de la nueva ventana .
Posicionar la ventana en el centro horizontal de la pantalla.

c) ¿Con qué frecuencia (cada cuánto tiempo) se produce el refresco o re-dibujado de la pantalla?

33,3333 mili-segundos o 0,033333 segundos

d) ¿Cuántos píxeles se desplaza hacia la derecha la ventana en cada refresco de pantalla que realiza el navegador?

2px.

e) La base matemática del movimiento que describe la ventana es el movimiento ondulatorio. ¿Por qué la ventana sube y baja?

Me remito a la explicación de Mario R. Rancel en el hilo:
https://www.aprenderaprogramar.com/foros/index.php?topic=3615.msg15703#msg15703


Citar
Esto tiene una base matemática. No es necesario comprenderlo para el seguimiento del curso. La base matemática es que la función seno toma valores entre 0, 1, -1 describiendo una forma de onda, conforme se incrementan sus valores.
En cada redibujado de la ventana su posición Y varía de acuerdo con esto:
controlSinusoidal = controlSinusoidal + Math.PI/256;
 positionY = 100*Math.sin(controlSinusoidal);
Las operaciones se hacen en radianes. controlSinusoidal se ha establecido en 0 al inicializarlo y cada vez que se redibuja la ventana se incrementa un poco. La posición Y se actualiza en base al seno de ese valor que se va incrementando, y de esa manera se describe una curva sinusoidal.

Código original

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

<html>
<head>
<title>Ejemplo aprenderaprogramar.com</title>
<meta charset="utf-8">

<script type="text/javascript">
var start = 0;
var positionY = window.innerHeight/2-125;
var nuevaVentana;
var controlSinusoidal=0;
 window.onload = function ()
{
           var ejemplo = document.getElementById('ejemplo');
ejemplo.addEventListener("click", ejecutarEjemplo);
}

 
function ejecutarEjemplo () {
                nuevaVentana = window.open ('', 'miNombre', 'width=250, height=250, resizable=true, menubar=yes');
                nuevaVentana.document.write('<h1>Aprenda a programar ahora. Aproveche la oportunidad</h1>');
                nuevaVentana.focus();
                nuevaVentana.moveTo(0,positionY);
                nuevaVentana.setInterval( sine, 1000/30 );
}


function sine(){
  controlSinusoidal = controlSinusoidal + Math.PI/256;
  positionY = 100*Math.sin(controlSinusoidal);
  start += 2;
  nuevaVentana.moveTo(start, window.innerHeight/2-100+positionY);
}

</script>
</head>

<body><div id="cabecera"><h2>Cursos aprenderaprogramar.com</h2><h3>Ejemplos JavaScript</h3></div>

<div style="color:blue; margin:20px;" id ="ejemplo">Pulsa aquí</div>

</body>
</html>


f) Modifica el código para que cuando la ventana llegue al lateral derecho de la pantalla se detenga su movimiento y aparezca un mensaje (alert) con el texto ¡Se terminó!


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

<html>
<head>

<title>Ejemplo aprenderaprogramar.com</title>
<meta charset="utf-8">

<script type="text/javascript">
var start = 0;
var positionY = window.innerHeight/2-125;
var nuevaVentana;
var controlSinusoidal=0;
var anchoPantalla=window.innerWidth
var mueveVentana

 window.onload = function () {
                var ejemplo = document.getElementById('ejemplo');
                ejemplo.addEventListener("click", ejecutarEjemplo);
}
 
function ejecutarEjemplo () {
                nuevaVentana = window.open ('', 'miNombre', 'width=250, height=250, resizable=true, menubar=yes');
                nuevaVentana.document.write('<h1>Aprenda a programar ahora. Aproveche la oportunidad</h1>');
                anchoNuevaVentana=nuevaVentana.outerWidth
                nuevaVentana.focus();
                nuevaVentana.moveTo(0,positionY);
                mueveVentana=nuevaVentana.setInterval( sine, 1000/30 );
}

function sine(){
  controlSinusoidal = controlSinusoidal + Math.PI/256;
  positionY = 100*Math.sin(controlSinusoidal);
  start +=2
  if(start==anchoPantalla-anchoNuevaVentana)
  {
  nuevaVentana.clearInterval(mueveVentana)
  alert("¡Se terminó!")
  }
  nuevaVentana.moveTo(start, window.innerHeight/2-100+positionY);
 
}
 
</script>
</head>
<body>
<div id="cabecera">
<h2>Cursos aprenderaprogramar.com</h2>
<h3>Ejemplos JavaScript</h3>
</div>
<div style="color:blue; margin:20px;" id ="ejemplo">Pulsa aquí</div>

</body>

</html>



g) Modifica el código para que cuando la ventana llegue al lateral derecho de la pantalla haga un efecto de “rebote” y empiece a moverse en sentido opuesto al que venía (es decir, subiendo y bajando pero ahora de derecha a izquierda), hasta llegar al lateral izquierdo y volver a rebotar, y así indefinidamente….

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

<html>
<head>

<title>Ejemplo aprenderaprogramar.com</title>
<meta charset="utf-8">

<script type="text/javascript">
var start = 0;
var positionY = window.innerHeight/2-125;
var nuevaVentana;
var controlSinusoidal=0;
var anchoPantalla=window.innerWidth
var verdadero =false;
 window.onload = function () {
                var ejemplo = document.getElementById('ejemplo');
                ejemplo.addEventListener("click", ejecutarEjemplo);
}
 
function ejecutarEjemplo () {
                nuevaVentana = window.open ('', 'miNombre', 'width=250, height=250, resizable=true, menubar=yes');
                nuevaVentana.document.write('<h1>Aprenda a programar ahora. Aproveche la oportunidad</h1>');
                anchoNuevaVentana=nuevaVentana.outerWidth
                nuevaVentana.focus();
                nuevaVentana.moveTo(0,positionY);
                nuevaVentana.setInterval( sine, 1000/30 );
}

function sine(){
  controlSinusoidal = controlSinusoidal + Math.PI/256;
  positionY = 100*Math.sin(controlSinusoidal);
  if(start==anchoPantalla-anchoNuevaVentana && verdadero==false){ verdadero=true;}
  else if (start<=0 ){verdadero = false;}
  if (verdadero==true){start -=2;}
  else {start +=2}
  nuevaVentana.moveTo(start, window.innerHeight/2-100+positionY);
 
}
 
</script>
</head>
<body>
<div id="cabecera">
<h2>Cursos aprenderaprogramar.com</h2>
<h3>Ejemplos JavaScript</h3>
</div>
<div style="color:blue; margin:20px;" id ="ejemplo">Pulsa aquí</div>

</body>

</html>


108
Hola. Dejo el ejercicio CU01173E objeto window javascript propiedades innerwidth length name opener, del taller gratuito de programación web de aprenderaprogramar.

EJERCICIO

Citar
El siguiente código crea una ventana cuando se pulsa en el texto “Pulsa aquí”. Esta ventana es asignada a una variable u objeto denominado nuevaVentana. Queremos conocer las siguientes propiedades del objeto nuevaVentana y mostrarlas por pantalla: si está cerrada o no, dimensiones del viewport, número de frames presentes en ella, url a la que apunta, valor de name, dimensiones de la ventana completa hasta los bordes exteriores y cuántos píxeles está desplazada en horizontal y vertical respecto al punto origen de la pantalla

<!DOCTYPE html>
<html><head><title>Ejemplo aprenderaprogramar.com</title><meta charset="utf-8">
<script type="text/javascript">
 window.onload = function () {
                var ejemplo = document.getElementById('ejemplo');
                ejemplo.addEventListener("click", ejecutarEjemplo);
                          }
function ejecutarEjemplo () {
                var nuevaVentana = window.open ('http://aprendeaprogramar.es', 'miNombre',
                'width=300, height=300, resizable=true, menubar=yes');
                nuevaVentana.focus();
}
</script>
</head>

<body><div id="cabecera">
<h2>Cursos aprenderaprogramar.com</h2>
<h3>Ejemplos JavaScript</h3>
</div>
<div style="color:blue; margin:20px;" id ="ejemplo">Pulsa aquí</div>
</body>
</html>

Añade el código JavaScript necesario para mostrar esta información por pantalla.

Código añadido

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

<html>
<head>
<title>Ejemplo aprenderaprogramar.com</title>
<meta charset="utf-8">
<script type="text/javascript">
 
var msg;
 window.onload = function ()
{
var ejemplo = document.getElementById('ejemplo');
ejemplo.addEventListener("click", ejecutarEjemplo);
var OpenClose = document.getElementById('abierCerr');
OpenClose.addEventListener("click", abiertaCerrada);
var cerrarV = document.getElementById('cerrarVentana');
cerrarV.addEventListener("click", cerrar);

}

function ejecutarEjemplo ()
{
msg="";
nuevaVentana=window.open ('http://aprenderaprogramar.com', 'miNombre', 'width=300, height=300, resizable=true, menubar=yes');

            nuevaVentana.focus();
           
            msg=msg+"<strong>Las dimensiones del viewport, son : "+nuevaVentana.innerHeight+" de Alto "+nuevaVentana.innerWidth+" Ancho<br/>";
msg=msg+"Número frames presentes en la nueva pagina : "+  nuevaVentana.frames.length+"<br/>";
msg=msg+"La URL a la que apunta es "+nuevaVentana.location.href+"<br/>";
msg=msg+"valor de name es : "+nuevaVentana.name+"<br/>";
msg=msg+"Las dimensiones de la ventana completa hasta los bordes exteriores son : "+nuevaVentana.outerHeight+"px de alto x "+nuevaVentana.outerWidth+" px de ancho<br/>"
msg=msg+"Y está desplazada "+nuevaVentana.pageYOffset+" píxeles en horizontal y "+window.pageXOffset+" píxeles en vertical respecto al punto origen de la pantalla"
msg=msg+"</strong>"
document.all.pizarra.innerHTML=msg;

}

function abiertaCerrada()
{
if (nuevaVentana.closed==true){alert("La nueva ventana esta cerrada");}
else {alert("La ventana esta abierta");}

}

function cerrar()
{
msg="";
document.all.pizarra.innerHTML=msg;
nuevaVentana.close();
}
</script>


</head>

<body>
<div id="cabecera">
<h1>Cursos aprenderaprogramar.com</h1>
<h3>Ejemplos JavaScript</h3>
</div>
<div id="botones">
<div class="boton" id ="ejemplo">Pulsa aquí para abrir una ventana</div>
<div class="boton" id ="cerrarVentana">Pulsa aquí para cerrar ventana</div>
<div class="boton" id ="abierCerr">Ventana Abierta/cerrada</div>
</div>
<div id="pizarra"></div>
</body>
</html>






<style type="text/css">
body{
background-color:yellow;
}
#botones{margin-left:200px;}

.boton{
text-align:center;
width:300px;
border:outset white  2px; 
border-radius:25px 25px;
box-shadow:3px 3px 2px 2px #AFF6AF;
color:blue;
margin-left:5px;
padding:3px;
float:left;
background-color:#90EE90;
color:black;
font-size:19px;
}
.boton:hover {
border:inset 2px green;
box-shadow:3px 3px 2px 2px  #0BF50B ;
}
.boton:active{
border:inset 2px green;
filter: invert(100%);
}
#pizarra
{
width:800px;
height:300px;
margin-top:125px;
margin-left:400px;
}
h1,h3 {text-align:center;}
</style>


He estado dandole vueltas al codigo por si tenia un error ya que en chrome da estos resultados del viewport : Las dimensiones del viewport, son : 0 de Alto 0 Ancho
y en firefox estos otros :Las dimensiones del viewport, son : 300 de Alto 300 Ancho.

Por lo visto y por lo que he podido ver en el foro a todos nos ha pasado lo mismo, se ve que es un problema del navegador. Lo mismo que pasa con La URL a la que apunta es about:blank

Y la explicación parece ser esta que da Mario R. Rancel con la que estoy totalmente de acuerdo.

https://aprenderaprogramar.com/foros/index.php?topic=3614.msg15693#msg15693

Gracias por corregirme los ejercicios. Un saludo  :)


109
Hola Dave.

'mostrarMensaje1' is defined but never used. [no - unused - vars]
'Alert' is not defined.

He probado el codigo y a mi me funciona bien.

Deberías dejar todo el código del ejercicio para ver dónde puede estar el fallo.

Por lo que veo en la traducción del mensaje de error tienes algo por ahí que está definido pero no lo usas.

'mostrarMensaje1' se define pero nunca se usa. [no - sin usar - vars]
'Alerta' no está definido.

Mejor envía todo el codigo y asi podemos ver lo que falla ¿Ok?.

Un saludo.
 ;)

110
Hola. Dejo la solución al ejercicio CU01172E retroceder pagina anterior JavaScript window history screen frames, del curso básico de programación web de aprenderaprogramar.

Citar
Crea una página web que muestre en el lado izquierdo tres opciones donde podrá pulsar el usuario: clarin.com, elmercurio.cl y elespectador.com. En la parte inferior izquierda, debajo de estas opciones, habrá un frame donde deberá cargarse la página web según elija el usuario (por ejemplo si el usuario pulsa en elmercurio.cl en el frame que se encuentra debajo deberá mostrarse la web de elmercurio.cl). En el lado derecho estarán las opciones eluniversal.com.mx, elcomercio.pe y elmundo.es. En la parte inferior derecha, debajo de estas opciones, habrá un frame donde deberá cargarse la página web según elija el usuario.

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

<html>
<head>
<title>Ejemplo aprenderaprogramar.com</title>
<meta charset="utf-8">
<script type="text/javascript">
window.onload = function()
{
var cogerBoton=document.getElementsByClassName("boton");
var frameIz= document.getElementById("frame1");
var frameDe= document.getElementById("frame2");

cogerBoton[0].onclick = function (){frameIz.src = 'https://www.clarin.com'};
cogerBoton[1].onclick = function (){frameIz.src = 'http://impresa.elmercurio.com/'};
cogerBoton[2].onclick = function (){frameIz.src = 'http://www.elespectador.com/ '};

cogerBoton[3].onclick = function (){frameDe.src = 'http://www.eluniversal.com.mx' };
cogerBoton[4].onclick = function (){frameDe.src = 'http://www.elcomercio.pe'};
cogerBoton[5].onclick = function (){frameDe.src = 'http://www.elmundo.es/'};

}


</script>

<style type="text/css">
body{background-color:yellow;}
  h1{
text-align:center;
margin:15px;
padding:0;
}

.boton {
display:inline;
border:outset white  2px; 
width:200px;
border-radius:25px 25px;
box-shadow:3px 3px 2px 2px #AFF6AF;
text-align:center;
    background-color:#90EE90;
color:green;
font: oblique bold 120% cursive;
margin:15px;
padding:5px;
}



.boton:hover {
box-shadow:3px 3px 2px 2px  #0BF50B ;
border:outset 2px green;
}
.boton:active{
border:inset 2px green;
filter: invert(100%);
}
#botones1
{
width:500px;
height:45px;
float:left;
margin-left:120px


}
#botones2
{

height:45px;
width:500px;
float:left;
margin-left:150px
}

 iframe{
background-color:white;
width:550px;
height:500px;
margin-top:10px;
padding:0px;
margin-left:50px;
}
 

</style>

</head>

<body>
<div id="cabecera">
<h1>Cursos aprenderaprogramar.com  Ejercicio CU01172E</h1>
</div>

<div id="botones1">
<div class="boton" >El Clarin</div>
<div class="boton" >El Mercurio</div>
<div class="boton" >El Espectador</div>
</div>

<div id="botones2">
<div class="boton" >El Universal</div>
<div class="boton" >El Comercio</div>
<div class="boton" >El Mundo</div>
</div>

<iframe name="frame1" id="frame1"> </iframe>
<iframe name="frame2" id="frame2"> </iframe>

</body>
</html>

Al ejecutar el código parece que todas las páginas se cargan bien menos la de elespectador.com. Al activar el modo consola me da este error.

Refused to display 'https://www.elespectador.com/noticias' in a frame because it set 'X-Frame-Options' to 'sameorigin'.

Por lo que he visto en algunas páginas buscando el porqué de este error se debe a que  esta pagina activa cabecera X-Frame-Options que sirve para prevenir que la página pueda ser abierta en un frame, o iframe. De esta forma se pueden prevenir ataques de clickjacking sobre la web.
https://www.wpdoctor.es/cabecera-x-frame-options-para-mejorar-la-seguridad-de-tu-web/

He probado el código en tres navegadores y me pasa lo mismo en los tres. Yo pensaba que era un defecto de chrome pero por lo visto es porque la pagina desactiva los iframes.

Al cargar esta página sin el iframe se carga bien.

¿Esto es así o me estoy liando?

Gracias. Un saludo ;)

111
Hola. Dejo el ejercicio CU01171E redireccionar url JavaScript recargar window location href assign del taller de programación web con JavaScript.


Citar
EJERCICIO

Crea una página web que al ser invocada muestre un mensaje “Hemos cambiado de ubicación esta página. En breves momentos será redireccionado…” junto a una cuenta atrás que muestre 5, 4, 3, 2, 1 (correspondiente a 5 segundos). Tras transcurrir 5 segundos y mostrarse la cuenta atrás, el usuario debe ser redireccionada a la url http://aprenderaprogramar.com. Para realizar este ejercicio debes usar la propiedad window.location junto con funciones que permitan el retardo en la ejecución vistas en entregas anteriores del curso.


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

<html>
<head>
<title>Ejemplo aprenderaprogramar.com</title>
<meta charset="utf-8">

<script type="text/javascript">
contador=5;
function ejemplo()
{
var msg="Hemos cambiado de ubicación esta página.<br/> En breves momentos será redireccionado…"
document.all.pizarra.innerHTML=msg;

var t = setInterval(function(){cronometro()},1000);


}
function cronometro()
{
if (contador>0)
{
msg=contador;
contador=contador-1
document.all.pizarra2.innerHTML=msg;
}
else
{
clearInterval(cronometro);
window.location.assign('http://aprenderaprogramar.com');
}
}
</script>
<style type="text/css">
body{background-color:yellow;}
  h1,h2,h3{
text-align:center;
margin:0;
padding:0;
color:black;

}

#pizarra,#pizarra2 
{
text-align:center;
padding:5px;
overflow:hidden;
float:left;
margin-left:400px;
margin-top:100px;
color:red;
}
#pizarra
{
font-size:30px;
border-radius:25px 25px;
background-color:white;
border:groove red 3px;
padding:10px;
}
#pizarra2
{
clear:both;
margin-left:650px;
margin-top:10px;
float:left;
font-size:200px

}

</style>
</head>

<body onload="ejemplo()">
<div id="cabecera">

<h1>Ejercicio JavaScript CU01171E</h1>
<h2>Rediccionamiento de pagina con cuenta atras</h2>
<div id="pizarra"></div>
<div id="pizarra2"></div>
</div>
</body></html>


Garcias un saludo.
 ;D

112
Hola. Dejo el ejercicio del tema CU01170E jerarquia objetos javascript forms elements images navigator, del tutorial de programación JavaScript básico de aprenderaprogramar.

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

<html>
<head>
<title>Ejemplo aprenderaprogramar.com</title>
<meta charset="utf-8">

<script type="text/javascript">

var navegadorEnUso=window.navigator.userAgent;
var bool=false;
var nav="";
function expresionesRegulares()
{
var msg="";
var navegador=[/Chrome/,/Safari/,/Opera/,/Firefox/,/MSIE/];
navegador.forEach(function (elemento, indice)
  {
    if (navegador[indice].test(navegadorEnUso) && bool==false)
{
if (indice==0){nav=" Google Chrome"}
if (indice==1){nav=" Apple Safari"}
if (indice==2){nav=" Opera"}
if (indice==3){nav=" Mozilla Firefox"}
if (indice==4){nav=" Microsoft Internet Explorer"}
bool=true;
}
  });
 
if (bool)
{
msg=msg+"<strong>EXPRESIONES REGULARES</strong><br/><br/>"
msg=msg+"Usted esta usando el navegador :"+nav+"<br/> " ;
}
else {
nav="Navegador desconocido";
}
document.all.pizarra.innerHTML=msg;
}

function IndexOff()
{
var msg="";
msg=msg+"<strong>INDEXOF</strong><br/><br/>"
if (navegadorEnUso.indexOf("Chrome")!=-1){nav=" Google Chrome"}
else if (navegadorEnUso.indexOf("Safari")!=-1){nav=" Apple Safari"}
else if (navegadorEnUso.indexOf("Opera")!=-1){nav=" Opera"}
else if (navegadorEnUso.indexOf("Firefox")!=-1){nav=" Mozilla Firefox"}
else if (navegadorEnUso.indexOf("MSIE")!=-1){nav=" Microsoft Internet Explorer"}

else {
nav="Navegador desconocido";
}
msg=msg+"Usted esta usando el navegador :"+nav+"<br/> " ;
document.all.pizarra.innerHTML=msg;
}



</script>

<style type="text/css">
body{background-color:green;}
  h1,h2,h3{
text-align:center;
margin:0;
padding:0;
color:white;
width:300;
height:200;
}

.boton {
border:outset white  2px; 
width:200px;
border-radius:25px 25px;
box-shadow:3px 3px 2px 2px #AFF6AF;
text-align:center;
    background-color:#90EE90;
color:black;
font-size:19px;
margin-top :15px;
margin-left:5px;
margin-bottom:5px;

}
.boton {margin-left:150px;}


.boton:hover {
border:inset 2px green;
box-shadow:3px 3px 2px 2px  #0BF50B ;
    }
#pizarra {
width:500px;
background-color:black;
border:groove red 8px;
border-radius:25px 25px;
color:white;
font-size:19px;
text-align:center;
padding:15px;
overflow:hidden;
float:left;
margin-left:10px;
margin-top:10px;
}
#Pizarras{float:left;}
</style>
</head>

<div id="cabecera">
<h2>Cursos aprenderaprogramar.com</h2>
<h3>Ejercicio CU01170E<br/>Jerarquia de objetos JavaScript</h3>
</div>
<div id="Pizarras">
<div class="boton" onclick="expresionesRegulares()">Expresiones Regulares</div>
<div class="boton" onclick=" IndexOff()">IndexOf</div>
<div id="pizarra"></div>


</body>

</html>


He probado el código en los navegadores  Google Chrome,  Opera, Mozilla Firefox y Microsoft Internet Explorer.

En los tres primeros navegadores las funciones de Expresiones regulares e indexOf funcionan bien, en MSIE solo funciona la de indexOf.

¿ A que se debe esto ?

Gracias un saludo.  ;)

113
Hola.  Dejo el Ejercicio CU01169E closures javascript, qué son, para qué sirven, ejemplos setTimeout del curso gratuito javascript desde cero de aprenderaprogramar.

a) ¿En qué parte del código se genera un closure o cerradura?

function cambiarDimensionFuente(size)
   {   return function()
      {
         document.body.style.fontSize = size + 'px';
      };

¿Por qué?

Porque recibe una variable local de su funcion contenedora.

b) ¿En qué parte del código se establece que al hacer click sobre el elemento con id fuente-8  se cambie el tamaño de las fuentes de la página?

function setClicks()
   {   
      document.getElementById('fuente-8').onclick = size8;

c) Supón que eliminamos la función setClicks y dejamos su código “libre” dentro de las etiquetas <script> … </script>. ¿Qué mensaje de error te muestra la consola de depuración?

Uncaught TypeError: Cannot set property 'onclick' of null at ejerCU01169E.html:41

¿Por qué aparece ese mensaje de error?

 Porque se hace la llamada a elementos del DOM antes de ser cargados

d) ¿Debemos escribir document.getElementById('fuente-8').onclick = size8; ó  document.getElementById('fuente-8').onclick = size8(); ?

 document.getElementById('fuente-8').onclick = size8;

 ¿Por qué?

 Porque si escribimos size8() lo trata como una función y se presentará el tamaño de la letra con size=8 nada mas  cargar la pagina.

e) Supón que al cargar la página queremos que el tamaño inicial de fuente sea 8 y para ello nos valemos de la función setClicks. ¿Debemos escribir dentro de esta función size8; ó size8();?

size8()

¿Por qué?

 Por que lo trata como a una funcion y se inicia nada mas cargar la pagina

f) Las closures no siempre son necesarias, incluso a veces se generan involuntariamente o innecesariamente consumiendo recursos del sistema que podrían ahorrarse. ¿Qué ventajas le ves al uso de closures en este código?

Que se pueden reutilizar como si fueran objetos.

¿Y qué inconvenientes?

Si se sobrecarga mucho el codigo de closures el interprete del navegador se ralentizaria mucho.

g) Reescribe el código (hazlo como mejor creas cambiando todo aquello que consideres necesario) de forma que obtengamos el mismo resultado pero sin hacer uso de closures.

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

<html>
<head>
<title>Ejemplo aprenderaprogramar.com</title>
<meta charset="utf-8">
<style type="text/css">
body
{
font-family: Helvetica,
Arial, sans-serif;
}

h2

font-size: 1.5em;
}
h3 {
font-size: 1.2em;
}

div {
color:blue;
margin:10px;
}
</style>

<script type="text/javascript">
function cambiarDimensionFuente(size) {document.body.style.fontSize = size + 'px';}
var size8  =function(){cambiarDimensionFuente(8);}
var size16 =function(){cambiarDimensionFuente(16);}
var size24 =function(){ cambiarDimensionFuente(24);}

function setClicks()
{
document.getElementById('fuente-8').onclick = size8;
document.getElementById('fuente-16').onclick = size16;
document.getElementById('fuente-24').onclick = size24;
}

</script>
</head>
<body onload="setClicks()">
<div id="cabecera">
<h2>Cursos aprenderaprogramar.com</h2>
<h3>Ejemplos JavaScript</h3>
<div id ="fuente-8" > Poner texto a 8 </div>
<div id ="fuente-16" > Poner texto a 16 </div>
<div id ="fuente-24" > Poner texto a 24 </div>
</div>
<p>En las praderas de la estepa de la Tierra del Fuego suele hacer frío</p>
</body>
</html>


114
Hola. Dejo el ejercicio resuelto del tema CU01168E this javascript significados namespace ejemplo ejercicio, del curso básico de programación para desarrolladores JavaScript.

Citar
a) ¿Por qué se muestran diferentes mensajes si en ambos alert estamos invocando this?

Porque cada this se invoca en una función diferente (una es interna a la otra) y cada función hace referencia a un elemento diferente.

Citar
b) Modifica el código para que el mensaje que se muestre con retardo muestre lo mismo que el mensaje que se muestra sin retardo. Para ello, haz que en la función anónima sea conocida la referencia a this que existe en la función externa.

Código: [Seleccionar]
<!DOCTYPE html>
<html>
<head>
<title>Ejemplo aprenderaprogramar.com</title>
<meta charset="utf-8">
<script type="text/javascript">

function ejemplo()
{
var cabecera = document.querySelector('#cabecera');
var respuestaCabecera = function ()
{   theThis=this
alert(theThis);
  setTimeout(function (){alert(theThis);}, 2000);
};
cabecera.addEventListener('click', respuestaCabecera, false);
}

</script>
</head>
<body onload="ejemplo()">
<div id="cabecera">
<h2>Cursos aprenderaprogramar.com HAZ CLICK AQUÍ</h2>
<h3>Ejemplos JavaScript</h3>
</div>
</body>
</html>


115
Hola. Dejo el Ejercicio CU01167E typeof javascript saber tipo variable ambito scope global local, del tutorial pdf de programación JavaScript.

a) Haz una lista de las variables que intervienen indicando para cada variable cuál es su nombre, cuál es su tipo, cuál es su cometido y si está definida como variable global o variable local.
            
Variable target_date. Tipo Date. Cometido coge una fecha dada y la almacena para usar con otras variables. AmbitoGlobal
Variable days   .      Tipo Numérica Entera. Cometido calcular los días que faltan. Ámbito global.
Variable hours.     Tipo Numérica Entera. Cometido calcular las horas que faltan. Ámbito global.
Variable minutes. Tipo Numérica Entera. Cometido calcular los minutos que faltan. Ámbito global.
Variable seconds. Tipo Numérica Entera. Cometido calcular los segundos  que faltan. Ámbito global.
Variable countdown. Tipo Objeto. Cometido coge un elemento del DOM en este caso un div para presentar datos en pantalla. Ambito Local
Variable seconds_left.Tipo Numerica. Cometido calcula el tiempo que falta en segundos, minutos, horas, días. AmbitoLocal

b) ¿Qué ocurre si definimos la variable current_date en el ámbito global en vez de dentro de la función?
Que deja de contar el tiempo.
¿Por qué ocurre esto?.
Porque al estar fuera del ciclo de setInterval  que es un bucle repetitivo la variable no se actualiza y no cambia su valor.

c) ¿Podríamos definir todas las variables como locales a la función y prescindir de las variables globales?
 Si.
Si se pudiera hacer, ¿crees que sería positivo para el diseño del código, su mantenimiento y ampliabilidad, o por el contrario, que sería negativo?
No seria positivo. Porque si tenemos una función especializada en una determinada tarea y los datos que recibe están dentro de la misma función estos datos no se podrían reutilizar para otras tareas. Tendríamos que llamar a las de mas funciones desde esta función y poco a poco se iría cargando de tareas innecesarias para la función y las funciones son “trozos” de código de programa con un objetivo especializado. Aparte de que sería muy lioso a la hora de encontrar donde tenemos ciertas variables guardadas. Cada vez que quisiéramos ver una variable tendríamos que buscar dentro de todo el código del programa y en estos ejercicios el código es muy corto en programas más extensos sería muy tedioso y costaría mucho tiempo encontrar una variable.
Declarando las variables globales podríamos utilizarlas desde otras funciones.

d) ¿Qué métodos de los empleados en el código devuelven valores en milisegundos?
El metodo getTime() de la función Date

e) Razona la lógica del código. Con los contenidos que hemos visto en el curso hasta el momento, debes ser capaz de entender todo el código que aparece en el script.

Ante una fecha dada (bien sea dentro de la función Date o recibiendola de una variable) se extrae el tiempo en mili segundos con el método getTime y se carga en una variable que se pasará a una función. En esta función hay otra variable a la que se le pasa la fecha actual con Date.getTime() para extraer el tiempo en milisegundos. A partir de estas dos variables se crean otras en las que se hacen los cálculos para pasar el tiempo de milisegundos a segundos, minutos, horas y días una vez hechos los cálculos en estas variables se presentará por pantalla  el tiempo que falta desde el día actual hasta la fecha dada. Si el valor que se le pasa es una fecha anterior a la fecha actual nos devolverá los días, horas, minutos y segundos en valor negativo. Los datos en vez de pasar restando pasarán sumando en valores negativos y se presentaran así en pantalla. Estos valores serán los días transcurridos desde la fecha dada hasta el día actual

116
Hola. Dejo los ejercicios del tema CU01166E del curso gratuito de programación JavaScript.
Efectos JavaScript visuales, imagen, texto. Recursión. setTimeOut no funciona en bucles for o while.

EJERCICIO 1
Citar
Realiza una descripción de cada una de las instrucciones del código del ejemplo anterior indicando cuál es su cometido. Si has seguido el curso desde el principio, debes ser capaz de interpretar todo el código.

Ejemplo: La primera línea <!DOCTYPE … realiza la declaración de tipo de documento HTML a efectos de que los navegadores interpreten en qué versión de HTML está escrito el código.

La etiqueta html es la etiqueta de apertura del código HTML. La etiqueta head es …

Código: [Seleccionar]
<!DOCTYPE html> .Sirve para indicar qué estándar de HTML es el que declaramos usar 
<html>  Define que se trata de código html
<head>  Cabecera del documento html
<title>Cursos aprende a programar</title> Titulo que aparecerá en la barra de titulo del navegador
 meta : Sirven para informar de características de la página web, como una descripción breve y sus       palabras clave. Define los meta datos que no pueden ser definidos usando otro elemento HTML.
charset : Tipo de codificación de caracteres utilizada en este caso utf-8
name : Identificador
content: Descripción del contenido
style: elemento encargado de indicar la información de estilo de hoja de estilo
type : Indica el lenguaje de hojas de estilo usado. En este caso text/css
El * es el selector universal para toda la pagina
font-family : verdana , sans-serif : familia de la fuente de letra verdana sans-serif para toda la pagina
#principal : # Selector de ID principal. En este caso un DIV
text-align:center – Alineación de texto centrada en el div
width:95% – tamaño del div 95% de la pagina.
margin : 0 auto – Todos los margenes a cero  y el centrado horizontal automático.
.tituloCurso:  . Selector de CLASS tituloCurso, En este caso 10 DIV.
color: white – color del texto blanco.
float: left – Posicionamiento flotante de los elementos a la izquierda.
font-size : 2.65em – tamaño de la fuente relativo al tamaño de la letra
font-style:bold – estilo de la fuente negrita
text-decoration:none – texto sin subrayado superior, inferior y sin tachado. 
a:hover – cuando el puntero del ratón este encima de la etiqueta a
color: orange ¡important – color del texto naranja se tendrá en cuenta antes que otras reglas        del mismo tipo para esta etiqueta.
</style> fin de la hoja de estilos.

<script type="text/javascript"> Inicio del script de java.
function ejemplo() Funcion de nombre ejemplo
{

var nodosTituloCurso = document.querySelectorAll(".tituloCurso"); -- Variable donde se seleccionan todos los elementos class  tituloCurso del documento.

var contador = 0 ; – variable que se utilizar de contador se inicia a cero.
var nodosCambiados = new Array();  se crea un nuevo array en la variable  nodosCambiados
var tocaCambiar = true; – se crea una variable booleana

setTimeout – Funcion para ejecutar pasado un cierto intervalo de tiempo

(function(){ejemploAccion(nodosTituloCurso, nodosCambiados, contador, tocaCambiar)}, 1500);
Se ejecutara la funcion  ejemploAccion pasados 1500 milisegundos.
A esta funcion se le pasan los parametros  nodosTituloCurso, nodosCambiados, contador, tocaCambiar.

function ejemploAccion(nodosTituloCurso, nodosCambiados, contador, tocaCambiar) {

Funcion llamada con la funcion setTimeout de la cual recibe los parametros  nodosTituloCurso, nodosCambiados, contador, tocaCambiar

if (contador<nodosTituloCurso.length){  Si la variable contador es menor que la longitud de nodosTituloCurso entrar y ejecutar

var indice = Math.floor((Math.random() * (nodosTituloCurso.length)));
Creacion de la variable indice con el valor redondeado al entero superior del calculo aleatorio por la longitud de nodosTituloCurso.

if (nodosCambiados.length!=0) { Si la longitud de nodosCambiados no es igual a cero ejecutar

for (var i=0; i<nodosCambiados.length; i++) {  repetir mientras i sea menor que la longitud de nodosCambiados.

 if(nodosCambiados[i]==indice) {tocaCambiar = false;} si  nodosCambiados[i]==indice hacer que la variable tocaCambiar sea falsa

if (tocaCambiar==true) { si tocaCambiar = verdadero ejecutar

cambiarNodo(nodosTituloCurso[indice]); se invoca la funcion cambiarNodo y se le pasa el parametro nodosTituloCurso[indice] con el valor de indice
nodosCambiados.push(indice); se pone en nodos cambiados el valor de indice
contador = contador+1; se incrementa el  valor contador mas uno

 setTimeout(function() {ejemploAccion(nodosTituloCurso, nodosCambiados, contador, tocaCambiar)}, 1500); 
Se llama la funcion de forma recursiva con la funcion setTimeout pasados 15000 milisegundos pasandose los parametros nodosTituloCurso, nodosCambiados, contador, tocaCambiar con los nuevos valores.
             
Si la condicion del if  tocaCambiar es falsa  ejecutar
 else {tocaCambiar=true; Se cambia el valor de tocaCambiar a verdadero
ejemploAccion(nodosTituloCurso, nodosCambiados, contador, tocaCambiar); se llama de nuevo a la funcion ejemploAccion con los nuevos valores de los parametros.
             
Este else se complementa con el primer if de la funcion y es para el fin de la recursion
 else { //Caso base fin de la recursión
  document.body.style.backgroundColor='black';   Color del fondo negro
 document.getElementById('principal').style.color='white'; color del texto del ID principal blanco
 for (var i=0; i<nodosTituloCurso.length; i++) repetir mientras i sea menor que la longitud de nodosTitulosCurso.
 nodosTituloCurso[i].style.color='yellow'; Color del texto para nodosTitulosCurso[n] amarillo

Cuando se invoca esta funcion se le pasa el parametro de elNodo y al ejecutarse la funcion cambia el color del fondo de nodo a negro
function cambiarNodo(elNodo){elNodo.style.backgroundColor = 'black'; }

</script> fin del script de java

</head> fin de la cabecera del documento html

<body onload="ejemplo()"> cuerpo del documento html al cargar se llama a la funcion ejemplo() del script de java.
<div id="principal">  div de id principal el cual contiene todos los demas div dentro del cuerpo del documento
<h1>Cursos de programación</h1> h1 a h6 tamaño del texto de las cabeceras del documento
<h3>Reconocidos por su calidad didáctica</h3>

<div > divs secundarios  contenidos en el div principal que a su vez contienen llamadas a otras paginas.
<a class="tituloCurso" href="http://aprenderaprogramar.com/index.php?option=com_content&view=category&id=28&Itemid=59"> Fundamentos</a>

etiqueta <a> hiperenlace a otra pagina a todas las etiquetas se les asigna la clase tituloCurso
href:  indica la url del recurso que se quiere enlazar.
</div> fin de etiqueta div
</body> fin del cuerpo del documento.
</html> fin del documento.


EJERCICIO 2
Citar
Crea una animación JavaScript (decide tú el efecto que quieres implementar: pueden ser cosas moviéndose por la pantalla, texto cambiando de tamaño o cualquier otra cosa que se te ocurra) con las herramientas que hemos ido conociendo a lo largo del curso. Ejecútalo en distintos navegadores y comprueba que se ejecute tal y como esperas en todos ellos.

He buscado en los ejercicios de CSS HTML y JAVASCRIPT de aprenderaprogramar.com y me ha salido esto.

Espero que este  todo correcto

Código: [Seleccionar]
<!DOCTYPE HTML>
<html lang="es">
<head>
    <meta charset="utf-8"/>
    <title>Juego de Frontenis</title>
   
 
    <script type="text/javascript">

        var controlY=Math.floor((Math.random() * 1) + 0);// controlY, determina dirección vertical: 1-baja|0-sube
        var controlX=Math.floor((Math.random() * 1) + 0); // controlX, determina dirección vertical: 1-derecha|0-izquierda
        var x=y=0;// definimos las variables que contienen la posicion de la pelota
        var velocidad=5;// definimos la velocidad de movimiento en pixels debe de estar de cinco para arriba
        var idSetInterval=0;// variable que contiene el intervalo de tiempo
var puntos;
//Capturar movimiento del puntero del raton
document.addEventListener("mousemove", mouseMoveHandler, false);//Capturar movimiento del raton

var msg="";
msg=msg+"Juego de frontenis que consiste en devolver la pelota al fronton.\n";
msg=msg+"Cada vez que se devuelve la pelota se suman 2 puntos,si pasa la bola se restan 5 puntos\n";
msg=msg+"Cuando llega la puntuacion a 20, 40, 80 se suma uno a la velocidad llegando a 8.";
msg=msg+"\nSi se llega a 100 puntos o se superan, la velocidad es de 9.";
msg=msg+"\n\n\nEL RETO ES LLEGAR A 100 PUNTOS O SUPERARLOS"
alert(msg)


 // al cargar la pagina iniciar variables y elementos DOM
        window.onload=function()
        {

//Coger elementos DOM
            fronton=document.getElementById("pizarra");
            paleta=document.getElementById("paleta");
            bola=document.getElementById("bola");
           
             // posicionar la pelota de manera aleatoria en la pantalla
            y=Math.floor((Math.random() * (fronton.offsetHeight-22)) + 1);
            x=Math.floor((Math.random() * (fronton.offsetWidth-22)) + 1);
            bola.style.left=String(x)+"px";
            bola.style.top=String(y)+"px";
           
            // coger posicion de la paleta
            posPaletaX=fronton.offsetHeight-20; //Posicion vertical de la paleta
            posPaletaY=(fronton.offsetWidth-(paleta.offsetWidth/2)); //Posicion horizontal de la paleta
           
            //Posicionar paleta en pantalla
            paleta.style.top=posPaletaX+"px";
            paleta.style.left=posPaletaY+"px";
            marcador.innerHTML="000"
        }
       


function mouseMoveHandler(e)
{
// Mover la paleta con el raton
relativeY = e.clientX - fronton.offsetLeft;// Posicion horizontal del puntero del raton

if(relativeY > 0 && relativeY < (fronton.offsetWidth-paleta.offsetWidth))
{
posPaletaY = (relativeY+344);  ;
paleta.style.left=posPaletaY+"px";

}
}


               // Iniciar movimiento de la bola al pulsar el boton
function iniciar()

        {

puntos=0;
            if(idSetInterval==0)
            {
                idSetInterval=setInterval("mover()",10);
            }
           
        }
 
        // funcion que se ejecuta por cada iteracion del setInterval()
function mover()
        {
            // movimiento vertical de la bola
            if(controlY==1)
            {
                y+=velocidad;
            }else{
                y-=velocidad;
            }
            if(y<0)
            {
                controlY=1;
                y=velocidad;
            }else if(y>=fronton.offsetHeight-22){
                controlY=0;
                y=fronton.offsetHeight-22;
                puntos-=5;
                alert("Paso la Bola")
            }
 
            // movimiento horizontal de la bola
            if(controlX==1)
            {
                x+=velocidad;
            }else{
                x-=velocidad;
            }
 
            if(x<0)
            {
                controlX=1;
                x=velocidad;
            }else if(x>=fronton.offsetWidth-22){
                controlX=0;
                x=fronton.offsetWidth-22;
            }
            bola.style.left=String(x)+"px";
            bola.style.top=String(y)+"px";
           
         

    // Coger posiciones de la pelota y la paleta
posBolaX = bola.offsetTop; //posicion vertical actual de la bola
posBolaY =bola.offsetLeft; //posicion horizontal actual de la bola
posPaletaColisionX=paleta.offsetTop-21; //posicion vertical de la paleta -valor higth - valor borde
posPaletaColisionY=paleta.offsetLeft;   //posicion horizontal actual de la paleta

//Controlar colision vertical
if ( posBolaY<=posPaletaColisionY || posBolaY>=posPaletaColisionY+115)
{
var boolColisionV=false
}
else{boolColisionV=true ;}

//Controlar colision Horizontal
if ( posBolaX<=posPaletaColisionX )
{
var boolColisionH=false
}
else{boolColisionH=true ;}

if (boolColisionV && boolColisionH)

controlY=0;
                y=fronton.offsetHeight-42;
y-=velocidad;
                puntos+=2
                }
               //Mostrar puntos en pantalla
               if(puntos<10){var msgPuntos="00"+puntos;}
               if(puntos>=10 && puntos<=99){var msgPuntos="0"+puntos;}
               if(puntos>99){var msgPuntos=puntos;}
               
               // Aumentar velocidad de la bola al llegar a 20,40,80 y 100
               if (puntos<20){velocidad=5}
               if (puntos>=20 && puntos<=40){velocidad=6}
               if (puntos>40 && puntos<=80){velocidad=7}
               if (puntos>80 && puntos<=100){velocidad=8}
               if (puntos>100){velocidad=9;}
               if (puntos>1 && puntos%100==0)
               {
alert(" !!!!! BIEN JUGADO ¡¡¡¡¡\n !!! HAS SUPERADO EL RETO ¡¡¡\n DIBUJA UNA MEDALLA Y TE LA PONES\n  TE LA MERECES")
   boolBien=false;
   puntos=puntos+2
}
               marcador.innerHTML=msgPuntos;
        }
 
        // Al pulsar el boton parar, se para la bola
        function parar()
        {
            clearInterval(idSetInterval);
            idSetInterval=0;
        }
 
       
   

    </script>
   
<style>
#paleta{
position: absolute;
border:groove red 2px;
border-radius:25px 25px;
background-color:yellow;
width:150px;
height:15px;
}

body{
background-color:yellow;
    }
   
h1 {
width:1350px;
text-align:center;
float:left;
margin:0;
padding:0;
}

input {
margin-top:10px auto;
padding:0;
float:left;
}

#iniciar{
width:80px;
margin-left:585px;
}
#parar{
width:80px;
margin-left:10px;
  }
       
#bola {
border:2px green solid  ;
background-color:orange;
border-radius:15px;
position:relative;
display:block;
height:20px;
width:20px;
}
 
#pizarra
{
width:675px;
height:500px;
border:groove red 2px;
border-radius:25px 25px;
overflow: hidden;
background-color:black;
color:white;
margin-left:335px;
}

 
@charset "utf-8";
 #marcador {
  font-weight: bold;
  font-size: 50px;
  font-family: "Arial";
  text-shadow: 0 1px 0 #ccc,
               0 2px 0 #c9c9c9,
               0 3px 0 #bbb,
               0 4px 0 #b9b9b9,
               0 5px 0 #aaa,
               0 6px 1px rgba(0,0,0,.1),
               0 0 5px rgba(0,0,0,.1),
               0 1px 3px rgba(0,0,0,.3),
               0 3px 5px rgba(0,0,0,.2),
               0 5px 10px rgba(0,0,0,.25),
               0 10px 10px rgba(0,0,0,.2),
               0 20px 20px rgba(0,0,0,.15);
  color: black;
 
  text-align:center;
  float:left;
}

</style>
</head>
 
<body>
     <div id="marcador"></div>
    <div >
         <div id="pizarra">
            <div id="bola"></div>
            <div id="paleta"></div>
        </div>
        <div>
<h1>Frontenis</h1>

            <input type="button" value="Iniciar juego" id="iniciar" onclick="iniciar();"/>
            <input type="button" value="Parar juego" id="parar" onclick="parar();"/>
        </div>
    </div>
  </body>
</html>

Gracias.
Un saludo. ;)

117
Hola. Dejo la entrega del ejercicio CU01165E.Generar números aleatorios JavaScript. Math. Redondear. Funciones matemáticas (seno), del tutorial pdf de programación JavaScript de aprenderaprogramar.


EJERCICIO 1

Citar
Crea un script que genere un número aleatorio entre 1 y 100. A continuación debe pedir al usuario que adivine el número. Si el usuario responde un número menor al número aleatorio, debe mostrarse un mensaje “El número es mayor. Inténtelo de nuevo” y dar opción a responder de nuevo. Si el usuario responde un número mayor debe mostrarse un mensaje “El número es menor. Inténtelo de nuevo”. Si el usuario acierta debe mostrarse “Enhorabuena. Ha acertado”. El programa debe terminar si el usuario acierta o si se superan los 30 intentos sin acertar. En caso de superarse los 30 intentos debe mostrarse el mensaje “Ha superado 30 intentos. El programa termina”.

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

<html>
<head>
<title>Ejemplo aprenderaprogramar.com</title>
<meta charset="utf-8">
<script type="text/javascript">
window.onload = function()
{
var msg="";
var nAleatorio=Math.floor((Math.random() * (100 - 1))+1) ;
var nRespuesta;
var i=1;
var numIntentosQue;

while (i<=30)
{
numIntentosQue=30-i
nRespuesta=prompt("Introduzca un numero del 1 al 100\nLe Quedan "+numIntentosQue+" intentos")
if(nRespuesta==nAleatorio)
{
msg=msg+"!!!!!! EL NUMERO A SIDO ACERTADO ENHORABUENA ¡¡¡¡¡¡¡¡\n"
msg=msg+"Ha adivinado el numero\n";
msg=msg+"Su numero es : "+nRespuesta+"\n";
msg=msg+"Y el numero a adivinar es : "+nAleatorio;
alert(msg);
i=31;
}
if (nRespuesta!=nAleatorio)
{

if (i<=30)
{
if (nRespuesta>nAleatorio){msg="El numero a adivinar es menor";}
if (nRespuesta<nAleatorio){msg="El numero a adivinar es mayor";}
alert("!!!!  INCORRECTO\nvuelva a intentarlo le quedan "+numIntentosQue+" intentos\n"+msg)
msg="";
}

if (i>=30)
{
alert("!!!! HA SUPERADO EL NUMERO DE INTENTOS\nEL PROGRAMA FINALIZARA")

}
i++

}
}


}
</script>

<style type="text/css">
body{background-color:green;}
 
  h1,h2,h3{
text-align:center;
margin:0;
padding:0;
color:white;
width:300;
height:200;
}
</style>
</head>

<body>
<div id="cabecera">
<h2>Cursos aprenderaprogramar.com</h2>
<h3>Objetos Math.random()</h3>
</div>

</body>

</html>

EJERCICIO 2
Citar
Crea un script que pida al usuario el dato de radio en metros de la base de un cilindro y el dato de altura del cilindro. Utilizando la propiedad Math.PI debe realizarse el cálculo para determinar el área de la base del cilindro y el volumen del cilindro y mostrar estos resultados.

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

<html>
<head>
<title>Ejemplo aprenderaprogramar.com</title>
<meta charset="utf-8">
<script type="text/javascript">
var msg="";
window.onload = function()
{
var pi=Math.PI;
var r=prompt("Introduzca el radio de la base del cilindro en metros ")
var rCuadrado=(Math.pow(r,2))
var h=prompt("Introduzca la altura del Cilindro en metros")
var areaBase=(pi*rCuadrado);
areaBase=areaBase.toFixed(2)
var volumen=areaBase*h
volumen=volumen.toFixed(2)

msg=msg+"<strong>Formula para hallar el area del circulo A=PI*r\u00B2<br/>";
msg=msg+"A=area, PI=3.1416, r=radio</strong><br/>";
msg=msg+"r = "+r +", r\u00B2 = "+rCuadrado+", r\u00B2 x PI = "+areaBase+"<br/><br/>";
msg=msg+"<strong>El area de la base del cilindro es :"+areaBase+" m\u00B2<br/><br/>";

msg=msg+"Formula para hallar el Volumen del Cilindro V = pi*r\u00B2*h<br/>"
msg=msg+"V = Volumen, pi*r\u00B2= Area base del cilindro, h = altura<br/></strong>"
msg=msg+"Area base del Cilindro = "+areaBase +"; h = "+h+" = Area de la base x h = "+volumen+" m\u00B3<br/><br/>";
msg=msg+"<strong>El volumen del cilindro es :"+volumen+" m\u00B3</strong>";

document.all.pizarra.innerHTML=msg;
}
</script>

<style type="text/css">
body{background-color:green;}
 
  h1,h2,h3{
text-align:center;
margin:0;
padding:0;
color:white;
width:300;
height:200;
}

#pizarra {
background-color:black;
border:groove red 8px;
border-radius:25px 25px;
color:white;
font-size:19px;
padding:15px;
overflow:hidden;
float:left;
margin-left:10px;
margin-top:10px;
position:absolute;
left:30%;
}
#Pizarras{float:left;}
</style>
</head>

<body>
<div id="cabecera">
<h2>Cursos aprenderaprogramar.com</h2>
<h3>Objetos Math.PI()</h3>
</div>
 
<div id="pizarra"></div>
</body>

</html>


EJERCICIO 3
Citar
Crea un script que dé lugar a lo siguiente:

a) En un div con id="volador” debes tener una palabra como <<JavaScript>>.

b) Utilizando las funciones trigonométricas, las propiedades de posicionamiento CSS y funciones para control de animaciones/tiempo debes dar lugar a que dicha palabra se desplace desde la izquierda hasta la derecha de la pantalla siguiendo un movimiento sinusoidal (es decir, subiendo y bajando suavemente describiendo ondas).

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

<html>
<head>
<title>Ejemplo aprenderaprogramar.com</title>
<meta charset="utf-8">
<script type="text/javascript">

var topeY=1260;// Contador para controlar cuando llega al lado izquierdo de la pantalla
var finWidth=0;// Contador para controlar cuando llega al lado derecho de la pantalla
 var coorX=0;// poner coordenada x a cero
function inicio(){
setInterval(movimiento,5);
}
function movimiento(){
var movimiento=document.getElementById("volador")
var anchoPant=document.body.clientWidth //Coger ancho Pantalla
var coorY= movimiento.offsetLeft; // Coger coordenada eje Y para movimiento horizontal
coorX= Math.sin(coorY/100)*100;  // Coger coordenada para movimiento vertical

if(finWidth<=anchoPant-99)
{
finWidth++;
movimiento.style.left=(finWidth)+"px"
if(finWidth>=anchoPant-98){topeY=1260;}

}
else if(topeY>0)
{
topeY--
movimiento.style.left=(topeY)+"px"
if(topeY==0){finWidth=0}

}

movimiento.style.top=(coorX+10)+"px";
if(coorY%30==0){movimiento.style.color="Red"}
if(coorY%70==0){movimiento.style.color="white"}

}

</script>

<style type="text/css">
body{
background-color:black;
color:white;
}
 
  h1,h2,h3
{
text-align:center;
top:0;
margin:0;
}
#volador{
background-Color:transparent;
position:relative;
text-align:center;
font-size:20px;
font-weight :bold;
width:90px;
}
 

</style>
</head>

<body onload="inicio()">
<h1>Cursos aprenderaprogramar.com</h1>
 <h2>Objetos seno </h2>
 <h3>Ejercicio CU001165E-3</h3>
 
<div id="volador">Javascript</div>
 
 
</body>

</html>

Espero que este todo bien.
Un saludo. ;)

118
Hola. Hago la entrega del ejercicio: CU01164E ejemplo reloj javascript setTimeOut setInterval clearTimeOut, del curso programación web básica de aprenderaprogramar.

Citar
EJERCICIO 1
Crea un reloj JavaScript que marque los segundos usando el método setInterval.

EJERCICIO 2
Crea un reloj JavaScript que marque los segundos usando el método requestAnimationFrame.

EJERCICIO 3
Crea un reloj JavaScript que marque inicialmente 01:00 (es decir, 1 minuto) y que marche hacia atrás (00:59, 00:58, 00:57 … etc.) hasta llegar a 00:00. Cuando llegue a 00:00 debe detenerse y mostrar el mensaje: “Tu tiempo ha terminado”.

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

<html>
<head>
<title>Ejemplo aprenderaprogramar.com</title>
<meta charset="utf-8">

<script type="text/javascript">
window.requestAnimationFrame = window.requestAnimationFrame ||
   window.mozRequestAnimationFrame ||
   window.webkitRequestAnimationFrame ||
   window.oRequestAnimationFrame;

 var globalID;
 var i=60;
 var inicioCronometro;
 
//EJERCICIO 1
 function ejer1()
{
cancelAnimationFrame(globalID);
clearInterval(inicioCronometro);
horas.style.backgroundColor="Khaki";
minutos.style.backgroundColor="Khaki";
segundos.style.backgroundColor="Khaki";
mensaje=document.getElementById('mensaje');
mensaje.style.color="orange";
mensaje.innerHTML="Ejercicio 1";
reloj()
}
function reloj()
{
data()
var t = setInterval(function(){reloj()},500);
 
}
// ***** FIN  EJERCICIO 1

//EJERCICIO 2
function ejer2()
{
clearInterval(reloj);
clearInterval(inicioCronometro);
horas.style.backgroundColor="DarkKhaki";
minutos.style.backgroundColor="DarkKhaki";
segundos.style.backgroundColor="DarkKhaki";
mensaje=document.getElementById('mensaje');
mensaje.style.color="yellow";
mensaje.innerHTML="Ejercicio 2";
reloj2()
}


function reloj2()
{

data()
globalID = requestAnimationFrame(reloj2);

}
// ***** FIN  EJERCICIO 2

//EJERCICIO 3
function inicio()

  inicioCronometro=setInterval(cronometro,1000);
}

function cronometro()
{
i--
mensaje=document.getElementById('mensaje');
mensaje.style.color="black";
mensaje.innerHTML="Cronometro";
document.getElementById('horas');
document.getElementById('minutos');
document.getElementById('segundos');

horas.innerHTML="00";
if (i<60)
{
minutos.innerHTML="00";
}

if(i==0){resetCronometro() }
i = actualizarHora(i);
segundos.innerHTML= i;
 
}

 function  resetCronometro()
{
clearInterval(inicioCronometro);
mensaje.innerHTML="Tu tiempo ha terminado";
  horas.innerHTML="00";
minutos.innerHTML="00";
segundos.innerHTML="00";

}
// ***** FIN  EJERCICIO 3
//**************************************
//Datos para los tres ejercicios
function data()
{
var hoy=new Date();
var h=hoy.getHours();
var m=hoy.getMinutes();
var s=hoy.getSeconds();
h = actualizarHora(h);
m = actualizarHora(m);   
s = actualizarHora(s);

horas=document.getElementById('horas')
minutos=document.getElementById('minutos')
segundos=document.getElementById('segundos')

horas.innerHTML = h;
minutos.innerHTML = m;
segundos.innerHTML = s;
}
// Actualizar hora para los tres ejercicios
function actualizarHora(i)
{
    if (i<10) {i = "0" + i};  // Añadir el cero en números menores de 10
     
    return i;
}
//******************** FIN TEMA *******************//
</script>



<style type="text/css">
body{background-color:yellow;}
#cabecera{text-align:center;}

.dial,#mensaje{
  font-weight: bold;
  font-size: 58px;
  font-family: "Arial";
text-shadow: 0 1px 0 #ccc,
               0 2px 0 #c9c9c9,
               0 3px 0 #bbb,
               0 4px 0 #b9b9b9,
               0 5px 0 #aaa,
               0 6px 1px rgba(0,0,0,.1),
               0 0 5px rgba(0,0,0,.1),
               0 1px 3px rgba(0,0,0,.3),
               0 3px 5px rgba(0,0,0,.2),
               0 5px 10px rgba(0,0,0,.25),
               0 10px 10px rgba(0,0,0,.2),
               0 20px 20px rgba(0,0,0,.15);
color: Gold;
margin-left:40%;
}
#horas, #minutos, #segundos
{
box-shadow: 3px 3px 8px black;
background-color:Khaki;

border:outset 2px;
float:left;
margin-left:2px;
padding:2px;
margin-bottom:55px;
}

#puntos1, #puntos2
{
color:orange;
float:left;
margin-left:4px;
animation: blink-animation 1s steps(5, start) infinite;
-webkit-animation: blink-animation 1s steps(5, start) infinite;
}
#mensaje{clear:both;}
.boton
{
clear:both;
border:outset grey  2px; 
width:150px;
height:25px;
border-radius:25px 25px;
box-shadow:3px 3px 2px 2px #AFF6AF;
text-align:center;
    background-color:#90EE90;

font-size:19px;
margin-top :2px;

margin-bottom:5px;
float:left;
}
.boton{margin-left:45%;}


.boton:hover {
border:inset 2px green;
box-shadow:3px 3px 2px 2px  #0BF50B ;
color:white;

    }

@keyframes blink-animation {
  to {
    visibility: hidden;
  }
}
@-webkit-keyframes blink-animation {
  to {
    visibility: hidden;
  }
}
</style>
</head>
<body onload="inicio()">
<div id="cabecera">
<h1>Cursos aprenderaprogramar.com</h1>
<h2>Ejemplos JavaScript</h2>
<h3>Esperar un segundo para incicio de cronometro</h3>
</div >
<div class="dial">
<div id ="horas" > 00 </div>
<div id="puntos1"> :</div>
<div id ="minutos" > 01 </div>
<div id="puntos2"> :</div>
<div id ="segundos" > 00 </div>
</div>
<div class="boton" onclick="ejer1()">Ejercicio1</div>
<div class="boton" onclick="ejer2()">Ejercicio2</div>
 
<div  id="mensaje"></div>
 
</body>
</html>

Adios.
 >:(

119
Hola Ogramar.

He probado el código en 4 navegadores (Opera, Firefox, Chromium y Midori ) y en todos funciona según lo previsto en el código.
No se por que a ti no te funciona.

El botón actualizar datos se presenta en pantalla después de perder el enfoque el campo Ingreso en efectivo ya que pasa a la funcion de validacion de datos y si todo es correcto es cuando se presenta en pantalla.

Si presento el botón en pantalla nada mas cargar la página tengo que crear otra función para que no entren los campos vacios y no quise poner mas codigo .

Gracia un saludo.
 ;)
 

120
Hola. Dejo la entrega del Ejercicio CU01163E del tutorial de programación web javascript toDateString toLocaleTimeString metodos date fechas.

EJERCICIO 1
Citar

Crea un script donde se calcule el tiempo en minutos entre que se formula primera petición al usuario y este responde, y entre una segunda petición al usuario y este responde. Ejemplo:

Introduzca su nombre: Alfredo >> Introduzca su país: Colombia >> Han pasado 0.122 minutos entre su primera y segunda respuesta.

Otro ejemplo: Introduzca su nombre: Juan >> Introduzca su país: Chile >> Han pasado 0.73 minutos entre su primera y segunda respuesta.

Código: [Seleccionar]
<html>
<head>
<title>Ejemplo curso aprenderaprogramar.com</title><meta charset="utf-8">

<script type="text/javascript">
function Comenzar()
{

var msg="";
inicioInter = new Date();// Inicio de intervalo
var nomb=prompt('Introduzca su nombre :');
var pais=prompt('Introduzca su país   :');
msg=msg+"Su nombre es :"+nomb+" y es de : "+pais+"\n"
finInter= new Date();    // Fin del intervalo
var minutos=(finInter.getTime() - inicioInter.getTime())/(1000*60) // 1000 milisegundos un segundo
msg=msg+'Han pasado '+minutos+' minutos entre su primera y segunda respuesta.\n';
alert(msg);

}

 
</script>




<style type="text/css">
body{
background-color:yellow;
text-align:center;
}
 

  #copy{
  color:black;
  display:block;
  margin:38%;
  padding:5px;
}


</style>
</head>
<body  >
<h1>Aprenderaprogramar.com</h1>
<h2>Ejercicio CU01163E</h2>
<h3>Intervalos de tiempo</h3>
</div>
<div id="Contenedor">
<input type="button" value="   Comprobar   " onclick="Comenzar()">
 
<p id="copy">&copy;parasabermas@hayquestudiar.com</p>
</body
</html>


EJERCICIO 2
Citar
Crea un script donde pida al usuario que introduzca una primera fecha (fecha1) en formato dd-mm-yyyy, y una segunda fecha en el mismo formato y calcule los días que han pasado entre las dos fechas . Ejemplo: Introduzca la fecha 1: 05-09-2076 >> Introduzca la fecha 2: 09-09-2076 >> Entre las 00:00 horas del primer día a las 00:00 del segundo hay 4 días.

Código: [Seleccionar]
<html>
<head>
<title>Ejemplo curso aprenderaprogramar.com</title><meta charset="utf-8">

<script type="text/javascript">
function Comenzar()
{
var msg="";
//Coger fechas del calendario
var inputFech1 = document.getElementById("fecha1").value;
var inputFech2 = document.getElementById("fecha2").value;
//Dar formato Date a la fecha entrada en formulario
var dateFecha1=new Date(inputFech1);
var dateFecha2=new Date(inputFech2);
//Validar que la fecha1 sea menor que la fecha2
if(dateFecha2<dateFecha1)
{
msg=msg+"Fecha2 debe de ser mayor o igual que Fecha1";
}
//Si la fecha devuelve NaN no es correcta
else if (isNaN(dateFecha1) || isNaN(dateFecha2))
{
msg=msg+"La fecha introducida es incorrecta o el valor es nulo";
}
// Si la fecha es correcta presentar datos
else
{
//Coger el tiempo de las dos fechas y restarlo el resultado sera la diferiencia en milisegundos
var diasDif = (dateFecha2.getTime() - dateFecha1.getTime());
//   1,000 * 60s =    60,000 milisegundos un minuto
//  60,000 * 60m =   360,000      "       una hora
// 360,000 * 24h = 8,640,000 milisegundos un dia
// diasDif(en milisegundos)/8,640,000 mseg dia = dias de diferencia
//sumamos uno par que incluya el primer dia desde las 00:00:00 hasta las 23:59:59
var dias = Math.round(diasDif/(1000 * 60 * 60 * 24))+1;//sumamos uno par que incluya el primer dia desde las 00:00
msg=msg+"Desde las 00:00 del dia :"+dateFecha1.toLocaleDateString()+" A las 00:00 del dia : "+dateFecha2.toLocaleDateString()+"\n";
msg=msg+"hay : "+dias+" dia(s) de diferencia\n";
msg=msg+"Primer dia incluido desde las 00:00 horas";
}

alert(msg);


}

 
</script>




<style type="text/css">
body{
background-color:yellow;
text-align:center;
}
 

  #copy{
  color:black;
  display:block;
  margin:20%;
  padding:5px;
}


</style>
</head>
<body >
<h1>Aprenderaprogramar.com</h1>
<h2>Ejercicio CU01163E</h2>
<h3>Dias pasados entre dos fechas</h3>
<h4>Introducir Fecha1 menor que Fecha2</h4>
<p><strong>Fecha 1 :</strong><input type="date" id="fecha1" name="fecha2" ></input></p>
  <p><strong>Fecha 2:</strong><input type="date" id="fecha2" name="fecha2"  ></input></p>
   <input type="button" value="   Comprobar   " onclick="Comenzar()">
</div>
<div id="Contenedor">
<p id="copy">&copy;parasabermas@hayquestudiar.com</p>
</body
</html>


Hasta luego.
Gracias.  ;)

Páginas: 1 2 3 4 5 [6] 7 8 9 10 11 ... 13

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