IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Calcul de moyenne sur 360°


Sujet :

JavaScript

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    320
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 320
    Points : 79
    Points
    79
    Par défaut Calcul de moyenne sur 360°
    Bonjour,
    Je viens demander des pistes car j'ai le cerveau en ébullition ...
    Je cherche à mettre en place une moyenne entre 2 valeurs sur 360° avec passage par le 0°
    ex: (270° + 90°) / 2 = 0° ou encore (90° + 270°) / 2 = 0°, etc ...

    J'arrive à gérer le "nord" avec cette fonction:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    var btwm = 270;
    var btw_prec = 90;
     
    function north (btmw,btw_prec) { 
     if (btwm - btw_prec > -180 | btwm - btw_prec < 180) {
       return (((btwm + btw_prec) / 2) + 180 ) % 360;
        } else if (btwm - btw_prec > 180 | btwm - btw_prec < -180){
        return (((btwm + btw_prec) / 2) + 360 ) % 360;
        }
    };
    console.log('function north='+north(btwm,btw_prec));
    donc cool mais le calcul simple, ex: (0° + 180°) / 2= 90° ou (225° + 225°) / 2 = 225°, ne fonctionne pas du tout

    J'arrive à faire fonctionner soit le calcul classique de moyenne mais le passage par le 0° est en vrac soit le passage par le nord est bon et le calcul classique est en vrac ... jamais les 2 en même temps ...

    Si vous avez une solution je suis preneurcar là je tourne en rond ...

    Merci

  2. #2
    Expert confirmé
    Avatar de Doksuri
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    2 451
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 451
    Points : 4 600
    Points
    4 600
    Par défaut
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    //(x + y)%360 / 2
    (225 + 225)%360 / 2; //45
    (0 + 180)%360 / 2; //90
    (270 + 270)%360 / 2; //90
    comme ca ?
    La forme des pyramides prouve que l'Homme a toujours tendance a en faire de moins en moins.

    Venez discuter sur le Chat de Développez !

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    320
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 320
    Points : 79
    Points
    79
    Par défaut
    bonjour Doksuri,

    Heu nan

    (270 + 270) / 2 =270; (225 + 225) / 2 = 225 en revanche c'est bon pour (0 + 180) / 2 = 90

    C'est une moyenne entre les 2 valeurs sauf que j'ai la contrainte d'être limité à 360° et que la plage de la moyenne ne doit pas excéder 180°

    ex : (0 + 180) / 2 = 90° mais (0 + 182) / 2 = 271°

    Le faire à la main ou de tête est relativement facile, l'informatiser ne l'est pas du tout ... et je n'ai pas qu'une ligne à traiter sinon je ne poserais pas la question ( quoique histoire de gagner du temps )

  4. #4
    Expert confirmé
    Avatar de Doksuri
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    2 451
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 451
    Points : 4 600
    Points
    4 600
    Par défaut
    je ne comprends pas l'enonce de ta problematique :
    "la plage de la moyenne ne doit pas excéder 180°"
    => pourtant tu donnes en exemple (0 + 182) / 2 = 271° (donc superieur a 180)
    de plus, je ne comprends pas comment 182 / 2 serait egal a 271. 91 j'aurai compris, mais 271... c'est de l'autre cote
    La forme des pyramides prouve que l'Homme a toujours tendance a en faire de moins en moins.

    Venez discuter sur le Chat de Développez !

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    320
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 320
    Points : 79
    Points
    79
    Par défaut
    Effectivement c'est pas évident à comprendre

    Je vais tenter de m'expliquer mieux que précédemment

    En navigation maritime, si suis le cap magnétique 0°, donc le Nord, je pars du principe que je peux avoir au maximum 2 limites de cap possible soit 90° à droite ou 90° à gauche soit 180°

    J'ai des instructions de changements de cap ( HDG = Heading ) à suivre, en calculant une moyenne je 'lisse' ces instructions ce qui me permet de suivre un cap moyen qui m'emmènera à bon port ( je ne parle pas de vitesse et autre juste de cap moyen )

    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
    var btwm = 270;
    var btw_prec = 0;
     
    function north (btw_prec,btwm) {
      if (btw_prec === btwm) {
        return ((btw_prec + btwm) / 2) % 360;
      } else if (btw_prec - btwm > 0 && btw_prec > 180) {
        return (((btw_prec + btwm) / 2) + 180) % 360;
      } else if (btw_prec - btwm > 0 && btw_prec < 180) {
        return (((btw_prec + btwm) / 2) + 360) % 360;
      } else if (btw_prec - btwm < 0 && btwm > 180) {
        return (((btw_prec + btwm) / 2) + 180) % 360;
      } else if (btw_prec - btwm < 0 && btwm < 180) {
        return (((btw_prec + btwm) / 2) + 360) % 360;
      }
    };
    console.log(north(btw_prec,btwm));

    Normalement tous les tests possibles et imaginables retournent le bon cap lissé
    En revanche des que btwm et btw_prec prennent les valeurs 0° et 180° ou 180° et 0° la fonction plante ...

    Citation Envoyé par Doksuri Voir le message
    (0 + 182) / 2 = 271° (donc supérieur a 180)
    de plus, je ne comprends pas comment 182 / 2 serait egal a 271. 91 j'aurai compris, mais 271... c'est de l'autre cote
    Si je navigue au 0 et qu'on me demande d'aller au 182 la moyenne est bien 271, comme je dépasse les 180° je passe sur l'autre coté

  6. #6
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Points : 22 933
    Points
    22 933
    Billets dans le blog
    125
    Par défaut


    Dans le cas ou l'on mesure la direction du vent à partir de l'angle d'une girouette (dans le sens horaire), une moyenne arithmétique n'est pas la solution (car on peut obtenir comme moyenne une direction inverse au sens du vent).

    Il faut considérer le problème du point de vue du cercle trigonométrique (sin et cos de l'angle en radian). La pointe de la girouette étant sur le cercle trigonométrique.

    On peut avoir une moyenne entre deux ou plusieurs mesures !

    Voici ma méthode et mes tests de calcul :

    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
    36
    37
    38
    39
    40
    41
    { // cas 0 et 182
    	const
    		anglesMesuré = [ 0, 182 ],
    		converDegEnRadian = Math.PI / 180.0,
    		converRadianEnDeg = 180.0 / Math.PI;
     
    	let
    		arX = [],
    		arY = [],
    		sommeX = 0.0,
    		sommeY = 0.0,
    		moyenneX = 0.0,
    		moyenneY = 0.0,
    		angleMoyen = 0.0;
     
    	for ( const [ i, angle ] of anglesMesuré.entries() ){
    		arX[ i ] = Math.cos( angle * converDegEnRadian );
    		arY[ i ] = Math.sin( angle * converDegEnRadian );
    	}
     
    	for ( const value of arX ){
    		sommeX += value;
    	}
     
    	moyenneX = sommeX / arX.length;
     
    	for ( const value of arY ){
    		sommeY += value;
    	}
     
    	moyenneY = sommeY / arY.length;
     
    	angleMoyen = Math.atan2( moyenneY, moyenneX ) * converRadianEnDeg;
     
    	if ( angleMoyen < 0 ){
    		angleMoyen += 360;
    	}
     
    	console.log( `L'angle moyen du vent est de ${angleMoyen}°` );
    	// L'angle moyen du vent est de 270.99999999999994°
    }
    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
    36
    37
    38
    39
    40
    41
    { // cas 0 et 180
    	const
    		anglesMesuré = [ 0, 180 ],
    		converDegEnRadian = Math.PI / 180.0,
    		converRadianEnDeg = 180.0 / Math.PI;
     
    	let
    		arX = [],
    		arY = [],
    		sommeX = 0.0,
    		sommeY = 0.0,
    		moyenneX = 0.0,
    		moyenneY = 0.0,
    		angleMoyen = 0.0;
     
    	for ( const [ i, angle ] of anglesMesuré.entries() ){
    		arX[ i ] = Math.cos( angle * converDegEnRadian );
    		arY[ i ] = Math.sin( angle * converDegEnRadian );
    	}
     
    	for ( const value of arX ){
    		sommeX += value;
    	}
     
    	moyenneX = sommeX / arX.length;
     
    	for ( const value of arY ){
    		sommeY += value;
    	}
     
    	moyenneY = sommeY / arY.length;
     
    	angleMoyen = Math.atan2( moyenneY, moyenneX ) * converRadianEnDeg;
     
    	if ( angleMoyen < 0 ){
    		angleMoyen += 360;
    	}
     
    	console.log( `L'angle moyen du vent est de ${angleMoyen}°` );
    	// L'angle moyen du vent est de 90°
    }
    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
    36
    37
    38
    39
    40
    41
    { // cas 225 et 225
    	const
    		anglesMesuré = [ 225, 225 ],
    		converDegEnRadian = Math.PI / 180.0,
    		converRadianEnDeg = 180.0 / Math.PI;
     
    	let
    		arX = [],
    		arY = [],
    		sommeX = 0.0,
    		sommeY = 0.0,
    		moyenneX = 0.0,
    		moyenneY = 0.0,
    		angleMoyen = 0.0;
     
    	for ( const [ i, angle ] of anglesMesuré.entries() ){
    		arX[ i ] = Math.cos( angle * converDegEnRadian );
    		arY[ i ] = Math.sin( angle * converDegEnRadian );
    	}
     
    	for ( const value of arX ){
    		sommeX += value;
    	}
     
    	moyenneX = sommeX / arX.length;
     
    	for ( const value of arY ){
    		sommeY += value;
    	}
     
    	moyenneY = sommeY / arY.length;
     
    	angleMoyen = Math.atan2( moyenneY, moyenneX ) * converRadianEnDeg;
     
    	if ( angleMoyen < 0 ){
    		angleMoyen += 360;
    	}
     
    	console.log( `L'angle moyen du vent est de ${angleMoyen}°` );
    	// L'angle moyen du vent est de 225°
    }
    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
    36
    37
    38
    39
    40
    41
    { // cas 90 et 270
    	const
    		anglesMesuré = [ 90, 270 ],
    		converDegEnRadian = Math.PI / 180.0,
    		converRadianEnDeg = 180.0 / Math.PI;
     
    	let
    		arX = [],
    		arY = [],
    		sommeX = 0.0,
    		sommeY = 0.0,
    		moyenneX = 0.0,
    		moyenneY = 0.0,
    		angleMoyen = 0.0;
     
    	for ( const [ i, angle ] of anglesMesuré.entries() ){
    		arX[ i ] = Math.cos( angle * converDegEnRadian );
    		arY[ i ] = Math.sin( angle * converDegEnRadian );
    	}
     
    	for ( const value of arX ){
    		sommeX += value;
    	}
     
    	moyenneX = sommeX / arX.length;
     
    	for ( const value of arY ){
    		sommeY += value;
    	}
     
    	moyenneY = sommeY / arY.length;
     
    	angleMoyen = Math.atan2( moyenneY, moyenneX ) * converRadianEnDeg;
     
    	if ( angleMoyen < 0 ){
    		angleMoyen += 360;
    	}
     
    	console.log( `L'angle moyen du vent est de ${angleMoyen}°` );
    	// L'angle moyen du vent est de 180°
    }
    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
    36
    37
    38
    39
    40
    41
    { // cas angles divers
    	const
    		anglesMesuré = [ 0, 90, 180, 45, 125 ],
    		converDegEnRadian = Math.PI / 180.0,
    		converRadianEnDeg = 180.0 / Math.PI;
     
    	let
    		arX = [],
    		arY = [],
    		sommeX = 0.0,
    		sommeY = 0.0,
    		moyenneX = 0.0,
    		moyenneY = 0.0,
    		angleMoyen = 0.0;
     
    	for ( const [ i, angle ] of anglesMesuré.entries() ){
    		arX[ i ] = Math.cos( angle * converDegEnRadian );
    		arY[ i ] = Math.sin( angle * converDegEnRadian );
    	}
     
    	for ( const value of arX ){
    		sommeX += value;
    	}
     
    	moyenneX = sommeX / arX.length;
     
    	for ( const value of arY ){
    		sommeY += value;
    	}
     
    	moyenneY = sommeY / arY.length;
     
    	angleMoyen = Math.atan2( moyenneY, moyenneX ) * converRadianEnDeg;
     
    	if ( angleMoyen < 0 ){
    		angleMoyen += 360;
    	}
     
    	console.log( `L'angle moyen du vent est de ${angleMoyen}°` );
    	// L'angle moyen du vent est de 86.97433531874515°
    }
    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
    36
    37
    38
    39
    40
    41
    { // cas angles divers
    	const
    		anglesMesuré = [ 276, 271, 270, 273, 274, 277 ],
    		converDegEnRadian = Math.PI / 180.0,
    		converRadianEnDeg = 180.0 / Math.PI;
     
    	let
    		arX = [],
    		arY = [],
    		sommeX = 0.0,
    		sommeY = 0.0,
    		moyenneX = 0.0,
    		moyenneY = 0.0,
    		angleMoyen = 0.0;
     
    	for ( const [ i, angle ] of anglesMesuré.entries() ){
    		arX[ i ] = Math.cos( angle * converDegEnRadian );
    		arY[ i ] = Math.sin( angle * converDegEnRadian );
    	}
     
    	for ( const value of arX ){
    		sommeX += value;
    	}
     
    	moyenneX = sommeX / arX.length;
     
    	for ( const value of arY ){
    		sommeY += value;
    	}
     
    	moyenneY = sommeY / arY.length;
     
    	angleMoyen = Math.atan2( moyenneY, moyenneX ) * converRadianEnDeg;
     
    	if ( angleMoyen < 0 ){
    		angleMoyen += 360;
    	}
     
    	console.log( `L'angle moyen du vent est de ${angleMoyen}°` );
    	// L'angle moyen du vent est de 273.5°
    }

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    320
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 320
    Points : 79
    Points
    79
    Par défaut
    Bonjour danielhagnoul,

    Tout d'abord merci d'avoir mis en avant mon erreur, je n'avais pas du tout pensé à cette manière d'approcher le calcul de la moyenne, qui avec du recul semble effectivement bien plus logique que mon bricolage ...
    Il me faut du coup revoir un autre calcul, celui de l'angle au vent ( TWA - True Wind Angle ) dont tu parles ici, et j'appliquerais la même méthode pour le cap magnétique ( HDG - Heading )

    Merci pour tes lumières et ton code

  8. #8
    Expert éminent
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 093
    Points : 6 754
    Points
    6 754
    Par défaut
    J’aimerais rajouter qu’il faut se poser la question de la pertinence de certaines données.
    Si tu reçois deux instructions HDG exactement contraires (par exemple, 0 et 180), la meilleure façon de s’approcher des deux destinations à la fois est… De ne pas bouger
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

  9. #9
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Points : 22 933
    Points
    22 933
    Billets dans le blog
    125
    Par défaut
    Citation Envoyé par Watilin Voir le message
    J’aimerais rajouter qu’il faut se poser la question de la pertinence de certaines données.
    Si tu reçois deux instructions HDG exactement contraires (par exemple, 0 et 180), la meilleure façon de s’approcher des deux destinations à la fois est… De ne pas bouger

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    320
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 320
    Points : 79
    Points
    79
    Par défaut
    @danielhagnoul, bonsoir

    J'ai rencontré un petit soucis avec le calcul de l'angle moyen que j'ai résolu en ajoutant un Math.round ( variable * 10) / 10

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    angleMoyen = Math.atan2( moyenneY, moyenneX ) * converRadianEnDeg;
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    angleMoyen = Math.round( ( Math.degrees( Math.atan2( moyenneY, moyenneX ) ) * 10) ) / 10;
    Des fois il me donnait 0° [271, 89], d'autres fois -4.559511842771973e-14° [274 , 86]

    # Math.degrees ( c'est la même chose que converRadianEnDeg )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Math.degrees = function (radians) {
      return radians * 180.0 / Math.PI;
    }

    J'ai une question :
    Si tu as un tableau comme celui ci

    ( Ne pas se fier aux valeurs TWAm et BTWm certaines sont fausses ... )

    TWAm ( True Wind Angle moyen ) correspond à la moyenne de l'angle au vent et BTWm (Bearing To Waypoint moyen) correspond à la moyenne du cap

    J'ai besoin de prendre en compte les itérations de 10 min pour calculer correctement les moyennes TWA par exemple ( colonne TWAm )
    De T +0:00 à T +0:10, l'itération existe donc je peux faire le calcul ( il faut être au 143 en TWA pour atteindre le point T +0:10 à partir de T +0:00 )
    De T +0:00 à T +0:40, certaines itérations ne sont pas listé, il me faut donc les prendre en compte
    T +0:00 -> 143 ( existe )
    T +0:10 -> 143 ( existe )
    T +0:20 -> 143 ( n'existe pas )
    T +0:30 -> 143 ( n'existe pas )
    T +0:40 -> 140

    Donc pour atteindre T +0:40 à partir de T +0:00, revient à prendre en compte les 4 valeurs 143 pour angleMesuré dans ta fonction et ainsi de suite pour les autres lignes

    Comment je peux mettre ça en oeuvre dans ta fonction ?

    Merci d'éclairer ma lanterne

  11. #11
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Points : 22 933
    Points
    22 933
    Billets dans le blog
    125
    Par défaut
    Eh oui, 0 et -4e-14 c'est très différent !
    Je ne me suis pas occupé des problèmes d'arrondis, en effet.

    On peut toujours ajouter des valeurs à un Array : [ 143, 143, 143, ... ] mais dupliquer la dernière valeur pour remplacer les valeurs manquantes introduira certainement une erreur dont l'importance m'échappe, car je ne connais rien aux problèmes de navigation. Je ne sais pas vous conseiller sur ce qu'il faut faire ou ne pas faire pour obtenir un résultat correct.

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment calculer la moyenne sur une colonne selon un critère
    Par Contact2012 dans le forum Requêtes
    Réponses: 3
    Dernier message: 18/06/2010, 16h07
  2. Calcul de moyenne sur des champs Date
    Par schwinny dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 28/05/2008, 12h57
  3. calcul de moyenne sur les bins d'un histogramme
    Par berlilou dans le forum MATLAB
    Réponses: 3
    Dernier message: 10/03/2008, 16h03
  4. [8.5] calcul de moyenne sur une durée
    Par rihiveli dans le forum SAP Crystal Reports
    Réponses: 5
    Dernier message: 27/04/2007, 11h06
  5. Comment calculer des moyennes sur des nombres positifs
    Par robertetgorgette dans le forum Access
    Réponses: 2
    Dernier message: 20/07/2006, 14h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo