DATOS PERSONALES FIRMA
Nombre: Carlos Arturo DNI: 8647362
Apellidos: Sarmiento Royero
ESTUDIO ASIGNATURA CONVOCATORIA
MÁSTER UNIVERSITARIO EN
INGENIERÍA DE SOFTWARE Y 01062.- COMPUTACIÓN EN Ordinaria
SISTEMAS INFORMÁTICOS (PLAN EL CLIENTE WEB Número periodo 3516
2015V2)
CIUDAD DEL
FECHA MODELO
EXAMEN
18-20/03/2022 Modelo - A Bogotá
Etiqueta identificativa
INSTRUCCIONES GENERALES
1. Ten disponible tu documentación oficial para identificarte, en el caso de que se te
solicite.
2. Rellena tus datos personales en todos los espacios fijados para ello y lee
atentamente todas las preguntas antes de empezar.
3. Las preguntas se contestarán en la lengua vehicular de esta asignatura.
4. Si tu examen consta de una parte tipo test, indica las respuestas en la plantilla según
las características de este.
5. Debes contestar en el documento adjunto, respetando en todo momento el
espaciado indicado para cada pregunta. Si este es en formato digital, los márgenes,
el interlineado, fuente y tamaño de letra vienen dados por defecto y no deben
modificarse. En cualquier caso, asegúrate de que la presentación es suficientemente
clara y legible.
6. Entrega toda la documentación relativa al examen, revisando con detenimiento que
los archivos o documentos son los correctos. El envío de archivos erróneos o un
envío incompleto supondrá una calificación de “no presentado”.
7. Durante el examen y en la corrección por parte del docente, se aplicará el
Reglamento de Evaluación Académica de UNIR que regula las consecuencias
Código de examen: 189821
derivadas de las posibles irregularidades y prácticas académicas incorrectas con
relación al plagio y uso inadecuado de materiales y recursos.
Puntuación
Problemas cortos
● Puntuación máxima 6.00 puntos
Problema largo
● Puntuación máxima 4.00 puntos
Cada pregunta vale 3 puntos.
Debes contestar en el espacio en blanco proporcionado
1. Dada la siguiente web:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>DOM y atributos XHTML</title>
<script type="text/javascript">
</script>
</head>
<body>
<p id="contenidos">[1] Lorem ipsum dolor sit amet</p>
<a id="enlace" href="#">Ocultar contenidos</a>
</body>
</html>
Se pide: código Javascript que oculte el bloque y lo muestre cuando se pulsa el enlace.
Para ello podemos usar los atributos style.display = 'none'; y style.display = 'block'; (Responder
en 1 caras)
2. Define un objeto Matematicas que tenga como atributos dos valores y los métodos:
● Suma() : suma los dos valores introducidos al objeto matematicas en el constructor.
● Resta(): resta los dos valores introducidos al objeto matematicas en el constructor.
Código de examen: 189821
1 punto.
Crea una función denominada implementa que determine si un objeto implementa una función.
Para ello podemos usar el operador instanceof
Hacer un ejemplo donde la función si esté implementada en el objeto Matematicas (suma por
ejemplo) y otro que no (multiplicacion) informando al usuario como corresponda.
1 punto.
(Responder en 1 caras)
Este último problema es más largo y vale 4 puntos.
Tienes dos hojas para contestar.
1. Crea un cliente que lea sobre un servidor que están en la dirección: http://localhost/ajedrez.
Este servidor admite por get los siguientes comandos:
● El comando comand=blancas: devuelve una lista de las posiciones en el tablero de
las blancas [ {id:'reina', color:'B', filla:8, columna:2}, {id:'torre', color:'B', filla:8,
columna:5}]
● El comando comand=negras: devuelve una lista de las posiciones en el tablero de las
negras[ {id:'reina', color:'N', filla:7, columna:2}, {id:'torre', color:'B', filla:8, columna:8}]
● El comando comand=tablero: devuelve todo el tablero con similar formato que antes.
Se pide diseñar una app en Javascript que pueda solicitar pulsando un botón obtener todas las
blancas y listarlas en la pantalla en forma de matiz. El mismo procedimiento para el resto de
comandos. Cada uno mostrará en pantalla el tablero que proporciona. Cuando se pulsa un
botón el tablero que hubiera en la pantalla se pierde y se sustituye por el nuevo. 2 puntos
El servidor tambien acepta un comando por post, con un nuevo tablero. En la interfaz hay un
formulario donde hay 4 campos de tipo entero. Fila origen, columna origen, fila destino y
columna destino. El cliente debe gestionar que el movimiento es válido, NO A NIVEL DE
LOGICA DEL AJEDREZ, si no que la casilla de origen sea una casilla válida, tenga una pieza y
que la casilla destino este libre. NO SE PERMITE COMER es decir, la casilla destino debe
estar libre para poder moverlo. Si esto no se cumple se informará por pantalla. Solo se
guardaran tableros válidos en el servidor. El comando post del servidor acepta un JSON con
los tableros indicados en el mismo formato que los genera y que podéis ver en los ejemplos. 2
puntos.
(Responder en 2 caras)
Código de examen: 189821
Respuestas
1. Se pide: código Javascript que oculte el bloque y lo muestre cuando se pulsa el enlace.
Para ello podemos usar los atributos style.display = 'none'; y style.display = 'block'; (Responder
en 1 caras)
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>DOM y atributos XHTML</title>
<script type="text/javascript">
var show = true;
function clickEnlace() {
var style = 'none';
var text = 'Mostrar contenidos';
if (!show) {
style = 'block';
text = 'Ocultar contenidos';
}
document.getElementById("contenidos").style.display = style;
document.getElementById("enlace").innerHTML = text;
show = !show;
}
window.onload = function() {
document.getElementById("enlace").addEventListener('click',clickEnlace);
}
</script>
</head>
<body>
<p id="contenidos">[1] Lorem ipsum dolor sit amet</p>
<a id="enlace" href="#">Ocultar contenidos</a>
</body>
</html>
No se ha pedido en el código pero adicionalmente también se cambia el texto del enlace
dependiendo si esta mostrando o no el bloque.
Código de examen: 189821
2. Lo pude responder todo este punto pero si instanceof
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Ejercicio 2</title>
<script type="text/javascript">
function implementa(obj, func) {
if (func) {
console.log('función existe');
} else {
console.log('función no existe');
}
}
function Matematicas (valor1, valor2) {
this.valor1 = valor1;
this.valor2 = valor2;
}
// vamos hacerlo con prototype
Matematicas.prototype.Suma = function() {
return this.valor1 + this.valor2;
}
// vamos hacerlo con prototype
Matematicas.prototype.Resta = function() {
return this.valor1 - this.valor2;
}
var matematicas1 = new Matematicas(100,50);
console.log(matematicas1.Suma());
console.log(matematicas1.Resta());
implementa(matematicas1, matematicas1.Suma);
implementa(matematicas1, matematicas1.Multiplicacion);
</script>
</head>
<body>
Mirar Consola
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Ejercicio 2</title>
<script type="text/javascript">
function implementa(obj, func) {
if (func) {
console.log('función existe');
} else {
console.log('función no existe');
}
}
function Matematicas (valor1, valor2) {
this.valor1 = valor1;
this.valor2 = valor2;
}
// vamos hacerlo con prototype
Matematicas.prototype.Suma = function() {
return this.valor1 + this.valor2;
}
// vamos hacerlo con prototype
Matematicas.prototype.Resta = function() {
return this.valor1 - this.valor2;
Código de examen: 189821
}
var matematicas1 = new Matematicas(100,50);
console.log(matematicas1.Suma());
console.log(matematicas1.Resta());
implementa(matematicas1, matematicas1.Suma);
implementa(matematicas1, matematicas1.Multiplicacion);
</script>
</head>
<body>
Mirar Consola
</body>
</html>
1. Se ve el desarrollo de los 2 puntos solicitados tanto get como post.
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Ejercicio 3</title>
<script type="text/javascript">
//función principal que pinta el tablero
function obtenerDatos(command) {
var request = new XMLHttpRequest();
request.open('GET', 'http://localhost/ajedrez?command=' + command);
request.addEventListener('load', function() {
var resultado = JSON.load(this.response);
var tablero = '<table border="1">';
for (var i=1; i<=10;i++) {
tablero+='<tr>';
for (var j=1; j<=8;j++) {
// buscar la posición en los datos resultantes
var posicion = resultado.filter(f=> f.filla == i && f.columna == j);
// si existe la posición dibuja el nombre de la ficha y su color
var ficha = posicion.length > 0? posicion[0].id + "(" + posicion[0].color + ")": 'X';
tablero+='<td>' + ficha + '</td>';
}
tablero+='</tr>';
}
tablero+='</table>';
// Modifica el DOM para crear la tabla
document.getElementById("tablero").innerHTML = tablero;
});
request.send();
}
// función click blancas
function obtenerDatosBlancos() {
obtenerDatos('blancas');
}
// función click blancas
function obtenerDatosNegras() {
obtenerDatos('negras');
}
// función click blancas
function obtenerDatosTodos() {
obtenerDatos('tablero');
}
function mover() {
// obtener el valor de datos
var filaOrigen = document.getElementById("filaOrigen").value;
var columnaOrigen = document.getElementById("columnaOrigen").value;
var columnaDestino = document.getElementById("columnaDestino").value;
var filaDestino = document.getElementById("filaDestino").value;
Código de examen: 189821
// validar que posición orígen se valida
if (filaOrigen && columnaOrigen) {
if ((filaOrigen <=0 && filaOrigen >10) || (columnaOrigen <=0 && columnaOrigen >10)) {
alert("Posición Orígen Inválida");
return;
}
} else {
alert("Posición Orígen Inválida");
return;
}
// validamos si la posicion orígen existe
var posicionOrigen = resultado.filter(f=> f.filla == filaOrigen && f.columna == columnaOrigen);
if (posicionOrigen.length === 0) {
alert("Posición Orígen no existe");
return;
}
// validamos si la posicion destino no esté ocpuada
var posicionDestino = resultado.filter(f=> f.filla == filaDestino && f.columna == columnaDestino);
if (posicionDestino.length > 0) {
alert("Posición Destino ocupada");
return;
}
var request = new XMLHttpRequest();
request.open('POST', 'http://localhost/ajedrez', {id:posicionOrigen[0].id, color:posicionOrigen[0].color, filla:filaDestino,
columna:columnaDestino});
request.addEventListener('load', function() {
alert('Actualizado');
});
request.send();
}
window.onload = function() {
// agregar eventos a los botones
document.getElementById("blancas").addEventListener('click',obtenerDatosBlancos);
document.getElementById("negras").addEventListener('click',obtenerDatosNegras);
document.getElementById("todas").addEventListener('click',obtenerDatosTodos);
document.getElementById("mover").addEventListener('click',mover);
}
</script>
</head>
<body>
<div>
<input type="button" value="Blancas" id="blancas">
<input type="button" value="Negras" id="negras">
<input type="button" value="Tablero" id="todas">
<br><br><br><label>TABLERO</label>
</div>
<div id="tablero"></div>
<form>
<label for="filaOrigen">Fila origen</label>
<input id="filaOrigen" type="number">
<br>
<label for="columnaOrigen">Columna origen</label>
<input id="columnaOrigen" type="number">
<br>
<label for="filaDestino">Fila destino</label>
<input id="filaDestino" type="number">
<br>
<label for="columnaDestino">Columna destino</label>
<input id="columnaDestino" type="number"></input>
<br>
<input type="button" value="Mover" id="mover">
Código de examen: 189821
</form>
</body>
</html>
Cree unos datos json y comenté las lineas de la invocación del servicio para simular los datos y
hacer pruebas, este fue el resultado:
Blancas Negras Tablero
Y las validaciones.
Código de examen: 189821
DATOS PERSONALES FIRMA
Nombre: DNI:
Apellidos:
ESTUDIO ASIGNATURA CONVOCATORIA
MÁSTER UNIVERSITARIO EN
INGENIERÍA DE SOFTWARE Y 01062.- COMPUTACIÓN EN Ordinaria
SISTEMAS INFORMÁTICOS (PLAN EL CLIENTE WEB Número periodo 3516
2015V2)
FECHA MODELO CIUDAD DEL EXAMEN
18-20/03/2022 Modelo - B
Etiqueta identificativa
INSTRUCCIONES GENERALES
1. Ten disponible tu documentación oficial para identificarte, en el caso de que se te
solicite.
2. Rellena tus datos personales en todos los espacios fijados para ello y lee
atentamente todas las preguntas antes de empezar.
3. Las preguntas se contestarán en la lengua vehicular de esta asignatura.
4. Si tu examen consta de una parte tipo test, indica las respuestas en la plantilla según
las características de este.
5. Debes contestar en el documento adjunto, respetando en todo momento el
espaciado indicado para cada pregunta. Si este es en formato digital, los márgenes,
el interlineado, fuente y tamaño de letra vienen dados por defecto y no deben
modificarse. En cualquier caso, asegúrate de que la presentación es suficientemente
clara y legible.
6. Entrega toda la documentación relativa al examen, revisando con detenimiento que
los archivos o documentos son los correctos. El envío de archivos erróneos o un
envío incompleto supondrá una calificación de “no presentado”.
7. Durante el examen y en la corrección por parte del docente, se aplicará el
Reglamento de Evaluación Académica de UNIR que regula las consecuencias
derivadas de las posibles irregularidades y prácticas académicas incorrectas con
relación al plagio y uso inadecuado de materiales y recursos.
Código de examen: 189822
Puntuación
Problemas cortos
Puntuación máxima 6.00 puntos
Problema largo
Puntuación máxima 4.00 puntos
Cada pregunta vale 3 puntos.
Debes contestar en el espacio en blanco proporcionado
1. Define una función Mostrar en Javascript que pueda mostrar por consola cualquier expresión
de la siguiente forma:
La función toma una cadena de caracteres y unos parámetros adicionales a continuación de la
misma. La cadena puede contener una serie de símbolos # que serán sustituidos por los
valores de las variables que aparezcan a continuación de la cadena. Pongamos ejemplos:
Mostrar("hola"); // La salida será: hola
var nombre = 'Manolo;
var dia = 'martes';
Mostrar("Hoy # es un día muy especial para #",dia,nombre); // La salida será: Hoy martes es un
día muy especial para Manolo
Mostrar(); // Error de ejecución lanzando una excepción.
(Responder en 1 caras)
2. El cálculo de la letra del Documento Nacional de Identidad (DNI) es un proceso matemático
sencillo que se basa en obtener el resto de la división entera del número de DNI y el número
23. A partir del resto de la división, se obtiene la letra seleccionándola dentro de un array de
letras. El array de letras es:,
var letras = ['T', 'R', 'W', 'A', 'G', 'M', 'Y', 'F', 'P', 'D', 'X', 'B', 'N', 'J', 'Z', 'S', 'Q', 'V', 'H', 'L', 'C', 'K',
'E', 'T'];
Por tanto si el resto de la división es 0, la letra del DNI es la T y si el resto es 3 la letra es la A.
Código de examen: 189822
Con estos datos, elaborar un pequeño script que comprobar si el número es menor que 0 o
mayor que 99999999. Si ese es el caso, se muestra un mensaje al usuario indicando que el
número proporcionado no es válido
Si el número es válido, se calcula la letra que le corresponde según el método explicado
anteriormente y se compara con la letra introducida por el usuario mostrando al usuario el
mensaje de es correcto o no es correcto correspondiente.
Podéis usar los métodos: alert y prompt para mostrar los mensajes y la entrada de datos para
simplificar. (Responder en 1 caras)
Este último problema es más largo y vale 4 puntos.
Tienes dos hojas para contestar.
1. Define la estructura de clases del siguiente diagrama de clases: 3 puntos.
Código de examen: 189822
Crea una pequeña aplicación que permita agregar un profesor a una base de datos ficticia
representada con una estructura de datos en el cliente. Dicha estructura de datos no se
guardará en el servidor. Se perderá cuando se cargue la página de nuevo. El sistema no debe
permitir crear dos profesores con el mismo nombre y los dos apellidos. El id se genera
automáticamente. 1 punto (Responder en 2 caras)
Código de examen: 189822
DATOS PERSONALES FIRMA
Nombre: Yesenia Caterine DNI:1118540431
Apellidos: López Escalante
ESTUDIO ASIGNATURA CONVOCATORIA
MÁSTER UNIVERSITARIO EN
INGENIERÍA DE SOFTWARE Y 01062.- COMPUTACIÓN EN Ordinaria
SISTEMAS INFORMÁTICOS (PLAN EL CLIENTE WEB Número periodo 3516
2015V2)
FECHA MODELO CIUDAD DEL EXAMEN
18-20/03/2022 Modelo - C
Etiqueta identificativa
INSTRUCCIONES GENERALES
1. Ten disponible tu documentación oficial para identificarte, en el caso de que se te
solicite.
2. Rellena tus datos personales en todos los espacios fijados para ello y lee
atentamente todas las preguntas antes de empezar.
3. Las preguntas se contestarán en la lengua vehicular de esta asignatura.
4. Si tu examen consta de una parte tipo test, indica las respuestas en la plantilla según
las características de este.
5. Debes contestar en el documento adjunto, respetando en todo momento el
espaciado indicado para cada pregunta. Si este es en formato digital, los márgenes,
el interlineado, fuente y tamaño de letra vienen dados por defecto y no deben
modificarse. En cualquier caso, asegúrate de que la presentación es suficientemente
clara y legible.
6. Entrega toda la documentación relativa al examen, revisando con detenimiento que
los archivos o documentos son los correctos. El envío de archivos erróneos o un
envío incompleto supondrá una calificación de “no presentado”.
7. Durante el examen y en la corrección por parte del docente, se aplicará el
Reglamento de Evaluación Académica de UNIR que regula las consecuencias
derivadas de las posibles irregularidades y prácticas académicas incorrectas con
relación al plagio y uso inadecuado de materiales y recursos.
Puntuación
Código de examen: 189823
Problemas cortos
● Puntuación máxima 6.00 puntos
Problema largo
● Puntuación máxima 4.00
Cada pregunta vale 3 puntos.
Debes contestar en el espacio en blanco proporcionado
1. Modificar el prototipo de string para añadir las siguientes funciones a su definición: truncar,
filtrar, reverso.
Truncar: Dicha función tiene dos parámetros, longitud e indicador que indica que la cadena ha
sido truncada y se debe mostrar justo a continuación.
del último carácter no truncado. La llamada de prueba de la función debe ser esta:
console.log(cadena.truncar(9, '... (sigue)'));
Lo que produciría por ejemplo: Cadena a truncar => Cadena a ... (sigue)
Filtrar se le pase un carácter para que lo elimine de la cadena. Debe eliminar
todas las apariciones de dicho carácter. No hace falta comprobar que elimine caracteres
mayúsculas y
minúsculas.
Reverso no tiene parámetros invierte el orden de la cadena. Por ejemplo hola =>
aloh (Responder en 1 caras)
2. Crea un objeto Vehículo que tenga los atributos: marca, modelo, color, fabricante y
cilindrada. Crea los métodos:
● Arrancar() muestra los datos del coche por consola y el mensaje “ha arrancado”
● Frenar() muestra los datos del coche por consola y el mensaje “ha frenado”
● Acelerar(cantidad) y muestra el mensaje "Se ha acelerado hasta cantidad".
Crea una clase Furgoneta que herede de Vehículo y que tenga el atributo pasajeros.
(Responder en 1 caras)
Este último problema es más largo y vale 4 puntos.
Tienes dos hojas para contestar.
1. Crea un cliente Web que mediante Javascript permita comprobar el formulario de inscripción
Código de examen: 189823
de una página web de parejas. En esta página web se preguntan los siguientes datos. 2
puntos:
● Nombre: Debe empezar con mayúsculas.
● Apellidos: Deben ser al menos dos palabras.
● Correo: Debe tener una @ y una extensión con .algo. Por ejemplo .com, .es, .net....
● DNI; No es necesario comprobar la validez del DNI, pero si que sea una secuencia
de 8 numeros y que acabe en una letra mayúscula
● Sexo: tiene que haber tres opciones: masculino, femenino y otro.
● Interés: tiene que haber sólo tres opciones: chicos, chicas, ambos.
● Ciudad: Debe empezar con mayúsculas.
● País: Debe empezar con mayúsculas.
● Password: debe contener una al menos una mayúscula, una minúscula y un número.
● Repetir password: debe coincidir con el primero
Una vez valido, se debe enviar por post al servidor http://localhost/parejas/store con formato
JSON donde los nombres de los campos son los mismos que aparecen en el enunciado sin
acentos, es decir: {Nombre:'Roberto', Apellidos:'Martinez Dominguez',
Correo:'micorreo@gmail.com', Pais:'Mexico', ....}. 1 punto.
Todos los campos son obligatorios. Se valorará un diseño de código correcto con hasta 1 punto
sobre los 4 en juego.
Código de examen: 189823
DATOS PERSONALES FIRMA
Nombre: DNI:
Apellidos:
ESTUDIO ASIGNATURA CONVOCATORIA
MÁSTER UNIVERSITARIO EN
INGENIERÍA DE SOFTWARE Y 01062.- COMPUTACIÓN EN Ordinaria
SISTEMAS INFORMÁTICOS (PLAN EL CLIENTE WEB Número periodo 3516
2015V2)
FECHA MODELO CIUDAD DEL EXAMEN
18-20/03/2022 Modelo - D
Etiqueta identificativa
INSTRUCCIONES GENERALES
1. Ten disponible tu documentación oficial para identificarte, en el caso de que se te
solicite.
2. Rellena tus datos personales en todos los espacios fijados para ello y lee
atentamente todas las preguntas antes de empezar.
3. Las preguntas se contestarán en la lengua vehicular de esta asignatura.
4. Si tu examen consta de una parte tipo test, indica las respuestas en la plantilla según
las características de este.
5. Debes contestar en el documento adjunto, respetando en todo momento el
espaciado indicado para cada pregunta. Si este es en formato digital, los márgenes,
el interlineado, fuente y tamaño de letra vienen dados por defecto y no deben
modificarse. En cualquier caso, asegúrate de que la presentación es suficientemente
clara y legible.
6. Entrega toda la documentación relativa al examen, revisando con detenimiento que
los archivos o documentos son los correctos. El envío de archivos erróneos o un
envío incompleto supondrá una calificación de “no presentado”.
7. Durante el examen y en la corrección por parte del docente, se aplicará el
Reglamento de Evaluación Académica de UNIR que regula las consecuencias
derivadas de las posibles irregularidades y prácticas académicas incorrectas con
relación al plagio y uso inadecuado de materiales y recursos.
Código de examen: 189824
Puntuación
Problemas cortos
● Puntuación máxima 6.00 puntos
Problema largo
● Puntuación máxima 4.00 puntos
Cada pregunta vale 3 puntos.
Debes contestar en el espacio en blanco proporcionado
1. Dado el array ['Madrid','Barcelona','Bilbao','Lisboa','Oporto','Valencia']
Construye una clousure que reciba por parámetro un array y que genere un método que
permita iterar por el array invocando al método next(). La cabecera la de Clousure será esta:
function makeIterator(ar){} y deberá de volver null, cuando el array haya terminado de iterarse.
Se deberá usar de la siguiente forma:
const next = makeIterator(['Madrid','Barcelona','Bilbao','Lisboa','Oporto','Valencia'])
console.log('Primera ciudad' + next());
console.log('Segunda ciudad' + next());
... (Responder en 1 caras)
2. Crea un programa en Ajax que trae del servidor un cliente por su nombre. El script PHP que
se usará en el servidor se llama:
http://localhost/cliente.php
Dicho script devolverá un JSON con el nombre, apellido, dni, idCliente. Si el nombre del usuario
no está en la base de datos devolverá el string
False
El formulario web sobre el que hacer la consulta es el siguiente:
</head>
<body>
Código de examen: 189824
<h1>Obtener Cliente</h1>
<form>
<label for="login">Nombre de usuario:</label>
<input type="text" name="login" id="login" />
<a id="comprobar" href="#">Obtener cliente</a>
</form>
<div id="cliente"></div>
</body>
</html> (Responder en 1 caras)
Este último problema es más largo y vale 4 puntos.
Tienes dos hojas para contestar.
1. Crea juego de un hundir la flota. En este programa tendrás un dos campos para el disparo y
un botón de disparar.
● Uno donde podrás seleccionar las letras desde la A hasta la H.
● Uno donde podrás seleccionar un número desde el 1 al 8.
La web mostrará una cuadrícula con tres tipos de imágenes:
● la imagen http://floata.com/agua.png será la imagen que aparezca cuando no se
acierte con el barco
● la imagen http://floata.com/tocado.png será la imagen que aparezca cuando se
acierte con el barco.
● la imagen http://floata.com/desconocido.png será la imagen que aparezca cuando no
se haya disparado sobre una casilla.
2 puntos.
Los barcos se cargaran aleatoriamente desde un servidor en la dirección
http://floata.com/tablero. Dicho tablero tendrá 3 barcos. 1 barco de 4 casillas, un barco de 3
casillas y un barco de 2 casillas. El formato de JSON del fichero seria el siguiente:
{{fila:'h',columna:2}, {fila:'h',columna:3}, {fila:'h', columna:4}....}
Para cargarlo se usara un botón de iniciar partida que reiniciará el tablero a todo desconocido y
pedirá el nuevo tablero al servidor.
El JSON sólo tendrá la posición de las casillas de los barcos. Podemos asumir que el servidor
SIEMPRE ENTREGA CONFIGURACIONES DE TABLEROS VÁLIDAS.
1 punto
Ten en cuenta que las imágenes son imaginarias si haces el ejercicio en el computador. Su
visualización no será correcta. Hasta 1 punto sobre 4 se valorará la estructura del código
realizado.
(Responder en 2 caras)
Código de examen: 189824
DATOS PERSONALES FIRMA
Nombre: DNI:
Apellidos:
ESTUDIO ASIGNATURA CONVOCATORIA
MÁSTER UNIVERSITARIO EN INGENIERÍA DE 01062.- COMPUTACIÓN EN EL
SOFTWARE Y SISTEMAS INFORMÁTICOS (PLAN 2015V2) Ordinaria
CLIENTE WEB
FECHA MODELO CIUDAD DEL EXAMEN
19-21/03/2021 Modelo - A
Etiqueta identificativa
INSTRUCCIONES GENERALES
1. La duración del examen es de 2 horas.
2. Escribe únicamente con bolígrafo/esfero azul o negro.
3. No está permitido utilizar más hojas de las que te facilita la UNIR (puedes utilizar folios para hacerte
esquemas u organizarte pero se entregarán junto al examen).
4. El examen PRESENCIAL supone el 60% de la calificación final de la asignatura.
5. No olvides rellenar EN TODAS LAS HOJAS los datos del cuadro que hay en la parte superior con
tus datos personales.
6. El DNI/NIE/PASAPORTE debe estar sobre la mesa y disponible para su posible verificación.
7. Apaga y retira del alcance los teléfonos móviles.
8. Retirar del alcance y visibilidad el smartwatch.
9. Las preguntas se contestarán en CASTELLANO.
10. El profesor tendrá muy en cuenta las faltas de ortografía en la calificación final.
11. Si se detecta una copia del examen, éste será evaluado con 0 puntos.
NO UTILIZAR ESTA
PARTE DE LA HOJA
Código de examen: 162125 1
Puntuación
Problemas cortos
Puntuación máxima 6,00 puntos
Problema largo
Puntuación máxima 4,00 puntos
NO UTILIZAR ESTA
PARTE DE LA HOJA
Código de examen: 162125 2
DATOS PERSONALES FIRMA
Nombre: DNI:
Apellidos:
Cada ejercicio puntúa 3 puntos
Debes contestar en el espacio en blanco proporcionado
1. Crea un programa en Ajax que trae del servidor un cliente por su nombre. El script PHP que se usará en
el servidor se llama:
http://localhost/cliente.php
Dicho script devolverá un JSON con el nombre, apellido, dni, idCliente. Si el nombre del usuario no está en
la base de datos devolverá el string
False
El formulario web sobre el que hacer la consulta es el siguiente:
</head>
<body>
<h1>Obtener Cliente</h1>
<form>
<label for="login">Nombre de usuario:</label>
<input type="text" name="login" id="login" />
<a id="comprobar" href="#">Obtener cliente</a>
</form>
<div id="cliente"></div>
</body>
</html>
NO UTILIZAR ESTA
PARTE DE LA HOJA
Código de examen: 162125 3
Código de examen: 162125 4
DATOS PERSONALES FIRMA
Nombre: DNI:
Apellidos:
2. Crea una función que genere 100 números aleatorios entre 1 y 200 que no se repitan y luego muéstralos
por pantalla. Para ello podemos usar las fución Math.random().
NO UTILIZAR ESTA
PARTE DE LA HOJA
Código de examen: 162125 5
Código de examen: 162125 6
DATOS PERSONALES FIRMA
Nombre: DNI:
Apellidos:
Este último problema es más largo y vale 4 puntos.
Tienes dos hojas para contestar.
1. Codificar una función recorrerArbol() que recorra todos los nodos del documento xhtml a
partir del elemento body. Mediante cuadros de mensaje, por cada nodo, si el nodo es un nodo
de tipo p sacar el contenido de dicho nodo en el alert. Al finalizar el último Alert mostrará el número de
elementos procesados.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;
charset=iso-8859-1" />
<title>Recorrer árbol</title>
</head>
<body onload="recorrerArbol(document.body)">
<p>Lorem ipsum dolor <a href="#">sit amet</a>, consectetuer
adipiscing elit.Aenean commodo ligula eget dolor. Aenean massa.
Donec quam felis,ultricies nec, pellentesque eu, pretium quis, sem.
Nulla consequat massa quis enim. </p>
<p>Donec pede justo, fringilla vel, aliquet nec, vulputate eget,
arcu. In enim justo,</p>
<ul>
<li>rhoncus ut,</li>
<li>imperdiet a,</li>
<li>venenatis vitae,</li>
<li>justo</li>
</ul>
<p>Nullam dictum felis eu pede mollis pretium. <a href="#">Integer
<strong>tincidunt</strong></a>. Cras dapibus. Vivamus elementum
semper nisi.Aenean vulputate eleifend tellus. Aenean leo ligula,
porttitor eu, consequat vitae, eleifend ac, enim.</p>
</body>
</html>
Código de examen: 162125 7
Código de examen: 162125 8
DATOS PERSONALES FIRMA
Nombre: DNI:
Apellidos:
Código de examen: 162125 9
NO UTILIZAR ESTA
PARTE DE LA HOJA
DATOS PERSONALES FIRMA
Nombre: DNI:
Apellidos:
D ER
O R
S PON
D E
R A
AR AR
O R A P
B VÁLI D
A NO
IN
PÁG
Código de examen: 162125 11
DE R
O R
SPON
D E
R A
A RAR
O R A P
B VÁLI D
A NO
IN
PÁG
Código de examen: 162125 12
Computación en el cliente Web
¿Quién diseñó originalmente JavaScript?
A. Brendan Eich.
B. Douglas Crockford.
C. Microsoft.
D. Sun Microsystems.
Respuesta correcta: A
Preguntas 2 de 10
¿Qué relación tiene Java con JavaScript?
A. Son lenguajes muy parecidos.
B. JavaScript es exactamente igual que Java.
C. Ninguna.
D. Fueron creados por la misma persona.
Respuesta correcta: C
Preguntas 3 de 10
¿Qué organismo vela por la evolución de JavaScript?
A. ECMA.
B. ISO.
C. W3C.
D. NEMA.
Respuesta correcta: A
Preguntas 4 de 10
¿Qué empresas estuvieron originalmente vinculadas en la incoación de JavaScript?
A. Oracle.
B. Sun Microsystems.
C. Apple.
D. Netscape y Sun Microsystems.
Respuesta correcta: D
Computación en el cliente Web
Preguntas 5 de 10
¿Cómo es comúnmente conocida la versión de JavaScript que fue consensuada en 2015?
A. ES15.
B. ES6.
C. JavaScript 1.5.
D. Ninguna de las anteriores.
Respuesta correcta: B
Preguntas 6 de 10
¿En cuánto tiempo se diseñó la primera versión de JavaScript?
A. En 10-15 días.
B. A lo largo de todo el año 1995.
C. En un día.
D. En dos años y tres meses.
Respuesta correcta: A
Preguntas 7 de 10
JavaScript fue estandarizado desde el primer momento:
A. Verdadero.
B. Falso.
Respuesta correcta: B
Preguntas 8 de 10
¿Cuál de estos lenguajes no es ninguna implementación de JavaScript?
A. JScript.
B. ActionScript.
C. NodeJS.
D. Lisp.
Respuesta correcta: D
Preguntas 9 de 10
¿Cuál de estos lenguajes no es un superset de JavaScript?
A. TypeScript.
B. Objective-J.
C. Go.
Computación en el cliente Web
D. ELM.
Respuesta correcta: C
Preguntas 10 de 10
¿Cuál de estos lenguajes es un superset de JavaScript?
A. CoffeeScript.
B. C#.
C. Kotlin.
D. Ninguno de los anteriores.
Respuesta correcta: A
Test 2
Una cadena de texto (String) en JavaScript es:
A. Un objeto.
B. Un tipo de dato básico.
C. Lo mismo que un array.
D. Todas las anteriores son falsas.
Respuesta correcta: B
Preguntas 2 de 10
¿Cómo debemos comparar la igualdad entre dos valores?
A. Con el operador triple igual.
B. Con un único signo igual.
C. Con el operador flecha.
D. Con el método .isTheSameAs().
Respuesta correcta: A
Preguntas 3 de 10
¿Qué ocurre cuándo igualamos una variable a null?
A. Nada en absoluto, JavaScript ignora esa línea de código.
B. Estamos indicando explícitamente que dicha variable puede tener cualquier valor.
C. Estamos dándole un valor al azar.
D. Ninguna de las anteriores.
Computación en el cliente Web
Respuesta correcta: D
Preguntas 4 de 10
¿Qué símbolo se usa para notación exponencial?
A. Exp.
B. Power.
C. e.
D. ^.
Respuesta correcta: C
Preguntas 5 de 10
¿Qué permite una cadena de texto literal?
A. Una cadena de texto de un solo carácter.
B. Una cadena de texto cuyo mensaje es siembre verdadero.
C. Una cadena de texto vacía.
D. Una cadena de texto que admite instrucciones JavaScript internamente.
Respuesta correcta: D
Preguntas 6 de 10
¿Qué símbolo se utiliza para indicar una cadena de texto literal?
A. Dobles comillas invertidas.
B. Dobles comillas.
C. Dos signos de admiración.
D. Tres puntos suspensivos a cada lado.
Respuesta correcta: A
Preguntas 7 de 10
JavaScript admite solo comillas dobles para indicar una cadena de texto:
A. Verdadero.
B. Falso.
Respuesta correcta: B
Computación en el cliente Web
Preguntas 8 de 10
Las cadenas de texto admiten métodos:
A. Verdadero.
B. Falso.
Respuesta correcta: A
Preguntas 9 de 10
La asignación de valores por referencia:
A. Es lo mismo que la asignación directa.
B. Solo puede usarse con números enteros positivos.
C. Se utiliza, por defecto, con objetos.
D. No existe en JavaScript.
Respuesta correcta: C
Preguntas 10 de 10
¿Qué significa NaN?
A. Not a Negation.
B. Nor and Neither.
C. Nano.
D. Ninguno de los anteriores.
Respuesta correcta: D
Test 3
Una cadena de texto (String) en JavaScript es:
A. Un objeto.
B. Un tipo de dato básico.
C. Lo mismo que un array.
D. Todas las anteriores son falsas.
Respuesta correcta: B
Preguntas 2 de 10
¿Cómo debemos comparar la igualdad entre dos valores?
A. Con el operador triple igual.
B. Con un único signo igual.
C. Con el operador flecha.
Computación en el cliente Web
D. Con el método .isTheSameAs().
Respuesta correcta: A
Preguntas 3 de 10
¿Qué ocurre cuándo igualamos una variable a null?
A. Nada en absoluto, JavaScript ignora esa línea de código.
B. Estamos indicando explícitamente que dicha variable puede tener cualquier valor.
C. Estamos dándole un valor al azar.
D. Ninguna de las anteriores.
Respuesta correcta: D
Preguntas 4 de 10
¿Qué símbolo se usa para notación exponencial?
A. Exp.
B. Power.
C. e.
D. ^.
Respuesta correcta: C
Preguntas 5 de 10
¿Qué permite una cadena de texto literal?
A. Una cadena de texto de un solo carácter.
B. Una cadena de texto cuyo mensaje es siembre verdadero.
C. Una cadena de texto vacía.
D. Una cadena de texto que admite instrucciones JavaScript internamente.
Respuesta correcta: D
Preguntas 6 de 10
¿Qué símbolo se utiliza para indicar una cadena de texto literal?
A. Dobles comillas invertidas.
B. Dobles comillas.
C. Dos signos de admiración.
D. Tres puntos suspensivos a cada lado.
Computación en el cliente Web
Respuesta correcta: A
Preguntas 7 de 10
JavaScript admite solo comillas dobles para indicar una cadena de texto:
A. Verdadero.
B. Falso.
Respuesta correcta: B
Preguntas 8 de 10
Las cadenas de texto admiten métodos:
A. Verdadero.
B. Falso.
Respuesta correcta: A
Preguntas 9 de 10
La asignación de valores por referencia:
A. Es lo mismo que la asignación directa.
B. Solo puede usarse con números enteros positivos.
C. Se utiliza, por defecto, con objetos.
D. No existe en JavaScript.
Respuesta correcta: C
Preguntas 10 de 10
¿Qué significa NaN?
A. Not a Negation.
B. Nor and Neither.
C. Nano.
D. Ninguno de los anteriores.
Respuesta correcta: D
Test 4
¿Cómo podemos filtrar los contenidos de un array?
A. No es posible en JavaScript.
B. Con el método filter(), el cual acepta como parámetro el número mínimo de elementos
del array.
C. Con el método filter().
Computación en el cliente Web
D. Con el método filter(), el cual acepta como parámetro el número máximo de elementos
del array.
Respuesta correcta: C
Preguntas 2 de 10
¿Qué devuelve Object.values(obejto)?
A. Undefined.
B. Un array listando las propiedades del objeto como cadenas de texto.
C. Una cadena de texto con el número de propiedades del objeto.
D. Un objeto vacío y sin inicializar.
Respuesta correcta: B
Preguntas 3 de 10
¿Qué símbolo indica una arrow function?
A. La palabra reservada function.
B. =>
C. Un tipo de bucle.
D. Ninguna de las anteriores.
Respuesta correcta: B
Preguntas 4 de 10
¿Qué es una función callback?
A. Una función llamada por otra función.
B. Una función justamente con ese nombre: callback()
C. Un método.
D. Una propiedad de un array de cuatro elementos.
Respuesta correcta: A
Preguntas 5 de 10
Los valores de las propiedades de un objeto:
A. Solo pueden ser números.
B. Solo pueden ser cadenas de texto.
C. Solo pueden ser otros objetos.
D. Todas las anteriores son falsas.
Computación en el cliente Web
Respuesta correcta: D
Preguntas 6 de 10
Para referenciar a this desde dentro de un objeto:
A. El objeto tiene que ser siempre un array.
B. Podemos usar una función definida por su nombre.
C. Es imposible.
D. Usamos el método definido como una función flecha.
Respuesta correcta: B
Preguntas 7 de 10
Es imposible crear un objeto de manera no literal:
A. Verdadero.
B. Falso.
Respuesta correcta: B
Preguntas 8 de 10
En JavaScript no hay parámetros por defecto en las funciones:
A. Verdadero.
B. Falso.
Respuesta correcta: B
Preguntas 9 de 10
El número de parámetros de una función:
A. Puede ser variable.
B. Es siembre fijo e igual a 3.
C. Es siembre fijo e igual a 2.
D. Todas las afirmaciones anteriores son falsas.
Respuesta correcta: A
Preguntas 10 de 10
Los métodos forEach() y map():
A. Hacen exactamente lo mismo.
B. Ambos devuelve valores derivados.
C. Son distintos.
D. Todas las afirmaciones anteriores son falsas.
Computación en el cliente Web
Respuesta correcta: C
Test 5
¿Qué devuelve innerHTML?
A. El tipo de etiqueta del elemento sobre el que se invoca.
B. El contenido HTML de un elemento.
C. Nada.
D. Todas son incorrectas.
Respuesta correcta: B
Preguntas 2 de 10
El DOM es:
A. Un framework incluido en jQuery.
B. Lo mismo que jQuery.
C. Una librería incluida sólo en Microsoft Internet Explorer 6.0.
D. Todas son incorrectas.
Respuesta correcta: D
Preguntas 3 de 10
Las pseudoclases y los pseudoelementos son lo mismo:
A. Verdadero.
B. Falso.
Respuesta correcta: B
Preguntas 4 de 10
¿Qué funcionalidad tiene el método createElement()?
A. Crea un nodo de tipo elemento.
B. Crea un nodo de tipo atributo.
C. Crea un nodo de tipo texto.
D. Crea un nodo de tipo número entero.
Respuesta correcta: A
Computación en el cliente Web
Preguntas 5 de 10
¿Para qué sirve el selector resumido #?
A. Para seleccionar todos los elementos con el mismo identificador único.
B. Para seleccionar todos los elementos con la misma clase.
C. Para seleccionar el primer elemento con un identificador único precedido por el símbolo
#.
D. Todas son incorrectas.
Respuesta correcta: C
Preguntas 6 de 10
¿Qué permite JSDOM?
A. Trabajar con el DOM en el Netscape Navigator 2.0.
B. Trabajar con el DOM en programas escritos en Java.
C. Trabajar con el DOM en JavaScript.
D. Trabajar con el DOM en programas escritos en Node.js.
Respuesta correcta: D
Preguntas 7 de 10
Para buscar elementos en el DOM es necesario usar el framework jQuery:
A. Verdadero.
B. Falso.
Respuesta correcta: B
Preguntas 8 de 10
¿Qué parámetro recibe el método getElementsByTagName?
A. El ID de cada uno de los elementos, ordenado en un array de cadenas de texto.
B. La etiqueta común a todos los elementos presentes en la página.
C. Ninguno.
D. Todas son incorrectas.
Respuesta correcta: B
Computación en el cliente Web
Preguntas 9 de 10
Cuántos tipos de nodos hay descritos por el DOM:
A. 8.
B. 4, principalmente.
C. 2.
D. 1.
Respuesta correcta: B
Preguntas 10 de 10
¿Qué organismo vela por el estado y revisiones del DOM?
A. Microsoft.
B. Apple y Google.
C. ISO, DIN y ECMA.
D. Todas son incorrectas.
Respuesta correcta: D
Test 6
¿Qué indica el evento mouseclick?
A. Un click de ratón.
B. Una pulsación de tecla.
C. Nada, no existe.
D. Todas son incorrectas.
Respuesta correcta: C
Preguntas 2 de 10
¿Para qué sirve el método addEventListener?
A. Para establecer una conexión AJAX.
B. Para conectar un evento a un elemento del DOM.
C. Para conectar un evento de click exclusivamente.
D. Para abrir un puerto TCP.
Respuesta correcta: B
Computación en el cliente Web
Preguntas 3 de 10
Un event listener inline se describe siempre en un fichero de código JavaScript externo:
A. Verdadero.
B. Falso.
Respuesta correcta: B
Preguntas 4 de 10
¿Cómo se define una clase en JavaScript
A. Con la palabra reservada Clase.
B. Con la palabra reservada Prototype.
C. Con la palabra reservada Class.
D. Con la palabra reservada Proto.
Respuesta correcta: C
Preguntas 5 de 10
¿Qué son Twitter Bootstrap y Bulma?
A. Frameworks para desarrollo de interfaces.
B. Librerías JavaScript para computación cuántica.
C. Versiones de la librería jQuery.
D. Versiones de JavaScript.
Respuesta correcta: A
Preguntas 6 de 10
¿Qué es el modo estricto en JavaScript?
A. Hace referencia a una versión futura de JavaScript.
B. Un modo en el que no se puede cometer ningún fallo jamás.
C. Un modo en el que solo se permite el uso de funciones anónimas.
D. Todas las anteriores son falsas.
Respuesta correcta: D
Preguntas 7 de 10
En una promesa de JavaScript un objeto promete que nunca desaparecerá de la memoria:
A. Verdadero.
B. Falso.
Respuesta correcta: B
Computación en el cliente Web
Preguntas 8 de 10
La herencia en JavaScript está principalmente basada en el mecanismo de:
A. Los prototipos.
B. Copia de variables de valor semientero.
C. No tiene mecanismo de herencia.
D. En clases.
Respuesta correcta: A
Preguntas 9 de 10
En una función asíncrona:
A. Cada línea se ejecuta simultáneamente con las demás.
B. No se ejecuta nada hasta que acaba el programa.
C. Todas son falas.
D. No tiene ninguna diferencia con una función normal.
Respuesta correcta: C
Preguntas 10 de 10
Un objeto evento:
A. Contiene propiedades.
B. Es un entero.
C. Es una función asíncrona.
D. Todas son incorrectas.
Respuesta correcta: A