Les Snippets

Connexion

Fonction Exposant tenant compte des arguments négatifs

Niveau requis pour utiliser/comprendre cette source : 1 ( Débutant )
Créé le 12/01/2012 22:15:11 et initié par us_30 [Liste]
Vue : 2259
Catégorie(s) : Maths
Langages dispo pour ce code :
- VBA



Langage : VBA
Date ajout : 12/01/2012
Posté par us_30 [Liste]
Function Puiss(Nb As Double, Expo As Double) As Double
' FONCTION EXPOSANT TENANT COMPTE DES D'ARGUMENTS TEL QUE (-2)^(1/3) ou (-2)^(5/3) SANS ERREUR
' Les seules erreurs renvoyées concernent les solutions en nombre complexe (i²=-1)
'Paramètres
Dim A As Double
Dim B As Double
Dim P As Double
Dim E As Double
Dim C As Double
Dim D As Double
Dim G As Double
Dim H As Double
P = 10 ^ -15
'Algo décomposition Expo
A = Int(Expo)
E = Int(Expo)
B = 1
C = 1
D = 0
G = Expo
While Abs(Expo - A / B) > P
    G = 1 / (G - E)
    E = Int(G)
    H = A * E + C
    C = A
    A = H
    H = B * E + D
    D = B
    B = H
Wend
'Calcul exposant entier
Nb = Nb ^ A
'Calcul exposant decimal
If Abs(1 / B) < 1 And (B And 1) Then
    Puiss = Sgn(Nb) * Abs(Nb) ^ (1 / B)
Else
    Puiss = Nb ^ (1 / B)
End If
End Function
' *********** EXEMPLE **********
Sub es()
Debug.Print Puiss(-2, 1 / 3) '-1,25992104989487
Debug.Print Puiss(-2, 5 / 3) '-3,1748021039364
Debug.Print Puiss(-2, -5 / 3) '-0,314980262473718
'Debug.Print (-2) ^ (1 / 3) 'renvoi une erreur
'Debug.Print Puiss(-2, 5 / 3) 'renvoi une erreur
'Debug.Print Puiss(-2, -5 / 3) 'renvoi une erreur

End Sub

Remarque :
Le calcul de (-1)^(1/3) = -1 mathématiquement, mais est considérée comme une erreur d'argument en programmation !
La fonction proposée renvoie le calcul quel que soit les arguments à condition que la solution soit réelle et non imaginaire.

Snippets en rapport avec : Arguments, Exposant, Négatif



Codes sources en rapport avec : Arguments, Exposant, Négatif

{Javascript / DHTML} MODIFIER LE CONTENU D'UN DIV AVEC JAVASCRIPT
Pour les débutants en Javascript, exemple d'un script à plusieurs arguments permettant de modifier f...

{C / C++ / C++.NET} RETOURNER PLUSIEURS ARGUMENTS AVEC LES TUPLES
Ce petit morceau de code permet de retourner un nombre variable d'arguments par fonction. Ne pas ou...

{Visual Basic, VB6, VB.NET, VB 2005} ENVOYEUR DE MAIL EN BATCH/DOS
Ce projet permet d'interpreter les arguments qu'on lui donne et de les retranscrire dans des variabl...

{Delphi} COMMENT DESSINER SUR UN TCANVAS LE TEXTE D'UNE FORMULE CHIMIQUE AVEC INDICES ET EXPOSANTS SANS AVOIR À UTILISER DE BALISES DE SAISIE ... OU DANS UN TRICHEDIT
Un formule chimique est suffisamment "chinoise" en soi-même que l'ajout de balises lors de sa saisie...

{JAVA / J2EE} GETOPTIONS : RÉCUPÈRE LES ARGUMENTS EN LIGNE DE COMMANDE
Ce petit bout de code permet d'analyser simplement les arguments passés en paramètre à la fonction '...

{C / C++ / C++.NET} SWITCH DE STRINGS (C++)
J'ai eu un jour une idée pour "switcher" les strings, ce qui est impossible en c ou c++. Faire des s...

{Visual Basic, VB6, VB.NET, VB 2005} XML TO TREEVIEW
C'est pas le premier mais bon. Celui ci affiche le contenu d'un fichier Xml dans un TreeView ou une...

{Visual Basic, VB6, VB.NET, VB 2005} NEGATIF
Cette fonction permet d'obtenir le négatif d'une couleur, ce qui est parfois utile lorsque le fond d...

{Visual Basic, VB6, VB.NET, VB 2005} VB 6.0 TO VB 5.0 PAR LE MENU CONTEXTUEL
Description : permet de convertir un fichier ".vbp" de VB 6.0 en fichier compatible VB 5.0 par simpl...

{C# / C#.NET} ANALYSE DE LA LIGNE DE COMMANDE POUR LES APPLICATIONS EN MODE CONSOLE
Cette bibliothèque est destinée à faciliter le développement d'applications en mode console en effec...