Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tarea clase 6 primera parte #18

Open
wants to merge 11 commits into
base: master
Choose a base branch
from
3 changes: 2 additions & 1 deletion tareas/clase-5/tarea-clase-5.js
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ $botonCalcular.onclick = function()
//cuando el usuario haga click en el botón "calcular", mostrar el salario mensual
// en una caja de texto deshabilitada. --> <input type="text" disabled id="salario-mensual"/>


//TAREA: En otro archivo html (no Index) y otro archivo js (no tarea-clase-5.js),
// creá un formulario que capture el primer nombre, segundo nombre, apellido/s y edad del usuario
// también vamos a crear un <h1> que diga Bienvenido!
Expand Down Expand Up @@ -55,4 +56,4 @@ Ejemplo form:
// 1. calcular el promedio y mostrarlo en un <em> pre-creado con el texto "El promedio es..."
// 2. obtener el número más pequeño y mostrarlo en un <em> pre-creado con el texto "El número más pequeño es..."
// 3. obtener el número más grande y mostrarlo en un <em> pre-creado con el texto "El número más grande es..."
// 4. obtener el número que más se repite y mostrarlo en un <em> pre-creado con el texto "El número más frecuente es..."
// 4. obtener el número que más se repite y mostrarlo en un <em> pre-creado con el texto "El número más frecuente es..."
40 changes: 40 additions & 0 deletions tareas/clase-5/tarea-lista.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
<!DOCTYPE html>
<html>
<head>
<meta charset='utf-8'>
<meta http-equiv='X-UA-Compatible' content='IE=edge'>
<title>Tarea Lista</title>
<meta name='viewport' content='width=device-width, initial-scale=1'>
<link rel='stylesheet' type='text/css' media='screen' href='main.css'>
<script src='main.js'></script>
</head>
<body>
<ol>

<li>151</li>
<li>1457</li>
<li>123</li>
<li>7421</li>
<li>2461</li>
<li>16524</li>
<li>2471</li>
<li>7521</li>
<li>1176</li>
<li>1465</li>
<li>351</li>
<li>147</li>
<li>1235</li>
<li>147</li>



</ol>

<em id="promedio"></em><br>
<em id="maximo"></em><br>
<em id="minimo"></em><br>
<em id="moda"></em><br>

<script src="tarea-lista.js"></script>
</body>
</html>
77 changes: 77 additions & 0 deletions tareas/clase-5/tarea-lista.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@


const arrayDeLista = [];

const $items = document.querySelectorAll('li');
for (let i = 0; i < $items.length; i++) {
arrayDeLista.push(Number($items[i].innerText));
}

function promedio(listaNumeros) {

let resultado = 0

for (let i = 0; i < listaNumeros.length; i++) {
resultado += listaNumeros[i];
}
return resultado / listaNumeros.length;
}

function maximo(listaNumeros) {
let resultado = listaNumeros[0];
for (let i = 0; i < listaNumeros.length; i++) {
if (listaNumeros[i] > resultado) {
resultado = listaNumeros[i];
}
}
return resultado
}

function minimo(listaNumeros) {
let resultado = listaNumeros[0];
for (let i = 0; i < listaNumeros.length; i++) {
if (listaNumeros[i] < resultado) {
resultado = listaNumeros[i];
}
}
return resultado
}

function moda(listaNumeros) {

let resultado = null
let cantidadRepeticionesResultado = 0;

for (let i = 0; i < listaNumeros.length; i++) {

let pivot = listaNumeros[i];

let cantidadRepeticionesPivot = 0;

for (let j = i; j < listaNumeros.length; j++) {

if (listaNumeros[j] == pivot) {

cantidadRepeticionesPivot++;

}
} if (cantidadRepeticionesPivot > cantidadRepeticionesResultado) {

resultado = pivot;

cantidadRepeticionesResultado = cantidadRepeticionesPivot;
}



}


return resultado;

}

document.querySelector("#promedio").innerText = `El promedio es ${promedio(arrayDeLista)}`
document.querySelector("#maximo").innerText = `El número más grande es ${maximo(arrayDeLista)}`
document.querySelector("#minimo").innerText = `El número más pequeño es ${minimo(arrayDeLista)}`
document.querySelector("#moda").innerText = `El número más frecuente es ${moda(arrayDeLista)}`
37 changes: 37 additions & 0 deletions tareas/tarea-6/mio/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
<!DOCTYPE html>
<html>
<head>
<meta charset='utf-8'>
<meta http-equiv='X-UA-Compatible' content='IE=edge'>
<title>TAREA CLASE 6</title>
<meta name='viewport' content='width=device-width, initial-scale=1'>
<link rel='stylesheet' type='text/css' media='screen' href='main.css'>
<script src='main.js'></script>
</head>
<body>

<div class="form">
<form id="formulario-cantidad-familiares">
<div><label for="numero-personas-grupo-familiar">Cuántas
personas hay
en tu grupo familiar?</label>
<input type="number" id="numero-personas-grupo-familiar"
required>
</div>
<div class="button">
<button id="boton-ingresar-cantidad-familiares">ingresar</button>
</div>
</form>



