Skip to content

Commit 05573c0

Browse files
José Miguel Sánchez AlésJosé Miguel Sánchez Alés
authored andcommitted
Añade dos ejercicios más de Javascript
1 parent 10ec19c commit 05573c0

File tree

12 files changed

+266
-25
lines changed

12 files changed

+266
-25
lines changed

docs/06.html/07.struct.html

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -175,7 +175,7 @@ <h3>Navegación</h3>
175175
<span id="index-1"></span><dl id="html-section">
176176
<dt><strong>section</strong> (<a class="reference external" href="https://developer.mozilla.org/en-US/docs/Web/HTML/Element/section#technical_summary">section</a>)</dt><dd><p>El elemento nació en <abbr title="HyperText Markup Language">HTML</abbr>5 con la intención de <em>estructurar semánticamente</em> el
177177
contenido del documento de esta forma:</p>
178-
<div class="highlight-html notranslate"><div class="highlight"><pre><span></span><span class="cm">&lt;!-- No utilice esta estructura: es un ejemplo de lo se pensó que fuera y no fue --&gt;</span>
178+
<div class="highlight-html notranslate"><div class="highlight"><pre><span></span><span class="cm">&lt;!-- No utilice esta estructura: es un ejemplo de lo que se pensó que fuera y no fue --&gt;</span>
179179
<span class="p">&lt;</span><span class="nt">section</span><span class="p">&gt;</span>
180180
<span class="p">&lt;</span><span class="nt">h1</span> <span class="na">id</span><span class="o">=</span><span class="s">&quot;mamiferos&quot;</span><span class="p">&gt;</span>Los mamíferos<span class="p">&lt;/</span><span class="nt">h1</span><span class="p">&gt;</span>
181181
<span class="p">&lt;</span><span class="nt">p</span><span class="p">&gt;</span>Bla, bla, bla<span class="p">&lt;/</span><span class="nt">p</span><span class="p">&gt;</span>
@@ -204,7 +204,7 @@ <h3>Navegación</h3>
204204
para <abbr title="HyperText Markup Language">HTML</abbr>5.</p>
205205
<div class="admonition seealso">
206206
<p class="admonition-title">Ver también</p>
207-
<p>Andrian Roselli tiene <a class="reference external" href="https://adrianroselli.com/2016/08/there-is-no-document-outline-algorithm.html">un interesantísimo artículo</a>
207+
<p>Adrian Roselli tiene <a class="reference external" href="https://adrianroselli.com/2016/08/there-is-no-document-outline-algorithm.html">un interesantísimo artículo</a>
208208
sobre cómo, en realidad, a pesar de los múltiples intentos, nunca ha habido
209209
en <abbr title="HyperText Markup Language">HTML</abbr> un algoritmo para la estructuración del documento basado en
210210
<a class="reference internal" href="#html-section"><span class="std std-ref">&lt;section&gt;</span></a> y un elemento único de cabecera (en el ejemplo la combinación
@@ -249,7 +249,7 @@ <h3>Navegación</h3>
249249
1.2 Los reptiles
250250
</pre></div>
251251
</div>
252-
<p>Además, se recomienda que sólo existan un <a class="reference internal" href="04.basico.html#html-h1"><span class="std std-ref">&lt;h1&gt;</span></a> en el documento que actúe como
252+
<p>Además, se recomienda que sólo exista un <a class="reference internal" href="04.basico.html#html-h1"><span class="std std-ref">&lt;h1&gt;</span></a> en el documento que actúe como
253253
su título.</p>
254254
<p>Así, pues, ¿para qué sirve <a class="reference internal" href="#html-section"><span class="std std-ref">&lt;section&gt;</span></a>? Desde luego, no para estructurar el
255255
documento, que fue para lo que se ideó. En opinión de <a class="reference external" href="https://brucelawson.co.uk/">Bruce Lawson</a> en su artículo <a class="reference external" href="https://www.smashingmagazine.com/2020/01/html5-article-section/">Why You Should Choose HTML5

docs/06.html/08.form.html

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ <h1><span class="section-number">6.7. </span>Formularios<a class="headerlink" hr
9999
</ul>
100100
<p>Nuestra intención es conocer cómo se construyen estos formularios sin
101101
preocuparnos de la acción que desencadenan, puesto que el primer ejemplo
102-
requiere de programación con <a class="reference external" href="https://es.wikipedia.org/wiki/JavaScript">Javascript</a> en el lado del cliente, y el segundo
102+
requiere de programación con <a class="reference external" href="https://es.wikipedia.org/wiki/JavaScript">Javascript</a> en el lado del cliente, y el segundo,
103103
programación con algún lenguaje de programación apropiado<a class="footnote-reference brackets" href="#id7" id="id1" role="doc-noteref"><span class="fn-bracket">[</span>1<span class="fn-bracket">]</span></a>.</p>
104104
<p>Como curiosidad, más histórica que otra cosa, los campos de formulario siempre
105105
fueron unos de los elemenos <abbr title="HyperText Markup Language">HTML</abbr> para los que más código <em>Javascript</em> se
@@ -149,7 +149,7 @@ <h2><span class="section-number">6.7.1. </span>Declaración del formulario<a cla
149149
<tr class="row-odd"><td><p>name</p></td>
150150
<td><p>nombre</p></td>
151151
<td><p>Nombre del formulario. Útil en algunas
152-
ocasiones. en <abbr title="HyperText Markup Language">HTML</abbr>5 se prefiere el uso
152+
ocasiones. En <abbr title="HyperText Markup Language">HTML</abbr>5 se prefiere el uso
153153
del atributo <em>id</em>.</p></td>
154154
</tr>
155155
<tr class="row-even"><td><p>target</p></td>
@@ -167,7 +167,7 @@ <h2><span class="section-number">6.7.1. </span>Declaración del formulario<a cla
167167
automáticamente los campos de texto
168168
atendiendo a los criterios que tenga
169169
establecidos (p.e. valores previos
170-
instroducido en campos con el mismo nombre).</p></td>
170+
introducidos en campos con el mismo nombre).</p></td>
171171
</tr>
172172
</tbody>
173173
</table>
@@ -231,14 +231,14 @@ <h2><span class="section-number">6.7.2. </span>Introducción manual de datos<a c
231231
<td><p>off|on</p></td>
232232
<td><p>Permite al navegador autocompletar este campo
233233
de manera análoga al atributo de <a class="reference internal" href="#html-form"><span class="std std-ref">&lt;form&gt;</span></a> que
234-
se aplica sobre en general sobre todos los
235-
campos del formulario.</p></td>
234+
se aplica en general sobre todos los campos
235+
del formulario.</p></td>
236236
</tr>
237237
<tr class="row-even"><td><p>autofocus</p></td>
238238
<td><p>-</p></td>
239239
<td><p>Atrae hacia sí el foco. Por tanto, debería
240-
este atributo aquel campo que queremos que
241-
sea el primero en rellenar el usuario.</p></td>
240+
tener este atributo aquel campo que queremos
241+
que sea el primero en rellenar el usuario.</p></td>
242242
</tr>
243243
<tr class="row-odd"><td><p>disabled</p></td>
244244
<td><p>-</p></td>
@@ -260,7 +260,7 @@ <h2><span class="section-number">6.7.2. </span>Introducción manual de datos<a c
260260
<tr class="row-even"><td><p>name</p></td>
261261
<td><p>nombre</p></td>
262262
<td><p>Nombre identificativo del campo usado cuando
263-
se envia al servidor.</p></td>
263+
se envía al servidor.</p></td>
264264
</tr>
265265
<tr class="row-odd"><td><p>pattern<a class="footnote-reference brackets" href="#id10" id="id4" role="doc-noteref"><span class="fn-bracket">[</span>4<span class="fn-bracket">]</span></a></p></td>
266266
<td><p>regexp</p></td>
@@ -341,7 +341,7 @@ <h2><span class="section-number">6.7.2. </span>Introducción manual de datos<a c
341341
Sin embargo, no debe ser así, puesto que la semántica es importante y,
342342
además, el tipo puede provocar cambios en el comportamiento del navegador.
343343
Por ejemplo, cuando el tipo es numérico, no es posible escribir letras
344-
aunque se pulsen y, en el caso de ser un el dispositivo un teléfono móvil,
344+
aunque se pulsen y, en el caso de ser el dispositivo un teléfono móvil,
345345
aparecerá un teclado numérico exclusivamente.</p>
346346
</div>
347347
<p>Ejemplo:</p>

