Skip to content

Commit 467ea62

Browse files
José Miguel Sánchez AlésJosé Miguel Sánchez Alés
authored andcommitted
Corrección de erratas
1 parent 05573c0 commit 467ea62

File tree

8 files changed

+306
-10
lines changed

8 files changed

+306
-10
lines changed

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ <h2>Mínimos<a class="headerlink" href="#minimos" title="Enlace permanente a est
8989
<li><p>Resueltos los ejercicios, vuelva a resolverlos permitiendo que los datos
9090
de entrada, en vez de estar fijados en el código, se generen
9191
automáticamente entre dos valores que resulten lógicos. No haga un código
92-
aparte: mejore el código ya escrito para que se utilizen números
92+
aparte: mejore el código ya escrito para que se utilicen números
9393
prefijados o números aleatorios dependiendo del valor de una variable
9494
inicial.</p>
9595
<div class="admonition note">
@@ -110,7 +110,7 @@ <h2>Mínimos<a class="headerlink" href="#minimos" title="Enlace permanente a est
110110
su área y su perímetro.</p></li>
111111
<li><p>A partir de dos números que simbolizan los catetos de un triángulo rectángulo,
112112
calcule la hipotenusa (<a class="reference external" href="https://es.wikipedia.org/wiki/Teorema_de_Pit%C3%A1go">teorema de Pitágoras</a>).</p></li>
113-
<li><p>Pase un cantidad expresada en segundos a horas, minutos y segundos.</p></li>
113+
<li><p>Pase una cantidad expresada en segundos a horas, minutos y segundos.</p></li>
114114
<li><p>Dada la edad en años de una persona, haga un programa que determine si es o
115115
no mayor de edad.</p></li>
116116
<li><p>A partir de un monedero en el que se tienen monedas de 1 euro y billetes de
@@ -124,7 +124,7 @@ <h2>Mínimos<a class="headerlink" href="#minimos" title="Enlace permanente a est
124124
<li><p>Determinar si un año es bisiesto. Son bisiestos los años múltiples de 4,
125125
excepto los de comienzo de siglo que no son múltiplos de 400: 1994 es
126126
bisiesto, 1900 no lo es, pero 2000, sí.</p></li>
127-
<li><p>Dada una nota númerica entre 0 y 10, devuelva la nota descriptiva, sabiendo
127+
<li><p>Dada una nota numérica entre 0 y 10, devuelva la nota descriptiva, sabiendo
128128
las equivalencias:</p>
129129
<table class="docutils align-default">
130130
<thead>

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ principios:
1717
#. Resueltos los ejercicios, vuelva a resolverlos permitiendo que los datos
1818
de entrada, en vez de estar fijados en el código, se generen
1919
automáticamente entre dos valores que resulten lógicos. No haga un código
20-
aparte: mejore el código ya escrito para que se utilizen números
20+
aparte: mejore el código ya escrito para que se utilicen números
2121
prefijados o números aleatorios dependiendo del valor de una variable
2222
inicial.
2323

@@ -37,7 +37,7 @@ principios:
3737
calcule la hipotenusa (`teorema de Pitágoras
3838
<https://es.wikipedia.org/wiki/Teorema_de_Pit%C3%A1go>`_).
3939

40-
#. Pase un cantidad expresada en segundos a horas, minutos y segundos.
40+
#. Pase una cantidad expresada en segundos a horas, minutos y segundos.
4141

4242
#. Dada la edad en años de una persona, haga un programa que determine si es o
4343
no mayor de edad.
@@ -57,7 +57,7 @@ principios:
5757
excepto los de comienzo de siglo que no son múltiplos de 400: 1994 es
5858
bisiesto, 1900 no lo es, pero 2000, sí.
5959

60-
#. Dada una nota númerica entre 0 y 10, devuelva la nota descriptiva, sabiendo
60+
#. Dada una nota numérica entre 0 y 10, devuelva la nota descriptiva, sabiendo
6161
las equivalencias:
6262

