Bonsoir à tous
Voila j'ai créé un algorithme il y'as quelque temps:
***Algorithme lancé***
Calcul du coefficient d'atténuation linéique
Entrer Pe : 7.8
Entrer Ps : 5.5
Entrer d : 653
10/d*log(Pe/Ps)=0.0053503161
***Algorithme terminé***
Aucune dysfonctionnement en lui même, mais j'ai constater après quelques essais qu'il m'afficher le mauvais résultat dans l'exemple en haut le résultat est en fait : 0.002324
Comment résoudre ce probléme ?
Merci d'avance
Au temps pour moi
Le voici :
1 VARIABLES
2 α EST_DU_TYPE NOMBRE
3 Pe EST_DU_TYPE NOMBRE
4 Ps EST_DU_TYPE NOMBRE
5 d EST_DU_TYPE NOMBRE
6 DEBUT_ALGORITHME
7 AFFICHER "Calcul du coefficient d'atténuation linéique"
8 LIRE Pe
9 LIRE Ps
10 LIRE d
11 SI (Pe>0 ET d>0 ET Ps>0 Et Pe>Ps) ALORS
12 DEBUT_SI
13 α PREND_LA_VALEUR 10/d*log(Pe/Ps)
14 AFFICHER "10/d*log(Pe/Ps)="
15 AFFICHER α
16 FIN_SI
17 SINON
18 DEBUT_SINON
19 SI (Pe<Ps) ALORS
20 DEBUT_SI
21 AFFICHER "Le signal d'entrée ne peut être inférieur au signal de sortie."
22 FIN_SI
23 SI (Ps = Pe) ALORS
24 DEBUT_SI
25 AFFICHER "Le signal d'entrée ne peut être égale au signal de sortie."
26 FIN_SI
27 SI (Pe<0) ALORS
28 DEBUT_SI
29 AFFICHER "Le signal d'entrée ne peut être inférieur à 0."
30 FIN_SI
31 SI (Ps<0) ALORS
32 DEBUT_SI
33 AFFICHER "Le signal de sortie ne peut être inférieur à 0."
34 FIN_SI
35 SI (d<0) ALORS
36 DEBUT_SI
37 AFFICHER "La distance ne peut être négative."
38 FIN_SI
39 FIN_SINON
40 FIN_ALGORITHME
Et pour raccourcir un petit peu ton algorithme, tu peux faire
Si PePs alors
Afficher "le signal d'entrée doit être strictement supérieur au signal de sortie"
Fin Si
Et aussi :
Si (d<0) OU (Ps<0) OU (Pe<0) alors
Afficher "les valeurs ne peuvent pas être négatives"
Fin Si
Cela dépend de ce que tu entends par log
c'est logarithme népérien ou base 10 ?
Avec ln cela donne 0,0053.....
Avec log base 10 cela donne bien 0,0023...
Reste à bien coder la fonction dans Algobox
Je trouve 0.002324
Et ce n'est pas le seul exemple
Si j'utilise d'autres valeurs la réponse au calcul est toujours différente que celle de l'algorithme.
Merci Pour vos réponses
Il s'agit bien d'un logarithme à base 10 cependant je ne sais pas comment coder cette fonction sur algobox
Si quelqu'un aurait un tuyau s'il vous plaît ?
Je ne sais pas comment tu fais ton calcul mais je suis bien curieux de savoir où et comment tu as fait ton calcul pour obtenir 0.002324
PS pour coco : c'est log base e
Ah bah c'est log base 10, tu m'étonnes que tu trouves des mauvais résultats !
log10(x) = ln(x)/ln(10)
Tu es sûr que c'est log base 10? sur un site traitant du coefficient d'atténuation linéique, je trouve la même formule avec log base e
Oui il s'agit bien d'un logarithme à base 10 car il est exprimé en décibel .
C'est bon l'algorithme marche bien comme il faut
Merci encore
il vaudrait mieux mettre des parenthèses à (10/d)*log(Pe/Ps)
et puis
SI (Ps == Pe) ALORS
sinon ça m'étonnerait fort qu'il marche bien comme il faut
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :