cuestionarios
This commit is contained in:
parent
376641f443
commit
cd371f299e
188
bloque1/tema9.md
188
bloque1/tema9.md
|
|
@ -1,6 +1,9 @@
|
|||
# Bloque 1 · Tema 9
|
||||
|
||||
## Instrumentos de acceso electrónico
|
||||
|
||||
## Sedes electrónicas, canales, identificación y autenticación
|
||||
|
||||
## Infraestructuras y servicios comunes
|
||||
|
||||
## Introducción
|
||||
|
|
@ -8,29 +11,32 @@
|
|||
Los instrumentos de acceso electrónico permiten a la ciudadanía relacionarse con las Administraciones Públicas de forma segura, accesible y eficaz.
|
||||
|
||||
Este tema es habitual en el examen TAI, especialmente en preguntas sobre:
|
||||
- Conceptos básicos de Administración electrónica.
|
||||
- Diferencias entre identificación y autenticación.
|
||||
- Función de las sedes electrónicas.
|
||||
- Servicios comunes de la Administración electrónica.
|
||||
|
||||
* Conceptos básicos de Administración electrónica.
|
||||
* Diferencias entre identificación y autenticación.
|
||||
* Función de las sedes electrónicas.
|
||||
* Servicios comunes de la Administración electrónica.
|
||||
|
||||
## 1. Instrumentos de acceso electrónico
|
||||
|
||||
### 1.1. Concepto
|
||||
|
||||
Los instrumentos de acceso electrónico son los medios y herramientas que permiten:
|
||||
- El acceso a los servicios públicos electrónicos.
|
||||
- La interacción segura con las Administraciones Públicas.
|
||||
|
||||
* El acceso a los servicios públicos electrónicos.
|
||||
* La interacción segura con las Administraciones Públicas.
|
||||
|
||||
Incluyen:
|
||||
- Sedes electrónicas.
|
||||
- Canales de acceso.
|
||||
- Sistemas de identificación y autenticación.
|
||||
- Infraestructuras y servicios comunes.
|
||||
|
||||
>### Mini-resumen apartado 1
|
||||
* Sedes electrónicas.
|
||||
* Canales de acceso.
|
||||
* Sistemas de identificación y autenticación.
|
||||
* Infraestructuras y servicios comunes.
|
||||
|
||||
> ### Mini-resumen apartado 1
|
||||
>
|
||||
>- Permiten el acceso electrónico a los servicios públicos.
|
||||
>- Garantizan seguridad, accesibilidad y eficacia.
|
||||
> * Permiten el acceso electrónico a los servicios públicos.
|
||||
> * Garantizan seguridad, accesibilidad y eficacia.
|
||||
|
||||
## 2. Sedes electrónicas
|
||||
|
||||
|
|
@ -45,129 +51,153 @@ No es una simple página web informativa.
|
|||
### 2.2. Características y garantías
|
||||
|
||||
La sede electrónica debe garantizar:
|
||||
- La identificación del titular de la sede.
|
||||
- La integridad de la información publicada.
|
||||
- La veracidad y actualización de los contenidos.
|
||||
- La disponibilidad permanente.
|
||||
- La accesibilidad y la seguridad.
|
||||
|
||||
* La identificación del titular de la sede.
|
||||
* La integridad de la información publicada.
|
||||
* La veracidad y actualización de los contenidos.
|
||||
* La disponibilidad permanente.
|
||||
* La accesibilidad y la seguridad.
|
||||
|
||||
La Administración titular es responsable de toda la información y servicios ofrecidos en la sede.
|
||||
|
||||
### 2.3. Elementos obligatorios de la sede electrónica
|
||||
|
||||
Toda sede electrónica debe incluir, al menos:
|
||||
- Identificación de la sede y de su titular.
|
||||
- Sistemas de identificación y firma electrónica.
|
||||
- Relación de servicios y procedimientos disponibles.
|
||||
- Fecha y hora oficial, a efectos de cómputo de plazos.
|
||||
- Acceso al registro electrónico.
|
||||
- En su caso, enlace al tablón de anuncios o edictos.
|
||||
|
||||
* Identificación de la sede y de su titular.
|
||||
* Sistemas de identificación y firma electrónica.
|
||||
* Relación de servicios y procedimientos disponibles.
|
||||
* Fecha y hora oficial, a efectos de cómputo de plazos.
|
||||
* Acceso al registro electrónico.
|
||||
* En su caso, enlace al tablón de anuncios o edictos.
|
||||
|
||||
### 2.4. Diferencia entre sede electrónica y portal de Internet
|
||||
|
||||
Distinción típica de examen:
|
||||
|
||||
- Portal de Internet:
|
||||
- Finalidad informativa.
|
||||
- Contiene noticias, organigramas o guías.
|
||||
- No requiere certificados ni genera efectos jurídicos.
|
||||
* Portal de Internet:
|
||||
|
||||
- Sede electrónica:
|
||||
- Finalidad transaccional.
|
||||
- Permite realizar trámites administrativos.
|
||||
- Genera efectos jurídicos plenos.
|
||||
* Finalidad informativa.
|
||||
* Contiene noticias, organigramas o guías.
|
||||
* No requiere certificados ni genera efectos jurídicos.
|
||||
|
||||
* Sede electrónica:
|
||||
|
||||
* Finalidad transaccional.
|
||||
* Permite realizar trámites administrativos.
|
||||
* Genera efectos jurídicos plenos.
|
||||
|
||||
### 2.5. Punto de Acceso General (PAG)
|
||||
|
||||
El Punto de Acceso General de la Administración General del Estado actúa como puerta de entrada común a las sedes electrónicas de los distintos organismos.
|
||||
|
||||
Facilita:
|
||||
- La localización de servicios.
|
||||
- El acceso unificado a las sedes electrónicas.
|
||||
|
||||
>### Mini-resumen apartado 2
|
||||
* La localización de servicios.
|
||||
* El acceso unificado a las sedes electrónicas.
|
||||
|
||||
> ### Mini-resumen apartado 2
|
||||
>
|
||||
>- La sede electrónica es el punto de acceso oficial.
|
||||
>- Garantiza identidad, integridad y seguridad.
|
||||
>- Es distinta del portal web informativo.
|
||||
>- El PAG centraliza el acceso a las sedes.
|
||||
> * La sede electrónica es el punto de acceso oficial.
|
||||
> * Garantiza identidad, integridad y seguridad.
|
||||
> * Es distinta del portal web informativo.
|
||||
> * El PAG centraliza el acceso a las sedes.
|
||||
|
||||
## 3. Canales de acceso
|
||||
|
||||
### 3.1. Tipos de canales
|
||||
|
||||
Las Administraciones Públicas pueden ofrecer:
|
||||
- Canal presencial.
|
||||
- Canal telefónico.
|
||||
- Canal electrónico.
|
||||
|
||||
* Canal presencial.
|
||||
* Canal telefónico.
|
||||
* Canal electrónico.
|
||||
|
||||
Los canales deben ser:
|
||||
- Accesibles.
|
||||
- Interoperables.
|
||||
- Seguros.
|
||||
|
||||
* Accesibles.
|
||||
* Interoperables.
|
||||
* Seguros.
|
||||
|
||||
> ### Mini-resumen apartado 3
|
||||
>- Existen varios canales de acceso.
|
||||
>- El canal electrónico es esencial en la Administración actual.
|
||||
>
|
||||
> * Existen varios canales de acceso.
|
||||
> * El canal electrónico es esencial en la Administración actual.
|
||||
|
||||
## 4. Identificación y autenticación
|
||||
|
||||
### 4.1. Identificación electrónica
|
||||
|
||||
La identificación electrónica permite conocer:
|
||||
- Quién es la persona que accede al servicio.
|
||||
|
||||
* Quién es la persona que accede al servicio.
|
||||
|
||||
Sistemas admitidos:
|
||||
- Certificados electrónicos.
|
||||
- DNI electrónico.
|
||||
- Sistemas de claves concertadas (Cl@ve).
|
||||
- Otros sistemas admitidos por las Administraciones Públicas.
|
||||
|
||||
* Certificados electrónicos.
|
||||
* DNI electrónico.
|
||||
* Sistemas de claves concertadas (Cl@ve).
|
||||
* Otros sistemas admitidos por las Administraciones Públicas.
|
||||
|
||||
### 4.2. Autenticación electrónica
|
||||
|
||||
La autenticación electrónica permite:
|
||||
- Verificar la identidad declarada por el usuario.
|
||||
- Confirmar que la persona es quien dice ser.
|
||||
|
||||
* Verificar la identidad declarada por el usuario.
|
||||
* Confirmar que la persona es quien dice ser.
|
||||
|
||||
Identificación y autenticación son conceptos relacionados, pero no idénticos.
|
||||
|
||||
>### Mini-resumen apartado 4
|
||||
> ### Mini-resumen apartado 4
|
||||
>
|
||||
>- Identificación: quién es el usuario.
|
||||
>- Autenticación: verificación de esa identidad.
|
||||
>- Se utilizan distintos sistemas electrónicos.
|
||||
> * Identificación: quién es el usuario.
|
||||
> * Autenticación: verificación de esa identidad.
|
||||
> * Se utilizan distintos sistemas electrónicos.
|
||||
|
||||
## 5. Infraestructuras y servicios comunes
|
||||
|
||||
### 5.1. Concepto
|
||||
|
||||
Las infraestructuras y servicios comunes son plataformas compartidas que:
|
||||
- Facilitan la prestación de servicios electrónicos.
|
||||
- Evitan duplicidades entre Administraciones.
|
||||
- Garantizan interoperabilidad y seguridad.
|
||||
|
||||
* Facilitan la prestación de servicios electrónicos.
|
||||
* Evitan duplicidades entre Administraciones.
|
||||
* Garantizan interoperabilidad y seguridad.
|
||||
|
||||
### 5.2. Principales servicios comunes
|
||||
|
||||
Entre los más relevantes:
|
||||
Entre los más relevantes (muy preguntados en examen):
|
||||
|
||||
- Cl@ve: sistema común de identificación y firma.
|
||||
- @firma: validación de certificados y firmas electrónicas.
|
||||
- SIR: Sistema de Interconexión de Registros.
|
||||
- DIR3: directorio común de unidades orgánicas.
|
||||
- Plataforma de Intermediación de Datos.
|
||||
- Notifica: servicio común de notificaciones electrónicas.
|
||||
* **Cl@ve**: sistema común de identificación y firma electrónica.
|
||||
* **@firma**: validación de certificados y firmas electrónicas.
|
||||
* **SIR**: Sistema de Interconexión de Registros.
|
||||
* **DIR3**: directorio común de unidades orgánicas, oficinas y unidades.
|
||||
* **Plataforma de Intermediación de Datos**: consulta de datos entre Administraciones sin pedirlos al ciudadano.
|
||||
* **Notifica / DEHú**: servicio común de notificaciones electrónicas.
|
||||
* **FACe / FACeB2B**: punto general de entrada de facturas electrónicas.
|
||||
* **GEISER / ORVE**: gestión y digitalización del registro.
|
||||
* **SOROLLA2**: sistema común de gestión económico‑presupuestaria y gastos.
|
||||
* **NÓMINAe**: **solución común para la gestión de la nómina de los empleados públicos**.
|
||||
|
||||
>### Mini-resumen apartado 5
|
||||
⚠️ **Trampa típica de examen**:
|
||||
|
||||
* *NÓMINAe* → nóminas de personal.
|
||||
* *SOROLLA2* → presupuestos y gastos (**no** nóminas).
|
||||
|
||||
> ### Mini-resumen apartado 5
|
||||
>
|
||||
>- Servicios compartidos por las Administraciones.
|
||||
>- Facilitan interoperabilidad y eficiencia.
|
||||
>- Muy habituales en preguntas tipo test.
|
||||
> * Servicios compartidos por las Administraciones.
|
||||
> * Facilitan interoperabilidad y eficiencia.
|
||||
> * Incluyen aplicaciones transversales como NÓMINAe y SOROLLA2.
|
||||
> * Muy habituales en preguntas tipo test.
|
||||
|
||||
>## Mini-resumen final del tema
|
||||
> ## Mini-resumen final del tema
|
||||
>
|
||||
>- Los instrumentos de acceso permiten la relación electrónica.
|
||||
>- La sede electrónica es el acceso oficial con efectos jurídicos.
|
||||
>- El portal es solo informativo.
|
||||
>- Identificación y autenticación no son lo mismo.
|
||||
>- Existen servicios comunes para evitar duplicidades.
|
||||
>- Tema muy frecuente por conceptos y ejemplos prácticos.
|
||||
> * Los instrumentos de acceso permiten la relación electrónica.
|
||||
> * La sede electrónica es el acceso oficial con efectos jurídicos.
|
||||
> * El portal es solo informativo.
|
||||
> * Identificación y autenticación no son lo mismo.
|
||||
> * Existen infraestructuras y servicios comunes de la AGE.
|
||||
> * **NÓMINAe gestiona nóminas; SOROLLA2 gestiona presupuestos**.
|
||||
> * Tema muy frecuente por conceptos y ejemplos prácticos.
|
||||
|
||||
|
|
|
|||
|
|
@ -1,37 +1,122 @@
|
|||
/* --- VARIABLES DE COLOR (Estilo VS Code Dark) --- */
|
||||
:root {
|
||||
--bg-color: #1e1e1e;
|
||||
--text-color: #d4d4d4;
|
||||
--accent-color: #007acc;
|
||||
--titulos-color: #4ec9b0;
|
||||
--border-color: #3b3b3b;
|
||||
--card-bg: #252526;
|
||||
--hover-bg: #2a2d2e;
|
||||
--success: #6a9955;
|
||||
--error: #f44747;
|
||||
--warning: #d7ba7d;
|
||||
}
|
||||
|
||||
/* --- ESTILOS GENERALES --- */
|
||||
body {
|
||||
font-family: system-ui;
|
||||
max-width: 800px;
|
||||
margin: 2rem auto;
|
||||
font-family: 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
|
||||
font-size: 1.1rem;
|
||||
line-height: 1.6;
|
||||
color: var(--text-color);
|
||||
background-color: var(--bg-color);
|
||||
margin: 2rem auto;
|
||||
max-width: 850px;
|
||||
padding: 0 20px;
|
||||
}
|
||||
|
||||
h1 {
|
||||
color: var(--titulos-color);
|
||||
text-align: center;
|
||||
border-bottom: 2px solid var(--accent-color);
|
||||
padding-bottom: 10px;
|
||||
}
|
||||
|
||||
/* --- SELECTOR Y BOTONES --- */
|
||||
select, button {
|
||||
background-color: var(--card-bg);
|
||||
color: var(--text-color);
|
||||
border: 1px solid var(--border-color);
|
||||
padding: 10px 15px;
|
||||
border-radius: 4px;
|
||||
font-size: 1rem;
|
||||
cursor: pointer;
|
||||
transition: all 0.2s ease;
|
||||
}
|
||||
|
||||
select:focus, button:hover {
|
||||
border-color: var(--accent-color);
|
||||
background-color: var(--hover-bg);
|
||||
}
|
||||
|
||||
button#aleatoria {
|
||||
background-color: var(--accent-color);
|
||||
color: white;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
/* --- TARJETA DE PREGUNTA --- */
|
||||
.pregunta {
|
||||
border: 1px solid #ddd;
|
||||
padding: 1rem;
|
||||
margin-bottom: 1rem;
|
||||
background-color: var(--card-bg);
|
||||
border: 1px solid var(--border-color);
|
||||
padding: 2rem;
|
||||
margin-top: 2rem;
|
||||
border-radius: 8px;
|
||||
box-shadow: 0 4px 15px rgba(0,0,0,0.3);
|
||||
}
|
||||
|
||||
.pregunta p strong {
|
||||
color: var(--titulos-color);
|
||||
font-size: 1.2rem;
|
||||
display: block;
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
|
||||
/* --- OPCIONES (Efecto lista de terminal) --- */
|
||||
.opcion {
|
||||
display: block;
|
||||
margin: .25rem 0;
|
||||
padding: 12px 15px;
|
||||
margin: 8px 0;
|
||||
background: var(--bg-color);
|
||||
border: 1px solid transparent;
|
||||
border-radius: 5px;
|
||||
cursor: pointer;
|
||||
transition: 0.2s;
|
||||
}
|
||||
|
||||
#corregir {
|
||||
margin-top: 1rem;
|
||||
padding: .5rem 1rem;
|
||||
.opcion:hover {
|
||||
border-color: var(--accent-color);
|
||||
background: var(--hover-bg);
|
||||
}
|
||||
|
||||
#pregunta-actual {
|
||||
margin-top: 2rem;
|
||||
.opcion input[type="radio"] {
|
||||
margin-right: 12px;
|
||||
accent-color: var(--accent-color);
|
||||
}
|
||||
|
||||
/* --- FEEDBACK Y RESULTADOS --- */
|
||||
#resultado {
|
||||
margin: 20px 0;
|
||||
padding: 15px;
|
||||
border-radius: 5px;
|
||||
border: 2px solid var(--border-color);
|
||||
background: var(--bg-color);
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
#feedback {
|
||||
margin-top: 1rem;
|
||||
font-weight: bold;
|
||||
font-size: 1.2rem;
|
||||
margin-top: 1.5rem;
|
||||
padding: 10px;
|
||||
border-radius: 4px;
|
||||
text-align: center;
|
||||
font-family: 'Consolas', monospace;
|
||||
}
|
||||
|
||||
#quiz:empty {
|
||||
display: none;
|
||||
/* --- ANIMACIÓN DE CARGA --- */
|
||||
@keyframes fadeIn {
|
||||
from { opacity: 0; transform: translateY(10px); }
|
||||
to { opacity: 1; transform: translateY(0); }
|
||||
}
|
||||
|
||||
.pregunta {
|
||||
animation: fadeIn 0.3s ease-out;
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
|
|
@ -19,10 +19,10 @@
|
|||
|
||||
<div id="quiz"></div>
|
||||
|
||||
<button id="corregir">Corregir</button>
|
||||
<!--<button id="corregir">Corregir</button>-->
|
||||
<div id="resultado"></div>
|
||||
|
||||
<button id="aleatoria">Pregunta aleatoria</button>
|
||||
<!--<button id="aleatoria">Pregunta aleatoria</button>-->
|
||||
|
||||
<div id="pregunta-actual"></div>
|
||||
|
||||
|
|
|
|||
|
|
@ -1,102 +1,110 @@
|
|||
const selector = document.getElementById("selector");
|
||||
const quiz = document.getElementById("quiz");
|
||||
const resultado = document.getElementById("resultado");
|
||||
const feedback = document.getElementById("feedback");
|
||||
const preguntaActualContenedor = document.getElementById("pregunta-actual");
|
||||
|
||||
let preguntasCargadas = []; // aquí guardamos el JSON cargado
|
||||
let preguntasCargadas = [];
|
||||
let estado = {
|
||||
indiceActual: 0,
|
||||
aciertos: 0,
|
||||
fallos: 0
|
||||
};
|
||||
|
||||
// --- CARGAR EXAMEN ---
|
||||
selector.addEventListener("change", async () => {
|
||||
const url = selector.value;
|
||||
if (!url) return;
|
||||
|
||||
preguntasCargadas = await fetch(url).then(r => r.json());
|
||||
mostrarPreguntas(preguntasCargadas); // modo examen normal
|
||||
const datos = await fetch(url).then(r => r.json());
|
||||
// Ajustamos por si el JSON viene con una propiedad .preguntas o es un array directo
|
||||
preguntasCargadas = datos.preguntas || datos;
|
||||
|
||||
reiniciarEstadisticas();
|
||||
mostrarSiguientePregunta();
|
||||
});
|
||||
|
||||
// --- MOSTRAR TODAS LAS PREGUNTAS ---
|
||||
function mostrarPreguntas(preguntas) {
|
||||
quiz.innerHTML = "";
|
||||
document.getElementById("pregunta-actual").innerHTML = "";
|
||||
document.getElementById("feedback").textContent = "";
|
||||
|
||||
preguntas.forEach(p => {
|
||||
const div = document.createElement("div");
|
||||
div.className = "pregunta";
|
||||
|
||||
div.innerHTML = `
|
||||
<p><strong>${p.id}.</strong> ${p.pregunta}</p>
|
||||
${Object.entries(p.opciones).map(([letra, texto]) => `
|
||||
<label class="opcion">
|
||||
<input type="radio" name="p${p.id}" value="${letra}">
|
||||
${letra}) ${texto}
|
||||
</label>
|
||||
`).join("")}
|
||||
`;
|
||||
|
||||
quiz.appendChild(div);
|
||||
});
|
||||
|
||||
document.getElementById("corregir").onclick = () => corregir(preguntas);
|
||||
function reiniciarEstadisticas() {
|
||||
estado.indiceActual = 0;
|
||||
estado.aciertos = 0;
|
||||
estado.fallos = 0;
|
||||
quiz.innerHTML = ""; // Limpiamos el modo "lista completa"
|
||||
resultado.textContent = "";
|
||||
}
|
||||
|
||||
// --- CORREGIR EXAMEN COMPLETO ---
|
||||
function corregir(preguntas) {
|
||||
let aciertos = 0;
|
||||
// --- MOSTRAR UNA POR UNA ---
|
||||
function mostrarSiguientePregunta() {
|
||||
feedback.textContent = "";
|
||||
|
||||
preguntas.forEach(p => {
|
||||
const marcada = document.querySelector(`input[name="p${p.id}"]:checked`);
|
||||
if (marcada && marcada.value === p.correcta) aciertos++;
|
||||
});
|
||||
|
||||
resultado.textContent = `Has acertado ${aciertos} de ${preguntas.length}.`;
|
||||
}
|
||||
|
||||
// --- MODO PREGUNTA ALEATORIA ---
|
||||
document.getElementById("aleatoria").addEventListener("click", () => {
|
||||
if (preguntasCargadas.length === 0) {
|
||||
alert("Primero selecciona un examen");
|
||||
if (estado.indiceActual >= preguntasCargadas.length) {
|
||||
finalizarExamen();
|
||||
return;
|
||||
}
|
||||
|
||||
const pregunta = preguntasCargadas[Math.floor(Math.random() * preguntasCargadas.length)];
|
||||
mostrarPreguntaAleatoria(pregunta);
|
||||
});
|
||||
const p = preguntasCargadas[estado.indiceActual];
|
||||
actualizarMarcador();
|
||||
|
||||
// --- MOSTRAR UNA PREGUNTA ALEATORIA ---
|
||||
function mostrarPreguntaAleatoria(p) {
|
||||
quiz.innerHTML = ""; // ocultamos el examen completo
|
||||
resultado.textContent = "";
|
||||
|
||||
const cont = document.getElementById("pregunta-actual");
|
||||
const feedback = document.getElementById("feedback");
|
||||
feedback.textContent = "";
|
||||
|
||||
cont.innerHTML = `
|
||||
preguntaActualContenedor.innerHTML = `
|
||||
<div class="pregunta">
|
||||
<p><strong>${p.id}.</strong> ${p.pregunta}</p>
|
||||
<p><strong>Pregunta ${estado.indiceActual + 1} de ${preguntasCargadas.length}</strong></p>
|
||||
<p>${p.pregunta}</p>
|
||||
${Object.entries(p.opciones).map(([letra, texto]) => `
|
||||
<label class="opcion">
|
||||
<input type="radio" name="respuesta" value="${letra}">
|
||||
${letra}) ${texto}
|
||||
</label>
|
||||
`).join("")}
|
||||
<button id="comprobar">Comprobar</button>
|
||||
<br>
|
||||
<button id="comprobar">Comprobar y Siguiente</button>
|
||||
</div>
|
||||
`;
|
||||
|
||||
document.getElementById("comprobar").onclick = () => {
|
||||
document.getElementById("comprobar").onclick = () => validarRespuesta(p);
|
||||
}
|
||||
|
||||
function validarRespuesta(p) {
|
||||
const marcada = document.querySelector(`input[name="respuesta"]:checked`);
|
||||
|
||||
if (!marcada) {
|
||||
feedback.textContent = "Selecciona una respuesta";
|
||||
feedback.textContent = "⚠️ Por favor, selecciona una opción.";
|
||||
feedback.style.color = "orange";
|
||||
return;
|
||||
}
|
||||
|
||||
if (marcada.value === p.correcta) {
|
||||
feedback.textContent = "✔ ¡Correcto!";
|
||||
feedback.style.color = "green";
|
||||
estado.aciertos++;
|
||||
alert("✔ ¡Correcto!"); // Opcional, puedes usar el div feedback
|
||||
} else {
|
||||
feedback.textContent = `✘ Incorrecto. La correcta era: ${p.correcta}`;
|
||||
feedback.style.color = "red";
|
||||
estado.fallos++;
|
||||
alert(`✘ Incorrecto. La respuesta era la ${p.correcta.toUpperCase()}`);
|
||||
}
|
||||
};
|
||||
|
||||
estado.indiceActual++;
|
||||
mostrarSiguientePregunta();
|
||||
}
|
||||
|
||||
function actualizarMarcador() {
|
||||
// Calculamos la puntuación estilo TAI (Aciertos - Fallos/3)
|
||||
const puntos = (estado.aciertos - (estado.fallos / 3)).toFixed(2);
|
||||
resultado.innerHTML = `
|
||||
<div>
|
||||
Aciertos: <span style="color: green">${estado.aciertos}</span> |
|
||||
Fallos: <span style="color: red">${estado.fallos}</span> |
|
||||
<strong>Puntuación neta: ${puntos}</strong>
|
||||
</div>
|
||||
`;
|
||||
}
|
||||
|
||||
function finalizarExamen() {
|
||||
preguntaActualContenedor.innerHTML = "<h2>¡Examen finalizado!</h2>";
|
||||
const notaFinal = ((estado.aciertos - (estado.fallos / 3)) / preguntasCargadas.length * 10).toFixed(2);
|
||||
|
||||
resultado.innerHTML = `
|
||||
<div style="font-size: 1.2em; border: 2px solid #333; padding: 20px;">
|
||||
<h3>Resumen Final:</h3>
|
||||
<p>Aciertos: ${estado.aciertos}</p>
|
||||
<p>Fallos: ${estado.fallos}</p>
|
||||
<p>Nota sobre 10: <strong>${notaFinal}</strong></p>
|
||||
</div>
|
||||
`;
|
||||
}
|
||||
Loading…
Reference in New Issue