6363
========== ========== ==================

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: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ principios:
1717
#. Resueltos los ejercicios, vuelva a resolverlos permitiendo que los datos
1818
de entrada, en vez de estar fijados en el código, se generen
1919
automáticamente entre dos valores que resulten lógicos. No haga un código
20-
aparte: mejore el código ya escrito para que se utilizen números
20+
aparte: mejore el código ya escrito para que se utilicen números
2121
prefijados o números aleatorios dependiendo del valor de una variable
2222
inicial.
2323

@@ -37,7 +37,7 @@ principios:
3737
calcule la hipotenusa (`teorema de Pitágoras
3838
<https://es.wikipedia.org/wiki/Teorema_de_Pit%C3%A1go>`_).
3939

40-
#. Pase un cantidad expresada en segundos a horas, minutos y segundos.
40+
#. Pase una cantidad expresada en segundos a horas, minutos y segundos.
4141

4242
#. Dada la edad en años de una persona, haga un programa que determine si es o
4343
no mayor de edad.
@@ -57,7 +57,7 @@ principios:
5757
excepto los de comienzo de siglo que no son múltiplos de 400: 1994 es
5858
bisiesto, 1900 no lo es, pero 2000, sí.
5959

60-
#. Dada una nota númerica entre 0 y 10, devuelva la nota descriptiva, sabiendo
60+
#. Dada una nota numérica entre 0 y 10, devuelva la nota descriptiva, sabiendo
6161
las equivalencias:
6262

