Programación Específica > Diseño de Algoritmos
area de triangulo
(1/1)
wilbur-naike:
Hola a todos luego de meses de inactividad :)
Bueno les cuento que estoy llevando algoritmos y tengo una pequeña duda con un problema propuesto acerca del calculo del area de un triangulo, conociendo sus 3 lados.
--- Código: C ---algoritmo areavariables:entero: a, b, creal: area, p //p: semiperimetroinicioleer(a, b, c)p <- (a+b+c) / 2area <- (p*(p-a)*(p-b)*(p-c))^(1/2)escribir (area)fin
Bien ese fue mi proceso de hacer el calculo pero busque alguna otra informacion por internet, veo que usan funciones en la siguiente linea:
--- Código: C ---area ← raiz(p * (p-a) * (p-b) * (p-c))
Me pregunto si lo que hago esta bien?
Uso tambien funciones?
Siguiendo aun con la duda, en este problema dice asi:
--- Citar ---nota : considerar el valor absoluto de la diferencia ente el semiperimetro y cada uno de los lados
--- Fin de la cita ---
Pienso asi:
--- Código: C ---p1 <- (p + ((-1) * a))p2 <- (p + ((-1) * b))p3 <- (p + ((-1) * c))
En fin creo ando mal no se, que creer. :lol:
wilbur-naike:
ien parece que nadie ve el tema, pero igual segui buscando mas info sobre valor absoluto y la mayoria lo hace con un estrucutura selectiva.
estructuras selectivas en monografias
El problema que hago esta dentro del tema de estructuras secuenciales, dando como finalizado el agoritmo asi:
--- Código: C ---algoritmo areavariables:entero: a, b, creal: area, p //p: semiperimetroinicioleer(a, b, c)p <- (a+b+c) / 2area <- (p* ( p + ((-1) * a) * ( p + ((-1) * b) * ( p + ((-1) * c)) ^ (1/2)escribir (area)fin
Pero si en caso trabajara con selectiva terminaria asi.
--- Código: C ---algoritmo areavariables:entero: a, b, creal: area, p //p: semiperimetroinicioleer(a, b, c)si (a < 0) entonces a <- (-1) * asi_no si (b < 0) entonces b <- (-1) * b si_no si (c < 0) entonces c <- (-1) * c fin_si fin_sifin_sip <- (a + b + c) / 2area <- (p* ( p - a) * ( p - b) * ( p - c)) ^ (1/2)escribir (area)fin
opinen por fas
Xinefpro:
Holas amigo, creo que no es necesario tratar el problema de los signos :
Mira por geometria basica, sea un Triangulo de lados : a, b, c ; se cumple lo siguiente :
--- Código: Java --- * a - b < c < a + b ... ( 1 )* b - c < a < b + c ... ( 2 )* a - c < b < a + c ... ( 3 )
Luego como tu para hallar el area quieres usar la Fórmula de Herón :
--- Código: Java --- p = ( a + b + c ) / 2area ← raiz(p * (p-a) * (p-b) * (p-c))
Para que un producto resulte negativo uno de sus factores debe de ser negativo, entonces analizamos cada factor del producto de la formula de Heron :
--- Código: Java --- * p = ( a + b + c )/2 > 0 // ya que un lado triangulo solo puede tener lados positivos por ende a + b + c > 0 * ( p - a ) = ( a + b + c )/2 - a = ( b + c - a )/2 > 0 // ya que de ( 2 ) tenemos que b + c > a* ( p - b ) = ( a + b + c )/2 - b = ( a + c - b )/2 > 0 // ya que de ( 3 ) tenemos que a + c > b* ( p - c ) = ( a + b + c )/2 - c = ( a + b - c )/2 > 0 // ya que de ( 1 ) tenemos que a + b > c
Por lo tanto mientras los lados del triangulo sean validos ( positivos ), lo que esta dentro de la raiz nunca va a salir negativo, por ende no
tienes que preocuparte de los signos.
Navegación
Ir a la versión completa