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).

Imagen ridícula de alto
Imagen ridícula de alto
Imagen ridícula de alto
Imagen ridícula de alto

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.

Altura triángulo JavaScript

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).

Altura triángulo JavaScript

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.

Altura triángulo JavaScript

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.

Altura triángulo JavaScript

¡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.

Respect

Reto: matemáticas con JavaScript