docs/99.ejercicios/80-js-basico.html

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -185,6 +185,12 @@ <h2>Medios<a class="headerlink" href="#medios" title="Enlace permanente a este e
185185
necesarias y cuál fue el resultado (1-1, 2-2, etc.).</p></li>
186186
<li><p>A partir de un número, obtenga otro número que sea la inversión de sus
187187
cifras. Por ejemplo, si el número inicial es 321, deberá resultar 123.</p></li>
188+
<li><p>Cree una función llamada <code class="docutils literal notranslate"><span class="pre">indexOf_N</span></code> que busque en un array la aparición
189+
n-ésima de un determinado valor. Por ejemplo, para el array <code class="code docutils literal notranslate"><span class="pre">[</span> <span class="pre">&quot;a&quot;,</span>
190+
<span class="pre">&quot;b&quot;,</span> <span class="pre">&quot;a&quot;,</span> <span class="pre">&quot;c&quot;,</span> <span class="pre">&quot;d&quot;,</span> <span class="pre">&quot;a&quot;,</span> <span class="pre">&quot;e&quot;]</span></code>, si se busca la tercera aparición de «a» debe
191+
devolver 5. El primer argumento de la función debe ser el array, el segundo
192+
el valor a buscar y el tercero el número de aparición.</p></li>
193+
<li><p>Escriba un función que determine si un número es capicúa.</p></li>
188194
<li><p>Una cooperativa de viticultores paga el precio de la uva dependiendo del tipo de uva
189195
(tempranillo, palomino, etc) y de su calibre (1, 2 ó 3). Escriba un
190196
algoritmo para determinar el pago que debe recibir un agricultor dependiendo

