Abs() c'est quoi?

cs_lecorsaire59 Messages postés 39 Date d'inscription mardi 9 octobre 2007 Statut Membre Dernière intervention 17 octobre 2008 - 14 déc. 2007 à 11:04
Elxior Messages postés 56 Date d'inscription jeudi 28 juin 2007 Statut Membre Dernière intervention 29 août 2010 - 15 déc. 2007 à 15:37
bonjour a tous,


je suis chargé de modifier un code av abs() mais je pige pas ce que c'est qqn peut m'aider?

merci d'avance

7 réponses

jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
14 déc. 2007 à 11:19
Salut,
En Appuyant sur F2 dans l'IDE VB tu te retrouve dans l'explorateur d'objets.

Tu peux Alors taper Abs dans la textbox de recherche et voir

Function Abs(Number)
Membre de VBA.Math
Renvoie la valeur absolue d'un nombre

Si tu as la MSDN c'est encore plus simple Tape F1 sur le mot Abs dans le code

tu tombe la dessus. (la MSDN est aussi disponible sur internet)

[javascript:alink_4.Click() argument]number peut contenir toute
<object id= "alink_5" type="application/x-oleobject" classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11"></object>[javascript:alink_5.Click() expression numérique] valide. Si l'argument
number contient une valeur de type
<object id ="alink_6" type="application/x-oleobject" classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11"></object>[javascript:alink_6.Click() Null], Null est renvoyé ; s'il
s'agit d'une
<object id ="alink_7" type="application/x-oleobject" classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11"></object>[javascript:alink_7.Click() variable] non initialisée, zéro est
renvoyé.

Remarques

La valeur absolue d'un nombre est sa valeur sans le signe. Par exemple,
ABS(-1)
et
ABS(1)
renvoient tous deux
1


@+: Ju£i?n
Pensez: Réponse acceptée
0
Elxior Messages postés 56 Date d'inscription jeudi 28 juin 2007 Statut Membre Dernière intervention 29 août 2010 1
14 déc. 2007 à 14:09
Function RemplaceABS(Number as Integer) as Integer
if Number < 0 then
return Number + (Number*2)
else
return Number
end if
End Function

We can't solve problems by using the same kind of thinking we used when we created them.
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
14 déc. 2007 à 14:43
NON, impossible de jouer à cela en interprété, on a overflow.
Teste avec n = -30000 sur Excel, tu verras.

ciao...
BruNews, MVP VC++
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
14 déc. 2007 à 14:47
Au fait Elxior, je vois au 'return' que tu es en .net donc tu as les manipulateurs de bits je crois.
Dans ce cas, c'est totalement conter productif de générer une multiplication pour si peu.

- inverser les bits (NOT EAX)
- ajouter 1 (INC EAX)
sera autrement plus rapide et aucun risque d'overflow.

ciao...
BruNews, MVP VC++
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 27
14 déc. 2007 à 17:02
 Bonsoir à tous,

Julien (salut) ayant expliqué la fonction abs(), il reste la fonction Sng(), qui elle, renvoie
un entier indiquant le signe d'un nombre.

MsgBox Sgn(6.5)  &vbtab& "Sgn(6.5)  retourne  1 car nombre > 0"  &vbCr&_
       Sgn(+7.5) &vbtab& "Sgn(+7.5) retourne  1 car nombre > 0"  &vbCr&_
       Sgn(+0)   &vbtab& "Sgn(+0)   retourne  0 car nombre = 0"  &vbCr&_
       Sgn(0)    &vbtab& "Sgn(0)    retourne  0 car nombre = 0"  &vbCr&_
       Sgn(-0)   &vbtab& "Sgn(-0)   retourne  0 car nombre = 0"  &vbCr&_
       Sgn(-2.5) &vbtab& "Sgn(-2.5) retourne -1 car nombre < 0"

Merci [auteur/LECORSAIRE59/1168504.aspx lecorsaire59]  de préciser ta demande.

jean-marc
0
mstarsup5 Messages postés 527 Date d'inscription lundi 15 octobre 2007 Statut Membre Dernière intervention 10 octobre 2013 1
15 déc. 2007 à 12:30
Euh...
Elxior,

Function RemplaceABS(Number as Integer) as Integer
if Number < 0 then
return Number + (Number*2)
else
return Number
end if
End Function

Si je lis bien...
Si nombre négatif, alors 3 fois ce nombre=sa valeur absolue...
Il faut mettre Number-(Number*2) pour que ça marche :p
Mais dans ce cas là, ça revient à mettre return -Number, puisque a-2*a=-a...
Enfin bref, ça revient à la définition quoi, pas besoin de faire des additions ou je ne sais quoi ^^

 Pourapprendretoujoursplus!
0
Elxior Messages postés 56 Date d'inscription jeudi 28 juin 2007 Statut Membre Dernière intervention 29 août 2010 1
15 déc. 2007 à 15:37
Oups, ça m'apprendra à envoyer un morceau de code non-testé et pas optimisé ><.

We can't solve problems by using the same kind of thinking we used when we created them.
0
Rejoignez-nous