Bonsoir

Voila mon problème ( encore)

l'utilisateur rentre une valeur cible ( ici 1/1.5 donc 0.66666666...)

J'ai une liste de valeur double dans laquelle je dois trouver la plus proche de ma cible .

jai voulu procéder ainsi :

>je parcours une partie de la liste ( pas la liste entière ,c'est volontaire).
>trouver valeur directement supérieur a la cible
>trouver la valeur directement inférieur a la cible
>calculer la différence valeur supérieur - cible
>calculer la différence valeur inférieur - cible
>choisir entre les 2 valeurs celle dont la valeur absolue de l'écart avec la cible est la petite.

mais pour le calcul de valeur inférieur il me sort 0 ???

le code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
//CALCUL DE AOA :
 
        int k =listeangle.indexOf(anglePMHapro);
                    if (k!=-1)
                        index_pmh = k;
 
valAOAmax= listeLevee1Netmm[0];
valAOAmin= listeLevee1Netmm[0];
  double valAOAtmp = 0;
  double valAOAtmp2 =0;
        for ( int i=0; i<index_max;i++)
      {
//valeur superieur a valeur choisie:
          if (listeLevee1Netmm[i]>(ValChoixlevee/ValRapportCulbuteur) && listeLevee1Netmm[i]<valAOAmax)
 
            valAOAmax = listeLevee1Netmm[i];
//valeur inferieur a valeur choisie:
          if (listeLevee1Netmm[i]<(ValChoixlevee/ValRapportCulbuteur) && listeLevee1Netmm[i]<valAOAmin)
 
             valAOAmin = listeLevee1Netmm[i];
        }
 
//difference valeur sup -valeur choisie:
     valAOAtmp = valAOAmax - (ValChoixlevee/ValRapportCulbuteur);
 
//differnece valeur inf-valeur choisie:
     valAOAtmp2 = valAOAmin - (ValChoixlevee/ValRapportCulbuteur);
 
//choix de la valeur dont la difference absolue  (valeur sup/inf-valeur choisie) est la plus petite:
 
     if (abs(valAOAtmp)<abs(valAOAtmp2))
                      valAOA = valAOAmax;
 
     if (abs(valAOAtmp)>abs(valAOAtmp2))
                      valAOA = valAOAmin;
et le resultat: ( valAOAmin =0=

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
index max = 504
angle levée maxi 354.15
valeur AOAmin = 0
valeur AOAmax = 0.672195
valAOAtmp = 0.00552861
valAOAtmp2 = -0.666667
Valeur de levee AOA = 0.672195
angle AOA = 18
pourtant dans la liste jai :
Nom : Capture.jpg
Affichages : 207
Taille : 45,1 Ko

merci à vous