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 - Dimitar Stefanov

Páginas: 1 ... 8 9 10 11 12 [13] 14 15 16 17 18 ... 30
241
Buenas noches. Os dejo una posible solución del ejercicio CU00818B del curso PHP desde cero de aprenderaprogramar.

Citar

EJERCICIO

Dadas las variables de tipo entero con valores $A = 5, $B = 3, $C = -12 indicar si la evaluación de estas expresiones daría como resultado verdadero o falso:

El código de comprobación:
Código: [Seleccionar]
<?php 
$A 5;
$B 3;
$C = -12;

echo "\$A = $A <br>";
echo "\$B = $B <br>";
echo "\$C = $C <br>";

echo "a) La comparación: \$A > 3 es: ".($A 3)." <br>";
echo "b) La comparación: \$A > \$C es: ".($A $C)." <br>";
echo "c) La comparación: \$A < \$C es: ".($A $C)." <br>";
echo "d) La comparación: \$B < \$C es: ".($B $C)." <br>";
echo "e) La comparación: \$B != \$C es: ".($B != $C)." <br>";
echo "f) La comparación: \$A == 3 es: ".($A == 3)." <br>";
echo "g) La comparación: \$A * \$B == 15 es: ".($A $B == 15)." <br>";
echo "h) La comparación: \$A * \$B == -30 es: ".($A $B == -30)." <br>";
echo "i) La comparación: \$C < \$A || \$B < \$A es: ".($C $A || $B $A)." <br>";
echo "j) La comparación: \$C == -10 || \$B == -10 es: ".($C == -10 || $B == -10)." <br>";
echo "k) La comparación: \$C == -4 || \$B == -4 es: ".($C == -|| $B == -4)." <br>";
echo "l) La comparación: (\$A + \$B + \$C) == 5 es: ".(($A $B $C) == 5)." <br>";
echo "m) La comparación: (\$A + \$B) == 8) && (\$A - \$B == 2) es: ".(($A $B == 8) && ($A $B == 2))." <br>";
echo "n) La comparación: (\$A + \$B) == 8) || (\$A - \$B == 6) es: ".(($A $B == 8) || ($A $B == 6))." <br>";
echo "o) La comparación: \$A > 3 && \$B > 3 && \$C < 3 es: ".($A && $B && $C 3)." <br>";
echo "p) La comparación: \$A > 3 && \$B >= 3 && \$C < -3 es: ".($A && $B >= && $C < -3)." <br><br>";
echo "Leyenda: <br> 1 = true; <br>&nbsp;&nbsp; = false; <br>"
?>

Haciendo este ejercicio he llegado a la conclusión que si la variable es de tipo boolean y su valor es "true" por pantalla se muestra "1" y si su valor es "false" no se imprime nada.

Gracias.


242
Perdón, se me olvidó el segundo ejercicio. Aquí os lo dejo:

Citar
EJERCICIO 2

Define las variables $tipo, $grosor, $diametro y $marca. Establece que el tipo sea “Rueda de camión”, el grosor 0.33, el diámetro 1.25 y la marca “Kimashuki”. Crea el código PHP donde a través de condicionales if realices la siguiente comprobación: si el diámetro es superior a 1.4 debe mostrarse por pantalla el mensaje “La rueda es para un vehículo grande”. Si es menor o igual a 1.4 debe mostrarse por pantalla el mensaje “La rueda es para un vehículo pequeño”. En otro caso, debe mostrarse “No existe un tamaño de rueda válido”.

Código: [Seleccionar]
<?php 
$tipo 'Rueda de camión';
$grosor 0.33;
$diametro 1.25;
$marca 'Kimashuki';

if($diametro 1.4){
echo "La rueda es para un vehículo grande.";
}else if($diametro <= 1.4){
echo "La rueda es para un vehículo pequeño.";
}else{
echo "No existe un tamaño de rueda válido.";
}
?>

Gracias

243
Hola a todos los usuarios de aprenderaprogramar.com. Aquí expongo una posible solución del ejercicio CU00817B del curso PHP desde cero.

Citar
EJERCICIO 1

Ejecuta este código y responde:

Código: [Seleccionar]
<?php

$haceFrio 
15;

$respuesta ="";

$temperatura = ($haceFrio<20) ? $respuesta "Hace frio" $respuesta "No hace frio";

echo 
$respuesta;
?>

Citar
a) ¿Qué resultado se obtiene por pantalla?

Por pantalla se obtiene: "Hace frío" debido a que el valor de la variable "Hace frío" es menor que 20.

Citar
b) Modifica el código sustituyendo el operador ternario por if else para que el resultado obtenido sea el mismo.

Código: [Seleccionar]
<?php 
$haceFrio 15;
$respuesta '';
$temperatura $respuesta;

if($haceFrio 20){
$respuesta 'Hace frío';
}else{
$respuesta 'No hace frío';
}

echo $temperatura;
?>

Aquí me surge una duda. En el código original se "imprime" por pantalla la variable "respuesta" pero si tenemos una asignación del tipo: "$temperatura = ($haceFrio < 20)? $respuesta = 'Hace frío' : $respuesta = 'No hace frío';" no es más lógico imprimir la variable "temperatura"? Por eso, en el código modificado he impreso la variable "temperatura".

Y otra cuestión: he hecho bien la asignación antes de la condición? O mejor lo tenía que haber hecho después? Es decir, que el código se quede así:

Código: [Seleccionar]
<?php 
$haceFrio 15;
$respuesta '';


if($haceFrio 20){
$respuesta 'Hace frío';
}else{
$respuesta 'No hace frío';
}

$temperatura $respuesta;
echo $temperatura;
?>

O eso es sin relevancia?

Gracias.

244
Bueans tardes. Aquí dejo unas posibles soluciones de los ejercicio de la entrega CU00816B del curso PHP desde cero.

Citar
EJERCICIO 1

Crea el siguiente archivo y súbelo mediante ftp al directorio raíz de tu sitio web. El archivo llevará por nombre curso3.php y en él debe existir la estructura de un documento HTML, aparecer en la parte superior de la página un título h1 con el texto <<Cursos aprenderaprogramar.com>>, seguido de un título h2 con el texto <<Curso php desde cero>>, y a continuación hacer que se muestre usando echo el siguiente texto dentro de un div con color de fondo amarillo: <<Curso php de aprenderaprogramar.com usando la instrucción echo>>. Debajo de este texto debes usar echo para crear un contenedor div con color de gris donde pueda leerse “Este es el pie de página”. Comprueba que el archivo se visualiza al escribir la dirección web correcta que será similar a http://apr2.byethost7.com/curso3.php (en tu caso, tendrás que escribir la dirección web que estés utilizando para el curso). Responde a esta pregunta: ¿Cuál es el código que contiene el archivo?

Código: [Seleccionar]
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Ejemplo aprenderaprogramar.com</title>
</head>
<body>
<h1>Cursos aprenderaprogramar.com</h1>
<h2>Curso php desde cero</h2>
<?php 
echo 
"<div style='background-color: yellow;'><span>Curso php de aprenderaprogramar.com</span></div>";
echo "<div style='color: gray;'><span>Este es el pie de la página</span></div>"
?>

</body>
</html>

Citar
¿Cuál es la dirección web para acceder al archivo y visualizar el texto?

http://www.stefjo.byethost10.com/CU00816B%2801%29.php

Como en la anterior entrega, no he seguido la sugerencia del ejercicio de poner el nombre de mi archivo como se específica por cuestiones de ordenación personal (considero que me orientaré más si pongo a cada archivo el nombre de la entrega, así, podré buscarlo más facilmente y saber cada archivo a que entrega corresponde).

Citar
EJERCICIO 2

Crea un archivo php donde no exista html directamente pero que genere una página web con todo el código html que lleva normalmente (introduce las etiquetas html, head, title, meta charset, body, algunos párrafos de texto y algunas imágenes). Para hacer esto toda la estructura de la página web debe ser insertada a través de instrucciones echo. Responde a esta pregunta: ¿Cuál es el código que contiene el archivo?

Código: [Seleccionar]
<?php 
echo 
"<html>";
echo "<head>";
echo "<meta charset='utf-8'>";
echo "<title>Ejemplo aprenderaprogramar.com</title>";
echo "</head>";
echo "<body>";
echo "<p>Cursos aprenderaprogramar.com</p>";
echo "<p>Curso php desde cero.</p>";
echo "<img src='https://www.aprenderaprogramar.com/images/thumbs_portada/thumbs_intranet/62_programador_fuera_de_si.jpg'><br><br>";
echo "<img src='https://www.aprenderaprogramar.com/foros/avatars/APR2.COM_Varios/AprApr_1.jpg'>";
echo "</body>";
echo "</html>";
?>

http://www.stefjo.byethost10.com/CU00816B%2802%29.php

Gracias

245
Por cierto, me encantó programar con Java, pero no sé como puedo ponerlo en práctica. En el curso "Java desde cero", sólo nos explicaban como programar en "BlueJ" (es un editor, compilador), pero no como hacer programas con los codigos que editabamos. Es decir, los programas que hacíamos sólo nos servían ejecutándolos en la consolo del "BlueJ", pero no sé como sacarlos de allí y hacer un programa (por muy pequeñita que sea) fuera de allí.

Pero ya te digo, es tan fascinante programar en Java (bueno, qué te voy a explicar a tí, si tu vas por delante mía mucho más), los conceptos allí se ven, no como en JavaScript que todo es imaginable, intangible, jejeje. En Java, a la hora de crear objetos ves como abajo aparecen cajitas :) Eso me encantó, es todo mucho más "sencillo".

Bueno, que me voy del tema, que eso ya es el fojo de PHP y no de Java, ni de JavaScript, jejeje.

Saludos

246
Bueans tardes, Pedro.

Antes que nada, como siempre, gracias por tu tiempo y por haber corregido el ejercicio.

Mi objetivo, desde el principio, es poder trabajar con base de datos y poder guardar y rescatar información de allí. Por ello tendría que hacer el curso de PHP, pero antes quería hacer todos los demas cursos (HTML, CSS, Java, JavaScript).Ahora, por fin, toca PHP, jejej. A ver de donde busco info para MySQL. Me compré un manual, pero nada que ver con el estilo de la gente de aprenderaprogramar.com . A ver si te animas y editas un curso sobre "MySQL desd cero":) Además, en un manual no hay alguien a tu lado para corregirte los ejercicio y decirte dónde te has equivocado.

Saludos, Pedro :)

247
Buenas tardes. Mediante la presente propongo una posible solución del ejercicio CU00815B del curso PHP desde cero.

Citar
EJERCICIO

Crea el siguiente archivo y súbelo mediante ftp al directorio raíz de tu sitio web. El archivo llevará por nombre curso2.php y en él debe existir la estructura de un documento HTML, aparecer en la parte superior de la página un título h1 con el texto <<Cursos aprenderaprogramar.com>>, seguido de un título h2 con el texto <<Curso php desde cero>>, y a continuación hacer que se muestre insertando php el siguiente texto. <<Curso php de aprenderaprogramar.com comenzado el 24/09/2083>> donde la fecha a incluir sea la fecha en que hayas subido el archivo. Debajo de este texto debes crear un contenedor div con color de fondo amarillo donde pueda leerse “Este es el pie de página”. Comprueba que el archivo se visualiza al escribir la dirección web correcta que será similar a http://apr2.byethost7.com/curso2.php (en tu caso, tendrás que escribir la dirección web que vayas a utilizar para el curso). Responde a esta pregunta: ¿Cuál es el código que contiene el archivo?

Código: [Seleccionar]
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Ejemplo aprenderaprogramar.com</title>
</head>
<body>
<h1>Cursos aprenderaprogramar.com</h1>
<h2>Curso php desde cero</h2>
<?php  
echo "Curso php de aprenderaprogramar.com comenzado el 04/05/2016"
?>

<div style="background-color: yellow;">
<span>Este es el pie de página</span>
</div>
</body>
</html>

http://www.stefjo.byethost10.com/CU00815B%2801%29.php

Gracias

PD: He cambiado el nombre del archivo, no sigo las instrucciones del ejercicio, para poder tenerlo todo ordenado por entregas y saber cada código a que entrega pertenece.

248
Hola, César.

Mi idea era, con crea una variable global, ahorrarme que defina en cada función la última cookie. Es decir, después de crear las cookies quería definir cuál es la última cookie y asignarla a una variable global para ser conocida por todas las demás funciones.

Sobre el uso del alert(), muchas veces lo hago para comprobar que valor tienen las variables. En este caso creía que la variable "ultimaCookie" estaba en el ámbito de la función "definirUltimaCookie()", quiero decir, que allí fue su última modificación y creía que se tenía que quedar  con el valor: "numeroCookies[numeroCookies.length-1].substring(1, numeroCookies[numeroCookies.length-1].indexOf('='))".

