P_17_E17

=__**Averiguar si es un triángulo rectángulo**__= > Leer los tres lados de un triángulo y la precisión con la que van a hacer los cálculo > y averigura si se trata de un triángulo rectánculo > code format="pascal" PROGRAM IdentificarTrianguloRectangulo ; VAR rLado_1,  rLado_2,   rLado_3, rCateto_1, rCateto_2, rHipotenusa      : Real ; rPrecision, rHipotenusaCalculada, rAux : Real ; boTrianguloRectangulo                  : Boolean ; BEGIN Writeln ; WriteLn (' Programa que permite identificar un tri ngulo rect ngulo') ; Writeln ; Write  (' Escribe la precisi¢n con la que se harán los c lculos: ') ; ReadLn (rPrecision) ; Writeln ; Write  (' Escribe la longitud de un lado del tri ngulo: ') ; ReadLn (rLado_1) ; Write  ('                          la del segundo lado: ') ; ReadLn (rLado_2) ; Write  ('                          la del tercer  lado: ') ; ReadLn (rLado_3) ; Writeln ;

{ La hipotenusa será el mayor de los tres lados (pero sólo si cumple el teroema de Pitagoras) } rHipotenusa := rLado_1 ; rCateto_1  := rLado_2 ; rCateto_2  := rLado_3 ;

IF rHipotenusa < rLado_2 THEN BEGIN rHipotenusa := rLado_2 ; rCateto_1  := rLado_1 ; rCateto_2  := rLado_3 ; END ;

IF rHipotenusa < rLado_3 THEN BEGIN rHipotenusa := rLado_3 ; rCateto_1  := rLado_1 ; rCateto_2  := rLado_2 ; END ;

{ Se van a ordenar los catetos de mayor a menor } { ... aunque no seria necesario                } IF rCateto_1 < rCateto_2 THEN BEGIN rAux     := rCateto_1 ; rCateto_1 := rCateto_2 ; rCateto_2 := rAux ; END ;

rHipotenusaCalculada := Sqrt ( Sqr (rCateto_1) + Sqr (rCateto_2)) ;

boTrianguloRectangulo := Abs (rHipotenusaCalculada - rHipotenusa) <= rPrecision ;

IF boTrianguloRectangulo THEN BEGIN Writeln (' Se trata de un tri ngulo rect ngulo') ; Writeln ('   Catetos: ', rCateto_1:0:2, ' y ', rCateto_2:0:2) ; Writeln (' Hipotenusa: ', rHipotenusa:0:2) ; END ELSE BEGIN Writeln (' No se trata de un tri ngulo rect ngulo') ; Writeln ; END ;

ReadLn ; END. code