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

[0] Índice de Mensajes

Ir a la versión completa