No sé si he entendido bien la pregunta.

Gracias

249
Con esta entrega al foro, tal  y como se comenta en la lección CU01198E del curso de programación web con JavaScript, quería agradecer y dar mi enhorabuena a todo el equipo de aprenderaprogramar.com y al profesor César Krall, por habernos brindado con la oportunidad de poder aprender tantas cosas y de forma tan amena sobre la programación (y en concreto sobre JavaScript).

Personalmente, lo que más me ha gustado es que cada entrega se ha llevado explicando con un lenguaje adecuado, los terminos están bien explicados y cada entrega terminaba con un ejercicio práctico. Evidentemente, lo que me ha sorprendido gratamente, es que las correcciones  se han hecho muy rápidamente y aún, muchas veces, notándose que no he tenido los suficientes conocimientos, en ningún momento se me ha tratado de "tonto", sino todo lo contrario, se me ha explicado una y otra vez hasta que he comprendido mis errores y aprendido a corregirlos (a pesar de haber seguido el curso de forma gratuita).

También me ha parecido muy interesante la idea que los profesores nos dejan corregir ejercicios de alumnos que van por entregas anteriores a las nuestras (siempre bajo la observación de los profesores). Considero que es una muy buena idea, porque así, aparte de sentirte partícipe de todo este gran equipo, repasas temario y en el intento de ayudar a tus compañeros, aprender aun más (aqunque no he podido corregir muchos ejercicios, puesto que el estudio del temario me ocupaba mucho tiempo y di más prioridad a ello).

Algo lo que no me haya gustado?...quizás que se haya terminado el curso, jejeje :)

Nada, saludos a todo el equipo y....a por el siguiente curso PHP :)

Ah, una cosa que se me olvidaba y que opino que para nada es menos importante.
 
Decir un gran GRACIAS al equipo de aprenderaprogramar.com y a todos mis compañeros.


250
Buenas tardes. Con esta entrega propongo una posible solución del ejercicio CU01197E del cursjo JavaScript desce cero.

Citar
EJERCICIO

Crea una página web donde se muestre información sobre tu ciudad conteniendo un mapa interactivo de Google Maps, de acuerdo con esta estructura para el documento HTML.

Código: [Seleccionar]
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Roda de Bara, Cataluña, España aprenderaprogramar.com</title>
<style type="text/css">
body{
background: black;
}
h1{
color: white;
text-align: center;
}
p{
color: white;
font-size: 1.5em;
}
#lienzoMapa{
width: 800px;
height: 600px;
margin: 0 auto;
border: 5px solid;
}
.bandera{
cursor: pointer;
}
#pieDePagina{
position: absolute;
right: 20px;
}
</style>
<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?v=3.exp"></script>
<script type="text/javascript">

var map;

function initialize(){
var mapOptions = {
mapTypeId: google.maps.MapTypeId.SATELLITE,
zoom: 18,
center: new google.maps.LatLng(41.168607, 1.481075),

};
map = new google.maps.Map(document.getElementById('lienzoMapa'),
mapOptions);
}

google.maps.event.addDomListener(window,'load',initialize);

var urlCambiada = false;

function cambiarLengua(nodoImg){
var parrafo1 = document.getElementById('parrafo1');
var parrafo2 = document.getElementById('parrafo2');
var mapa = document.getElementById('mapa');
var piePagina = document.getElementById('pieDePagina');
mapa.innerHTML = "Mapa de Roc de Sant Gaieta";
if(!urlCambiada){
nodoImg.src = "https://upload.wikimedia.org/wikipedia/commons/thumb/c/ce/Flag_of_Catalonia.svg/50px-Flag_of_Catalonia.svg.png";
urlCambiada = true;
parrafo1.innerHTML = "Es una pintoresca urganización construida entre los años 1964 y 1972, promovida por Gaietà Bori Tallada, René Vandemeuter y Pere Sureda. Diseñaron una especie de pueblo de pescadores con edificios ornamentados siguiendo estilos arquitectónicos antiguos (románicos, gótico, mudejar) o imitando rincones típicos de distantas zonas de España o de Europa (patios anduluces, hórreos gallegos, casas sardas...). Hay también muchos elementos recuperados de antiguas masias y casas abandonadas.";
parrafo2.innerHTML = "El conjunto recuerda el estilo del <a href='https://www.poble-espanyol.com/es'>Poble Espanol</a>. Así mismo, constituye un lugar de gran interés turístico, agradable y sorpendente, mucho más interesante que la gran parte de las urbanitzaciones convencionales que invaden la costa catalana.";
piePagina.id = "pieDePagina";
piePagina.innerHTML = "<div><p>Para más información: <a href='http://www.poblesdecatalunya.cat/element.php?e=2638'>www.poblesdecatalunya.cat</a></p></div>";
}else{
nodoImg.src = "https://upload.wikimedia.org/wikipedia/commons/thumb/3/32/Flag_of_Spain_%28Civil%29.svg/200px-Flag_of_Spain_%28Civil%29.svg.png";
urlCambiada = false;
parrafo1.innerHTML = "És una pintoresca urbanització construïda entre els anys 1964 i 1972, promoguda per Gaietà Bori Tallada, René Vandemeuter i Pere Sureda. Van dissenyar una mena de poblet de pescadors amb edificis ornamentats seguint estils arquitectònics antics (romànic, gòtic, mudèjar) o imitant racons típics de diverses zones d'Espanya o d'Europa (patis andalusos, hórreos gallecs, cases sardes...). Hi ha també molts elements recuperats d'antigues masies i cases abandonades.";
parrafo2.innerHTML = "El conjunt, a l'estil del Poble Espanyol, ha estat qualificat sovint com a pastitxo i desacreditat des del punt de vista arquitectònic. Tanmateix, constitueix un lloc de gran interès turístic, agradable i sorprenent, força més interessant que la major part d'urbanitzacions convencionals que envaeixen la costa catalana";
piePagina.id = "pieDePagina";
piePagina.innerHTML = "<div><p>Pеr a més informació: <a href='http://www.poblesdecatalunya.cat/element.php?e=2638'>www.poblesdecatalunya.cat</a></p></div>";
};
}

