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 - pedro,,

Páginas: 1 ... 53 54 55 56 57 [58] 59 60 61 62 63 ... 65
1141
Hola Mario. Gracias por la corrección. Hice unos arreglos y ahora no da ningún error.

Código: [Seleccionar]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Ejemplo aprenderaprogramar.com</title><meta charset="utf-8">
<style type="text/css">
button {margin:10px;}
.volador{border: solid 1px; width: 20px; text-align: center; padding:15px;
color: yellow; border-radius: 40px; background: purple; position: absolute; }
#volador0{top: 300px; left: 200px;}
.contenedor{border: solid 2px; width: 100%; background-color: grey;}
#contenedor1{height: 400px;}
#contenedor2{height: 100px;}
#palo{width: 200px; border: solid 4px black; position: absolute; top: 320px; left: -50px;}
#agujero{width: 0; height: 0; text-align: center; padding:15px; border-radius: 40px; background: black; position: absolute; display:none;}
</style>
<script type="text/javascript">
window.requestAnimationFrame = window.requestAnimationFrame || window.mozRequestAnimationFrame ||
  window.webkitRequestAnimationFrame || window.oRequestAnimationFrame;
var nodoBola;
var animacionColocaBolas, animacionMuevePalo, animacionMueveBola, animacionEvitaGolpe, animacionAgujeroDesaparece, animacionCreceTexto;
var moverPalo, cambiaColor;
var ejeXInicial = [];var ejeYInicial = [];var contadorX = [];var contadorY = [];var posicionX = [];var posicionY = [];
var posicionXPalo = -50;
var direccionPalo = false;
var posicionXBolaBlanca = 200;
var sizeAgujero = 0;
var sizeTexto = 0;
function comenzarAnimacion(){
nodoBola = document.querySelectorAll('.volador');
posicionInicialBolas();
colocarBolas();
moverPalo = setTimeout(function(){muevePalo()}, 14000);
cambiaColor = setTimeout(function(){cambiaColorBolas()}, 3000);
}
function detener() {
cancelAnimationFrame(animacionColocaBolas);
cancelAnimationFrame(muevePalo);
cancelAnimationFrame(evitaGolpe);
cancelAnimationFrame(mueveBolas);
cancelAnimationFrame(animacionMuevePalo);
clearTimeout(cambiaColor);
//clearInterval(cambiaColor);
}
function animacionTexto(){ // Función que se encarga de la animacion que hace aparecer el texto 'game over' haciendolo cecer.
document.getElementById('contenedor1').style.fontSize = sizeTexto + 'px';
document.getElementById('contenedor1').style.color = 'white';
document.getElementById('contenedor1').style.textAlign = 'center';
document.getElementById('contenedor1').innerHTML = 'Game over!!';
sizeTexto++;
animacionCreceTexto = requestAnimationFrame(animacionTexto);
if(sizeTexto==100){
cancelAnimationFrame(animacionCreceTexto);
}
}
function posicionInicialBolas(){ // esta función asigna las coordenadas a cada bola
for(var i=1; i<nodoBola.length; i++){
var coordenadas = coordenadasAleatorias();
nodoBola[i].style.left = coordenadas[0] + 'px';
nodoBola[i].style.top = coordenadas[1] + 'px';
ejeXInicial[i-1] = coordenadas[0];
ejeYInicial[i-1] = coordenadas[1];
}
function coordenadasAleatorias(){ //  aquí se generan las coordenadas aleatoriamente
var eje = [];
eje[0] = Math.round(Math.random()*(100-700)+parseInt(700));
eje[1] = Math.round(Math.random()*(120-480)+parseInt(480));
return eje;
}
}
function colocarBolas(){ // esta función contiene las coordenadas hasta donde tendrán que moverse las bolas, para quedar colocadas.
var posX = Number(document.body.clientWidth) - 100;
posicionX = [(posX-200), (posX-150), (posX-150), (posX-100), (posX-100), (posX-100), (posX-50), (posX-50), (posX-50), (posX-50),
posX, posX, posX, posX, posX];
posicionY = [300, 275, 325, 250, 300, 350, 225, 275, 325, 375, 200, 250, 300, 350, 400];
for(var i=0; i<15; i++){
contadorX[i] = ejeXInicial[i];
contadorY[i] = ejeYInicial[i];
}
animacionColocaBolas = requestAnimationFrame(mueveBolas);// desde aquí empzamos a mover las bolas llamando a la función mueveBolas
}
function cambiaColorBolas(){ // funcion que se encarga de cambiar el color de las bolas aleatoriamente.
var colores = ['maroon', 'red', 'orange', 'Gold', 'olive', 'Crimson', 'aqua', 'lime', 'green', 'navy',
'blue', 'LawnGreen','salmon', 'teal', 'silver', 'gray'];
var indice = Math.round(Math.random()*(0-14)+parseInt(14));
for(i=1; i<16; i++){
nodoBola[i].style.backgroundColor = colores[indice];
if(indice<(colores.length-2)){
indice++;
}else{
indice = 0;
}
}
cambiaColor = setTimeout(function(){cambiaColorBolas()}, 3000);
}
function muevePalo(){ // esta función se encarga de la animación que mueve el palo.
if(posicionXPalo == -150){direccionPalo=true;}
if(direccionPalo){
posicionXPalo+=2;
}else{
posicionXPalo--;
}
if(posicionXPalo==0){
cancelAnimationFrame(muevePalo);
}else{
document.getElementById('palo').style.left = posicionXPalo + 'px';
animacionMuevePalo = requestAnimationFrame(muevePalo);
}
if(posicionXPalo == -6){animacionMueveBola = requestAnimationFrame(mueveBolaBlanca);}
}
function agujeroDesaparece(){ // función que hace desaparer el supuesto agujero que se traga la bola 'JS'.
if(sizeAgujero>0){
document.getElementById('agujero').style.width = sizeAgujero + 'px';
document.getElementById('agujero').style.height = sizeAgujero + 'px';
sizeAgujero--;
animacionAgujeroDesaparece = requestAnimationFrame(agujeroDesaparece);
}else{
document.getElementById('agujero').style.display = 'none';
clearInterval(cambiaColor);
setTimeout(function(){animacionTexto()}, 2000);

cancelAnimationFrame(agujeroDesaparece);
}
}
function mueveBolaBlanca(){ // función que hace moverse la bola 'JS'
if(posicionXBolaBlanca>(Number(document.body.clientWidth)-50)){
nodoBola[0].style.display = 'none';
animacionAgujeroDesaparece = requestAnimationFrame(agujeroDesaparece);
cancelAnimationFrame(animacionMueveBola);
} else {
posicionXBolaBlanca+=2;
nodoBola[0].style.left = posicionXBolaBlanca + 'px';
animacionMueveBola = requestAnimationFrame(mueveBolaBlanca);
}
if(posicionXBolaBlanca==Number(document.body.clientWidth)-200 || posicionXBolaBlanca==Number(document.body.clientWidth)-199){
document.getElementById('agujero').style.left = (Number(document.body.clientWidth)-48) + 'px';
document.getElementById('agujero').style.top = 300 + 'px';
document.getElementById('agujero').style.display = 'block';
sizeAgujero++;
}
if(sizeAgujero>0 && sizeAgujero<23){
document.getElementById('agujero').style.width = sizeAgujero + 'px';
document.getElementById('agujero').style.height = sizeAgujero + 'px';
sizeAgujero++;
}
if(posicionXBolaBlanca==(Number(document.body.clientWidth)-450) || posicionXBolaBlanca==(Number(document.body.clientWidth)-449)){
animacionEvitaGolpe = requestAnimationFrame(evitaGolpe); // iniciamos la animacion que aparta las bolas.
setTimeout(pararAnimacion, 1000); // cuando pasa un segundo ejecutamos la función que para la animación anterior.
setTimeout(mueveBolas, 3000); // cuando pasan 3 segundos llamamos a la función mueveBolas para que se vuelvan a colocar las bolas en su sitio.
}
function pararAnimacion(){cancelAnimationFrame(animacionEvitaGolpe);}
}
function evitaGolpe(){ // función que hace que las bolas del 1 al 15 dejen paso a la bola 'JS' desplazandose verticalmente.
var sumaOResta = [-1, -1, 1, -1, -1, 1, -1, -1, 1, 1, -1, -1, -1, 1, 1];
for (var i = 0; i<sumaOResta.length; i++){
contadorY[i] = contadorY[i] + sumaOResta[i]
nodoBola[i+1].style.top = contadorY[i] + 'px';
}
animacionEvitaGolpe = requestAnimationFrame(evitaGolpe);
}
function mueveBolas() { // esta función mueve las bolas de la 1 a la 15
for(var i=1; i<16; i++){
if(posicionX[i-1]!=contadorX[i-1]){
if(posicionX[i-1]<contadorX[i-1]){
contadorX[i-1]--;
}else{
contadorX[i-1]++;
}
}
if(posicionY[i-1]!=contadorY[i-1]){
if(posicionY[i-1]<contadorY[i-1]){
contadorY[i-1]--;
}else{
contadorY[i-1]++;
}
}
nodoBola[i].style.left = contadorX[i-1] + 'px';
nodoBola[i].style.top = contadorY[i-1] + 'px';
}
var bolasColocadas = 0;
for(var i=0; i<posicionX.length; i++){ // este bucle es usado para comprobar que las bolas están colocadas
if(posicionX[i]==contadorX[i]){bolasColocadas++;}
if(posicionY[i]==contadorY[i]){bolasColocadas++;}
}
if(bolasColocadas==30){ // si todas las bolas estan colocadas.
detener(); // pararemos la animación.
}else{
animacionColocaBolas = requestAnimationFrame(mueveBolas); // sino, volvemos a ejecutar la animación de forma recursiva.
}
}
</script>
</head>
<body >
<div class="contenedor" id="contenedor2">
<div><button id="start" onclick="comenzarAnimacion()">Empezar</button><button id="stop" onclick = "detener()">Detener</button></div>
<div id="posicionDiv" ></div><div id="posicionDiv1"></div><div id="displayReloj"></div>
</div>
<div class="contenedor" id="contenedor1">
<div id="volador0" class="volador">JS</div>
<div id="volador1" class="volador">1</div>
<div id="volador2" class="volador">2</div>
<div id="volador3" class="volador">3</div>
<div id="volador4" class="volador">4</div>
<div id="volador5" class="volador">5</div>
<div id="volador6" class="volador">6</div>
<div id="volador7" class="volador">7</div>
<div id="volador8" class="volador">8</div>
<div id="volador9" class="volador">9</div>
<div id="volador10" class="volador">10</div>
<div id="volador11" class="volador">11</div>
<div id="volador12" class="volador">12</div>
<div id="volador13" class="volador">13</div>
<div id="volador14" class="volador">14</div>
<div id="volador15" class="volador">15</div>
<div id="agujero"></div>
<div id="palo"></div>
</div>
</body>
</html>

