Bonjour.
Je programme en vb.
il se trouve, que j'aurais besoins d'un calcul du cosinus d'un nombre avec une centaines de décimales exactes.
or la fonction vb n'en renvoie que 15
j'ai donc naturellement pensé à faire une procédure récursive de calcul du cos.
malheureusement, le plus gros type vb ne renvoie que 15 décimales.
du coup, j'ai pensé à segmenter mes calculs en tranches de 15 décimales.
mais ce n'est pas utilisable dans une procédure récursive.
il me faudrais donc une version linéaire du calcul de la fonction cosinus.
ma fonction en vb est:soit une fonction nomée cosnum avec comme parametre n ou n est le nombre d'appel et dec qui est le nombre de décimales demandées.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 private function cosnum (n as double, dec as integer) as double do while n<=0 n=n+4*atn(1) loop if n<= 10^(-dec) then cosnum=n else cosnum=2(cosnum(n/2,dec))^2 -1 end function
do while n<=0
n=n+4*atn(1)
loop
me permet de remettre le cosinus dans son équivalent positif s'il est négatif. (atn= arc tangente)
la condition est : si n inférieur à 10 ^-dec, alors cosnum renvoie n. sinon, cosnum renvoie 2*(cosnum(n/2,dec))² -1
ou cosnum(n/2,dec) réappele la fonction cosnum avec n/2 en paramettre et en rappellant le nombre de décimales demandées.
si vous connaissez la vertion litéralleoù si vous avez une idée...
merci![]()
nota: une version de ce sujet existe déja sur le forum vb :http://www.developpez.net/forums/vie...er=asc&start=0
Partager