function bulgaro(){
var parrafo1 = document.getElementById('parrafo1');
var parrafo2 = document.getElementById('parrafo2');
var mapa = document.getElementById('mapa');
var piePagina = document.getElementById('pieDePagina');
parrafo1.innerHTML = "Живописно курортно селце пострoено между 1964 и 1972 година, по идеята на  Gaietà Bori Tallada, René Vandemeuter y Pere Sureda. Дизайн на едно рибарско село с украсени cгради, следвайки аpхитектични антични стилове (римски, готични, mudejar), и също тaка, възпроизвеждайки типични кътчета от Испания и Европа (андалусийски дворове, къщи от Галисия и Серденя...). Също може да откриете много реставрирани елементи от антични къщи и вили.";
parrafo2.innerHTML = "Комплексът напомня на <a href='https://www.poble-espanyol.com/es'>Poble Espanol</a>. Също тaка мястото е от голям туристически интерес, приятно и учудващо, много по-интересно от по голямата част от курорти на Каталyнското крайбрежие.";
mapa.innerHTML = "Карта на Roc de Sant Gaieta";
piePagina.id = "pieDePagina";
piePagina.innerHTML = "<div><p>За повече информация: <a href='http://www.poblesdecatalunya.cat/element.php?e=2638'>www.poblesdecatalunya.cat</a></p></div>";
}

</script>
</head>
<body>
<div id="contenedor">
<h1>Visita Roc de Sant Gaieta<img class="bandera" onclick="bulgaro();" src="https://upload.wikimedia.org/wikipedia/commons/thumb/9/9a/Flag_of_Bulgaria.svg/200px-Flag_of_Bulgaria.svg.png" alt="" style="position: absolute; right: 55px; top: 40px;" height="20"><img class="bandera" onclick="cambiarLengua(this);" src="https://upload.wikimedia.org/wikipedia/commons/thumb/3/32/Flag_of_Spain_%28Civil%29.svg/200px-Flag_of_Spain_%28Civil%29.svg.png" alt="" style="position: absolute; right: 15px; top: 40px;" height="20"></h1><hr>
<p id="parrafo1">És una pintoresca urbanització construïda entre els anys 1964 i 1972, promoguda per Gaietà Bori Tallada, René Vandemeuter i Pere Sureda. Van dissenyar una mena de poblet de pescadors amb edificis ornamentats seguint estils arquitectònics antics (romànic, gòtic, mudèjar) o imitant racons típics de diverses zones d'Espanya o d'Europa (patis andalusos, hórreos gallecs, cases sardes...). Hi ha també molts elements recuperats d'antigues masies i cases abandonades.</p>
<img src="http://mw2.google.com/mw-panoramio/photos/medium/35283466.jpg" alt="" height="350">
<img src="http://mw2.google.com/mw-panoramio/photos/medium/65130092.jpg" alt="" style="position: absolute; right: 0;" height="350">
<p id="parrafo2">El conjunt, a l'estil del Poble Espanyol, ha estat qualificat sovint com a pastitxo i desacreditat des del punt de vista arquitectònic. Tanmateix, constitueix un lloc de gran interès turístic, agradable i sorprenent, força més interessant que la major part d'urbanitzacions convencionals que envaeixen la costa catalana.</p><hr>
<h1 id="mapa">Mapa de Roc de Sant Gaieta</h1>
<div id="lienzoMapa"></div><hr>
<div id="pieDePagina"><p>Per a més informació: <a href="http://www.poblesdecatalunya.cat/element.php?e=2638">www.poblesdecatalunya.cat</a></p></div>
</div>
</body>
</html>

Gracias

251
Buenos días, Mario.

Gracias por corregirme el ejercicio.

Sí, es cierto lo que me comentas. He hecho varios comentarios sin mucha utilidad. En la siguiente entrega del curso (CU01192E) nos explican como se debe hacer. Aquí aún no sabía que se debería de comentar la finalidad de las funciones al principio de la misma. Creo que en la siguiene entrega lo hago mejor.

Tomo nota sobre lo que me has comentado en este ejercicio y he mirado el hilo(que me adjuntas) de la corrección del compañero "pedro,,".

Saludos y gracias :)

252
Buenas, Mario.

Gracias por corregirme el ejercicio y por tu tiempo dedicado.

Es verdad, a veces el intérprete "hace" cosas de los que no nos damos cuenta o incluso las desconocemos. Por eso es recomendable  el estudio del comportamiento del intérprete y sus características si queremos evitarnos quebraduras de cabeza.

Saludos:)

253
Buenas noches. Propongo una posible solución del ejercicio CU01192E del curso JavaScript desde cero.

Citar
EJERCICIO

Un programador ha creado este código y nos han pedido que a) Lo comentemos de forma adecuada. b) Lo indentemos y organicemos de forma adecuada. Revísalo, coméntalo y organízalo conforme a los estándares que hemos explicado, incluyendo comentarios de cabecera de función y comentarios en línea para describir los aspectos más relevantes:

Código tal como está en el ejercicio:

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

<html><head><title>Cursos aprende a programar</title><meta charset="utf-8">

<meta name="description" content="Aprende a programar con cursos reconocidos por su calidad didáctica: HTML, CSS, JavaScript, PHP, Java, Visual Basic, Joomla, pseudocodigo, diagramas de flujo, algoritmia y más.">

<meta name="keywords" content="HTML, CSS, JavaScript, Java, Visual Basic, Joomla, PHP, pseudocodigo, diagramas de flujo, cursos, tutoriales">

<style type="text/css"> *{font-family: verdana, sans-serif;} #principal{text-align:center;width:95%; margin: 0 auto;}

.tituloCurso {color: white; float:left; padding: 36px 44px; font-size: 2.65em; font-style:bold; text-decoration:none;}

a:hover{color:orange !important;}</style>

<script type="text/javascript">

function ejemplo(){

var nodosTituloCurso = document.querySelectorAll(".tituloCurso");

var contador = 0;

var nodosCambiados = new Array();

var tocaCambiar = true;

setTimeout(function() {ejemploAccion(nodosTituloCurso, nodosCambiados, contador, tocaCambiar)}, 1500);

}

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

                if (contador<nodosTituloCurso.length){

                var indice = Math.floor((Math.random() * (nodosTituloCurso.length)));

                if (nodosCambiados.length!=0) {

                               for (var i=0; i<nodosCambiados.length; i++) {

                                               if(nodosCambiados[i]==indice) {tocaCambiar = false;}

                               }

                }

                if (tocaCambiar==true) {

                cambiarNodo(nodosTituloCurso[indice]);

                nodosCambiados.push(indice);

                contador = contador+1;

                setTimeout(function() {ejemploAccion(nodosTituloCurso, nodosCambiados, contador, tocaCambiar)}, 1500);

                } else {tocaCambiar=true; ejemploAccion(nodosTituloCurso, nodosCambiados, contador, tocaCambiar);}

                }

                else { //Caso base fin de la recursión

                               document.body.style.backgroundColor='black';

                               document.getElementById('principal').style.color='white';

                               for (var i=0; i<nodosTituloCurso.length; i++) {

                                               nodosTituloCurso[i].style.color='yellow';

                               }             

                }

}

 