Saludos.

1142
Hola,

Citar
EJERCICIO 1
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.

Aquí dejo el código comentado:
Código: [Seleccionar]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><!--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-->
<html><!--etiqueta de apertura del código HTML-->
<head><!--etiqueta de apertura de la cabecera del documento-->
<title>Cursos aprende a programar</title><!--título del documento HTML-->
<meta charset="utf-8"><!--indica el juego de caracteres que se debe emplear para interpretar el HTML-->
<meta name="description" content="Aprende a programar con cursos reconocidos por su calidad didáctica"><!--indica a los buscadores el contenido de la página-->
<meta name="keywords" content="HTML, CSS, JavaScript, Java, Visual Basic, Joomla, PHP"><!--indica a los buscadores palabras claves para su localización-->
<style type="text/css"><!--etiqueta de apertura para la definición de estilos CSS-->
*{font-family: verdana, sans-serif;} /*establece para todo el documento un tipo de letra*/
#principal{text-align:center;width:95%; margin: 0 auto;} /*establece para las etiquetas con id="principal" alineación centrada,
ancho del 95% y el margen*/
.tituloCurso {color: white; float:left; padding: 36px 44px; /*establece para las etiquetas con class="tituloCurso" color de la letra, el elemento se desplaza
a la izquierda tanto como es posible, el padding, ...*/
font-size: 2.65em; font-style:bold; text-decoration:none;}/*... tamaño de la letra, letra en negrita y texto sin decoración*/
a:hover{color:orange !important;} /*en los elementos 'a' al pasar el ratón por sobre ellos, el color de texto será orange y al tener
'!important' prebalecerá aunque en otra parte del código diga que el texto debe ir en otro color*/
</style><!--etiqueta de cierre de la definición de estilos CSS-->
<script type="text/javascript"><!--etiqueta de apertura para el código JavaScript-->
function ejemplo(){//Creamos una función de nombre 'ejemplo'.
var nodosTituloCurso = document.querySelectorAll(".tituloCurso");/*creamos la variable 'nodosTituloCurso' que contendrá un array con todos los nodos
que contengan el selector CSS ".tituloCurso".*/
var contador = 0; var nodosCambiados = new Array(); var tocaCambiar = true; /* se crean y se inicializan tres variables, la primera numérica,
la segunda un array y la ultima una booleana*/
setTimeout(function() {ejemploAccion(nodosTituloCurso, nodosCambiados, contador, tocaCambiar)}, 1500); /*cuando pase 1,5 segundos se ejecutará
la función 'ejemploAccion' y le pasaremos los valores de las variables 'nodosTituloCurso', 'nodosCambiados',
'contador' y 'tocaCambiar'.*/
}//cierre de la función 'ejemplo'.
function ejemploAccion(nodosTituloCurso, nodosCambiados, contador, tocaCambiar) {//creamos la función ejemploAccion, que recivirá cuatro parámetros.
if (contador<nodosTituloCurso.length){ // si la variable 'contador' es menor que la cantidad de nodos que hay en la variable 'nodosTituloCurso'.
var indice = Math.floor((Math.random() * (nodosTituloCurso.length)));/*crea la variable 'indice' y se le da un valor aleatorio comprendido entre
cero y el tamaño del array 'nodosTituloCurso'.*/
if (nodosCambiados.length!=0) {  // si la variable 'nodosCambiados' que es un array, contiene un numero de elementos distinto a 0 entrará en la condición.
for (var i=0; i<nodosCambiados.length; i++) {  // bucle for que recorre los elementos del array 'nodosCambiados'.
if(nodosCambiados[i]==indice) {tocaCambiar = false;} /* si el elemento del array 'nodosCambiados' en el que nos econtramos es igual
al contenido de la variable 'indice', 'tocaCambiar' valdrá false.*/
}//cierre del bucle for.
} // cierre de la condición if.
if (tocaCambiar==true) {// si la variable 'tocaCambiar' es igual a true...
cambiarNodo(nodosTituloCurso[indice]);/*llamamos a la función 'cambiarNodo' pasandole como parámetro el elemento del array 'nodosTituloCurso'
con índice valor de la variable 'indice'.*/
nodosCambiados.push(indice); // se añade el valor de la variable 'indice' al array 'nodosCambiados'.
contador = contador+1; // aumentamos el valor de la variable 'contador' en uno.
setTimeout(function() {ejemploAccion(nodosTituloCurso, nodosCambiados, contador, tocaCambiar)}, 1500); /*Cuando pase 1,5 segundos
se ejecutará la función 'ejemploAccion' pasandole como parámetros el contenido de las variables, 'nodosTituloCurso',
'nodosCambiados', 'contador' y 'tocaCambiar'. De esta forma generamos recursión.*/
} else { // si no se cumple la condición del if se hara lo siguiente...
tocaCambiar=true; // la variable tocaCambiar valdrá true
ejemploAccion(nodosTituloCurso, nodosCambiados, contador, tocaCambiar); /* llamos a la función 'ejemploAccion' pasandole los valores de las
cuatro variables situadas entre los parentesis. Generamos recursión.*/
}
}else { //si no se cumple la condición del if anterior, se acaba la recursión y se hará lo siguiente...
   document.body.style.backgroundColor='black'; // se cambia el background del body, quedando en negro.
   document.getElementById('principal').style.color='white'; // el color del texto del elemento con id 'principal' pasará a ser blanco.
   for (var i=0; i<nodosTituloCurso.length; i++) { // bucle for que recorre el array 'nodosTituloCurso'.
nodosTituloCurso[i].style.color='yellow'; // se cambia el color del texto de los elementos que forman el array 'nodosTituloCurso'.
   } // cierre del bucle for     
} // cierre del condicional if
}// cierre de la función 'ejemploAccion'.
function cambiarNodo(elNodo){elNodo.style.backgroundColor = 'black'; } /* función de nombre cambiarNodo, que recive como parámetro un nodo al cuál
se le cambiará el color de fondo, quedando en negro.*/
</script><!--etiqueta que cierra el código JavaScript-->
</head><!--etiqueta de cierre de la cabecera del documento HTML-->
<body onload="ejemplo()"><!--etiqueta de apertura del cuerpo del documento HTML. Cuando se carga el body se llama a la función 'ejemplo()' que está en
mas arriba en el código JavaScript-->
<div id="principal"><h1>Cursos de programación</h1><!--etiqueta de apertura div con id principal y un texto que se muestra como encabezado h1-->
<h3>Reconocidos por su calidad didáctica</h3><!--texto que recive la propiedad de encabezado h3-->
<div ><a class="tituloCurso" href="http://aprenderaprogramar.com/index.php?option=com_content&view=category&id=28&Itemid=59"> Fundamentos</a></div>
<div ><a class="tituloCurso" href="http://aprenderaprogramar.com/index.php?option=com_content&view=category&id=68&Itemid=188"> Java</a></div>
<div ><a class="tituloCurso" href="http://aprenderaprogramar.com/index.php?option=com_content&view=category&id=69&Itemid=192"> HTML</a></div>
<div ><a class="tituloCurso" href="http://aprenderaprogramar.com/index.php?option=com_content&view=category&id=75&Itemid=203"> CSS</a></div>
<div ><a class="tituloCurso" href="http://aprenderaprogramar.com/index.php?option=com_content&view=category&id=78&Itemid=206"> JavaScript</a></div>
<div ><a class="tituloCurso" href="http://aprenderaprogramar.com/index.php?option=com_content&view=category&id=70&Itemid=193"> PHP</a></div>
<div ><a class="tituloCurso" href="http://aprenderaprogramar.com/index.php?option=com_content&view=category&id=38&Itemid=152"> Joomla</a></div>
<div ><a class="tituloCurso" href="http://aprenderaprogramar.com/index.php?option=com_content&view=category&id=37&Itemid=61"> Visual Basic</a></div>
<div ><a class="tituloCurso" href="http://aprenderaprogramar.com/index.php?option=com_content&view=category&id=28&Itemid=59"> Pseudocódigo</a></div>
<div ><a class="tituloCurso" href="http://aprenderaprogramar.com/index.php?option=com_content&view=section&layout=blog&id=7&Itemid=26"> Libros/ebooks</a></div>
<div ><a class="tituloCurso" href="http://aprenderaprogramar.com/index.php?option=com_content&view=article&id=64&Itemid=87">Cursos tutorizados</a></div>
<!--diez div que en su interior tinen un hipervinculo (etiqueta <a></a>)cada uno, que tienen como clase 'tituloCurso'-->
</div><!--cierre del div con id 'principal'-->
</body><!--cierre de la etiqueta boy-->
</html><!--cierre de la etiqueta html-->

Citar
EJERCICIO 2
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.

Aquí el código de mi pequeño intento de animación:
Código: [Seleccionar]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Ejemplo aprenderaprogramar.com</title><meta charset="utf-8">
<style type="text/css">
button {margin:10px;}
.volador{border: solid 1px; width: 20px; text-align: center; padding:15px;
color: yellow; border-radius: 40px; background: purple; position: absolute; }
#volador0{top: 300px; left: 200px;}
.contenedor{border: solid 2px; position;relative;width: 100%; background-color: grey;}
#contenedor1{height: 400px;}
#contenedor2{height: 100px;}
#palo{width: 200px; border: solid 4px black; position: absolute; top: 320px; left: -50px;}
#agujero{width: 0; height: 0; text-align: center; padding:15px; border-radius: 40px; background: black; position: absolute; display:none;}
</style>
<script type="text/javascript">
window.requestAnimationFrame = window.requestAnimationFrame || window.mozRequestAnimationFrame ||
  window.webkitRequestAnimationFrame || window.oRequestAnimationFrame;
var animacionColocaBolas;
var animacionMuevePalo;
var animacionMueveBola;
var animacionEvitaGolpe;
var animacionAgujeroDesaparece;
var animacionCreceTexto;
var moverPalo;
var cambiaColor;
var ejeXInicial = [];
var ejeYInicial = [];
var contadorX = [];
var contadorY = [];
var posicionX = [];
var posicionY = [];
var posicionXPalo = -50;
var direccionPalo = false;
var posicionXBolaBlanca = 200;
var sizeAgujero = 0;
var sizeTexto = 0;
function comenzarAnimacion(){
posicionInicialBolas();
colocarBolas();
moverPalo = setTimeout(function(){muevePalo()}, 15000);
cambiaColor = setTimeout(function(){cambiaColorBolas()}, 3000);
}
function detener() {
cancelAnimationFrame(animacionColocaBolas);
cancelAnimationFrame(muevePalo);
cancelAnimationFrame(evitaGolpe);
cancelAnimationFrame(mueveBolas);
cancelAnimationFrame(animacionMuevePalo);
clearTimeOut(cambiaColor);
clearTimeOut(moverPalo);
}
function animacionTexto(){
document.getElementById('contenedor1').style.fontSize = sizeTexto + 'px';
document.getElementById('contenedor1').style.color = 'white';
document.getElementById('contenedor1').style.textAlign = 'center';
document.getElementById('contenedor1').innerHTML = 'Game over!!';
sizeTexto++;
animacionCreceTexto = requestAnimationFrame(animacionTexto);
if(sizeTexto==100){
cancelAnimationFrame(animacionCreceTexto);
}
}
function posicionInicialBolas(){
var nodoBola = document.querySelectorAll('.volador');
for(var i=1; i<nodoBola.length; i++){
var coordenadas = coordenadasAleatorias();
nodoBola[i].style.left = coordenadas[0] + 'px';
nodoBola[i].style.top = coordenadas[1] + 'px';
ejeXInicial[i-1] = coordenadas[0];
ejeYInicial[i-1] = coordenadas[1];
}
function coordenadasAleatorias(){
var eje = [];
eje[0] = Math.round(Math.random()*(100-700)+parseInt(700));
eje[1] = Math.round(Math.random()*(120-480)+parseInt(480));
return eje;
}
}
function colocarBolas(){
var nodoBola = document.querySelectorAll('.volador');
var posX = Number(document.body.clientWidth) - 100;
posicionX = [(posX-200), (posX-150), (posX-150), (posX-100), (posX-100), (posX-100), (posX-50), (posX-50), (posX-50), (posX-50),
posX, posX, posX, posX, posX];
posicionY = [300, 275, 325, 250, 300, 350, 225, 275, 325, 375, 200, 250, 300, 350, 400];
for(var i=0; i<15; i++){
contadorX[i] = ejeXInicial[i];
contadorY[i] = ejeYInicial[i];
}
animacionColocaBolas = requestAnimationFrame(mueveBolas);
}
function cambiaColorBolas(){
var nodoBola = document.querySelectorAll('.volador');
var colores = ['maroon', 'red', 'orange', 'Gold', 'olive', 'Crimson', 'aqua', 'lime', 'green', 'navy',
'blue', 'LawnGreen','salmon', 'teal', 'silver', 'gray'];
var indice = Math.round(Math.random()*(0-14)+parseInt(14));
for(i=1; i<16; i++){
nodoBola[i].style.backgroundColor = colores[indice];
if(indice<(colores.length-2)){
indice++;
}else{
indice = 0;
}
}
cambiaColor = setTimeout(function(){cambiaColorBolas()}, 3000);
}
function muevePalo(){
if(posicionXPalo == -150){direccionPalo=true;}
if(direccionPalo){
posicionXPalo+=2;
}else{
posicionXPalo--;
}
if(posicionXPalo==0){
cancelAnimationFrame(muevePalo);
}else{
document.getElementById('palo').style.left = posicionXPalo + 'px';
animacionMuevePalo = requestAnimationFrame(muevePalo);
}
if(posicionXPalo == -4){animacionMueveBola = requestAnimationFrame(mueveBolaBlanca);}
}
function agujeroDesaparece(){
if(sizeAgujero>0){
document.getElementById('agujero').style.width = sizeAgujero + 'px';
document.getElementById('agujero').style.height = sizeAgujero + 'px';
sizeAgujero--;
animacionAgujeroDesaparece = requestAnimationFrame(agujeroDesaparece);
}else{
document.getElementById('agujero').style.display = 'none';
setTimeout(function(){animacionTexto()}, 2000);
cancelAnimationFrame(agujeroDesaparece);
}
}
function mueveBolaBlanca(){
var nodoBola = document.querySelectorAll('.volador');
if(posicionXBolaBlanca>(Number(document.body.clientWidth)-50)){
nodoBola[0].style.display = 'none';
animacionAgujeroDesaparece = requestAnimationFrame(agujeroDesaparece);
cancelAnimationFrame(animacionMueveBola);
} else {
posicionXBolaBlanca+=2;
nodoBola[0].style.left = posicionXBolaBlanca + 'px';
animacionMueveBola = requestAnimationFrame(mueveBolaBlanca);
}
if(posicionXBolaBlanca==Number(document.body.clientWidth)-200){
document.getElementById('agujero').style.left = (Number(document.body.clientWidth)-48) + 'px';
document.getElementById('agujero').style.top = 300 + 'px';
document.getElementById('agujero').style.display = 'block';
sizeAgujero++;
}
if(sizeAgujero>0 && sizeAgujero<23){
document.getElementById('agujero').style.width = sizeAgujero + 'px';
document.getElementById('agujero').style.height = sizeAgujero + 'px';
sizeAgujero++;
}
if(posicionXBolaBlanca==(Number(document.body.clientWidth)-450) || posicionXBolaBlanca==(Number(document.body.clientWidth)-449)){
animacionEvitaGolpe = requestAnimationFrame(evitaGolpe);
setTimeout(pararAnimacion, 1000);
setTimeout(mueveBolas, 3000);
}
function pararAnimacion(){cancelAnimationFrame(animacionEvitaGolpe);}
}
function evitaGolpe(){
var nodoBola = document.querySelectorAll('.volador');
var sumaOResta = [-1, -1, 1, -1, -1, 1, -1, -1, 1, 1, -1, -1, -1, 1, 1];
for (var i = 0; i<sumaOResta.length; i++){
contadorY[i] = contadorY[i] + sumaOResta[i]
nodoBola[i+1].style.top = contadorY[i] + 'px';
}
animacionEvitaGolpe = requestAnimationFrame(evitaGolpe);
}
function mueveBolas() {
var nodoBola = document.querySelectorAll('.volador');
for(var i=1; i<16; i++){
if(posicionX[i-1]!=contadorX[i-1]){
if(posicionX[i-1]<contadorX[i-1]){
contadorX[i-1]--;
}else{
contadorX[i-1]++;
}
}
if(posicionY[i-1]!=contadorY[i-1]){
if(posicionY[i-1]<contadorY[i-1]){
contadorY[i-1]--;
}else{
contadorY[i-1]++;
}
}
nodoBola[i].style.left = contadorX[i-1] + 'px';
nodoBola[i].style.top = contadorY[i-1] + 'px';
}
var bolasColocadas = 0;
for(var i=0; i<posicionX.length; i++){
if(posicionX[i]==contadorX[i]){bolasColocadas++;}
if(posicionY[i]==contadorY[i]){bolasColocadas++;}
}
if(bolasColocadas==30){
detener();
}else{
animacionColocaBolas = requestAnimationFrame(mueveBolas);
}
}
</script>
</head>
<body >
<div class="contenedor" id="contenedor2">
<div><button id="start" onclick="comenzarAnimacion()">Empezar</button><button id="stop" onclick = "detener()">Detener</button></div>
<div id="posicionDiv" ></div><div id="posicionDiv1"></div><div id="displayReloj"></div>
</div>
<div class="contenedor" id="contenedor1">
<div id="volador0" class="volador">JS</div>
<div id="volador1" class="volador">1</div>
<div id="volador2" class="volador">2</div>
<div id="volador3" class="volador">3</div>
<div id="volador4" class="volador">4</div>
<div id="volador5" class="volador">5</div>
<div id="volador6" class="volador">6</div>
<div id="volador7" class="volador">7</div>
<div id="volador8" class="volador">8</div>
<div id="volador9" class="volador">9</div>
<div id="volador10" class="volador">10</div>
<div id="volador11" class="volador">11</div>
<div id="volador12" class="volador">12</div>
<div id="volador13" class="volador">13</div>
<div id="volador14" class="volador">14</div>
<div id="volador15" class="volador">15</div>
<div id="agujero"></div>
<div id="palo"></div>
</div>
</body>
</html>

