Skip to content

Commit 10ec19c

Browse files
José Miguel Sánchez AlésJosé Miguel Sánchez Alés
authored andcommitted
Corrección de erratas. Añade un ejercicio a Javascript
1 parent 247642b commit 10ec19c

File tree

8 files changed

+226
-13
lines changed

8 files changed

+226
-13
lines changed

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

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -200,8 +200,28 @@ <h2>Medios<a class="headerlink" href="#medios" title="Enlace permanente a este e
200200
<li><p>Estudie las fechas en Javascript (<a class="reference external" href="https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/Date">Date</a>)
201201
y, dada la fecha de nacimiento de una persona, haga un programa que determine
202202
si es o no mayor de edad.</p></li>
203+
<li><p>Dada una lista de números, devuelva otra que excluya los números mayores al último.</p></li>
203204
<li><p>Tome diez números naturales entre 1 y 40 al azar y calcule la suma y el
204205
producto de todos ellos.</p></li>
206+
<li><p>Dado un número natural N, construya una pirámide de N niveles. Por ejemplo, para 4:</p>
207+
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span> x
208+
xxx
209+
xxxxx
210+
xxxxxxx
211+
</pre></div>
212+
</div>
213+
<div class="sol-oculta highlight-javascript notranslate"><div class="highlight"><pre><span></span><span class="s2">&quot;use strict&quot;</span><span class="p">;</span>
214+
215+
<span class="kd">const</span><span class="w"> </span><span class="nx">n</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">6</span><span class="p">;</span><span class="w"> </span><span class="c1">// Altura de la pirámide</span>
216+
217+
<span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="sb">`Pirámide de altura </span><span class="si">${</span><span class="nx">n</span><span class="si">}</span><span class="sb">:`</span><span class="p">)</span>
218+
<span class="k">for</span><span class="p">(</span><span class="kd">let</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">0</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mf">6</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
219+
<span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="nx">linea</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">&quot; &quot;</span><span class="p">.</span><span class="nx">repeat</span><span class="p">(</span><span class="nx">n</span><span class="o">-</span><span class="nx">i</span><span class="o">-</span><span class="mf">1</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="s2">&quot;x&quot;</span><span class="p">.</span><span class="nx">repeat</span><span class="p">(</span><span class="mf">2</span><span class="o">*</span><span class="nx">i</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mf">1</span><span class="p">);</span>
220+
<span class="w"> </span><span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="nx">linea</span><span class="p">);</span>
221+
<span class="p">}</span>
222+
</pre></div>
223+
</div>
224+
</li>
205225
</ol>
206226
</section>
207227
</section>

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

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,5 +112,31 @@ Medios
112112
y, dada la fecha de nacimiento de una persona, haga un programa que determine
113113
si es o no mayor de edad.
114114

115+
#. Dada una lista de números, devuelva otra que excluya los números mayores al último.
116+
115117
#. Tome diez números naturales entre 1 y 40 al azar y calcule la suma y el
116118
producto de todos ellos.
119+
120+
#. Dado un número natural N, construya una pirámide de N niveles. Por ejemplo, para 4:
121+
122+
.. code-block:: none
123+
124+
x
125+
xxx
126+
xxxxx
127+
xxxxxxx
128+
129+
130+
.. rst-class:: sol-oculta
131+
132+
.. code-block:: javascript
133+
134+
"use strict";
135+
136+
const n = 6; // Altura de la pirámide
137+
138+
console.log(`Pirámide de altura ${n}:`)
139+
for(let i = 0; i < 6; i++) {
140+
let linea = " ".repeat(n-i-1) + "x".repeat(2*i + 1);
141+
console.log(linea);
142+
}

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/06.html/07.struct.rst

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

source/06.html/08.form.rst

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:

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

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,5 +112,31 @@ Medios
112112
y, dada la fecha de nacimiento de una persona, haga un programa que determine
113113
si es o no mayor de edad.
114114