function cambiarNodo(elNodo){elNodo.style.backgroundColor = 'black';}

</script>

</head>

<body onload="ejemplo()">

<div id="principal"><h1>Cursos de programación</h1>

<h3>Reconocidos por su calidad didáctica</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>

</div>

</body>
</html>

Código modificado:

Código: [Seleccionar]
<!DOCTYPE html>
<html>
<head>
  <title>Cursos aprende a programar</title>
  <meta charset="utf-8">
  <meta name="description" content="Aprende a programar con cursos reconocidos por su calidad didáctica: HTML, CSS, JavaScript, PHP, Java, Visual Basic, Joomla, pseudocodigo, diagramas de flujo, algoritmia y más.">
  <meta name="keywords" content="HTML, CSS, JavaScript, Java, Visual Basic, Joomla, PHP, pseudocodigo, diagramas de flujo, cursos, tutoriales">
  <style type="text/css">
    *{
      font-family: verdana, sans-serif;
    }
    #principal{
      text-align:center;width:95%;
      margin: 0 auto;
    }
    .tituloCurso{
      color: white;
      float:left;
      padding: 36px 44px;
      font-size: 2.65em;
      font-style:bold;
      text-decoration:none;
    }
    a:hover{
      color:orange !important;
    }
  </style>
  <script type="text/javascript">

  /**
  * @fileoverview Animación con JavaScript. Cambio de fondo de los elementos <a> con
    * cambio de color a través del evento "onmouseover".
  * @author aprenderaprogramar.com
  * @copyright aprenderaprogramar.com
      */


  /**
  * Definición e inicialización de diversas variables globales.
    * La variable "nodosTituloCurso" seleccióna los elementos con atributo "class=tituloCurso"
      * en una NodeList.
    * Llamada de la función "ejemploAccion()" con retardo de 1,5 segundo
      * y con distintos parámetros.
        */
  function ejemplo(){

    var nodosTituloCurso = document.querySelectorAll(".tituloCurso");
    var contador = 0;
    var nodosCambiados = new Array();
    var tocaCambiar = true;
    setTimeout(function() {ejemploAccion(nodosTituloCurso, nodosCambiados, contador, tocaCambiar)}, 1500); // Llamada de la función "ejemploAccion()" con retardo de 1,5 segundos

  }


  /**
  * Función encargada de cambiar los fondos de los elementos <a> a negro.
    * Una vez acaba con todos los elementos cambiar el fondo del body y de los enlaces
  * @param {NodeList} nodosTituloCurso
  * @param {Array} nodosCambiados
  * @param {Number} contador
  * @param {Boolean} tocaCambiar
    */
 
  function ejemploAccion(nodosTituloCurso, nodosCambiados, contador, tocaCambiar){

    if(contador<nodosTituloCurso.length){ // Comprobación si la variable "contador" tiene un valor menor que los enlaces del documento
      var indice = Math.floor((Math.random() * (nodosTituloCurso.length))); //Número aleatorio
      if(nodosCambiados.length!=0){
        for(var i=0; i<nodosCambiados.length; i++){
          if(nodosCambiados[i]==indice){ //Comprobación si el índice del enlace ya está en la array "indice"
            tocaCambiar = false; // En caso afirmativo la variable "tocaCambiar" se redefine a "false"
          }
        }
      }
      if(tocaCambiar==true){
        cambiarNodo(nodosTituloCurso[indice]); //llamar a la función "cambiarNodo" pasándo como parámetro  un enlace aleatorio de la NodeList
        nodosCambiados.push(indice); //Añadiendo el valor de la variable "indice" a la array "nodosCambiados"
        contador = contador+1;
        setTimeout(function(){ejemploAccion(nodosTituloCurso, nodosCambiados, contador, tocaCambiar)}, 1500);
      }else{
        tocaCambiar=true;
        ejemploAccion(nodosTituloCurso, nodosCambiados, contador, tocaCambiar);
      }
    }else{ //Caso base fin de la recursión
      document.body.style.backgroundColor='black';
      document.getElementById('principal').style.color='white';
      for(var i=0; i<nodosTituloCurso.length; i++){ //Todos los enlaces pasan a tener un fondo amarillo
        nodosTituloCurso[i].style.color='yellow';
      }             
    }

  }


/**
* Establece los fondos de los enlaces a color negro
* @param{Array} elNodo
  */

function cambiarNodo(elNodo){
  elNodo.style.backgroundColor = 'black';
}

  </script>
</head>
<body onload="ejemplo()">
  <div id="principal">
    <h1>Cursos de programación</h1>
    <h3>Reconocidos por su calidad didáctica</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>
  </div>
</body>
</html>

Gracias

254
No hay manera de que funcioné con ".bind()". No sé dónde estoy fallando:

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

function datosCookies(){
var cookie = [];
var valor = [];
for(var i=0; i<3; i++){
cookie[i] = prompt('Entra nombre cookie:');
valor[i] = prompt('Entrar valor cookie:');
createCookie(cookie[i],valor[i],1);
};
}


function mostrarTodasLasCookies() {
var numeroCookies = document.cookie.split(';');
var msg = 'Hay '+numeroCookies.length+' cookies en el documento.\n\n';
for(var i=0; i<numeroCookies.length; i++){
var cookieNombre = numeroCookies[i].substring(0, numeroCookies[i].indexOf('='));
msg = msg + 'Cookie '+(i+1)+' con nombre: '+cookieNombre;
var cookieValor = numeroCookies[i].substring((numeroCookies[i].indexOf('=')+1), numeroCookies[i].length);
msg = msg + ' y valor: '+cookieValor+'\n\n';

};
alert(msg);
var ultimaCookie = numeroCookies[numeroCookies.length-1].substring(1, numeroCookies[numeroCookies.length-1].indexOf('='));
eraseCookie.bind(undefined, ultimaCookie);
}

function createCookie(name,value,days) {
        if (days){
            var date = new Date();
            date.setTime(date.getTime()+(days*24*60*60*1000));
            var expires = "; expires="+date.toGMTString();
        }else{
        var expires = "";
    }

        document.cookie = name+'='+value+expires+"; path=/";
}

