Section courante

A propos

Section administrative du site

Bien qu'en ASP.NET, il existe une fonction «Sqrt» (Math.Sqrt en C# ou Math.Sqrt en VB.NET) permettant de calculer la racine carré, il peut quand même être amusant d'effectuer se genre de calcul nous même. Pour remédier à se problème, il suffit de créer une fonction ressemblant à ceci :

ASP.NET (VB.NET) ASP.NET (C# (C Sharp))
  1. <%@ Page Language="VB" %> 
  2. <script runat="server"> 
  3.      Function SquareRoot(ByVal X As Double) As Double
  4.         Dim A, B, M, XN As Double
  5.         If X = 0.0 Then
  6.             Return 0.0
  7.         Else
  8.             M = 1.0
  9.             XN = X
  10.             While XN >= 2.0
  11.                 XN = 0.25 * XN
  12.                 M = 2.0 * M
  13.             End While
  14.             While XN < 0.5
  15.                 XN = 4.0 * XN
  16.                 M = 0.5 * M
  17.             End While
  18.             A = XN
  19.             B = 1.0 - XN
  20.             Do
  21.                 A = A * (1.0 + 0.5 * B)
  22.                 B = 0.25 * (3.0 + B) * B * B
  23.             Loop While B >= 0.000000000000001
  24.             Return A * M
  25.         End If
  26.     End Function  
  27. </script> 
  28. <%
  29. Dim R As Double = 2
  30. While R <= 1000
  31.     Response.Write("Sqrt(" & R & ")=" & Math.Sqrt(R) & " " & SquareRoot(R) & "<br />")
  32.     R = R * R
  33. End While 
  34. %>
  1. <%@ Page Language="C#" %> 
  2. <script runat="server">  
  3.     public static double SquareRoot(double X)
  4.     {
  5.         double A, B, M, XN;
  6.         if (X == 0.0) return 0.0;
  7.         else
  8.         {
  9.             M = 1.0;
  10.             XN = X;
  11.             while (XN >= 2.0)
  12.             {
  13.                 XN = 0.25 * XN;
  14.                 M = 2.0 * M;
  15.             }
  16.             while (XN < 0.5)
  17.             {
  18.                 XN = 4.0 * XN;
  19.                 M = 0.5 * M;
  20.             }
  21.             A = XN;
  22.             B = 1.0 - XN;
  23.             do
  24.             {
  25.                 A = A * (1.0 + 0.5 * B);
  26.                 B = 0.25 * (3.0 + B) * B * B;
  27.             } while (B >= 1.0E-15);
  28.             return A * M;
  29.         }
  30.     } 
  31. </script> 
  32. <%
  33. double R;
  34. R = 2;
  35. while (R <= 1000)
  36. {
  37.     Response.Write("Sqrt(" + (double)R + ")=" + (double)Math.Sqrt(R) + " " + (double)SquareRoot(R) + "<br />");
  38.     R = R * R;
  39. } 
  40. %>

on obtiendra le résultat suivant :

Sqrt(2)= 1.41421 1.41421
Sqrt(4)= 2.0000 2.0000
Sqrt(16)= 4.0000 4.0000
Sqrt(256)= 16.0000 16.0000

Voir également

Science - Mathématique

Dernière mise à jour : Samedi, le 31 août 2017