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.


Temas - Dimitar Stefanov

Páginas: 1 2 3 4 5 [6] 7 8 9 10 11 ... 14
101
Hola a todos. Aquí os dejo una posible solución del ejercicio CU00823B del curso PHP desde cero.

Citar
EJERCICIO

Crea el código PHP de 3 archivos en cada uno de los cuales debes hacer lo siguiente:

a) Declara un array de enteros de nombre $coches e introduce en él 8 elementos cuyos valores sean 32, 11, 45, 22, 78, -3, 9, 66, 5. A continuación muestra por pantalla el elemento con localizador 5. Deberás obtener por pantalla que se visualiza -3.

Código: [Seleccionar]
<?php 
$coches[0] = 32;
$coches[1] = 11;
$coches[2] = 45;
$coches[3] = 22;
$coches[4] = 78;
$coches[5] = -3;
$coches[6] = 9;
$coches[7] = 66;
$coches[8] = 5;
echo $coches[5];
?>

Citar
b) Declara un array de numéricos decimales tipo double de nombre $importe e introduce en él cuatro elementos que sean 32.583, 11.239, 45.781, 22.237. A continuación muestra por pantalla el elemento con localizador 1. Deberás obtener por pantalla que se visualiza 11.239.

Código: [Seleccionar]
<?php 
$importe[] = 32.583;
$importe[] = 11.239;
$importe[] = 45.781;
$importe[] = 22.237;
echo $importe[1]; 
?>

Citar
c) Declara un array de booleanos de nombre $confirmado e introduce en él seis elementos que sean true, true, false, true, false, false. A continuación muestra por pantalla el elemento con localizador 0. Deberás obtener por pantalla que se muestra “true”.

Código: [Seleccionar]
<?php 
$confirmado = array(truetruefalsetruefalsefalse);
echo $confirmado[0];
?>

A mí, por pantalla, se me imprime "1" y no "true". Esta cuestión la había planteado también en otro hilo. No sé si en PHP es normal que aparezca "1" para una variable (array) con valor "true" o es que estoy haciendo algo mal.

Citar
d) Declara un array de strings de nombre $jugador e introduce en él 5 elementos que sean "Crovic", "Antic", "Malic", "Zulic" y "Rostrich". A continuación usando el operador de concatenación haz que se muestre la frase: <<La alineación del equipo está compuesta por Crovic, Antic, Malic, Zulic y Rostrich.>>

Código: [Seleccionar]
<?php 
$jugador = ["Crovic""Antic""Malic""Zulic""Rostrich"];
echo "La alineación del equipo está compuesto por: ".$jugador[0].", ".$jugador[1].", ".$jugador[2].", ".$jugador[3].", ".$jugador[4];
?>

Gracias.

102
Buenas tardes a todo el equipo de aprenderaprogramar.com. A continuación expongo una posible solución de los ejercicios planteados en la entrega CU00822B del curso PHP desde cero.

Citar
EJERCICIO 1

Crea el código PHP donde generes:

a) Un bucle while que cuente desde 50 hasta 40 (fíjate que en este caso es decreciente)

b) Un bucle while que a partir de una variable $contador que toma valores de 1 a 5, muestre por pantalla el doble del valor de $contador, es decir, que muestre 2, 4, 6, 8, 10.

Código: [Seleccionar]
<?php 
$contador 50;

while ($contador >= 40){
echo "$contador, ";
$contador--;
};
echo "<br><br>";

$contador 1;

while($contador <= 5){
echo $contador $contador;
echo ", ";
$contador++;
}
?>

Citar
EJERCICIO 2

Crea el código PHP donde generes:

a) Un bucle do…while que cuente desde 50 hasta 40 (fíjate que en este caso es decreciente)

b) Un bucle do…while que a partir de una variable $contador que toma valores de 1 a 5, muestre por pantalla el doble del valor de $contador, es decir, que muestre 2, 4, 6, 8, 10.

Código: [Seleccionar]
<?php 
$contador 50;

do{
echo "$contador, ";
$contador--;
}while($contador >= 40);
echo "<br><br>";

$contador 1;

do{
echo $contador $contador;
echo ", ";
$contador++;
}while($contador <= 5);
?>


Citar
EJERCICIO 3

Crea el código PHP donde generes:

a) Un bucle for que cuente desde 50 hasta 40 (fíjate que en este caso es decreciente y que por tanto la variable deberá operar como $galletas– –).

b) Un bucle for que a partir de una variable $contador que toma valores de 1 a 5, muestre por pantalla el doble del valor de $contador, es decir, que muestre 2, 4, 6, 8, 10.

Código: [Seleccionar]
<?php 
for(
$galletas 50$galletas >= 40$galletas--){
echo "$galletas, ";
};

echo "<br><br>";

for($galletas 1$galletas <=5$galletas++){
echo $galletas $galletas;
echo ", ";
}
?>

Citar
EJERCICIO 4

Crea el código PHP donde generes:

a) Un bucle for que cuente desde 50 hasta 500 de 25 en 25.

b) Un bucle for que a partir de una variable de control $j que toma valores de 100 a 500 de 100 en 100, muestre por pantalla el resultado de dividir la variable de control por 20. En este caso, el resultado será 5 (que es 100/20…), 10 (que es 200/20…), 15, 20, 25.

Código: [Seleccionar]
<?php 
for(
$i 50$i 500$i += 25){
echo "$i, ";
};
echo "<br><br>";

for($j 100$j 600$j += 100){
echo $j 20.;
echo ", ";
}
?>

Gracias.

103
Buenas tardes. Aquí os expongo una posible solución del ejercicio CU00821B del curso PHP desde cero.

Citar
EJERCICIO

Crea el código PHP que cumpla con lo que se indica a continuación:

a) Declara una variable cuyo contenido sea la cadena "Didáctica y divulgación de la programación"

b) Usando la función substr extrae cada una de las palabras de la cadena anterior a una variable. Como tenemos 6 palabras, debes tener 6 variables con las subcadenas.

c) Usando la concatenación muestra por pantalla lo siguiente: <<Las palabras primera, tercera y sexta son: Didáctica, divulgación, programación>>

d) Usando strlen muestra por pantalla lo siguiente: <<La palabra primera es Didáctica y tiene 9 caracteres, la palabra tercera es divulgación y tiene 11 caracteres. La palabra sexta es programación y tiene 12 caracteres>> 

Código: [Seleccionar]
<?php 
$cad "Didáctica y divulgación de la programación";
$sub1 substr($cad010);
$sub2 substr($cad111);
$sub3 substr($cad1312);
$sub4 substr($cad262);
$sub5 substr($cad292);
$sub6 substr($cad3213);
echo "Las palabras primera, tercera y sexta son: ".$sub1.", ".$sub3.", ".$sub6."<br>";
echo "La palabra primera es ".$sub1." y tiene ".(strlen($sub1)-1)." caracteres, la palabra tercera es ".$sub3." y tiene ".(strlen($sub3)-1)." caracteres. La palabra sexta es ".$sub6." y tiene ".(strlen($sub6)-1)." caracteres";
?>

Observación: viniendo del curso JavaScript allí cuando sustraes alguna subcadena se hace mediante dos parámetros: substring(par1, par2), donde el par1 es el primer carácter donde empieza la subcadena y el segundo es donde acabará la sustracción de la subcadena (el segundo queda excluido).
Por lo visto, en PHP no es así. Con el método "substr" tenemos también dos posibles parámetros, pero el segundo no significa el carácter donde se acabará la sustracción de la subcadena, sino cuantos carácteres se tendrán que sustraer a partir de la posición que le habíamos asignado en el primer parámetro.

Es, un poco, confuso.

Gracias.

104
Buenas tardes, aquí os dejo unas posibles soluciones de los ejercicios de la entrega CU00820B del curso PHP desde cero.

Citar
EJERCICIO 1

Analiza el siguiente código PHP:

Código: [Seleccionar]
/Ejemplo de uso switch PHP aprenderaprogramar.com

        switch ($mes) {

            case 1:

            echo ("El mes es enero");

            break;

            case 2: echo ("El mes es febrero"); break;

            case 10: echo ("El mes es octubre"); break;

            default: echo ("El mes no es enero, febrero ni octubre"); break;

        }

Citar
Responde a las siguientes cuestiones:

a) ¿Qué es lo que hace este código?

Compara si la variable "$mes" contiene los valores: 1, 2, 10 o ninguno de estos tres valores. Si cumple alguna de estas tres condiciones se imprime por pantala el mensaje "El mes es enero", "El mes es febrero" o "El mes es enero". Si no se cumpliera ninguna de estas tres condiciones se imprimira el mensaje: "El mes no es enero, febrero ni octubre".

Citar
b) Completa el código de forma que añadas las etiquetas y definas el valor de $mes = 1. Sube el fichero al servidor y comprueba el resultado. ¿Cuál es el código completo?

Código: [Seleccionar]
<?php
//Ejemplo de uso switch PHP aprenderaprogramar.com
$mes 1;

switch($mes){
case 1:
echo "El mes es enero";
break;
case 2:
echo "El mes es febrero";
break;
case 10:
echo "El mes es octubre";
break;
default:
echo "El mes no es enero, febrero ni octubre";
break;
}
?>

Citar
¿Cuál es el resultado obtenido por pantalla?

Por pantalla se imprimer: "El mes es enero", puesto que la variable "$mes" es igual a 1.

Citar
EJERCICIO 2

Considera estás desarrollando una web donde trabajas con tipos de motor (suponemos que se trata del tipo de motor de una bomba para mover fluidos). Define una variable $tipoMotor y asígnale valor 3. Los valores posibles son 1, 2, 3, 4. A través de un condicional switch haz lo siguiente:

a)      Si el tipo de motor es 0, mostrar un mensaje indicando “No hay establecido un valor definido para el tipo de bomba”.

b)      Si el tipo de motor es 1, mostrar un mensaje indicando “La bomba es una bomba de agua”.

c)       Si el tipo de motor es 2, mostrar un mensaje indicando “La bomba es una bomba de gasolina”.

d)      Si el tipo de motor es 3, mostrar un mensaje indicando “La bomba es una bomba de hormigón”.

e)      Si el tipo de motor es 4,mostrar un mensaje indicando “La bomba es una bomba de pasta alimenticia”.

f)       Si no se cumple ninguno de los valores anteriores mostrar el mensaje “No existe un valor válido para tipo de bomba”.

 

¿Cuál es el código completo?

Código: [Seleccionar]
<?php 
//Ejemplo switch PHP aprenderaprogramar.com
$tipoMotor 3;

switch($tipoMotor){
case 0:
echo "No hay establecido un valor definido para el tipo de bomba.";
break;
case 1:
echo "La bomba es una bomba de agua.";
break;
case 2:
echo "La bomba es una bomba de gasolina.";
break;
case 3:
echo "La bomba es una bomba de hormigón.";
break;
case 4:
echo "La bomba es una bomba de pasta alimenticia.";
break;
default:
echo "No existe un valor válido para tipo de bomba.";
break;
}
?>

Citar
¿Cuál es el resultado obtenido por pantalla?

Por pantalla se imprime: "La bomba es una bomba de hormigón.", porque la variable "$tipoMotor" tiene un valor asignado 3.

Gracias.

105
Buenas tardes. Expongo unas posibles soluciones de los ejercicios de la entrega CU00819B del curso PHP desde cero.

Citar
EJERCICIO 1

Crea un código PHP donde crees las variables $primerNumero y $segundoNumero y asigna valor 8 al primer número y 5 al segundo número:

a) El resto de dividir el primer número entre 5.

b) El resultado de dividir el primer número entre el segundo.

c) El resultado de sumar los dos números.

Código: [Seleccionar]
<?php 
$primerNumero 8;
$segundoNumero 5;
echo $primerNumero 5;
echo "<br>";
echo $primerNumero $segundoNumero;
echo "<br>";
echo $primerNumero $segundoNumero;
?>

Citar
EJERCICIO 2

Crea un código PHP donde crees las variables $a y $b y usando los operadores adecuados haz que se muestren los siguientes mensajes por pantalla. Nota: para mantener los valores iniciales de las variables y poder volver a emplearlos usa variables auxiliares, por ejemplo $inicio = $a; te permitirá mantener en $inicio el valor original de $a y volver a recuperar el valor inicial de $a antes de hacer una nueva operación.

Mensajes a mostrar por pantalla:

Operadores de incremento

Valores iniciales: a = 4, b = 2

Operador ++ (anterior): ++a * b == 10

(Ahora el valor de a es: 5)

Operador ++ (posterior): a++ * b == 8

(Ahora el valor de a es: 5)

Operador -- (anterior): --a * b == 6

(Ahora el valor de a es: 3)

Operador -- (posterior): a-- * b == 8

(Ahora el valor de a es: 3)

 

Operadores de asignación compuestos

Valores iniciales: a = 4, b = 2

Asignación compuesta de suma: a += b equivale a = a + b

(Ahora el valor de a es: 6)

Asignación compuesta de resta: a -= b equivale a = a - b

(Ahora el valor de a es: 2)

Asignación compuesta de multiplicación: a *= b equivale a = a * b

(Ahora el valor de a es: 8 )

Asignación compuesta de división: a /= b equivale a = a / b

(Ahora el valor de a es: 2)

Asignación compuesta de módulo: a %= b equivale a = a % b

(Ahora el valor de a es: 0)

Código: [Seleccionar]
<?php 
$a 4;
$b 2;
$inicio $a;

echo "<style type=text/css>
span{
text-decoration: underline; 
font-weight: bold;
}
</style>"
;
echo "<span>Operadores de incremento</span><br><br>";
echo "Valores iniciales: a = $a, b = $b <br><br>";
echo "Operador ++ (anterior): ++a * b == ";
echo ++ $a $b;
echo "<br><br>";
echo "(Ahora el valor de a es: $a) <br><br>";
echo "Operador ++ (posterior): a++ * b == ";
$a $inicio;
echo $a ++ * $b;
echo "<br><br>";
echo "(Ahora el valor de a es: $a) <br><br>";
echo "Operador -- (anterior): --a * b == ";
$a $inicio;
echo -- $a $b;
echo "<br><br>";
echo "(Ahora el valor de a es: $a) <br><br>";
echo "Operador -- (posterior): a-- * b == ";
$a $inicio;
echo $a -- * $b;
echo "<br><br>";
echo "(Ahora el valor de a es: $a) <br><br><br>";

echo "<span>Operadores de asignación compuestos</span><br><br>";
$a $inicio;
echo "Valores iniciales: a = $a, b = $b <br><br>";
echo "Asignación compuesta de suma : a += b equivale a = a + b; <br><br>";
$a += $b;
echo "(Ahora el valor de a es: $a) <br><br>";
echo "Asignación compuesta de resta: a -= b equivale a = a - b <br><br>";
$a $inicio;
$a -= $b;
echo "(Ahora el valor de a es: $a) <br><br>";
echo "Asignación compuesta de multiplicación: a *= b equivale a = a * b <br><br>";
$a $inicio;
$a *= $b;
echo "(Ahora el valor de a es: $a) <br><br>";
echo "Asignación compuesta de división: a /= b equivale a = a / b <br><br>";
$a $inicio;
$a /= $b;
echo "(Ahora el valor de a es: $a) <br><br>";
echo "Asignación compuesta de módulo: a %= b equivale a = a % b <br><br>";
$a $inicio;
$a %= $b;
echo "(Ahora el valor de a es: $a)";

?>

Gracias.

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


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

108
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

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

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


111
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

112
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

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

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

115
Buenas tardes. Dejo una posible solución de los ejercicios de la entrega CU01189E del curso JavaScript desde cero.

Citar
EJERCICIO 1

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

Código: [Seleccionar]
var persona1 = {};

Object.defineProperty(persona1, "edad", { value: 42, writable: false });

persona1.edad = 19;

Citar
a) Explica paso a paso el significado de este código (busca información en internet si te es preciso).

var persona1 = {}; Creamos un objeto de tipo "persona1"

Object.defineProperty(persona1, "edad", { value: 42, writable: false }); Mediante el método "Object.defineProporty()" definimos las propiedades del objeto "persona1". En este caso definimos la propiedad "edad", le damos un valor de "42" y establecemos que no será reescribible a través de la propiedad "writable: false". Si fuera "writable: true" podríamos cambiar el valor de la propiedad "edad" posteriormente.

persona1.edad = 19; Intentamos cambiar el valor de la propiedad "edad" a "19". Digo "intentamos" porque anteriormente vimos que está propiedad la establecimos como no variable (de algún modo podriamos decir que actuará como una constante).

Citar
b) Crea un pequeño script donde se ejecute este código y se muestre un mensaje por pantalla informando del valor de la edad. Activa la consola para comprobar si aparece algún error.

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

persona1 = {};
Object.defineProperty(persona1,'edad',{value:42, writable: false});
persona1.edad = 19;
alert(persona1.edad);

</script>
</head>
<body>

</body>
</html>

No aparece ningún tipo de error.

Citar
c) Crea el mismo script pero usando strict mode. Activa la consola y comprueba si aparece algún error. ¿Qué diferencias observas entre la ejecución con strict mode y sin strict mode? ¿Qué explicación le darías a estas diferencias? ¿Crees que sería positivo que este código se escribiera en strict mode o no? ¿Por qué?

Cuando el código se ejecuta bajo la instrucción "use strict" nos aparece el error: "ReferenceError: assignment to undeclared variable persona1". En cambio, en modo normal (no estricto) no aparece dicho error y el código acaba ejecutándose del todo. En modo estricto se detiene al detectar el error.
Personalmente creo que los códigos se tendrían que escribir con una síntaxis "correcta". Para la funcionalidad de este código no sería positivo ejecutarlo en modo estricto, más que nada, porque se detendría al detectar el error. De forma general, creo que sería positivo haberse escrito en modo strict porque así el programador observará el error y hubiera declarado la variable "persona1" porque si hubiera continuado el código y se hubiera incluido otra ambiente con una variable que tenga el mismo nombre habría conflicto de interpretación a la hora de ejecutar el código.

Citar
EJERCICIO 2

Crea y ejecuta un script que use with y que esté:

a) En modo normal. ¿Cuál es el código y cuál es el resultado que obtienes?

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

function ejemplo(){
with(document.getElementById('cabecera').style){
color = "black";
width = "200px";
padding = "20px";
fontSize = "32px";
}
}

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

Cuando hacemos click sobre "probar" se ejecuta el código con la función "ejemplo()". El div con id="cabecera"  adopta la propiedades especificadas en el código. Es decir, un color negro (de contenido, no de fondo), un ancho de 200px, un relleno de 20px y un tamaño de fuente de 32px.

Citar
b) En strict mode. ¿Cuál es el código y cuál es el resultado que obtienes?

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

function ejemplo(){
'use strict';
with(document.getElementById('cabecera').style){
color = "black";
width = "200px";
padding = "20px";
fontSize = "32px";
}
}

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

Citar
with ha pasado a considerarse no permitido en strict mode (donde obtendremos un error de tipo <<SyntaxError: strict mode code may not contain 'with' statements>>) y se considera que terminará por desaparecer (o ser replanteado de otra manera).

Gracias.

116
Hola a toda la comunidad de aprenderaprogramar.com

Aquí os expongo una posible solución del ejercicio CU01188E del curso JavaScript

Citar
EJERCICIO

Un programador ha desarrollado este código. Revísalo y responde a las siguientes preguntas:

Código: [Seleccionar]
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(name) { createCookie(name,"",-1); }

Citar
a) ¿Para qué sirve la función createCookie? Explica paso a paso qué es lo que hace esta función.

Principalmente es para crear una cookie y borrarla al cerrarse el navegador.
Primero lo que hacemos es comprobar si el parámetro "days" existe. En caso afirmativo ejecutamos el código que le corresponde. Es decir, creamos un objeto de tipo Date con el valor del momento en el que se crea dicho objeto. Posteriormente modificamos dicho objeto mediante la propiedad ".setTime()" a un día anterior (86.400.000 son los milisegundos que tiene un día).  Y finalmente establecemos el parámetro "expires" del objeto cookie a la fecha anterior al día actual (con lo cual se borrará).
Si no existe el parámetro "days" inicializamos la variable "expires" a una cadena vacía (lo que hará como parámetro del objeto Cookie que se borre la cookie al cerrar el navegador ).
Tanto si existe el parámetro "days", como si no, creamos una cookie con la siguiente instrucción:

Código: [Seleccionar]
document.cookie = name+"="+value+expires+"; path=/"; 

Código: [Seleccionar]
b) ¿Para qué sirve la función eraseCookie? Explica paso a paso qué es lo que hace esta función.
La función "eraseCookie(name)" pasa el parámetro "name" e invoca la función "createCookie()" con un valor negativo al parámetro "days" cual hará borrar la cookie.

Citar
c) Escribe el código de una función de nombre mostrarTodasLasCookies() que muestre el nombre y valor de todas las cookies existentes. Por ejemplo, si hay dos cookies deberá mostrarse algo como esto:

Hay 2 cookies en el documento

Cookie 1 con nombre: cookieNombreUsuario y valor: Alberto

Cookie 2 con nombre cookieEdadUsuario y valor 8

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

function mostrarTodasLasCookies() {
document.cookie = "cookieNombreUsuario = Alberto; expires = Thu, 12 Aug 2049 20:47:11 UTC; path = /;";
document.cookie = "cookieEdadUsuario = 8; expires = Thu, 12 Aug 2049 20:47:11 UTC; path = /;";
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);
}

</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="mostrarTodasLasCookies()">Mostrar todas las cookies</a></div>
</body>
</html>

Citar
d) Usando las funciones createCookie, eraseCookie y  mostrarTodasLasCookies() crea un script que pida 3 nombres y valores de cookies al usuario, y cree las cookies correspondientes. A continuación deberá mostrar las cookies existentes y sus valores. Finalmente, deberá borrar la última cookie existente y volver a mostrar todas las cookies y sus valores.

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);
}
mostrarTodasLasCookies();
eraseCookie(cookie[2])
mostrarTodasLasCookies();
}

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(name){createCookie(name,'',-1);}

</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()">Mostrar todas las cookies</a></div>
</body>
</html>

Graicas.

117
Buenas tardes. Hago entrega de una posible solución del ejercicio CU01187E del curso JavaScript desde cero.

Citar
EJERCICIO

Un programador ha desarrollado un código y nos han pedido que lo revisemos. Escribe este código en un editor, ejecútalo y responde a las siguientes preguntas:

Código: [Seleccionar]
<html> <head><meta charset="utf-8"><style type="text/css"> input {margin:10px;} </style>

<script>

function validarPassword(password){

  try  {

    if(password.length < 5 ) {      throw "SHORT";    }else if(password.length > 10 ) {  throw "LONG";    }

    alert("Password Validated!");

  } catch(e) {

    if(e == "SHORT"){  alert("Not enough characters in password!"); }

    else if(e == "LONG"){ alert("Password contains too many characters!");   }

  }finally{    document.miFormulario.password.value="";   }

  alert("La revisión ha terminado.");

}

 </script>

    </head>

    <body>

        <form name="miFormulario" onsubmit="validarPassword(document.getElementById('pass').value)" action="#" >

            Nombre de usuario: <input type="text" name="campo1"><br>

            Password: <input id="pass" type="password" name="password"><br>

            <input type="submit" value="Comprobar" name="comprobar">

        </form>

    </body>
</html>

Citar
a) Busca información en internet y respode: ¿Qué significado tiene una instrucción como throw "SHORT";? ¿A qué da lugar? ¿Qué diferencia hay entre throw "SHORT" y throw new Error('SHORT')?

Mediante la instrucción: "throw "SHORT"" estamos lanzando una cadena de texto "SHORT". Con la instrucción: "throw new Error("SHORT")" creamos un Object Error con un parámetro personalizado "SHORT".

Citar
En los errores que lanzamos nosotros con new Error las propiedades del objeto pueden ser establecidas por nosotros, ...

Citar
b) ¿Cuál es el objetivo que parecía pretender cumplir el autor del código?

Comprobar si la contraseña tenía entre 5 y 10 dígitos. En caso contrario se lanzará un error con sus respectivos mensajes de alerta.

Citar
c) ¿En qué casos se ejecuta la cláusula finally incluida en el código?

Citar
Las sentencias incluidas dentro de una cláusula finally se ejecutarán independientemente de que se haya producido un error o no durante la ejecución del bloque try.

Es decir, se ejecutará siempre la cláusula finally.

Gracias

118
Buenas noches.

Mediante la presente hago la entrega de una posible solución del ejercicio CU01186E del curso JavaScript.

Citar
EJERCICIO

Un programador ha desarrollado un código y nos han pedido que lo revisemos. Escribe este código en un editor y responde a las siguientes preguntas (nota: cambia la ruta de las imágenes si quieres):

Código: [Seleccionar]
<html><head><script type="text/javascript">

image01= new Image()

image01.src="http://i877.photobucket.com/albums/ab336/cesarkrall/Divulgacion/logonotplusplus.png"

image02= new Image()

image02.src="http://i877.photobucket.com/albums/ab336/cesarkrall/Divulgacion/DV00405A_1.jpg"

function rollover(imagename, newsrc){

document.images[imagename].src=newsrc.src

}

</script></head>

<body style="text-align:center; margin:50px;">

<p> Pasa el mouse sobre la imagen </p>

<a  href="#" onmouseover="rollover('example', image02)"

onmouseout="rollover('example', image01)">

<img src="http://i877.photobucket.com/albums/ab336/cesarkrall/Divulgacion/logonotplusplus.png" name="example">

</a>

</body></html>

Citar
a) ¿En qué ámbito se encuentran image01 e image02?

En un ámbito global

Citar
b) ¿Qué tipo de objetos son image01 e image02?

Object Image.

Citar
c) ¿Aparecerán errores debido a la falta de puntos y coma de terminación en las instrucciones de JavaScript? ¿Por qué?

No aparecer errores porque el intérprete del navegador, aunque no está perfectamente escrito el código, siempre intenta ejecutar el código en la medida que se pueda.

Citar
d) Al acceder a una imagen con la sintaxis document.images[imagename], ¿se está usando un índice numérico para acceder a la colección? Si es numérico, indicar qué valores son los que se usan. Si no es numérico, indicar qué tipo de índice es.

No se está usando un índice numérico. Es un índice mediante el nombre del elemento.

Citar
e) El efecto esperado es que la imagen que se muestra cambie cuando pasamos el puntero del ratón por encima de ella. ¿Por qué se produce ese cambio? Explícalo brevemente.

Se produce el cambio de la imagen gracias a esta parte del código HTML:

Código: [Seleccionar]
onmouseover="rollover('example', image02)" onmouseout="rollover('example', image01)"
Y la función:

Código: [Seleccionar]
function rollover(imagename, newsrc){
document.images['example'].src = newsrc.src;
}

Cuando pasamos por encima con el ratón se toma como propiedad(src) de la imagen el valor de la variable "image02" que es: "http://i877.photobucket.com/albums/ab336/cesarkrall/Divulgacion/DV00405A_1.jpg". Cuando apartamos el ratón del area del elemento "<img>" la propiedad(src) de la imagen toma el valor de la variable "image01" que es: "http://i877.photobucket.com/albums/ab336/cesarkrall/Divulgacion/logonotplusplus.png". Por eso ocurre el cambio de la imagen al mover el ratón encima.

Gracias.

119
Buenas noches. Aquí va el ejecicio CU01185E del curso JavaScript desde cero.

Citar
EJERCICIO

Un programador ha desarrollado un código y nos han pedido que lo revisemos. Escribe este código en un editor y responde a las siguientes preguntas:

Código: [Seleccionar]
<html>

    <head>

                <meta charset="utf-8">

                <style type="text/css">

                input {margin:10px;}

                </style>

        <script>

            function Valida(formulario) {

                /* Validación de campos NO VACÍOS */

                if ((formulario.campo1.value.length == 0) || (formulario.campo2.value.length ==0) || (formulario.cpostal.value.length ==0) || (formulario.dni.value.length ==0) || (formulario.email.value.length ==0)) {

                    alert('Falta información');

                    return false;

                }

                if (isNaN(parseInt(formulario.campo2.value))) {

                    alert('El campo2 debe ser un número');

                    return false;

                }

                /* validación del CÓDIGO POSTAL*/

                var ercp=/(^([0-9]{5,5})|^)$/;

                if (!(ercp.test(formulario.cpostal.value))) {

                    alert('Contenido del código postal no es un código postal válido');

                    return false; }

                /* validación del DNI */

                var erdni=/(^([0-9]{8,8}\-[A-Z])|^)$/;

                if (!(erdni.test(formulario.dni.value))) {

                    alert('Contenido del dni no es un DNI válido.');

                    return false;  }

                /* validación del e-mail */

                var ercorreo=/^[^@\s]+@[^@\.\s]+(\.[^@\.\s]+)+$/;       

                if (!(ercorreo.test(formulario.email.value))) {

                    alert('Contenido del email no es un correo electrónico válido.');

                    return false; }

                /* si no hemos detectado fallo devolvemos TRUE */

                return true;

            }

        </script>

    </head>

    <body>

        <form name="miFormulario" onsubmit="return Valida(this);" action="http://aprenderaprogramar.com" >

            Campo1 <input type="text" name="campo1"><br>

            Campo2 (debe ser número) <input type="text" name="campo2"><br>

            Código postal <input type="text" name="cpostal"><br>

            DNI <input type="text" name="dni"><br>

            email <input type="text" name="email"><br>

            <input type="submit" value="Enviar" name="enviar">

        </form>

    </body>
</html>

Citar
a) ¿Cómo se realiza la comprobación de que no hay campos vacíos?

Código: [Seleccionar]
if ((formulario.campo1.value.length == 0) || (formulario.campo2.value.length ==0) || (formulario.cpostal.value.length ==0) || (formulario.dni.value.length ==0) || (formulario.email.value.length ==0)){
            alert('Falta información');
            return false;
        }

Citar
b) ¿Cómo se realiza la comprobación de que el campo 2 es un número?

Código: [Seleccionar]
if (isNaN(parseInt(formulario.campo2.value))) {
            alert('El campo2 debe ser un número');
            return false;
        }

Citar
c) ¿En qué consiste la validación del código postal? Explícala paso a paso. Pon ejemplos de tres valores válidos y tres valores no válidos.

Se inicializa una expresión regular mediante la variable local "ercp". Para que se cumpla la expresión regular el dato entredo en el campo "cpostal" tiene que empezar y acabar con un dígito numérico entre 0 y 9 y tiene que tener una longitud mínima y máxima de 5 dígitos.
La condicional que maneja dicho campo hace un test sobre el dato entredo. Si se cumple la expresión regular no se ejecuta el código de la condicional, pero si no se cumple, se muestra un mensaje: "Contenido del código postal no es un código postal válido" y la función devuelve false.

Valores válidos: 01234, 74384 ó 00000

Valores NO válidos: 9896j, 0.1234, ó 123456

Citar
d) ¿En qué consiste la validación del DNI? Explícala paso a paso. Pon ejemplos de tres valores válidos y tres valores no válidos.

Se inicializa una expresión regular mediante la variable local "erdni". Para que se cumpla la expresión regular el dato entredo en el campo "dni" tiene que empezar  con un dígito numérico entre 0 y 9 con una longítud mínima y máxima de 8 dígitos, seguido de un "-" y acabar cun un dígito (en mayúscula) entre A Y Z.
La condicional que maneja dicho campo hace un test sobre el dato entredo. Si se cumple la expresión regular no se ejecuta el código de la condicional, pero si no se cumple, se muestra un mensaje: "Contenido del dni no es un DNI válido." y la función devuelve false.

Valores válidos: 00000000-F, 93841827-S ó 01010101-A

Valores NO válidos: 12345678F, 92837465-w ó 1234567-T

Citar
e) ¿En qué consiste la validación del email? Explícala paso a paso. Pon ejemplos de tres valores válidos y tres valores no válidos.

Se inicializa una expresión regular mediante la variable local "ercorreo". Para que se cumpla la expresión regular el dato entredo en el campo "emaill" NO tiene que empezar  con "@" ni con un espacio en blanco. El símbolo "+" indica que la subcadena contiene el símbolo al que precede una o más veces. Luego tiene que contener un símbolo "@" seguido de una subcadena que no contenga ni "@", ni espacios en blanco, ni punto. Al final tiene que acabar con un punto y cualquier carácter las veces que queramos, que no se ni "@", ni punto, ni espacio en blanco y después de esa subcadena no puedo haber ningún carácter "@", ni espacio en blanco ni punto.
La condicional que maneja dicho campo hace un test sobre el dato entredo. Si se cumple la expresión regular no se ejecuta el código de la condicional, pero si no se cumple, se muestra un mensaje: "Contenido del email no es un correo electrónico válido." y la función devuelve false.

Valores válidos: jfkkjasl@fljafj.fjaksdjfa, ljfajs@jflkajf.34, 78484@787484.ji

Valores NO válidos: kfldsjf, @kfaslfs.jkflajskl, fjlsajl  @ jffkls.com

Citar
f) ¿Cómo se consigue que no se envíe el formulario si no se cumplen los requisitos exigidos?


Código: [Seleccionar]
onsubmit="return Valida(this);
Si la devolución de la función es false se cancela la acción del método "submit()".

Gracias.

PD: No estoy muy seguro si entiendo esto:

Código: [Seleccionar]
/(^([0-9]{5,5})|^)$/
Yo interpreto que significa: que la subcadena empiece y termine con un dígito de número entre 0 y 9 y que tenga un longitud mínima y máxima de 5 dígitos o que empiece. Pero que significa "|^". Que empiece pero con qué si luego no hay ningún carácter?

120
Buenas tardes. Subo una posible solución del ejercicio CU01184E del curso JavaScript desde cero.

Citar
EJERCICIO

Escribe este código en un editor y responde a las siguientes preguntas:

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

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

</head>

<body><h2>Cursos aprenderaprogramar.com</h2><h3>Ejemplos JavaScript</h3>

<a href="javascript:void(0);" onclick="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;">Pulsa aquí para proceder</a>
</body></html>

Citar
a) ¿Para qué se utiliza aquí javascript: void(0)?

Citar
Void es un operador JavaScript que evalúa (ejecuta) la expresión que se le pasa como argumento y a continuación devuelve <<undefined>>. En este caso, javascript:void(0) ejecuta 0, que en realidad no tiene ningún efecto, y devuelve undefined. ¿Y qué significa esto? Pues lo mismo que href="javascript://", es decir, que simplemente se crea un link que no enlaza con ningún lado (o podríamos decir que enlaza con undefined, lo cual es enlazar con ningún lado).

Citar
b) Explica paso a paso qué es lo que hace el código JavaScript que se ha incluido como respuesta al evento click.

Primero se establece una condicional mediante el método "confirm()" al que si se cumple se ejecuta el código a continuación. La variable local f es referenciada a la creación de un formulario. Después se establece, para dicho formulario, un estilo de tipo 'none', es decir, que no será visible. Mediante la instrucción "this.parentNode.appendChild(f)" se incluye el formulario en el padre del elemento <a>, es decir, al <body>. Para el atributo method del fomulario se establece "post", para el atributo action se establece el mismo valor que tenía el elemento que recibe el evento. A través de la variable local "m" se crea un elemento tipo "input". Para este elemento se modifican los atributos "type" a "hidden", el "name" a "_method" y el "value" a "delete". Dicho elemento se incluye al formulario mediante la instrucción: "f.appendChild(m)".
La variable local "s" crea otro elemento "input". Para este elemento se modifican los atributos: "type" a "hidden", "name" a "authenticity_token" y "value" a "aprenderaprogramar.com=". También se incluye al formulario (f.appendChild(s)). Se envía el formulario con la instrucción: "f.submit()".

Citar
c) ¿Qué implica el uso de return false; en este código?

Impide el envío del formulario, cancela la acción (submit()) que está establecida por defecto a dicho método.

Citar
d) Modifica el código para que la apariencia y resultados sean iguales pero sin usar un elemento <a> … </a>

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>
</head>
<body>
<h2>Cursos aprenderaprogramar.com</h2>
<h3>Ejemplos JavaScript</h3>
<span href="javascript:void(0);" onclick="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;">Pulsa aquí para proceder
  </span>
</body>
</html>

Gracias

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

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