function eraseCookie(ultimaCookie){
alert(ultimaCookie);
createCookie(ultimaCookie,'',-2);
}

</script>
</head>
<body>
<div id="numeroCookiescabecera">
<h2>Cursos aprenderaprogramar.com</h2>
<h3>Ejemplo JavaScript</h3>
</div>
<div id="pulsador" style="color: blue;"><a href="#" onclick="datosCookies()">Crear cookies</a> <a href="#" onclick="mostrarTodasLasCookies()">Mostrar todas las cookies</a> <a href="#" onclick="eraseCookie()">Borrar la última cookie</a></div>
</body>
</html>

255
Buenas tardes, César.

Antes de empezar la contestación a tu corrección quería agradecerte tu tiempo dedicado.

Sobre lo que me comentas de la respuesta a). Digo que es una fecha pasada porque partí de la base que todos los milesegundos los multiplicabamos por "-1" que es el valor  del parámetro "days" que recibe la función "createCookie()" . Me basé en este caso concreto. Quizás tenía que haber hecho unos comentarios absteniéndome de este caso y hacerlos en general.

Sobre el apartado d), sí me había hecho un lío. Ahora veo mi error. Después de corregir el error el código quedará así:

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

var ultimaCookie;

function datosCookies(){
var cookie = [];
var valor = [];
for(var i=0; i<3; i++){
cookie[i] = prompt('Entra nombre cookie:');
valor[i] = prompt('Entrar valor cookie:');
createCookie(cookie[i],valor[i],1);
};
var ultimaCookie = difinirUltimaCookie();
}

function difinirUltimaCookie(){
var numeroCookies = document.cookie.split(';');
ultimaCookie = numeroCookies[numeroCookies.length-1].substring(1, numeroCookies[numeroCookies.length-1].indexOf('='));
}

function mostrarTodasLasCookies() {
var numeroCookies = document.cookie.split(';');
var msg = 'Hay '+numeroCookies.length+' cookies en el documento.\n\n';
for(var i=0; i<numeroCookies.length; i++){
var cookieNombre = numeroCookies[i].substring(0, numeroCookies[i].indexOf('='));
msg = msg + 'Cookie '+(i+1)+' con nombre: '+cookieNombre;
var cookieValor = numeroCookies[i].substring((numeroCookies[i].indexOf('=')+1), numeroCookies[i].length);
msg = msg + ' y valor: '+cookieValor+'\n\n';

};
alert(msg);
}

function createCookie(name,value,days) {
        if (days){
            var date = new Date();
            date.setTime(date.getTime()+(days*24*60*60*1000));
            var expires = "; expires="+date.toGMTString();
        }else{
        var expires = "";
    }

        document.cookie = name+'='+value+expires+"; path=/";
}

function eraseCookie(){
alert(ultimaCookie);
createCookie(ultimaCookie,'',-2);
}

</script>
</head>
<body>
<div id="numeroCookiescabecera">
<h2>Cursos aprenderaprogramar.com</h2>
<h3>Ejemplo JavaScript</h3>
</div>
<div id="pulsador" style="color: blue;"><a href="#" onclick="datosCookies()">Crear cookies</a> <a href="#" onclick="mostrarTodasLasCookies()">Mostrar todas las cookies</a> <a href="#" onclick="eraseCookie()">Borrar la última cookie</a></div>
</body>
</html>

Pero me surge una duda, si en la función "datosCookies()" asigno un valor a la variable "ultimaCookie" sin definirla, la función "eraseCookie()" no conoce la variable "ultimaCookie". Es decir, si dejo el código así no funciona:

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

var ultimaCookie;

function datosCookies(){
var cookie = [];
var valor = [];
for(var i=0; i<3; i++){
cookie[i] = prompt('Entra nombre cookie:');
valor[i] = prompt('Entrar valor cookie:');
createCookie(cookie[i],valor[i],1);
};
ultimaCookie = difinirUltimaCookie();
}

function difinirUltimaCookie(){
var numeroCookies = document.cookie.split(';');
ultimaCookie = numeroCookies[numeroCookies.length-1].substring(1, numeroCookies[numeroCookies.length-1].indexOf('='));
alert(ultimaCookie);
}

function mostrarTodasLasCookies() {
var numeroCookies = document.cookie.split(';');
var msg = 'Hay '+numeroCookies.length+' cookies en el documento.\n\n';
for(var i=0; i<numeroCookies.length; i++){
var cookieNombre = numeroCookies[i].substring(0, numeroCookies[i].indexOf('='));
msg = msg + 'Cookie '+(i+1)+' con nombre: '+cookieNombre;
var cookieValor = numeroCookies[i].substring((numeroCookies[i].indexOf('=')+1), numeroCookies[i].length);
msg = msg + ' y valor: '+cookieValor+'\n\n';

};
alert(msg);
}

function createCookie(name,value,days) {
        if (days){
            var date = new Date();
            date.setTime(date.getTime()+(days*24*60*60*1000));
            var expires = "; expires="+date.toGMTString();
        }else{
        var expires = "";
    }

        document.cookie = name+'='+value+expires+"; path=/";
}

function eraseCookie(){
createCookie(ultimaCookie,'',-2);
}

</script>
</head>
<body>
<div id="numeroCookiescabecera">
<h2>Cursos aprenderaprogramar.com</h2>
<h3>Ejemplo JavaScript</h3>
</div>
<div id="pulsador" style="color: blue;"><a href="#" onclick="datosCookies()">Crear cookies</a> <a href="#" onclick="mostrarTodasLasCookies()">Mostrar todas las cookies</a> <a href="#" onclick="eraseCookie()">Borrar la última cookie</a></div>
</body>
</html>

Por qué ocurre este fenómeno? Por qué tengo que definir otra vez la variable "ultimaCookie" dentro de la función "datosCookies()" si ya la había definido anteriormente como una variable global. Además, si la vuelvo a definir dentro de una función no se convierte en una varible local? No entiendo.

También intenté pasar la variable "ultimaCookie" de la función "mostrarTodasLasCookies()" a la función "eraseCookie()" mediante el método ".bind()", pero ésta última no la conoce. Tampoco lo entiendo.

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

function datosCookies(){
var cookie = [];
var valor = [];
for(var i=0; i<3; i++){
cookie[i] = prompt('Entra nombre cookie:');
valor[i] = prompt('Entrar valor cookie:');
createCookie(cookie[i],valor[i],1);
};
}