115+
#. Dada una lista de números, devuelva otra que excluya los números mayores al último.
116+
115117
#. Tome diez números naturales entre 1 y 40 al azar y calcule la suma y el
116118
producto de todos ellos.
119+
120+
#. Dado un número natural N, construya una pirámide de N niveles. Por ejemplo, para 4:
121+
122+
.. code-block:: none
123+
124+
x
125+
xxx
126+
xxxxx
127+
xxxxxxx
128+
129+
130+
.. rst-class:: sol-oculta
131+
132+
.. code-block:: javascript
133+
134+
"use strict";
135+
136+
const n = 6; // Altura de la pirámide
137+
138+
console.log(`Pirámide de altura ${n}:`)
139+
for(let i = 0; i < 6; i++) {
140+
let linea = " ".repeat(n-i-1) + "x".repeat(2*i + 1);
141+
console.log(linea);
142+
}
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
/**
2+
* @file Calcula el área de un rectánguloa partir de sus dos lados.
3+
* @author José Miguel Sánchez Alés <jsanale860@g.educaand.es>
4+
*/
5+
6+
/**
7+
* Controla si se genera una entrada alteatoria o no.
8+
* @type {boolean}
9+
*/
10+
const aleatorio = true;
11+
12+
/**
13+
* Límite inferior predefinido para generar aleatorios.
14+
* @type {number}
15+
*/
16+
const MIN = 1,
17+
/**
18+
* Límite superior predefinido para generar aleatorios.
19+
* @type {number}
20+
*/
21+
MAX = 50;
22+
23+
/**
24+
* Ancho predeterminado.
25+
* @type {number}
26+
*/
27+
const ANCHO = 15,
28+
/**
29+
* Alto predeterminado.
30+
* @type {number}
31+
*/
32+
ALTO = 20;
33+
34+
35+
/**
36+
* Genera un entero aleatorio entre un límite inferior
37+
* y un límite superior
38+
*
39+
* @param {number} min - El límite inferior.
40+
* @param {number} max - El límite superior.
41+
*
42+
* @example
43+
* // Devuelve un entero entre 0 y 10 (ambos inclusive)
44+
* generarAleatorio(0, 10);
45+
*
46+
* @returns {number} - El entero aleatorio.
47+
*/
48+
function generarAleatorio(min, max) {
49+
return Math.round(Math.random()*(max - min)) + min;
50+
}
51+
52+
/**
53+
* Calcula el área de un rectángulo.
54+
* @param {number} alto - Longitud de su altura.
55+
* @param {number} ancho - Longitud de su anchura.
56+
*
57+
* @example
58+
* areaRectangulo(2, 6); // Devuelve 12
59+
*
60+
* @returns {number} - El área.
61+
*/
62+
function areaRectangulo(alto, ancho) {
63+
return ancho*alto;
64+
}
65+
66+
const ancho = aleatorio?generarAleatorio(MIN, MAX):ANCHO,
67+
alto = aleatorio?generarAleatorio(MIN, MAX):ALTO;
68+
69+
console.log(`El area de un rectángulo de ${ancho}x${alto} es ${areaRectangulo(ancho, alto)}.`);
Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
"use strict";
2+
3+
/**
4+
* @file Calcula la hipotenusa de un triángulo rectángulo a partir
5+
* de dos catetos.
6+
* @author José Miguel Sánchez Alés <jsanale860@g.educaand.es>
7+
*/
8+
9+
/**
10+
* Controla si se genera una entrada alteatoria o no.
11+
* @type {boolean}
12+
*/
13+
const aleatorio = true;
14+
15+
/**
16+
* Límite inferior predefinido para generar aleatorios.
17+
* @type {number}
18+
*/
19+
const MIN = 1,
20+
/**
21+
* Límite superior predefinido para generar aleatorios.
22+
* @type {number}
23+
*/
24+
MAX = 50;
25+
26+
/**
27+
* Longitud predeterminada del primer cateto.
28+
* @type {number}
29+
*/
30+
const A = 15,
31+
/**
32+
* Longitud predeterminada del segundo cateto.
33+
* @type {number}
34+
*/
35+
B = 20;
36+
37+
38+
/**
39+
* Genera un entero aleatorio entre un límite inferior
40+
* y un límite superior
41+
*
42+
* @param {number} min - El límite inferior.
43+
* @param {number} max - El límite superior.
44+
*
45+
* @example
46+
* // Devuelve un entero entre 0 y 10 (ambos inclusive)
47+
* generarAleatorio(0, 10);
48+
*
49+
* @returns {number} - El entero aleatorio.
50+
*/
51+
function generarAleatorio(min, max) {
52+
return Math.round(Math.random()*(max - min)) + min;
53+
}
54+
55+
/**
56+
* Calcula la hipotenusa usando el teorema de Pitágoras.
57+
* @param {number} a - La longitud del primer cateto.
58+
* @param {number} b - La longitud del segundo.
59+
*
60+
* @example
61+
* calcularHipotenusa(3, 4); // Devuelve 5.
62+
*
63+
* @returns {number} - La longitud de la hipotenusa.
64+
*/
65+
function calcularHipotenusa(a, b) {
66+
return Math.sqrt(a**2 + b**2);
67+
}
68+
69+
const a = aleatorio?generarAleatorio(MIN, MAX):A,
70+
b = aleatorio?generarAleatorio(MIN, MAX):B;
71+
72+
console.log(`El area de un rectángulo de ${a}x${b} es ${calcularHipotenusa(a, b).toFixed(3)}.`);

0 commit comments

Comments
 (0)