domingo, 13 de marzo de 2016

Un test con valoraciones diferenciadas según la pregunta y respuesta

Esto es un test que puede servir de modelo para la realización de cualquiera otro.
La respuesta correcta o incorrecta de cada una de las preguntas puede ser valorada con la puntuación que el creador del test considere en función de su dificultad o importancia.
Ver el test en ventana emergente.
Este es el código HTML con el javascript:
<!DOCTYPE html>
<html>
<head>
<title>Test de conocimientos previos</title>
<meta charset="UTF-8" />
<meta name="Author" content="Ángel Ricardo Puente Pérez">
<script src="test.js"></script>
<link href="test.css" rel="stylesheet" type="text/css" />
</head>
<body onload="alerta()">
    <h1>PRUEBA GENERAL DE CONOCIMIENTOS</h1>
    <form name=cuestionario>
            <table>                      
<!-- Aquí comienzan las preguntas que puedes modificar. Pon cuidado
en no modificar el código que no corresponde al texto de las preguntas y respuestas.
Puedes ir haciendo copias para salvar los cambios conforme vayas avanzando-->
            <tbody>          
              <tr>          
            <td><b>
1. De los siguientes apuntes biográficos de Rafael Alberti, elige el verdadero.</b>
            <blockquote>
            <input name=pregunta1 onclick="respuesta1('A')" type=radio value=A>
            A. Era el autor de "Marinero en tierra".<BR>
            <input name=pregunta1 onclick="respuesta1('B')" type=radio value=B>
            B. Fue Catedrático de la Universidad de Sevilla.<BR>
            <input name=pregunta1 onclick="respuesta1('C')" type=radio value=C>
            C. Era el último poeta de la Generación del 98.<BR>
            </blockquote>          
            </td>
            </tr>          
            <tr>          
            <td><b>              
2. Rafael Alberti y Gonzalo Torrente Ballester son dos escritores españoles fallecidos en 1999. Elige de entre los siguientes autores el que es contemporáneo de ellos.          
            </b>
            <blockquote>
            <input name=pregunta2 onclick="respuesta2('A')" type=radio value=A>
            A. José de Espronceda.<BR>
            <input name=pregunta2 onclick="respuesta2('B')" type=radio value=B>
            B. Miguel Delibes.<BR>
            <input name=pregunta2 onclick="respuesta2('C')" type=radio value=C>
            C. Rubén Darío.<BR>
            </blockquote>          
            </td>
            </tr>          
            <tr>          
            <td><b>          
3. De las siguientes Comunidades Autónomas señala la que no es uniprovincial.          
            </b>
            <blockquote>
            <input name=pregunta3 onclick="respuesta3('A')" type=radio value=A>
            A. Murcia.<BR>
            <input name=pregunta3 onclick="respuesta3('B')" type=radio value=B>
            B. Extremadura.<BR>
            <input name=pregunta3 onclick="respuesta3('C')" type=radio value=C>
            C. Baleares.<BR>
            </blockquote>                      
            </td>
            </tr>          
            <tr>          
            <td><b>      
4. De los siguientes grupos de características de distintas zonas de la Península Ibérica, ¿Qué grupo corresponde al clima mediterráneo?              
            </b>
            <blockquote>
            <input name=pregunta4 onclick="respuesta4('A')" type=radio value=A>
            A. Castaños, tilos, eucaliptos, maíz, ganado vacuno.<BR>
            <input name=pregunta4 onclick="respuesta4('B')" type=radio value=B>
            B. Robles, chopos, trigo, conejos, perdices, ganado lanar.<BR>
            <input name=pregunta4 onclick="respuesta4('C')" type=radio value=C>
            C. Naranjos, limones,aves acuáticas, ganado caprino.<BR>
            </blockquote>         
            </td>
            </tr>          
            <tr>          
            <td><b>      
5. El aumento de la temperatura en la tierra puede provocar un deshielo polar y como consecuencia el nivel de las aguas se elevaría. Marca el significado de la expresión "efecto invernadero".         
            </b>
            <blockquote>
            <input name=pregunta5 onclick="respuesta5('A')" type=radio value=A>
            A. Eliminación del dióxido de carbono.<BR>
            <input name=pregunta5 onclick="respuesta5('B')" type=radio value=B>
            B. Recalentamiento de la atmósfera.<BR>
            <input name=pregunta5 onclick="respuesta5('C')" type=radio value=C>
            C. Conservación de los vegetales y las flores.<BR>
            </blockquote>        
            </td>
            </tr>          
            <tr>          
            <td><b>          
6. La tierra tarda aproximadamente 365 días en completar una órbita alrededor del sol.Señala el fenómeno que sucede durante este viaje.          
            </b>
            <blockquote>
            <input name=pregunta6 onclick="respuesta6('A')" type=radio value=A>
            A. Las estaciones del año.<BR>
            <input name=pregunta6 onclick="respuesta6('B')" type=radio value=B>
            B. Las zonas climáticas.<BR>
            <input name=pregunta6 onclick="respuesta6('C')" type=radio value=C>
            C. Los días y las noches.<BR>
            </blockquote>          
            </td>
            </tr>          
            <tr>          
            <td><b>      
7. Si quieres ir de vacaciones a la isla de Cuba, ¿qué océano o mar deberás atravesar?:              
            </b>
            <blockquote>
            <input name=pregunta7 onclick="respuesta7('A')" type=radio value=A>
            A. El mar Mediterráneo.<BR>
            <input name=pregunta7 onclick="respuesta7('B')" type=radio value=B>
            B. El océano Atlántico.<BR>
            <input name=pregunta7 onclick="respuesta7('C')" type=radio value=C>
            C. El océano Pacífico.<BR>
            </blockquote>        
            </td>
            </tr>          
            <tr>          
            <td><b>      
8. De las siguientes palabras señala la que sea compuesta:          
            </b>
            <blockquote>
            <input name=pregunta9 onclick="respuesta9('A')" type=radio value=A>
            A. Saltamontes.<BR>
            <input name=pregunta9 onclick="respuesta9('B')" type=radio value=B>
            B. Intolerable.<BR>
            <input name=pregunta9 onclick="respuesta9('C')" type=radio value=C>
            C. Comparación.<BR>
            </blockquote>         
            </td>
            </tr>          
            <tr>          
            <td><b>      
9.De las siguientes palabras señala la que sea derivada:                  
            </b>
            <blockquote>
            <input name=pregunta8 onclick="respuesta8('A')" type=radio value=A>
            A. Empanar.<BR>
            <input name=pregunta8 onclick="respuesta8('B')" type=radio value=B>
            B. Altavoz.<BR>
            <input name=pregunta8 onclick="respuesta8('C')" type=radio value=C>
            C. Lavacoches.<BR>
            </blockquote>     
            </td>
            </tr>          
            <tr>          
            <td><b>      
10. La obra de teatro: "Historia de una escalera", fue escrita por:                  
            </b>
            <blockquote>
            <input name=pregunta10 onclick="respuesta10('A')" type=radio value=A>
            A. Francisco Umbral.<BR>
            <input name=pregunta10 onclick="respuesta10('B')" type=radio value=B>
            B. Antonio Gala.<BR>
            <input name=pregunta10 onclick="respuesta10('C')" type=radio value=C>
            C. Antonio Buero Vallejo.<BR>
            </blockquote>         
            </td>
            </tr>          
            <tr>          
            <td><b>      
11. ¿Cuál será el precio de un paraguas si después de hacernos un descuento del 15% hemos pagado 17 €?                  
            </b>
            <blockquote>
            <input name=pregunta11 onclick="respuesta11('A')" type=radio value=A>
            A. 17 €.<BR>
            <input name=pregunta11 onclick="respuesta11('B')" type=radio value=B>
            B. 20 €.<BR>
            <input name=pregunta11 onclick="respuesta11('C')" type=radio value=C>
            C. 14,45 €.<BR>
            </blockquote>         
            </td>
            </tr>          
            <tr>          
            <td><b>      
12. El valor de un piso es 180.000 €. Una familia paga 2/5 del valor. ¿Cuánto les queda por pagar?                      
            </b>
            <blockquote>
            <input name=pregunta12 onclick="respuesta12('A')" type=radio value=A>
            A. 108.000 €.<BR>
            <input name=pregunta12 onclick="respuesta12('B')" type=radio value=B>
            B. 144.000 €.<BR>
            <input name=pregunta12 onclick="respuesta12('C')" type=radio value=C>
            C. 36.000 €.<BR>
            </blockquote>         
            </td>
            </tr>          
            <tr>          
            <td><b>      
13.¿Cuánto costará vallar un terreno que tiene de perímetro 1 km, 7 hm, 86 dam y 32 m, si cada metro de alambre cuesta 1,5 €?                      
            </b>
            <blockquote>
            <input name=pregunta13 onclick="respuesta13('A')" type=radio value=A>
            A. 3.000 €.<BR>
            <input name=pregunta13 onclick="respuesta13('B')" type=radio value=B>
            B. 3.888 €.<BR>
            <input name=pregunta13 onclick="respuesta13('C')" type=radio value=C>
            C. 388 €.<BR>
            </blockquote>       
            </td>
            </tr>          
            <tr>          
            <td><b>      
14. ¿Cuánto paga cada uno de los 5 comensales en un restaurante, si les cobran 50 € por los primeros platos, 55 € por los segundos y 40 € por los postres?              
            </b>
            <blockquote>
            <input name=pregunta14 onclick="respuesta14('A')" type=radio value=A>
            A. 30 €.<BR>
            <input name=pregunta14 onclick="respuesta14('B')" type=radio value=B>
            B. Invita el restaurante.<BR>
            <input name=pregunta14 onclick="respuesta14('C')" type=radio value=C>
            C. 29 €.<BR>
            </blockquote>          
            </td>
            </tr>          
            <tr>          
            <td><b>      
15. Calcula el área de una parcela de forma rectangular que mide 4 hm de largo y 25 m de ancho.          
            </b>
            <blockquote>
            <input name=pregunta15 onclick="respuesta15('A')" type=radio value=A>
            A. 10.000 metros cuadrados.<BR>
            <input name=pregunta15 onclick="respuesta15('B')" type=radio value=B>
            B. 100.000 metros cuadrados.<BR>
            <input name=pregunta15 onclick="respuesta15('C')" type=radio value=C>
            C. 1.000 metros cuadrados.<BR>
            </blockquote>        
            </td>
            </tr>              
<!-- Aquí acaban las preguntas que puedes modificar-->         
            </table>
            <table>
            <tr bgColor=#cc0000>
            <td width="33%" align="left">       
              <input name="submit" onclick="examinar()" type="button" value="Acabado">
            </td>
            <td width="34%" align="center">
            <input name="Reset" onclick="avisoreset()" type="button" value="Empezar de nuevo">
            <td width="33%" align="right">
            <input name="solucion" onclick="infosolucio()" type="button" value="Soluciones">
            </td>
            </tr>
            </table>
  </form>
</body>
</html>

Este es el archivo test.js:
function alerta(){
    alert("Bienvenido al test de conocimientos.\n\nSelecciona las respuestas que creas correctas teniendo en cuenta las siguientes consideraciones:\n\n1.- Los aciertos tienen puntuaciones variables en función de la dificultad de la pregunta.\n2.- Las preguntas no contestadas ni suman ni restan puntos.\n3.- Las respuestas equivocadas restan más o menos puntos en función del tipo de fallo.");  
}
function avisoreset() {
    if(confirm("¡ATENCIÓN!. Los datos del test se van a reiniciar.")) {
    document.cuestionario.reset();
    parent.location.reload();
    }  
}
function infosolucio(){
    alert("SOLUCIONES\n\n1:A   6:A  11:B\n2:B   7:B  12:A\n3:B   8:A  13:B\n4:C   9:A  14:C\n5:B  10:C  15:A");
}

var pregunta1 = "0";
var pregunta2 = "0";
var pregunta3 = "0";
var pregunta4 = "0";
var pregunta5 = "0";
var pregunta6 = "0";
var pregunta7 = "0";
var pregunta8 = "0";
var pregunta9 = "0";
var pregunta10 = "0";
var pregunta11 = "0";
var pregunta12 = "0";
var pregunta13 = "0";
var pregunta14 = "0";
var pregunta15 = "0";
function respuesta1(valor)
{pregunta1 = valor};
function respuesta2(valor)
{pregunta2 = valor};
function respuesta3(valor)
{pregunta3 = valor};
function respuesta4(valor)
{pregunta4 = valor};
function respuesta5(valor)
{pregunta5 = valor};
function respuesta6(valor)
{pregunta6 = valor};
function respuesta7(valor)
{pregunta7 = valor};
function respuesta8(valor)
{pregunta8 = valor};
function respuesta9(valor)
{pregunta9 = valor};
function respuesta10(valor)
{pregunta10 = valor};
function respuesta11(valor)
{pregunta11 = valor};
function respuesta12(valor)
{pregunta12 = valor};
function respuesta13(valor)
{pregunta13 = valor};
function respuesta14(valor)
{pregunta14 = valor};
function respuesta15(valor)
{pregunta15 = valor};
                function examinar()
                {
                puntuacion=0;
                nocontesta=0;
                contestadas=0;
                puntosmaximos=0;
                    if(pregunta1!= "0" )
                    {
                    contestadas=contestadas+1
                    puntosmaximos=puntosmaximos+2
                    if(pregunta1 == "A") {puntuacion=puntuacion+2}
                    if(pregunta1 == "B") {puntuacion=puntuacion+0}
                    if(pregunta1 == "C") {puntuacion=puntuacion-1}
                    }
                    else {nocontesta=nocontesta+1}
                    if(pregunta2 != "0")
                    {
                    contestadas=contestadas+1
                    puntosmaximos=puntosmaximos+1
                    if(pregunta2 == "A") {puntuacion=puntuacion+0}
                    if(pregunta2 == "B") {puntuacion=puntuacion+1}
                    if(pregunta2 == "C") {puntuacion=puntuacion+0}
                    }
                    else {nocontesta=nocontesta+1}
                    if(pregunta3!= "0" )
                    {
                    contestadas=contestadas+1
                    puntosmaximos=puntosmaximos+2
                    if(pregunta3 == "A") {puntuacion=puntuacion+0}
                    if(pregunta3 == "B") {puntuacion=puntuacion+2}
                    if(pregunta3 == "C") {puntuacion=puntuacion-1}
                    }
                    else {nocontesta=nocontesta+1}
                    if(pregunta4 != "0")
                    {
                    contestadas=contestadas+1
                    puntosmaximos=puntosmaximos+1
                    if(pregunta4 == "A") {puntuacion=puntuacion+0}
                    if(pregunta4 == "B") {puntuacion=puntuacion+0}
                    if(pregunta4 == "C") {puntuacion=puntuacion+1}
                    }
                    else {nocontesta=nocontesta+1}
                    if(pregunta5!= "0" ){
                    contestadas=contestadas+1
                    puntosmaximos=puntosmaximos+2
                    if(pregunta5 == "A") {puntuacion=puntuacion-2}
                    if(pregunta5 == "B") {puntuacion=puntuacion+2}
                    if(pregunta5 == "C") {puntuacion=puntuacion-3}
                    }
                    else {nocontesta=nocontesta+1}
                    if(pregunta6 != "0")
                    {
                    contestadas=contestadas+1
                    puntosmaximos=puntosmaximos+3
                    if(pregunta6 == "A") {puntuacion=puntuacion+3}
                    if(pregunta6 == "B") {puntuacion=puntuacion+0}
                    if(pregunta6 == "C") {puntuacion=puntuacion-3}
                    }
                    else {nocontesta=nocontesta+1}
                    if(pregunta7!= "0" )
                    {
                    contestadas=contestadas+1
                    puntosmaximos=puntosmaximos+2
                    if(pregunta7 == "A") {puntuacion=puntuacion+0}
                    if(pregunta7 == "B") {puntuacion=puntuacion+2}
                    if(pregunta7 == "C") {puntuacion=puntuacion-1}
                    }
                    else {nocontesta=nocontesta+1}
                    if(pregunta8 != "0")
                    {
                    contestadas=contestadas+1
                    puntosmaximos=puntosmaximos+1
                    if(pregunta8 == "A") {puntuacion=puntuacion+1}
                    if(pregunta8 == "B") {puntuacion=puntuacion+0}
                    if(pregunta8 == "C") {puntuacion=puntuacion+0}
                    }
                    else {nocontesta=nocontesta+1}
                    if(pregunta9!= "0" )
                    {
                    contestadas=contestadas+1
                    puntosmaximos=puntosmaximos+3
                    if(pregunta9 == "A") {puntuacion=puntuacion+3}
                    if(pregunta9 == "B") {puntuacion=puntuacion+0}
                    if(pregunta9 == "C") {puntuacion=puntuacion-1}
                    }
                    else {nocontesta=nocontesta+1}
                    if(pregunta10 != "0")
                    {
                    contestadas=contestadas+1
                    puntosmaximos=puntosmaximos+2
                    if(pregunta10 == "A") {puntuacion=puntuacion+0}
                    if(pregunta10 == "B") {puntuacion=puntuacion-1}
                    if(pregunta10 == "C") {puntuacion=puntuacion+2}
                    }
                    else {nocontesta=nocontesta+1}
                    if(pregunta11!= "0" )
                    {
                    contestadas=contestadas+1
                    puntosmaximos=puntosmaximos+2
                    if(pregunta11 == "A") {puntuacion=puntuacion+0}
                    if(pregunta11 == "B") {puntuacion=puntuacion+2}
                    if(pregunta11 == "C") {puntuacion=puntuacion-1}
                    }
                    else {nocontesta=nocontesta+1}
                    if(pregunta12 != "0")
                    {
                    contestadas=contestadas+1
                    puntosmaximos=puntosmaximos+2
                    if(pregunta12 == "A") {puntuacion=puntuacion+2}
                    if(pregunta12 == "B") {puntuacion=puntuacion+0}
                    if(pregunta12 == "C") {puntuacion=puntuacion-1}
                    }
                    else {nocontesta=nocontesta+1}
                    if(pregunta13 != "0")
                    {
                    contestadas=contestadas+1
                    puntosmaximos=puntosmaximos+3
                    if(pregunta13 == "A") {puntuacion=puntuacion+0}
                    if(pregunta13 == "B") {puntuacion=puntuacion+3}
                    if(pregunta13 == "C") {puntuacion=puntuacion-1}
                    }else {nocontesta=nocontesta+1}
                    if(pregunta14 != "0")
                    {
                    contestadas=contestadas+1
                    puntosmaximos=puntosmaximos+2
                    if(pregunta14 == "A") {puntuacion=puntuacion+0}
                    if(pregunta14 == "B") {puntuacion=puntuacion-3}
                    if(pregunta14 == "C") {puntuacion=puntuacion+2}
                    }
                    else {nocontesta=nocontesta+1}
                    if(pregunta15 != "0"){
                    contestadas=contestadas+1
                    puntosmaximos=puntosmaximos+2
                    if(pregunta15 == "A") {puntuacion=puntuacion+2}
                    if(pregunta15 == "B") {puntuacion=puntuacion+0}
                    if(pregunta15 == "C") {puntuacion=puntuacion-1}
                    }
                    else {nocontesta=nocontesta+1}
                    if (puntosmaximos!=0)
                    {indiceacierto=Math.round(100*(puntuacion/puntosmaximos))
                    }
                    else{indiceacierto=0}
                    if(indiceacierto==100)
                    {
                    mensaje="SOBRESALIENTE. Tu nivel es excelente "}
                    if(indiceacierto<100&&indiceacierto>=75)
                    {
                    mensaje="NOTABLE. Has demostrado un buen nivel."}
                    if(indiceacierto<75&&indiceacierto>=50)
                    {
                    mensaje="BIEN. Puedes defenderte, pero debes repasar alguna cosa."}
                    if(indiceacierto<50&&indiceacierto>=25)
                    {
                    mensaje="SUFICIENTE. Debes repasar un poquito."}
                    if(indiceacierto<25)
                    {
                    mensaje="INSUFICIENTE. Tienes que mejorar bastante."}
                    if(contestadas==0)
                    {
                    mensaje="Debes contestar más preguntas"}
                alert("Tu puntuación es "+puntuacion+"." +  "\n\nEl número máximo de puntos que podías conseguir era de " + puntosmaximos + ".\n\nHas dejado sin contestar "+ nocontesta+".\n\nTu porcentaje de aciertos es de "+indiceacierto+"%.\n\n"+mensaje+". ")
                }

Este es el archivo test.css:
body {
    margin-left:20px;
    margin-top: 20px;
    margin-right: 50px;
    font-weight: bold;
    color: #bbbbbb;
    background-color:#fcfaf8;
    font-family: Arial, Verdana, sans-serif;
    }
table, th{
    margin-left: auto;
    margin-right: auto;
    width:650px;
    border: 1px solid #000;
    color: #777777;
    }
h1{
    color:#cc0000;
    text-align:center;
    }

No hay comentarios:

Publicar un comentario