Probdecosinus

cs_raphy2 Messages postés 33 Date d'inscription mercredi 5 février 2003 Statut Membre Dernière intervention 25 juillet 2003 - 21 avril 2003 à 02:17
cs_FuSe Messages postés 18 Date d'inscription samedi 28 décembre 2002 Statut Membre Dernière intervention 10 juillet 2003 - 23 avril 2003 à 22:57
j'aimerai calculer cos-1 alors je fais ca:

dblpi = 3.14159265358979
x = 0.707106781186548
Text3 = Atn(-x / Sqr(-x * x + 1)) + 2 * Atn(1) * (180 / dblpi)


Mais au lieu d'obtenir 45° j'obtien 89°.

Pkoi?

6 réponses

ShareVB Messages postés 2676 Date d'inscription vendredi 28 juin 2002 Statut Membre Dernière intervention 13 janvier 2016 26
21 avril 2003 à 10:18
salut

faut faire des maths lol ;)))
connais tu la priorité des opérateurs mathématiques :
la multiplication et la division ont la priorité sur l'addition

aussi
Atn(-x / Sqr(-x * x + 1)) sera additioné à 2 * Atn(1) * (180 / dblpi)

donc ton code devriendra :

Text3 = (Atn(-X / Sqr((-X * X + 1))) + 2 * Atn(1)) * (180 / dblpi)

il fallait rajouter une parenthèse
au passage 2 * atn(1) dblpi / 2 donc dblpi 4 * atn(1)

cqfd

ShareVB
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
21 avril 2003 à 10:19
Ta formule est correcte , attention cependant a la priorité des opérations !! il faudrait mettre :

Text3 = (Atn(-x / Sqr(-x * x + 1)) + 2 * Atn(1)) * (180 / dblpi)

et si tu met x = cos( 45 * PI / 180 ) 'Il faut bien l'angle en Radians
tu retombe bien sur 45 degres
'

Const PI as double = 3.14159265358979

Function ArcCos(Byval X As Double) As Double
If X = 1 Then
ArcCos = 0
ElseIf X = -1 Then
ArcCos = -PI
Else
ArcCos = Atn(-X / Sqr(-X * X + 1)) + 2 * Atn(1)
End If
End Function

By Renfield

Aucune touche n'a été bléssée lors de la saisie de ce texte..........
0
cs_raphy2 Messages postés 33 Date d'inscription mercredi 5 février 2003 Statut Membre Dernière intervention 25 juillet 2003
21 avril 2003 à 13:47
merci
0
cs_raphy2 Messages postés 33 Date d'inscription mercredi 5 février 2003 Statut Membre Dernière intervention 25 juillet 2003
22 avril 2003 à 19:05
Merde je viens d essayer et ca plante y me fait divison par zero impossible.

code:

dans text 2 le cosinus a metre en angle dans text3 le resultat.

Private Sub Command2_Click()
Dim x As Long
dblpi = 3.14159265358979
x = Text2.TextText3 Text3 (Atn(-x / Sqr((-x * x + 1))) + 2 * Atn(1)) * (180 / dblpi)
End Sub


et quand je remplace
 Dim x as long 
par
 Dim x as double 
j obtiens division par zero.
0

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

Posez votre question
cs_raphy2 Messages postés 33 Date d'inscription mercredi 5 février 2003 Statut Membre Dernière intervention 25 juillet 2003
22 avril 2003 à 19:07
> Merde je viens d essayer et ca plante y me fait divison par zero impossible.
>
> code:
>
> dans text 2 le cosinus a metre en angle dans text3 le resultat.
>
>
> Private Sub Command2_Click()
> Dim x As Long
> dblpi =  3.14159265358979
> x = Text2.Text> Text3 Text3 (Atn(-x / Sqr((-x * x + 1))) + 2 * Atn(1)) * (180 / dblpi)
> End Sub
> 

>

Je me suis plante en m exprimant ici j obtien type incompatible et pas division par zero quand je met double

> et quand je remplace
 Dim x as long 
par
 Dim x as double 
j obtiens type imcopatible.
> -------------------------------
> Réponse au message :
> -------------------------------
>
> >
> >
> > merci
> >
> > -------------------------------
> > Réponse au message :
> > -------------------------------
> >
> > > salut
> > >
> > > faut faire des maths lol ;)))
> > > connais tu la priorité des opérateurs mathématiques :
> > > la multiplication et la division ont la priorité sur l'addition
> > >
> > > aussi
> > > Atn(-x / Sqr(-x * x + 1)) sera additioné à 2 * Atn(1) * (180 / dblpi)
> > >
> > > donc ton code devriendra :
> > >
> > > Text3 = (Atn(-X / Sqr((-X * X + 1))) + 2 * Atn(1)) * (180 / dblpi)
> > >
> > > il fallait rajouter une parenthèse
> > > > > > au passage 2 * atn(1) dblpi / 2 donc dblpi 4 * atn(1)
> > >
> > > cqfd
> > >
> > > ShareVB
> > >
> > >
> > > -------------------------------
> > > Réponse au message :
> > > -------------------------------
> > >
> > > > j'aimerai calculer cos-1 alors je fais ca:
> > > >
> > > >
> > > >
> > > >
> > > > dblpi = 3.14159265358979
> > > > x = 0.707106781186548
> > > > Text3 = Atn(-x / Sqr(-x * x + 1)) + 2 * Atn(1) * (180 / dblpi)
> > > > 

> > > >
> > > >
> > > > Mais au lieu d'obtenir 45° j'obtien 89°.
> > > >
> > > > Pkoi?
> > >
> >
>
0
cs_FuSe Messages postés 18 Date d'inscription samedi 28 décembre 2002 Statut Membre Dernière intervention 10 juillet 2003
23 avril 2003 à 22:57
pour ma part j'ai testé ce code et bon il marche pas :
exemple :
cos(45)=0,52532198881773
ensuite avec la formule magique donnée dans les posts précedents :
Arccos(0,52532198881773)=58,3100780887045

ça fait une certaine marge d'erreur tout de même ;)

avec la fonction :
const pi=3.14159265358979
Function ArcCos(ByVal X As Double) As Double
If X = 1 Then
ArcCos = 0
ElseIf X = -1 Then
ArcCos = -PI
Else
ArcCos = (Atn(-X / Sqr((-X * X + 1))) + 2 * Atn(1)) * (180 / PI)
End If
End Function
0
Rejoignez-nous