Contenido del curso
Taller #1: figuras geométricas
Taller #2: precios y descuentos
Taller #3: promedio, moda y mediana
Taller #4: análisis salarial
Próximos pasos
Durante este taller aprendimos a calcular el área y perímetro de un triángulo conociendo la longitud de sus 3 lados y también su altura.
En este ejercicio debes crear una función para calcular la altura de un triángulo isósceles.
- La función debe recibir, como parámetros, la longitud de los 3 lados del triángulo.
- La función debe validar que la longitud de los 3 lados del triángulo corresponden a un triángulo isósceles.
- La función debe retornar la altura del triángulo.
Pista: la función Math.sqrt de JavaScript puede ayudarte a calcular raíces cuadradas.
Solución
:warning: No leas esta sección hasta haber completado los ejercicios anteriores (o al menos hasta haberlo intentado con todas tus fuerzas).
Vamos paso por paso solucionando todos los requerimientos de nuestro ejercicio:
- La función debe recibir, como parámetros, la longitud de los 3 lados del triángulo.
function alturaTriangulo(ladoA, ladoB, ladoBase) { // ... }
- La función debe validar que la longitud de los 3 lados del triángulo corresponden a un triángulo isósceles.
function alturaTrianguloIsosceles(ladoA, ladoB, ladoBase) { if (ladoA != ladoB) { console.error("Los lados a y b no son iguales"); } else { // ... } }
- La función debe retornar la altura del triángulo.
Para calcular la altura de un triángulo isósceles vamos a dividir nuestro triángulo en dos. Así tendremos dos triángulos iguales, uno de sus nuevos lados tendrá la misma longitud que la altura del triángulo original y calculando la longitud de este lado habremos calculado también la altura.
En total vamos a resultar con 3 triángulos, pero como los dos triángulo chiquitos son exactamente iguales, es suficiente si trabajamos con solo 2 triángulos (trianguloGrande y trianguloPequeno).
Creemos estos dos triángulos en JavaScript:
function alturaTrianguloIsosceles(trianguloGrandeLadoA, trianguloGrandeLadoB, trianguloGrandeLadoBase) { if (trianguloGrandeLadoA != trianguloGrandeLadoB) { console.error("Los lados a y b no son iguales"); } else { let trianguloPequenoLadoA; // PENDIENTE const trianguloPequenoLadoB = trianguloGrandeLadoBase / 2; const trianguloPequenoLadoBase = trianguloGrandeLadoA; // ... const trianguloGrandeAltura = trianguloPequenoLadoA; return trianguloGrandeAltura; } }
¡Muy bien! Ahora solo debemos seguir la fórmula para hallar la longitud de un lado del triángulo a partir de dos de sus lados (esto en el mundo de las matemáticas es lo que conocemos como teorema de Pitágoras): aˆ2 + bˆ2 = cˆ2.
Pero la fórmula aún no es exactamente lo que necesitamos. No necesitamos encontrar ladoBase a partir de ladoA y ladoB, sino encontrar ladoA a partir de ladoBase y ladoB.
Para esto debemos "despejar" ladoA, es decir, "mover de lado" cualquier número o variable que esté modificando a ladoA en la fórmula.
Recuerda que lo que en un lado estaba sumando, pasa al otro restando; lo que estaba a un lado restando, pasa al otro sumando; lo que estaba a un lado multiplicando, pasa al otro dividiendo; lo que a un lado estaba dividiendo, pasa al otro multiplicando; lo que estaba a un lado elevando; pasa al otro radicando, y lo que estaba a un lado radicando, pasa al otro lado elevando.
¡Muy bien! ¡Ya casi terminamos!
Ahora solo nos falta traducir esta fórmula a JavaScript (recuerda la pista que te di, podemos calcular las raíces cuadradas con la función Math.sqrt de JavaScript):
function alturaTrianguloIsosceles(trianguloGrandeLadoA, trianguloGrandeLadoB, trianguloGrandeLadoBase) { if (trianguloGrandeLadoA != trianguloGrandeLadoB) { console.error("Los lados a y b no son iguales"); } else { const trianguloPequenoLadoB = trianguloGrandeLadoBase / 2; const trianguloPequenoLadoBase = trianguloGrandeLadoA; const trianguloPequenoLadoBCuadrado = trianguloPequenoLadoB * trianguloPequenoLadoB; const trianguloPequenoLadoBaseCuadrado = trianguloPequenoLadoBase * trianguloPequenoLadoBase; const trianguloPequenoLadoA = Math.sqrt(trianguloPequenoLadoBaseCuadrado - trianguloPequenoLadoBCuadrado); const trianguloGrandeAltura = trianguloPequenoLadoA; return trianguloGrandeAltura; } }
__
¡Si llegaste hasta aquí sin hacer trampa, te felicito! Te graduaste casi oficialmente de este primer taller. Ahora tienes mi bendición para pasar a la siguiente clase y empezar el segundo taller.