docs/_sources/06.html/07.struct.rst.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ semánticamente el documento |HTML|.
9797

9898
.. code-block:: html
9999

100-
<!-- No utilice esta estructura: es un ejemplo de lo se pensó que fuera y no fue -->
100+
<!-- No utilice esta estructura: es un ejemplo de lo que se pensó que fuera y no fue -->
101101
<section>
102102
<h1 id="mamiferos">Los mamíferos</h1>
103103
<p>Bla, bla, bla</p>
@@ -126,7 +126,7 @@ semánticamente el documento |HTML|.
126126
y tampoco llegó a plasmarse nunca en las especificaciones oficiales del |W3C|
127127
para |HTML|\ 5.
128128

129-
.. seealso:: Andrian Roselli tiene `un interesantísimo artículo
129+
.. seealso:: Adrian Roselli tiene `un interesantísimo artículo
130130
<https://adrianroselli.com/2016/08/there-is-no-document-outline-algorithm.html>`_
131131
sobre cómo, en realidad, a pesar de los múltiples intentos, nunca ha habido
132132
en |HTML| un algoritmo para la estructuración del documento basado en
@@ -178,7 +178,7 @@ semánticamente el documento |HTML|.
178178
1.1.2 Los felinos
179179
1.2 Los reptiles
180180
181-
Además, se recomienda que sólo existan un |h1| en el documento que actúe como
181+
Además, se recomienda que sólo exista un |h1| en el documento que actúe como
182182
su título.
183183

184184
Así, pues, ¿para qué sirve |section|? Desde luego, no para estructurar el

docs/_sources/06.html/08.form.rst.txt

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ corre en él, asociada al documento, lleve a cabo alguna tarea. Por ejemplo:
2424

2525
Nuestra intención es conocer cómo se construyen estos formularios sin
2626
preocuparnos de la acción que desencadenan, puesto que el primer ejemplo
27-
requiere de programación con Javascript_ en el lado del cliente, y el segundo
27+
requiere de programación con Javascript_ en el lado del cliente, y el segundo,
2828
programación con algún lenguaje de programación apropiado\ [#]_.
2929

3030
Como curiosidad, más histórica que otra cosa, los campos de formulario siempre
@@ -69,7 +69,7 @@ determina qué hacer con los datos recabados.
6969
| | | dialog | | El formulario se asocia a un elemento |dialog|.|
7070
+--------------+------------+--------------------------------------------------+
7171
| name | nombre | Nombre del formulario. Útil en algunas |
72-
| | | ocasiones. en |HTML|\ 5 se prefiere el uso |
72+
| | | ocasiones. En |HTML|\ 5 se prefiere el uso |
7373
| | | del atributo *id*. |
7474
+--------------+------------+--------------------------------------------------+
7575
| target | valor | Con igual significado que el atributo |
@@ -81,7 +81,7 @@ determina qué hacer con los datos recabados.
8181
| | | automáticamente los campos de texto |
8282
| | | atendiendo a los criterios que tenga |
8383
| | | establecidos (p.e. valores previos |
84-
| | | instroducido en campos con el mismo nombre). |
84+
| | | introducidos en campos con el mismo nombre). |
8585
+--------------+------------+--------------------------------------------------+
8686