Utilicé estas lineas para parar los setTimeout:

Código: [Seleccionar]
clearTimeOut(cambiaColor);
clearTimeOut(moverPalo);

pero no paran, ¿porque?

Saludos.

1143
Hola estebanmen.

Cuando se ejecutan estas dos lineas en la clase Casa:

Código: [Seleccionar]
salonCasa = new SalonCasa(objetoSalon.getNumeroDeTelevisores(), objetoSalon.getTipoSalon());//ERROR
cocina = new CocinaCasa(objetoCocina.getEsIndependiente(), objetoCocina.getNumeroDeFuegos());//ERROR

estas diciendo que se cree un objeto SalonCasa que contenga dos parámetros, pero en el constructor de la clase SalonCasa que tiene esa clase, no requiere ningún parámetro, por eso te da ese error, igual te pasa cuando creas el objetos CocinaCasa.

para solucionarlos podrías cambiar el constructor que tienes o agregar uno nuevo como este:

Código: [Seleccionar]
public SalonCasa(int numeroTv, String tipoDeSalon){
        numeroDeTelevisores = numeroTv;
        tipoSalon = tipoDeSalon;
}

Saludos.

1144
Hola Mario, muchas gracias por la corrección y los comentarios.

Retoqué un poco ese ejercicio, quedando así:

Código: [Seleccionar]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Ejemplo aprenderaprogramar.com</title><meta charset="utf-8">
<style type="text/css">
button {margin:10px;}
.volador{border: solid 1px; width: auto; text-align: center; padding:15px;
color: yellow; border-radius: 40px; background: purple; position:absolute; top: 400px; left: 0;position:absolute; left: 0;}
#volador2{top: 400px;}
#volador1{top: 200px;}
</style>
<script type="text/javascript">
window.requestAnimationFrame = window.requestAnimationFrame || window.mozRequestAnimationFrame ||
  window.webkitRequestAnimationFrame || window.oRequestAnimationFrame;
var globalID;
var posicionHorizontal = 0;
var posicionVerticalA = 400;
var posicionVertical = 200;
var direccionVertical = false;
var direccionHorizontal = false;
function animacionRepetimos() {
if(posicionHorizontal==0){direccionHorizontal=false;}
if(posicionHorizontal==(Number(document.body.clientWidth)-100)){direccionHorizontal=true;}
if (direccionHorizontal==true){
posicionHorizontal--;
}else{
posicionHorizontal++;
}
if(posicionVerticalA==450){direccionVertical=true;}
if(posicionVerticalA==350){direccionVertical=false;}
if(!direccionVertical){
posicionVerticalA++;
}else{
posicionVerticalA--;
}
posicionVertical = posicionVertical+(Math.sin(0.04*posicionHorizontal));
document.getElementById('volador1').style.left = posicionHorizontal + 'px';
document.getElementById('volador1').style.top = posicionVertical + 'px';
document.getElementById('volador2').style.left = posicionHorizontal + 'px';
document.getElementById('volador2').style.top = posicionVerticalA + 'px';
globalID = requestAnimationFrame(animacionRepetimos);
}
function empezar() {globalID = requestAnimationFrame(animacionRepetimos);}
function detener() {  cancelAnimationFrame(globalID);}
</script>
</head>
<body >
<button id="start" onclick="empezar()">Empezar</button><button id="stop" onclick = "detener()">Detener</button>
<div id="volador1" class="volador">JavaScript</div>
<div id="volador2" class="volador">JavaScript</div>
<div id="posicionVertica"></div>
</body>
</html>

Saludos.

1145
Hola, planteo mi solución al ejercicio CU01165E del curso gratuito de programación web de aprenderaprogramar.

Citar
EJERCICIO 1
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 PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Ejemplo aprenderaprogramar.com</title><meta charset="utf-8">
<style>
.pulsador {padding:15px; width: auto; display: inline-block; margin: 25px;
cursor: pointer; color: yellow; border-radius: 40px; background: purple;}
.caja{border: solid 2px blue; float: left;}
</style>
<script type="text/javascript">
function adivinaAleatorio(){
var numeroAleatorio = Math.floor((Math.random()*(101-1))+1);
document.getElementById('resultado').innerHTML = 'Número aleatorio = ' + numeroAleatorio;
var contador = 1;
var respuesta = prompt('Introduzca un numero del 1 al 100');
while(Number(respuesta)!==numeroAleatorio && contador<30){
if(respuesta<numeroAleatorio){
respuesta = prompt('El número es mayor que el introducido. Inténtelo de nuevo');
}else{
respuesta = prompt('El número es menor que el introducido. Inténtelo de nuevo');
}
contador++;
document.getElementById('contador').innerHTML = 'Intentos = ' + contador;
}
if(contador==30){
alert('Has superado el número máximo de intentos. Se acabó');
}else{
alert('Enhorabuena. Ha acertado');
}

}
</script>
</head>
<body>
<div class="caja">
<h3>EJERCICIO 1</h3>
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”.</br>
<div class="pulsador" onclick="adivinaAleatorio()">Comenzar Ejercicio 1</div>
<div class="pulsador" id="contador">00</div>
<div class="pulsador" id="resultado">00</div>
</div>
</body>
</html>

Citar
EJERCICIO 2
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. Consulta en internet si no recuerdas las fórmulas a aplicar. .