</div>
<div class="button">
<button id="boton-empezar-de-nuevo">Empezar de nuevo</button>
</div>
<div>
<input type="text" disabled id="resultado">
</div>
<script src="tarea-clase-6.js"></script>
</body>
</html>
169 changes: 169 additions & 0 deletions tareas/tarea-6/mio/tarea-clase-6.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,169 @@
/*
TAREA: Empezar preguntando cuánta gente hay en el grupo familiar.
Crear tantos inputs+labels como gente haya para completar la edad de cada integrante.
Al hacer click en "calcular", mostrar en un elemento pre-existente la mayor edad, la menor edad y el promedio del grupo familiar.

Punto bonus: Crear un botón para "empezar de nuevo" que empiece el proceso nuevamente, borrando los inputs ya creados (investigar cómo en MDN).
*/

//aquí declaro las funciones mayor, menor, moda y promedio

function promedio(listaNumeros) {

let resultado = 0

for (let i = 0; i < listaNumeros.length; i++) {
resultado += listaNumeros[i];
}
return resultado / listaNumeros.length;
}

function maximo(listaNumeros) {
let resultado = listaNumeros[0];
for (let i = 0; i < listaNumeros.length; i++) {
if (listaNumeros[i] > resultado) {
resultado = listaNumeros[i];
}
}
return resultado
}

function minimo(listaNumeros) {
let resultado = listaNumeros[0];
for (let i = 0; i < listaNumeros.length; i++) {
if (listaNumeros[i] < resultado) {
resultado = listaNumeros[i];
}
}
return resultado
}

function moda(listaNumeros) {

let resultado = null
let cantidadRepeticionesResultado = 0;

for (let i = 0; i < listaNumeros.length; i++) {

let pivot = listaNumeros[i];

let cantidadRepeticionesPivot = 0;

for (let j = i; j < listaNumeros.length; j++) {

if (listaNumeros[j] == pivot) {

cantidadRepeticionesPivot++;

}
} if (cantidadRepeticionesPivot > cantidadRepeticionesResultado) {

resultado = pivot;

cantidadRepeticionesResultado = cantidadRepeticionesPivot;
}



}


return resultado;

}

function escribirCalculosEdadesEnElementoPrecreado(listaEdades) {

resultado = document.querySelector("#resultado");
resultado.value = `La menor edad es ${minimo(listaEdades)}, la mayor edad es ${maximo(listaEdades)} y el promedio de las edades del grupo familiar es ${promedio(listaEdades)}`
}


function crearFormulariosFamiliares(cantidadFamiliares) {

let nuevosFormulariosFamiliares = [];
const $documentBody = document.querySelector("body");
const nuevaDivisionFormulario = document.createElement("div");
const nuevoFormulario = document.createElement("form");
const nuevoBotonEdadesFamiliares = document.createElement("button");

nuevaDivisionFormulario.class = "form";
nuevaDivisionFormulario.appendChild(nuevoFormulario);
nuevoFormulario.appendChild(nuevoBotonEdadesFamiliares);

for (let i = 0; i < cantidadFamiliares; i++) {

nuevosFormulariosFamiliares[i] = document.createElement("div"); //por cada familiar hago un elemento de array y le appendeo un label y un input

let nuevoLabel = document.createElement("label");
let nuevoInput = document.createElement("input");


nuevoLabel.setAttribute("for", `edad-familiar-${i}`);
nuevoLabel.innerHTML = `Ingrese la edad del familiar n°${i + 1}: ` //le pongo (i + 1 para que muestre algo con sentido en la pantalla)

nuevoInput.setAttribute("id", `edad-familiar-${i}`);
nuevoInput.setAttribute("type", "number");
nuevoInput.setAttribute("class", "edad"); //les pongo class = "edad" para poder llamarlos en el onclick del nuevo botón.

nuevosFormulariosFamiliares[i].appendChild(nuevoLabel);
nuevosFormulariosFamiliares[i].appendChild(nuevoInput);

nuevoFormulario.appendChild(nuevosFormulariosFamiliares[i]);


}


nuevoBotonEdadesFamiliares.id = "boton-procesar-edades-familiares"
nuevoBotonEdadesFamiliares.innerHTML = "Calcular";
nuevoBotonEdadesFamiliares.onclick = function () {

const $edadesFamiliares = document.querySelectorAll(".edad");
const arrayDeLista = []

for (let i = 0; i < $edadesFamiliares.length; i++) {

arrayDeLista.push(Number($edadesFamiliares[i].value)); //qué hago con los inputs vacíos?? me los cuenta como 0

}

escribirCalculosEdadesEnElementoPrecreado(arrayDeLista);

return false;
}
$documentBody.appendChild(nuevoFormulario);

return nuevoFormulario;
}


//aquí empezaría el cuerpo del script (?)

const botonIngresarCantidadFamiliares = document.querySelector("#boton-ingresar-cantidad-familiares")

botonIngresarCantidadFamiliares.onclick = function () {

const $cantidadFamiliares = document.querySelector("#numero-personas-grupo-familiar").value;
const conjuntosFormulariosFamiliares = crearFormulariosFamiliares($cantidadFamiliares);


return false;
}

const botonEmpezarDeNuevo = document.querySelector("#boton-empezar-de-nuevo")
botonEmpezarDeNuevo.onclick = function () {

document.location.reload(true);

}


/*
TAREA:
Crear una interfaz que permita agregar ó quitar (botones agregar y quitar) inputs+labels para completar el salario anual de cada integrante de la familia que trabaje.
Al hacer click en "calcular", mostrar en un elemento pre-existente el mayor salario anual, menor salario anual, salario anual promedio y salario mensual promedio.

Punto bonus: si hay inputs vacíos, ignorarlos en el cálculo (no contarlos como 0).
*/