6363
========== ========== ==================
Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
"use strict";
2+
3+
/**
4+
* @file Transforma un tiempo en segundo a horas, minutos y segundos.
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 = 0,
19+
/**
20+
* Límite superior predefinido para generar aleatorios.
21+
* @type {number}
22+
*/
23+
MAX = 100000;
24+
25+
/**
26+
* Tiempo predeterminado en segundos.
27+
* @type {number}
28+
*/
29+
const TIEMPO = 46541;
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+
* Transfomra un tiempo en segundos a horas, minutos y segundos.
50+
* @param {number} t - El tiempo en segundos.
51+
*
52+
* @example
53+
* conversorTiempo(36000); // Devuelve [1, 0, 0].
54+
*
55+
* @returns {Array} - Un array con [h, m, s]
56+
*/
57+
function conversorTiempo(t) {
58+
const res = [t, 0, 0];
59+
60+
for(let i=0; i < res.length - 1; i++) {
61+
res[i+1] = Math.floor(res[i]/60);
62+
res[i] = res[i]%60;
63+
}
64+
65+
return res.reverse();
66+
67+
}
68+
69+
const tiempo = aleatorio?generarAleatorio(MIN, MAX):TIEMPO;
70+
71+
let hms = conversorTiempo(tiempo);
72+
73+
console.log(`${tiempo} segundos son ${hms[0]} horas, ${hms[1]} minutos y ${hms[2]} segundos.`);
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
"use strict";
2+
3+
/**
4+
* @file Determina si una persona es o no mayor de edad.
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 = 0,
19+
/**
20+
* Límite superior predefinido para generar aleatorios.
21+
* @type {number}
22+
*/
23+
MAX = 105;
24+
25+
/**
26+
* Edad predeterminada.
27+
* @type {number}
28+
*/
29+
const EDAD = 20;
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+
* Comprueba si alguien es mayor de edad.
50+
* @param {number} edad - La edad de la persona.
51+
*
52+
* @example
53+
* esMayorDeEdad(22); // true
54+
*
55+
* @returns {boolean} - El resultado de la comprobación
56+
*/
57+
function esMayorDeEdad(edad) {
58+
const MAYORIA = 18;
59+
60+
return edad >= MAYORIA;
61+
62+
}
63+
64+
const edad = aleatorio?generarAleatorio(MIN, MAX):EDAD;
65+
console.log(`Una persona de ${edad} años ${esMayorDeEdad(edad)?"":"no "}es mayor de edad.`);
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 el dinero total que tiene un monedero con moneda fraccionaria.
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 = 0,
19+
/**
20+
* Límite superior predefinido para generar aleatorios.
21+
* @type {number}
22+
*/
23+
MAX = 100;
24+
25+
/**
26+
* Monedero predeterminado
27+
* @type {object}
28+
*/
29+
const MONEDERO = {
30+
1: 1,
31+
5: 1,
32+
10: 1,
33+
20: 1,
34+
50: 1
35+
}
36+
37+
/**
38+
* Genera un entero aleatorio entre un límite inferior
39+
* y un límite superior
40+
*
41+
* @param {number} min - El límite inferior.
42+
* @param {number} max - El límite superior.
43+
*
44+
* @example
45+
* // Devuelve un entero entre 0 y 10 (ambos inclusive)
46+
* generarAleatorio(0, 10);
47+
*
48+
* @returns {number} - El entero aleatorio.
49+
*/
50+
function generarAleatorio(min, max) {
51+
return Math.round(Math.random()*(max - min)) + min;
52+
}
53+
54+
55+
// Si estuviéramos haciendo POO esto podría ser un método de monedero
56+
/**
57+
* Calcula el dinero total equivalente al dinero
58+
* en monedas y billetes que tenemos.
59+
* @param {object} mon - El monedero constituido por monedas.
60+
*
61+
* @example
62+
* conversorTiempo({1: 1, 5: 1, 10: 1, 20: 1, 50: 1}); // Devuelve 86.
63+
*
64+
* @returns {number} - La cantidad total de euros.
65+
*/
66+
function calcularTotal(mon) {
67+
return Object.entries(mon).reduce((a,e) => a + e[0]*e[1], 0);;
68+
}
69+
70+
const monedero = aleatorio?Object.fromEntries(Object.keys(MONEDERO).map(e => [e, generarAleatorio(MIN, MAX)])):MONEDERO;
71+
72+
console.log(`El monedero contiene ${calcularTotal(monedero)} euros`);
Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
"use strict";
2+
3+
/**
4+
* @file Calcula el dinero total que tiene un monedero con moneda fraccionaria.
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 = 0,
19+
/**
20+
* Límite superior predefinido para generar aleatorios.
21+
* @type {number}
22+
*/
23+
MAX = 10000;
24+
25+
/**
26+
* Fracciones existentes de dinero.
27+
* @type {object}
28+
*/
29+
const FRACCIONES = [50, 20, 10, 5, 1];
30+
31+
/**
32+
* Total predeterminado de dinero.
33+
* @type {number}
34+
*/
35+
const TOTAL = 1254;
36+
37+
/**
38+
* Genera un entero aleatorio entre un límite inferior
39+
* y un límite superior
40+
*
41+
* @param {number} min - El límite inferior.
42+
* @param {number} max - El límite superior.
43+
*
44+
* @example
45+
* // Devuelve un entero entre 0 y 10 (ambos inclusive)
46+
* generarAleatorio(0, 10);
47+
*
48+
* @returns {number} - El entero aleatorio.
49+
*/
50+
function generarAleatorio(min, max) {
51+
return Math.round(Math.random()*(max - min)) + min;
52+
}
53+
54+
55+
/**
56+
* Devuelve un monedero con la moneda fraccionaria.
57+
* @param {number} monto - Cantidad de dinero a fraccionar.
58+
*
59+
* @example
60+
* fraccionar(87); // Devuelve {1: 2, 5: 1, 10: 1, 20: 1, 50: 1}
61+
*
62+
* @returns {object} - Monedero con la cantidad de cada moneda.
63+
*/
64+
function fraccionar(monto) {
65+
return FRACCIONES.reduce((mon, frac) => {
66+
mon[frac] = Math.floor(monto / frac);
67+
monto %= frac;
68+
return mon;
69+
}, {});
70+
/* Esta es una alternativa con un for.
71+
const monedero = {};
72+
for(const fraccion of FRACCIONES) {
73+
monedero[fraccion] = Math.floor(monto / fraccion);
74+
monto %= fraccion;
75+
}
76+
return monedero;
77+
*/
78+
}
79+
80+
const total = aleatorio?generarAleatorio(MIN, MAX):TOTAL;
81+
let monedero = fraccionar(total);
82+
83+
console.log(`${total} euros se fraccionan en:`)
84+
for(const fraccion of FRACCIONES) {
85+
console.log(` - ${monedero[fraccion]} monedas/billetes de ${fraccion} euros.`);
86+
}

0 commit comments

Comments
 (0)