Código: [Seleccionar]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Ejemplo aprenderaprogramar.com</title><meta charset="utf-8">
<style>
.pulsador {padding:15px; width: auto; display: inline-block; margin: 25px;
cursor: pointer; color: yellow; border-radius: 40px; background: purple;}
.caja{border: solid 2px blue; float: left;}
</style>
<script type="text/javascript">
function calculosCilindro(){
var radio = Number(prompt('Introduzca el radio en metros de la base de un cilindro: '));
var altura = Number(prompt('Introduzca la altura en metros del cilindro: '));
var areaBaseCilindro = Math.PI*(Math.pow(radio, 2));
var volumenDelCilindro = Math.PI*(Math.pow(radio, 2))*altura;
document.getElementById('altura').innerHTML = 'altura = ' + altura + ' metros';
document.getElementById('radio').innerHTML = 'radio = ' + radio + ' metros';
document.getElementById('areaBase').innerHTML = 'area de la base del cilindro = ' + areaBaseCilindro + ' metros';
document.getElementById('volumenCilindro').innerHTML = 'volumen del cilindro = ' + volumenDelCilindro + ' metros cubicos';
}
</script>
</head>
<body>
<div class="caja">
<h3>EJERCICIO 2</h3>
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. Consulta en internet si no recuerdas las fórmulas a aplicar. .</br>
<div class="pulsador" onclick="calculosCilindro()">Comenzar Ejercicio 2</div>
<div class="pulsador" id="radio">00</div>
<div class="pulsador" id="altura">00</div>
<div class="pulsador" id="areaBase">00</div>
<div class="pulsador" id="volumenCilindro">00</div>
</div>
</body>
</html>

Citar
EJERCICIO 3
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).

Aquí el código, con el ejercicio resuelto de dos formas distintas.
Código: [Seleccionar]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Ejemplo aprenderaprogramar.com</title><meta charset="utf-8">
<style type="text/css">
button {margin:10px;}
.volador{border: solid 1px; width: auto; text-align: center; padding:15px;
color: yellow; border-radius: 40px; background: purple; position:absolute; top: 400px; left: 0;position:absolute; left: 0;}
#volador2{top: 400px;}
#volador1{top: 200px;}
</style>
<script type="text/javascript">
window.requestAnimationFrame = window.requestAnimationFrame || window.mozRequestAnimationFrame ||
  window.webkitRequestAnimationFrame || window.oRequestAnimationFrame;
var globalID;
var posicionHorizontal = 0;
var posicionVerticalA = 400;
var posicionVertical = 200;
var direccion = false;
function animacionRepetimos() {
posicionHorizontal++;
if(posicionVerticalA==450){direccion=true;}
if(posicionVerticalA==350){direccion=false;}
if(!direccion){
posicionVerticalA++;
}else{
posicionVerticalA--;
}
posicionVertical = posicionVertical+(Math.sin(0.04*posicionHorizontal));
document.getElementById('volador1').style.left = posicionHorizontal + 'px';
document.getElementById('volador1').style.top = posicionVertical + 'px';
document.getElementById('volador2').style.left = posicionHorizontal + 'px';
document.getElementById('volador2').style.top = posicionVerticalA + 'px';
globalID = requestAnimationFrame(animacionRepetimos);
}
function empezar() {globalID = requestAnimationFrame(animacionRepetimos);}
function detener() {  cancelAnimationFrame(globalID);}
</script>
</head>
<body >
<button id="start" onclick="empezar()">Empezar</button><button id="stop" onclick = "detener()">Detener</button>
<div id="volador1" class="volador">JavaScript</div>
<div id="volador2" class="volador">JavaScript</div>
<div id="posicionVertica"></div>
</body>
</html>

Saludos.

1146
Buenas Juan.

Todo bien.

A seguir adelante.

1147
Hola Juan.

Si se introduce una cadena con 5 caracteres, las respuesta es que da tu código es "tu cadena tiene mas de 15 caracteres".
Si se introduce una cadena con 15 caracteres, la respuesta es "tu cadena tiene mas de 15 caracteres".

Saludos.

1148
Así queda mucho mejor explicado.

Gracias por la corrección.

Saludos.

1149
Hola Ogramar.

Me pasa exactamente lo que dices.

Lo solucioné sacando la linea
Citar
setInterval(function(){reloj()},1000);
fuera de la función reloj.

quedando así el código:

Código: [Seleccionar]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Ejemplo aprenderaprogramar.com</title><meta charset="utf-8">
<script type="text/javascript">
function empezar(){
setInterval(function(){reloj()},1000);
}
function reloj() {
var hoy=new Date(); var h=hoy.getHours(); var m=hoy.getMinutes(); var s=hoy.getSeconds();
m = actualizarHora(m);    s = actualizarHora(s);
document.getElementById('displayReloj').innerHTML = h+":"+m+":"+s;
}
function actualizarHora(i) {
if (i<10) {i = "0" + i};  // Añadir el cero en números menores de 10
return i;
}
</script>
</head>
<body onload="empezar()" >
<div style="text-align:center;">
<div id="cabecera"><h2>Cursos aprenderaprogramar.com</h2><h3>Reloj JavaScript</h3></div>
<div style="color:blue; font-family: verdana, arial; font-size:30px; padding:15px;" id ="displayReloj" >   </div>
</div>
</body>
</html>

Pero en realidad no entiendo el porqué de esta forma sí funciona y de la otra no.

Edito...

Después de pensarlo, creo que sí lo entiendo.

Si setInterval esta dentro de la función, lo que hace el código es que va sumando ejecuciones de la función. Es decir, si digo que se ejecute la función reloj con un intervalo de 1 segundo,  cada vez que entre en la función reloj, le estoy volviendo a decir lo mismo, con lo cual la segunda vez que entramos en la función reloj y se ejecuta la linea del setInterval, cuando se ejecuta la función reloj, se ejecutará dos veces, y así sucesivamente, llegando un momento que llegamos al bloqueo de la página.

1150
Hola Luis Giarrizzo.

El código esta bien, solo decirte que te falta un método para obtener el valor del atributo nombre.

Saludos.

1151
Hola.

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

Código: [Seleccionar]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Ejemplo aprenderaprogramar.com</title><meta charset="utf-8">
<script type="text/javascript">
function reloj() {
var hoy=new Date(); var h=hoy.getHours(); var m=hoy.getMinutes(); var s=hoy.getSeconds();
m = actualizarHora(m);    s = actualizarHora(s);
document.getElementById('displayReloj').innerHTML = h+":"+m+":"+s;
var t = setInterval(function(){reloj()},1000);
}
function actualizarHora(i) {
if (i<10) {i = "0" + i};  // Añadir el cero en números menores de 10
return i;
}
</script>
</head>
<body onload="reloj()" >
<div style="text-align:center;">
<div id="cabecera"><h2>Cursos aprenderaprogramar.com</h2><h3>Reloj JavaScript</h3></div>
<div style="color:blue; font-family: verdana, arial; font-size:30px; padding:15px;" id ="displayReloj" >   </div>
</div>
</body>
</html>

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

Código: [Seleccionar]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Ejemplo aprenderaprogramar.com</title><meta charset="utf-8">
<script type="text/javascript">
function reloj() {
var hoy=new Date(); var h=hoy.getHours(); var m=hoy.getMinutes(); var s=hoy.getSeconds();
m = actualizarHora(m);    s = actualizarHora(s);
document.getElementById('displayReloj').innerHTML = h+":"+m+":"+s;
var t = requestAnimationFrame(reloj);
}
function actualizarHora(i) {
if (i<10) {i = "0" + i};  // Añadir el cero en números menores de 10
return i;
}
</script>
</head>
<body onload="reloj()" >
<div style="text-align:center;">
<div id="cabecera"><h2>Cursos aprenderaprogramar.com</h2><h3>Reloj JavaScript</h3></div>
<div style="color:blue; font-family: verdana, arial; font-size:30px; padding:15px;" id ="displayReloj" >   </div>
</div>
</body>
</html>

