Este es el código que he utilizado para poder hacer que, una vez que el alumno rellenase la evaluación, el programa le enviara una respuesta con el número de aciertos y fallos que ha cometido.
<script>
function valida(){
var f=0,n=document.pregunta.length,a=0 ,i=0,j=0;
alert("preguntas"+document.pregunta.length);
for(i=0; i<document.pregunta.length; i++)
for(j=0; j<document.pregunta[i].respuesta.length; j++)
if(document.pregunta[i].respuesta[j].checked)
a=a+parseInt(document.pregunta[i].respuesta[j].value);
f = n - a;
alert("Has tenido "+f+" fallos y "+ a +" aciertos");
}
</script>
Con la palabra reservada function estoy declarando una nueva función ( la he llamado "valida", pero podría haberla llamado con otro nombre, el que yo quisiera,siempre que fuese con paréntesis ()).
Las variables utilizadas se declaran con la palabra reservada var seguido del identificador de la variable.
En el ejemplo he declarado 5 variables de tipo entero:
n-> Obtiene inicialmente el valor del número de preguntas en total que tiene el formulario. Lo hace con la línea n=document.pregunta.length,
a->Variable que nos almacenará los aciertos.
f -> Lo inicializamos a cero, para después asignarle el valor del número de fallos. El número de fallos se asigna f = n –a; lógicamente como una formula cualquiera.
i-> variable que actuará como contador.
j->También actuará como contador.
Éstas dos últimas variables las he inicializado a 0, para que cuenten desde cero hasta… (el valor que corresponda). Las dos se utilizan para los bucles.
alert(“el texto que quieras mostrar”); -> muestra una ventanita por pantalla.
Identificador= >Es el nombre que utilizas para referirte a una variable en concreta. (Por ej: f, n, a, i, j, son los nombres que he utilizado en el ejemplo).
Bloque de código=> Secuencia de líneas de código que estén encerradas entre llaves, es decir, entre { y }.
Bucles => Instrucción o secuencia de instrucciones encerradas en un bloque de código que se ejecutan repetidas veces hasta que se cumpla una condición.
Arrays => Son tablas, es decir, agrupación de variables que tienen el mismo nombre y, de forma que, para acceder a ellas se hace a través de un índice entre corchetes especificando el elemento concreto al que se quiere acceder. Todos los arrays empiezan con índice cero.
Ejemplo:Se declara un array a[]={21 , 442 , 35}; => para acceder al primer elemento haríamos a[0], para el 2º a[1] y así sucesivamente..
Si queremos saber cuantos elementos array haríamos a.length.
Una variable se diferencia a ella en que para acceder a su valor, basta con el nombre de la variable. Ej: Se declara a como una variable a = 0; , y para acceder a su valor siempre nos referimos como a.
a = a + 1; -> Es esquivalente a -> a++;
Otras palabras reservadas de JavaScript:
document -> La utilizamos para referirnos al formulario que utilizamos. Cuando realizamos document.pregunta[0] -> Estamos accediendo a la variable pregunta(o al primer elemento de la tabla) con índice 0. Si queremos acceder a la primera respuesta de esta pregunta haríamos document.pregunta[0].respuesta[0], y si al final quisiésemos acceder al valor de esta respuesta añadiríamos .value, -> document.pregunta[0].respuesta[0].value
value -> No es una palabra reservada, es un atributo, es decir, una propiedad mediante la cual obtenemos el valor de la variable.
length ->También es un atributo o propiedad, que se utilizan en “tablas o arrays”.
Todas las instrucciones acaban en punto y coma, excepto las secuencias de control de flujo: como if(), for(), …
parseInt()-> Es una función (nos fijamos en los paréntesis, es lo que las diferencia). Esta función la utilizamos para pasar un valor de tipo cadena de texto a tipo entero. Variable_tipo_entero = parseInt(“1”);
Ojo: No es lo mismo “1” que 1, por eso se hace esta conversión. Lo primero es de tipo cadena de texto y lo segundo es de tipo entero.
Bucles:
Sólo hemos utilizado el bucle for(). Para utilizarlo lo haces de la siguiente manera:
for(variable_de_tipo_entero; condición_para_que_se_repita; el_incremento_de_la_variable_en_cada_vuelta )
{
Instrcciones a repetir;
}
Instrucciones condicionales:
Lo que haya dentro de las llaves se realizará sólo una vez. (Lógicamente, un if dentro de un bucle sí que se repetiría)
if(condición)
{
instrucciones;
}
Las condiciones siempre devuelven true o false, según sean cierta o falsa respectivamente.
Y bueno, esto es todo lo que he aprendido gracias ha esta asignatura, que la verdad es que ha sido bastante.