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

Bases de données Delphi Discussion :

calcul de la médiane


Sujet :

Bases de données Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de redoran
    Homme Profil pro
    Développeur-Amateur
    Inscrit en
    Juin 2010
    Messages
    1 346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur-Amateur
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 346
    Par défaut calcul de la médiane
    Salut ; [D7+access 2003]je veux calculé la médiane d'une série par requête mais apparemment le SGBD ne contiens pas cette fonction , malgré quel existe sous excel option statistique , aussi j'ai vu dans l'unité math du Delphi 07 elle n'existe pas , si quelqu'un a une idée ou une piste alors sa sera la bien venu
    définition de la médiane :

    statistiques: source : http://www.techno-science.net/?ongle...efinition=5542

    la médiane est la valeur qui permet de partager une série numérique en deux parties de même nombre d'éléments.

    * C'est l'une des caractéristiques d'une série numérique, qu'il convient de bien distinguer de la moyenne (Il y a plusieurs façon de calculer une moyenne d'un ensemble de nombres. Celle qu'il convient de retenir dépend de la...) même si ces deux valeurs sont voisines dans le cas d'une distribution équilibrée (voir l'article Critères de position). La médiane entre 2 points est son milieu. Le salaire médian désigne ainsi le palier divisant la société en deux parties égales: 50% de la population gagne moins que le salaire médian et l'autre moitié de la population gagne plus.
    .

  2. #2
    Membre éprouvé Avatar de redoran
    Homme Profil pro
    Développeur-Amateur
    Inscrit en
    Juin 2010
    Messages
    1 346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur-Amateur
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 346
    Par défaut
    Re; merci et surtout Antoun pour le lien http://sqlpro.developpez.com/optimis...dianeEnSQL.pdf
    je vous rend réponse après le teste

  3. #3
    Membre éprouvé Avatar de redoran
    Homme Profil pro
    Développeur-Amateur
    Inscrit en
    Juin 2010
    Messages
    1 346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur-Amateur
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 346
    Par défaut
    Salut; voila j'ai lu doc du lien ; alors j'ai voulu faire plus facile ;
    ma solution est la suivante:
    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
    procedure tdm.lagtpAfterOpen(dataset:tdataset);
    var m,m1 : intger;
    m2: extendede;
    begin
    if dm.req1age.asinteger mod 2 = 0   // si le reste de la division du  nombre total des ages est égale a zéro donc la série est pair 
        then
        begin
        dm.lagtp.recno := (dm.req1age.asinteger div 2) ; // se positionné au premier¨milieu de la série est affecté l'age a la variable m (mediane1)
        m:= dm.lagtpage.asinteger;
        dm.lagtp.next;  // se positionné au 2 eme milieu de la série est affecté l'age a la variable m1 (mediane2)
        m1:=dm.lagtpage.asinteger;
        m2:=roundto(((m+m1)/2),-2); calculé la moyenne des deux médianes
        ftb.lmedia.caption:=floattostr(m2);  // affiché la médiane
        end
        else         // si la série est impaires alors prendre l'age du milieu de la série
              begin
              dm.lagtp.moveby(((dm.req1age.asinteger + 1) div 2 ) -1);
              ftb.lmedia.caption:= inttostr(dm.lagtpage.asinteger);
              exit;
              end;
    end;
    c'est vous éte disponible , j'attend vos critiques ou une autre suggestion.
    la même liste testé sur excel a donnée le même résultat.

  4. #4
    Membre éprouvé Avatar de redoran
    Homme Profil pro
    Développeur-Amateur
    Inscrit en
    Juin 2010
    Messages
    1 346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur-Amateur
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 346
    Par défaut
    Re; voila après plusieurs teste sur excel et une application exemple , le résultat est le même , mais vue le tuto http://sqlpro.developpez.com/optimis...dianeEnSQL.pdf de ce lien ma solution semble trés facile.
    alors j'ai un petit soucis envers ce code malgré qu'il me donne le bon résultat. sa reste a confirmé.

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

Discussions similaires

  1. Calcul de la médiane
    Par nazlurf dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 31/07/2017, 13h44
  2. Fonction calcul de la médiane d'un montant
    Par MikaelBO dans le forum Designer
    Réponses: 8
    Dernier message: 29/06/2009, 14h20
  3. Calcul de la Médiane pour chaque élément d'une table
    Par yuekerobero dans le forum Requêtes
    Réponses: 11
    Dernier message: 30/09/2008, 12h01
  4. Calcul de la médiane
    Par revsys dans le forum Delphi
    Réponses: 9
    Dernier message: 21/05/2007, 10h11
  5. [SQL-Oracle]Calcul de la médiane
    Par fdraven dans le forum Oracle
    Réponses: 5
    Dernier message: 14/08/2006, 14h37

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