Citar
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 deternerse y mostrar el mensaje: “Tu tiempo ha terminado”.

Código: [Seleccionar]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Ejemplo aprenderaprogramar.com</title><meta charset="utf-8">
<script type="text/javascript">
var milisegundos = 60000;
function reloj() {
if(milisegundos>-1000){
var fecha=new Date(milisegundos);
var m=fecha.getMinutes();
var s=fecha.getSeconds();
m = actualizarHora(m);
s = actualizarHora(s);
document.getElementById('displayReloj').innerHTML = m+":"+s;
milisegundos = milisegundos - 1000;
var t = setTimeout(function(){reloj()},1000);
}else{
alert('Tu tiempo ha terminado');
}
}
function actualizarHora(i) {
if (i<10) {i = "0" + i};  // Añadir el cero en números menores de 10
return i;
}
</script>
</head>
<body onload="reloj()" >
<div style="text-align:center;">
<div id="cabecera"><h2>Cursos aprenderaprogramar.com</h2><h3>Cuenta atrás</h3></div>
<div style="color:blue; font-family: verdana, arial; font-size:30px; padding:15px;" id ="displayReloj" >   </div>
</div>
</body>
</html>

Saludos.

1152
Hola, aquí dejo un nuevo ejercicio.

Citar
EJERCICIO 1
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.

EJERCICIO 2
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.

Están los dos ejercicios en el mismo código.

Código: [Seleccionar]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Ejemplo aprenderaprogramar.com</title><meta charset="utf-8">
<style>
#pulsador {padding:15px; width: auto; display: inline-block; margin: 25px;
cursor: pointer; color: yellow; border-radius: 40px; background: purple;}
.caja{border: solid 2px blue;}
</style>
<script type="text/javascript">
function pedirDatos1(){
var nombre = prompt('Introduzca su nombre: ');
var fecha1 = new Date();
var pais = prompt('Introduzca su pais: ');
var fecha2 = new Date();
alert('Han pasado ' + (((fecha2-fecha1)/1000)/60) + ' minutos entre la primera y la segunda respuesta.');
}
function pedirDatos2(){
var primeraFecha = prompt('Introduzca una fecha (dd-mm-yyyy): ');
var segundaFecha = prompt('Introduzca otra fecha (dd-mm-yyyy): ');
var fecha1 = new Date(primeraFecha.substring(6)+ '-' + primeraFecha.substring(3, 5) + '-' + primeraFecha.substring(0, 2));
var fecha2 = new Date(segundaFecha.substring(6)+ '-' + segundaFecha.substring(3, 5) + '-' + segundaFecha.substring(0, 2));
var diferencia = 0;
if(fecha2.valueOf()>fecha1.valueOf()){
diferencia = fecha2.valueOf()-fecha1.valueOf();
}else{
diferencia = fecha1.valueOf()-fecha2.valueOf();
}
alert('Entre la 1ª fecha y la 2ª fecha han transcurrido ' + diferencia/(1000*60*60*24) + ' dias');
}
</script>
</head>
<body>
<div class="caja">
<h3>EJERCICIO 1</h3>
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.</br>
<div id ="pulsador" onclick="pedirDatos1()"> Empezar ejercicio 1 </div>
</div>
<div class="caja">
<h3>EJERCICIO 2</h3>
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.</br>
<div id ="pulsador" onclick="pedirDatos2()"> Empezar ejercicio 2 </div>
</div>
</body>
</html>

Saludos.

1153
Hola. Según tienes el código, esta todo dentro del window.onload=function(){}, así que el formulario no encuentra la función validarDatos()

 ;D

1154
Hola Hquinn.

El código esta bien.

Los comentarios no son correctos, los métodos tipo procedimiento que usas en esta clase son para establecer el valor del titulo, autor... Y los métodos tipo función son los que te devuelven el valor del atributo titulo, autor...

Y aclarar también que el ejercicio pertenece a la entrega CU00624B

Saludos.

1155
Hola Hquinn.

Solo decirte que el ejercicio pedía que cuando se cambia algún atributo, se debe mostrar el nombre del médico al que le afecta el cambio. Algo así:

Ha cambiado la especialidad del médico de nombre: Hquinn . La nueva especialidad es: "nombre de la nueva especialidad".

por lo demás, todo bien.

Saludos.

1157
Hola Enzo. El ejercicio lo veo bien resuelto. Como siempre destacar tus buenos comentarios.

El comentario inicial no te aparece en la documentación porque tienes que situarlo justo antes de donde empieza la clase, es decir, justo antes de esta linea:

Código: [Seleccionar]
public class TestVehiculoTEnum_CU00681B {
Saludos.

1158
Hola.

Citar
EJERCICIO
Crea un documento HTML que conste de un título h1 con el texto <<Calendario>>, y un div central de 400 por 400 px con el borde marcado y márgenes de 100px en todas direcciones. Dentro del div central crea una tabla de 7 columnas por 7 filas (total 49 celdas) con ancho de tabla 300 píxeles y tamaño de fuente en la tabla 24 píxeles. La primera columna corresponderá a lunes y la última a domingo. Usa un método JavaScript para determinar el mes actual. Mediante código JavaScript, haz que aparezca dinámicamente como texto encima de la tabla el mes y año de que se trate (por ejemplo <<MAYO DE 2050>>). Haz que cada celda de la primera fila se rellene indicando el día de la semana (Lu – Ma – Mi – Ju – Vi –Sa –Do). Haz que la tabla se rellene dinámicamente (al cargar la página) con:
a) Espacio en blanco si no corresponde ningún día.
b) El número del día del mes según corresponda (28, 30 ó 31 días según de qué mes se trate).
Ten en cuenta que debe generarse el calendario del mes en que te encuentres según la hora local del sistema (de tu computador).
El aspecto, suponiendo que te encuentras en el mes de mayo de 2050, sería el siguiente:



Aquí el código:

Código: [Seleccionar]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Ejemplo aprenderaprogramar.com</title><meta charset="utf-8">
<style>
body{font-size: 24px;}
#caja{width:400px; height:400px; margin: 100px auto; text-align: center;}
#tabla{border-collapse: collapse; border: solid 2px; width: 300px; margin: 50px;}
</style>
<script type="text/javascript">
window.onload = function() {
calendario();
}
function calendario(){
miFecha = new Date();
var nombreDia = ['Lu', 'Ma', 'Mi', 'Ju', 'Vi', 'Sa', 'Do'];
var nodoTd = document.getElementsByTagName('td');
var diaSemana = getDiaDeInicio(miFecha);
var diasEnMes = getDiasPorMes(miFecha.getMonth(), miFecha.getFullYear());
rellenaTabla(nodoTd, diasEnMes, diaSemana, nombreDia);
rellenaMesYAnno(miFecha);
}
function rellenaMesYAnno(miFecha){
document.getElementById('mesYAnno').innerHTML = getMes(miFecha.getMonth()) + ' de ' +  miFecha.getFullYear();
}
function rellenaTabla(nodoTd, diasEnMes, diaSemana, nombreDia){
for(var i = 0; i < nodoTd.length; i++){
if(i>0 && i<8){nodoTd[i].innerHTML = nombreDia[i-1];}
if(i>7 && i<(diasEnMes+8+diaSemana)){
if((i-8)<diaSemana){
nodoTd[i].innerHTML = ' ';
}else{
nodoTd[i].innerHTML = i - 7 - diaSemana;
}
}
}
}
function getDiaDeInicio(fecha){
var diaSemana = fecha.getDay();
for(var i = fecha.getDate(); i>0; i--){
if(diaSemana == 0){
diaSemana = 7;
}
diaSemana--;
}
if(diaSemana==0){diaSemana=7;}
return diaSemana
}
function getMes(mes){
switch(mes) {
case 0:
return 'Enero';
break;
case 1:
return 'Febrero';
break;
case 2:
return 'Marzo';
break;
case 3:
return 'Abril';
break;
case 4:
return 'Mayo';
break;
case 5:
return 'Junio';
break;
case 6:
return 'Julio';
break;
case 7:
return 'Agosto';
break;
case 8:
return 'Septiembre';
break;
case 9:
return 'Octubre';
break;
case 10:
return 'Noviembre';
break;
case 11:
return 'Diciembre';
break;
default:
break;
}
}
function getDiasPorMes(mes, anno){
switch(mes){
case 0:
case 2:
case 4:
case 6:
case 7:
case 9:
case 11:
return 31;
break;
case 3:
case 5:
case 8:
case 10:
return 30;
break;
case 1:
if (((anno%100 == 0) && (anno%400 == 0)) || ((anno%100 != 0) && (anno%4 == 0))){
return 29;
}else{
return 28;
}
break;
default:
break;
}
}
</script>
</head>
<body>
<h1 id="diasemana"> Calendario </h1>
<div id="caja">

<table id="tabla">
<tr>
<td colspan="7" id="mesYAnno"></td>
</tr>
<tr>
<td></td><td></td><td></td><td></td><td></td><td></td><td></td>
</tr>
<tr>
<td></td><td></td><td></td><td></td><td></td><td></td><td></td>
</tr>
<tr>
<td></td><td></td><td></td><td></td><td></td><td></td><td></td>
</tr>
<tr>
<td></td><td></td><td></td><td></td><td></td><td></td><td></td>
</tr>
<tr>
<td></td><td></td><td></td><td></td><td></td><td></td><td></td>
</tr>
<tr>
<td></td><td></td><td></td><td></td><td></td><td></td><td></td>
</tr>
<tr>
<td></td><td></td><td></td><td></td><td></td><td></td><td></td>
</tr>
</table>
</div>
<span id="prueba"></span>
</body>
</html>

Saludos.

1159
Hola, aquí mi resolución al ejercicio CU01161E.

Citar
EJERCICIO 1
Crea un documento HTML que conste de un título h1 con el texto <<Pulsa una tecla>>, y un div central de 400 por 400 px con el borde marcado y márgenes de 100px en todas direcciones. Utiliza el evento keypress para determinar el carácter que el usuario ha escrito utilizando el teclado y haz que se muestre dentro del div con un tamaño de fuente de 250px.

Código: [Seleccionar]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Ejemplo aprenderaprogramar.com</title><meta charset="utf-8">
<style>
#caja{border:solid 2px; width:400px; height:400px; margin:100px; font-size:250px; text-align:center;}
</style>
<script type="text/javascript">
window.onload = function() {
document.onkeypress = mostrarInformacionTecla;
}
function mostrarInformacionTecla(eventoObj){
var caracter = String.fromCharCode(eventoObj.which);
caja.innerHTML = caracter;
}
</script>
</head>
<body>
<h1> Pulsa una tecla </h1>
<div id="caja"></div>
</body>
</html>

Citar
EJERCICIO 2
Crea un documento HTML que conste de un título h1 con el texto <<Pulsa una flecha>>, y un div central de 300 por 300 px con borde color negro, color de fondo amarillo y márgenes de 200px en todas direcciones. Inicialmente el cuadrado que define el div debe estar alineado en el centro de la ventana. Utiliza el evento keyup para determinar si el usuario pulsa una tecla del cursor, y en ese caso utilizando CSS haz que el cuadrado que define el div se desplace 20px en la dirección de flecha elegida por el usuario. Por ejemplo, si el usuario pulsa la flecha derecha, el div debe desplazarse 20 px dentro de la ventana, hacia la derecha.

Código: [Seleccionar]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Ejemplo aprenderaprogramar.com</title><meta charset="utf-8">
<style>
#caja{border:solid 2px; background-color:yellow; width:300px; height:300px; position:absolute; margin: 200px;}
</style>
<script type="text/javascript">
window.onload = function() {
document.onkeyup = moverDiv;
}
function moverDiv(eventoObj){
var teclaPulsada = eventoObj.keyCode;
if(teclaPulsada==37){
var nuevaPosicion = document.getElementById('caja').offsetLeft;
document.getElementById('caja').style.left = nuevaPosicion - 220 + 'px';
}else if(teclaPulsada==38){
var nuevaPosicion = document.getElementById('caja').offsetTop;
document.getElementById('caja').style.top = nuevaPosicion - 220 + 'px';
}else if(teclaPulsada==39){
var nuevaPosicion = document.getElementById('caja').offsetLeft;
document.getElementById('caja').style.left = nuevaPosicion  - 180 + 'px';
}else if(teclaPulsada==40){
var nuevaPosicion = document.getElementById('caja').offsetTop;
document.getElementById('caja').style.top = nuevaPosicion - 180 + 'px';
}else{
alert('La tecla pulsada no es correcta');
}
}
</script>
</head>
<body>
<h1> Pulsa una flecha </h1>
<div id="caja"></div>
</body>
</html>

En el ejercicio 2, no fuí capaz de centrar el div, debido a que como tiene que llevar 200px de margen por todos sus lados, no encontré ninguna forma de hacerlo.

Saludos.

1160
Hola.

Rectifiqué la función verificaDatosFormulario(), quedando así:

Código: [Seleccionar]
function verificaDatosFormulario(){
if(nombreCorrecto && emailCorrecto && edadCorrecta){
return true;
}else{
if(!document.getElementById('nombre').value && !document.getElementById('email').value){
alert('No se ha rellenado ni el nombre ni el correo electrónico.');
}else if(!document.getElementById('nombre').value && document.getElementById('email').value){
alert('No se ha rellenado el nombre.');
}else if(document.getElementById('nombre').value && !document.getElementById('email').value){
alert('No se ha rellenado el correo electrónico.');
}
return false;
}
}

Páginas: 1 ... 53 54 55 56 57 [58] 59 60 61 62 63 ... 65

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