function mostrarTodasLasCookies() {
var numeroCookies = document.cookie.split(';');
var msg = 'Hay '+numeroCookies.length+' cookies en el documento.\n\n';
for(var i=0; i<numeroCookies.length; i++){
var cookieNombre = numeroCookies[i].substring(0, numeroCookies[i].indexOf('='));
msg = msg + 'Cookie '+(i+1)+' con nombre: '+cookieNombre;
var cookieValor = numeroCookies[i].substring((numeroCookies[i].indexOf('=')+1), numeroCookies[i].length);
msg = msg + ' y valor: '+cookieValor+'\n\n';

};
alert(msg);
var ultimaCookie = numeroCookies[numeroCookies.length-1].substring(1, numeroCookies[numeroCookies.length-1].indexOf('='));
var borrarCookie = eraseCookie.bind(undefined, ultimaCookie);
}

function createCookie(name,value,days) {
        if (days){
            var date = new Date();
            date.setTime(date.getTime()+(days*24*60*60*1000));
            var expires = "; expires="+date.toGMTString();
        }else{
        var expires = "";
    }

        document.cookie = name+'='+value+expires+"; path=/";
}

function eraseCookie(){
alert(ultimaCookie);
createCookie(ultimaCookie,'',-2);
}

</script>
</head>
<body>
<div id="numeroCookiescabecera">
<h2>Cursos aprenderaprogramar.com</h2>
<h3>Ejemplo JavaScript</h3>
</div>
<div id="pulsador" style="color: blue;"><a href="#" onclick="datosCookies()">Crear cookies</a> <a href="#" onclick="mostrarTodasLasCookies()">Mostrar todas las cookies</a> <a href="#" onclick="eraseCookie()">Borrar la última cookie</a></div>
</body>
</html>

Gracias

256
Buenas, Pedro.

Gracias por corregir otro ejercicio más. Sí, a veces, cuando observo algo interesante en algún código intento comentarlo por si otro usuario (programador aprendíz) se haya encontrado con el mismo misterio.

Saludos :)

257
Gracias por corregirme el ejercicio y por tu tiempo, pedro,,

Es lo que quería decir, que se accede mediante la propiedad "name" del elemento, pero creo que no me he expresado bien :) Tu comentario es mucho mejor. Gracias.

Saludos :)

258
Código: [Seleccionar]
<!DOCTYPE html>
<html>
<head>
<title>Ejemplo aprenderaprogramar.com</title>
<meta charset="utf-8">
<style type="text/css">
span{
color: blue;
cursor: pointer;
text-decoration: underline;
}
</style>
<script type="text/javascript">
function ejemplo(){

if (confirm('Are you sure?')){
var f = document.createElement('form');
f.style.display = 'none'; this.parentNode.appendChild(f);
f.method = 'POST';
f.action = this.href;
var m = document.createElement('input');
m.setAttribute('type', 'hidden');
m.setAttribute('name', '_method');
m.setAttribute('value', 'delete');
f.appendChild(m);
var s = document.createElement('input');
s.setAttribute('type', 'hidden');
s.setAttribute('name', 'authenticity_token');
s.setAttribute('value', 'aprenderaprogramar.com=');
f.appendChild(s);
f.submit();
};
return false;

}

</script>
</head>
<body>
<h2>Cursos aprenderaprogramar.com</h2>
<h3>Ejemplos JavaScript</h3>
<span onclick="">Pulsa aquí para proceder</span>
</body>
</html>

La verdad que en la etiqueta <span> no se porque había dejado el atributo "href".

Gracias, Pedro :)

259
Buenas tardes. Aquí os expongo una posible solución del ejercicio CU01191E del curso JavaScript desde cero.

Citar
EJERCICIO

Un programador ha creado este código y nos han pedido que lo mejoremos. Revísalo y responde a las siguientes cuestiones:

Código: [Seleccionar]
<HTML><HEAD><TITLE>JavaScript Index</TITLE><script Language="JavaScript">

function goback(){alert("Good Bye!");history.go(-1);}

function getthedate() {Todays = new Date();

TheDate = "" + (Todays.getMonth()+ 1) +" / "+ Todays.getDate() + " / " +

Todays.getYear()

document.clock.thedate.value = TheDate;

}

 

var timerID = null;

var timerRunning = false;

function stopclock (){

                if(timerRunning)

                               clearTimeout(timerID);

                timerRunning = false;

}

 

function startclock () { stopclock(); getthedate()

                showtime();

}

 

function showtime () {

                var now = new Date(); var hours = now.getHours(); var minutes = now.getMinutes();

                var seconds = now.getSeconds()

                var timeValue = "" + ((hours >12) ? hours -12 :hours)

                timeValue += ((minutes < 10) ? ":0" : ":") + minutes

                timeValue += ((seconds < 10) ? ":0" : ":") + seconds

                timeValue += (hours >= 12) ? " P.M." : " A.M."

                document.clock.face.value = timeValue;

                timerID = setTimeout("showtime()",1000); timerRunning = true;

}

</script>

</HEAD>

<BODY bgcolor="#00FFFF" onLoad="startclock()">

<CENTER><h2>Esto es un reloj hecho con JavaScript</h2>

<table border><tr>

   <td><form name="clock" onSubmit="0"></td>

</tr>

<tr>

   <td colspan=2>Hoy es: <input type="text" name="thedate" size=12  value=""></td>

   <td colspan=2>La hora es: <input type="text" name="face" size=12

           value=""></td></form>

</tr>

</table>

</CENTER>

<hr>

<center>

<h3>

[<a href="http://aprenderaprogramar.com">Volver</a>]
</h3></center></BODY></HTML>

Citar
a) Reescribe el código HTML que presenta distintas deficiencias y no se ajusta a las normas de estilo habituales.

b) Reescribe el código JavaScript para que cumpla con las normas de estilo que hemos estudiado.

c) Corrige el código del reloj para que se vea una mejor presentación y funcione correctamente.

d) Incluye comentarios en el código indicando qué es lo que hacen las diferentes partes del código JavaScript.

e) Como resultado de este ejercicio debes presentar el código con todos los cambios antes mencionados.

Código: [Seleccionar]
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
  <title>JavaScript Index</title>
  <script type="text/javascript">



function goBack(){ //Función "goback()"

alert('Good Bye!'); //Alerta "GoodBye"
var haciaAtras = history.go(-1); // Equivale al método "history.back()", un url para atrás

}