8787
Los principales atributos del elemento son *action* y *method*, aunque el
@@ -146,12 +146,12 @@ son:
146146
+--------------+----------+-----------------------------------------------+
147147
| autocomplete | off|on | Permite al navegador autocompletar este campo |
148148
| | | de manera análoga al atributo de |form| que |
149-
| | | se aplica sobre en general sobre todos los |
150-
| | | campos del formulario. |
149+
| | | se aplica en general sobre todos los campos |
150+
| | | del formulario. |
151151
+--------------+----------+-----------------------------------------------+
152152
| autofocus | \- | Atrae hacia sí el foco. Por tanto, debería |
153-
| | | este atributo aquel campo que queremos que |
154-
| | | sea el primero en rellenar el usuario. |
153+
| | | tener este atributo aquel campo que queremos |
154+
| | | que sea el primero en rellenar el usuario. |
155155
+--------------+----------+-----------------------------------------------+
156156
| disabled | \- | Deshabilita el campo. Comúnmente se añade |
157157
| | | con intención de que alguna acción de usuario |
@@ -165,7 +165,7 @@ son:
165165
| | | predefinidos para sugerir al usuario. |
166166
+--------------+----------+-----------------------------------------------+
167167
| name | nombre | Nombre identificativo del campo usado cuando |
168-
| | | se envia al servidor. |
168+
| | | se envía al servidor. |
169169
+--------------+----------+-----------------------------------------------+
170170
| pattern\ [#]_| regexp | :ref:`Expresión regular <linux:regex>` con |
171171
| | | la que debe concordar |
@@ -224,7 +224,7 @@ son:
224224
Sin embargo, no debe ser así, puesto que la semántica es importante y,
225225
además, el tipo puede provocar cambios en el comportamiento del navegador.
226226
Por ejemplo, cuando el tipo es numérico, no es posible escribir letras
227-
aunque se pulsen y, en el caso de ser un el dispositivo un teléfono móvil,
227+
aunque se pulsen y, en el caso de ser el dispositivo un teléfono móvil,
228228
aparecerá un teclado numérico exclusivamente.
229229

230230
Ejemplo:

docs/_sources/99.ejercicios/80-js-basico.rst.txt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,14 @@ Medios
9595
#. A partir de un número, obtenga otro número que sea la inversión de sus
9696
cifras. Por ejemplo, si el número inicial es 321, deberá resultar 123.
9797

98+
#. Cree una función llamada ``indexOf_N`` que busque en un array la aparición
99+
n-ésima de un determinado valor. Por ejemplo, para el array :code:`[ "a",
100+
"b", "a", "c", "d", "a", "e"]`, si se busca la tercera aparición de "a" debe
101+
devolver 5. El primer argumento de la función debe ser el array, el segundo
102+
el valor a buscar y el tercero el número de aparición.
103+
104+
#. Escriba un función que determine si un número es capicúa.
105+
98106
#. Una cooperativa de viticultores paga el precio de la uva dependiendo del tipo de uva
99107
(tempranillo, palomino, etc) y de su calibre (1, 2 ó 3). Escriba un
100108
algoritmo para determinar el pago que debe recibir un agricultor dependiendo

docs/objects.inv

-4 Bytes
Binary file not shown.

docs/searchindex.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

source/99.ejercicios/80-js-basico.rst

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,14 @@ Medios
9595
#. A partir de un número, obtenga otro número que sea la inversión de sus
9696
cifras. Por ejemplo, si el número inicial es 321, deberá resultar 123.
9797

98+
#. Cree una función llamada ``indexOf_N`` que busque en un array la aparición
99+
n-ésima de un determinado valor. Por ejemplo, para el array :code:`[ "a",
100+
"b", "a", "c", "d", "a", "e"]`, si se busca la tercera aparición de "a" debe
101+
devolver 5. El primer argumento de la función debe ser el array, el segundo
102+
el valor a buscar y el tercero el número de aparición.
103+
104+
#. Escriba un función que determine si un número es capicúa.
105+
98106
#. Una cooperativa de viticultores paga el precio de la uva dependiendo del tipo de uva
99107
(tempranillo, palomino, etc) y de su calibre (1, 2 ó 3). Escriba un
100108
algoritmo para determinar el pago que debe recibir un agricultor dependiendo
Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
"use strict";
2+
3+
/**
4+
* @file Realiza un operación al azar con dos operadores.
5+
* @author José Miguel Sánchez Alés <jsanale860@g.educaand.es>
6+
*/
7+
8+
/**
9+
* Controla si se genera una entrada alteatoria o no.
10+
* @type {boolean}
11+
*/
12+
const aleatorio = false;
13+
14+
/**
15+
* Operaciones disponibles
16+
* @type {Array}
17+
*/
18+
const OPERACIONES = ['+', '-', '*', '/', '%']
19+
20+
/**
21+
* Límite inferior predefinido para generar aleatorios.
22+
* @type {number}
23+
*/
24+
const MIN = 1,
25+
/**
26+
* Límite superior predefinido para generar aleatorios.
27+
* @type {number}
28+
*/
29+
MAX = 100;
30+
31+
/**
32+
* Primer operando predeterminado.
33+
* @type {number}
34+
*/
35+
const A = 15,
36+
/**
37+
* Segundo operando predeterminado.
38+
* @type {number}
39+
*/
40+
B = 5
41+
42+
43+
/**
44+
* Genera un entero aleatorio entre un límite inferior
45+
* y un límite superior
46+
*
47+
* @param {number} min - El límite inferior.
48+
* @param {number} max - El límite superior.
49+
*
50+
* @example
51+
* // Devuelve un entero entre 0 y 10 (ambos inclusive)
52+
* generarAleatorio(0, 10);
53+
*
54+
* @returns {number} - El entero aleatorio.
55+
*/
56+
function generarAleatorio(min, max) {
57+
return Math.round(Math.random()*(max - min)) + min;
58+
}
59+
60+
const a = aleatorio?generarAleatorio(MIN, MAX):A,
61+
b = aleatorio?generarAleatorio(MIN, MAX):B;
62+
63+
const operacion = OPERACIONES[generarAleatorio(0, OPERACIONES.length - 1)];
64+
65+
let resultado;
66+
67+
switch(operacion) {
68+
case '+':
69+
resultado = a + b;
70+
break;
71+
case '-':
72+
resultado = a - b;
73+
break;
74+
case '*':
75+
resultado = a * b;
76+
break;
77+
case '/':
78+
resultado = a / b;
79+
break;
80+
case '%':
81+
resultado = a % b;
82+
break;
83+
}
84+
85+
console.log(`El resultado de ${a} ${operacion} ${b} es ${resultado}`);
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
"use strict";
2+
3+
/**
4+
* @file Determina si un año es bisiesto o no.
5+
* @author José Miguel Sánchez Alés <jsanale860@g.educaand.es>
6+
*/
7+
8+
/**
9+
* Controla si se genera una entrada alteatoria o no.
10+
* @type {boolean}
11+
*/
12+
const aleatorio = true;
13+
14+
/**
15+
* Límite inferior predefinido para generar aleatorios.
16+
* @type {number}
17+
*/
18+
const MIN = 1,
19+
/**
20+
* Límite superior predefinido para generar aleatorios.
21+
* @type {number}
22+
*/
23+
MAX = 3212;
24+
25+
/**
26+
* Año predeterminado para hacer el cálculo
27+
* @type {number}
28+
*/
29+
const ANHO = 1999;
30+
31+
/**
32+
* Genera un entero aleatorio entre un límite inferior
33+
* y un límite superior
34+
*
35+
* @param {number} min - El límite inferior.
36+
* @param {number} max - El límite superior.
37+
*
38+
* @example
39+
* // Devuelve un entero entre 0 y 10 (ambos inclusive)
40+
* generarAleatorio(0, 10);
41+
*
42+
* @returns {number} - El entero aleatorio.
43+
*/
44+
function generarAleatorio(min, max) {
45+
return Math.round(Math.random()*(max - min)) + min;
46+
}
47+
48+
/**
49+
* Calcula si un año es o no bisiesto.
50+
* @param {number} anho - Año a determinar.
51+
*
52+
* @example
53+
* esBisiesto(2000); // Devuelve true.
54+
*
55+
* @returns {boolean}
56+
*/
57+
function esBisiesto(anho) {
58+
return anho % 4 === 0 && (anho % 100 != 0 || anho % 400 === 0);
59+
}
60+
61+
const anho = aleatorio?generarAleatorio(MIN, MAX):ANHO;
62+
63+
console.log(`El año ${anho} ${esBisiesto(anho)?"":"no "}es bisiesto`);

0 commit comments

Comments
 (0)