Un des problèmes les plus classiques de la géométrie moderne est le calcul de l'aire d'un triangle. Il est fort simple de trouver la réponse : il faut simplement multiplier la largeur fois la hauteur et diviser par deux le résultat. Fort simple sans doute, mais peut expliquer sur le Net hélas... Vous trouverez la réponse que vous souhaitez, à l'aide du code source Ada suivant :
- WITH TEXT_IO;
-
- PROCEDURE TriangleAreaExample IS
-
- USE TEXT_IO;
-
- FUNCTION TriangleArea(B,H:IN Float) RETURN Float IS BEGIN
- RETURN 0.5*B*H;
- END TriangleArea;
-
- BEGIN
- PUT_LINE("Triangle de hauteur de 10 cm par 10 cm de largeur contient un aire de "
- & FLOAT'IMAGE(TriangleArea(10.0,10.0)) & " cm2");
- PUT_LINE("Triangle de hauteur de 5 cm par 10 cm de largeur contient un aire de "&
- FLOAT'IMAGE(TriangleArea(5.0,10.0)) & " cm2");
- PUT_LINE("Triangle de hauteur de 3 cm par 2 cm de largeur contient un aire de "&
- FLOAT'IMAGE(TriangleArea(3.0,2.0)) & " cm2");
- END TriangleAreaExample;
on obtiendra le résultat suivant :
Triangle de hauteur de 10 cm par 10 cm de largeur contient un aire de 50.0 cm2Triangle de hauteur de 5 cm par 10 cm de largeur contient un aire de 25.0 cm2
Triangle de hauteur de 3 cm par 2 cm de largeur contient un aire de 3.0 cm2
Dans le même ordre d'idée, on peut facilement trouver la réponse pour un triangle équilatéral (triangle avec 3 côtés de même longueur). Vous trouverez la réponse que vous souhaitez, à l'aide du code source Ada suivant :
- WITH TEXT_IO;
-
- PROCEDURE EquilateralTriangleAreaExample IS
-
- USE TEXT_IO;
-
- FUNCTION Sqrt(X:IN Float) RETURN Float
- IS A,B,M,XN:FLOAT;
- BEGIN
- IF X=0.0 THEN
- RETURN 0.0;
- ELSE
- M:=1.0;
- XN:=X;
- WHILE XN>=2.0 LOOP
- XN:=0.25*XN;
- M:=2.0*M;
- END LOOP;
- WHILE XN<0.5 LOOP
- XN:=4.0*XN;
- M:=0.5*M;
- END LOOP;
- A:=XN;
- B:=1.0-XN;
- LOOP
- A:=A*(1.0+0.5*B);
- B:=0.25*(3.0+B)*B*B;
- EXIT WHEN B<1.0E-15;
- END LOOP;
- RETURN A*M;
- END IF;
- END;
-
- FUNCTION EquilateralTriangleArea(S:IN Float) RETURN Float IS BEGIN
- RETURN ((Sqrt(3.0))*(S*S))/4.0;
- END EquilateralTriangleArea;
-
- BEGIN
- PUT_LINE("Triangle équilatéral de 10 cm contient un aire de " &
- FLOAT'IMAGE(EquilateralTriangleArea(10.0)) & " cm2");
- PUT_LINE("Triangle équilatéral de 5 cm contient un aire de "&
- FLOAT'IMAGE(EquilateralTriangleArea(5.0)) & " cm2");
- PUT_LINE("Triangle équilatéral de 3 cm contient un aire de "&
- FLOAT'IMAGE(EquilateralTriangleArea(3.0)) & " cm2");
- END EquilateralTriangleAreaExample;
on obtiendra le résultat suivant :
Triangle équilatéral de 10 cm contient un aire de 43.3012701892219 cm2Triangle équilatéral de 5 cm contient un aire de 10.8253175473055 cm2
Triangle équilatéral de 3 cm contient un aire de 3.89711431702997 cm2
Dernière mise à jour : Samedi, le 25 août 2012