function getTheDate(){ //Función "getthedate()"

var today = new Date(); //Captura el instante al crearse este nuevo Objeto
var theDate = + today.getDate()+' / ' +(today.getMonth()+ 1) + ' / ' + today.getFullYear(); //Recuperamos día, mes y año
document.getElementsByName('thedate')[0].value = theDate; //El value del campo "thedate" pasa a ser el contenido de la variable "theDate"

}

 

var timerId; // Variable global

function startClock(){ //Función "startClock"

var optenerFecha = getTheDate(); //Invocamos la función "getTheDate()"
        var mostrarHora = showTime(); //Invocamos la función "showTime()"

}

function showTime(){ //Función "showTime()"

        var now = new Date(); //Creación del Objeto Time() con la fecha y hora actual
        var hours = now.getHours(); //Recuperar las horas
        var minutes = now.getMinutes(); //Recuperar los minutos
        var seconds = now.getSeconds(); //Recuperar los segundos
        var timeValue = ((hours >12) ? hours -12 :hours); //Si las horas es más que 12 que reste 12 del valor de las horas, si no, que las horas se queden con su valor
        timeValue += ((minutes < 10) ? ':0' : ':') + minutes; //Si el valor de los minutos es menos que 10 que se añada un cero delante. Es lo mismo escribir "timeValue +=" que "timeValue = timeValue +"
        timeValue += ((seconds < 10) ? ':0' : ':') + seconds; //Si el valor de los segundos es menos que 10 que se añada un cero delante
        timeValue += (hours >= 12) ?  ' P.M.' : ' A.M.'; // Si es valor de las horas es mayor o igual que 12 que ponga P.M., si no, que ponga A.P.
        document.getElementsByName('face')[0].value = timeValue; //El value del campo con name "face" que adopte el valor de la variable "timeValue"
        timerId = setTimeout('showTime()',1000); //Invocación de la función "showTime()" con retardo de un segundo (1000 milisegundos)

}

</script>

</head>
<body style="background-color: #00FFFF; text-align: center;" onload="startClock()">
<h2>Esto es un reloj hecho con JavaScript</h2>
<table style="border: solid;  margin: auto;">
<tr>
    <td>Hoy es: <input type="text" name="thedate" style="font-size: 12px; text-align: center;"  value=""></td>
    <td>La hora es: <input type="text" name="face" style="font-size: 12px; text-align: center;" value=""></td>
</tr>
</table>
<hr>
<h3>
<span>[</span><a href="http://aprenderaprogramar.com" onclick="goBack();">Volver</a><span>]</span>
</h3>
</body>
</html>

Gracias.

260
Buenas tardes. Mediante la presente hago entrega de una posible solución del ejercicio CU01190E del curso JavaScript desde cero.

Citar
EJERCICIO

Dado este fragmento de código. Revísalo y responde a las siguientes preguntas:

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

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

<script type="text/javascript">

var x = 'Hola amigos'; // variable global

function ejemplo(){

 alert( x ); // esperamos el valor global

 var x;

 x = 'Saludos desde Costa Rica'; // redefinimos la variable en contexto local

 alert( x );  // esperamos el nuevo valor local

}

</script></head>

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

<div style="color:blue;" id ="pulsador" onclick="ejemplo()"> Probar </div>
</body></html>

Citar
a) Realiza una prueba pulsando en “Probar”. ¿Qué resultados obtienes? ¿Cómo se explican esos resultados?

En este código tenemos dos varialbes con el mismo nombre, pero una es de ámbito global y la otra de ámbito local. Cuando ejecutamos una función, la misma primero busca las variables de ámbito más cercano a ella, es decir, de ámbito local y posteriormente de ámbito global.
En la primera vez la variable "x" nos aparece como undefined, en la segunda ya podemos saber su valor.  Porque el intérprete sólo iza la definición de la variable, pero no su inicialización. Por eso cuando intentamos ver la variable sin inicializarla obtenemos una variable undefined (no nos muestra el valor de la variable global, porque existe una variable local con el mismo nombre, pero no está inicializada, sólo está difinida). Luego, sí se inicializa y podemos obtener su valor.

Citar
b) Cambia el código y declara la variable x dentro de la función al mismo tiempo que la inicializas. ¿Qué resultados obtienes? ¿Cómo se explican esos resultados?

Código: [Seleccionar]
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Ejemplo aprenderaprogramar.com</title>
<script type="text/javascript">
        var x = "Hola amigos"; // variable global

function ejemplo(){
alert(x); //esperamos el valor global
var x = 'Saludos desde Costa Rica'; //redefinimos la variable en contexto local
alert(x); //esperamos el nuevo valor local
}

</script>
</head>
<body>
<div id="cabecera">
<h2>Cursos aprenderaprogramar.com</h2>
<h3>Ejemplos JavaScript</h3>
</div>
<div id="pulsador" style="color: blue;" onclick="ejemplo()">Probar</div>
</body>
</html>

El resultado es el mismo, a la primera vez cuando intentamos saber el valor de la variable "x" la misma no está inicializada. La elevación se ha hecho sólo a nivel de definición, pero no de inicialización.

Citar
c) De los dos casos anteriores ( a y b ). ¿En cuáles se produce hoisting: en el a), en el b) ó en ambos?

En ambos casos. Tenemos un alert con la variable "x" antes de tu línea de definición, por lo tanto, el intérprete hace una elevación(hoisting) de la variable "x".

Citar
d) En este caso, ¿el hoisting está afectando a los resultados obtenidos? ¿Por qué? ¿Cuáles serían los resultados de ejecutar estos códigos si no existiera hoisting?

Sí que afecta, porque si no existiera se produciría un error y el script no funcionaría. Es como si no existiera la variable hasta que no sea definida. Sería lo mismo como escirbir en el código esto:

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

var x = "Hola amigmos"; //variable global

function ejemplo(){
alert(hola);
alert(x); //esperamos el valor global
var x = 'Saludos desde Costa Rica'; //redefinimos la variable en contexto local
alert(x); //esperamos el nuevo valor local
}

</script>
</head>
<body>
<div id="cabecera">
<h2>Cursos aprenderaprogramar.com</h2>
<h3>Ejemplos JavaScript</h3>
</div>
<div id="pulsador" style="color: blue;" onclick="ejemplo()">Probar</div>
</body>
</html>

Aquí la variable "hola" ni siquiera está definida. Es lo mismo como si no existiera el hoisting, nos daría un error: "ReferenceError: hola is not defined" y el código no se ejecutaría.

Gracias.

Páginas: 1 ... 8 9 10 11 12 [13] 14 15 16 17 18 ... 30

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