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

Langage PHP Discussion :

difficulté de conception


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Bricoleur
    Inscrit en
    Septembre 2011
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Bricoleur

    Informations forums :
    Inscription : Septembre 2011
    Messages : 56
    Par défaut difficulté de conception
    Bonjour,
    Voilà mon soucis,
    J'ai un ensemble $pl
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $pl=array('p1','p2','p3',...,'pn'};
    Et je récupère leurs données via wsdl dans le tableau $data
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    foreach($pl as $p){
      $data[$p]=array();
      for($i=0,$size=sizeof(donneewsdl);$i<$size;$i++){
        $data[$p][$i]=array(
          'date'=> floatval($matchesEqu[1][$i]),
          'ra'=> to_decimal($matchesEcl[2][$i],$matchesEcl[3][$i],$matchesEcl[4][$i]),
          .
          .
          .
          );
      }
    }
    Jusque là tout va bien...
    Par contre ensuite, j'ai un soucis de conception.
    Je vais essayer d'être clair.
    Je souhaite extraire du tableau $data un certain nombre de données en fonction de la différence de $data[$p][$i]['ra'] qu'il y a entre deux éléments du tableau $p, et créer un nouveau tableau $events.
    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
     
    $events=array(
        'conj'=>array(
            transition=array(
             'dtstart'=>$date_debut_event',
             'dtend'=>$date_fin_event'),
            .
            .
            .),
        'opp'=>array(
            transition=array(
              'dtstart'=>$date_debut_event',
              'dtend'=>$date_fin_event'),
            .
            .
            .),
         ....);
    le tableau
    $encours_2[$pl[$k]][$pl[$h]]['ev'] est initialisé à false et,
    $encours_2[$pl[$k]][$pl[$h]]['ind'] à 0
    Les compteurs genre $co[$pl[$k]] sont initialisés à 0
    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
    42
    43
    44
    45
    46
    47
    48
     
    for($k=0,$size1=sizeof($pl)-1;$k<$size1;$k++){
      for ($h=$k+1,$size2=sizeof($pl);$h<$size2;$h++){
        $delta_ra=($data[$pl[$k]][$i]['ra']>=$data[$pl[$h]][$i]['ra'])?$data[$pl[$k]][$i]['ra']-$data[$pl[$h]][$i]['ra']:$data[$pl[$h]][$i]['ra']-$data[$pl[$k]][$i]['ra'];//pour que $delta_ra soit toujours positif
        switch(true){ // Là gros doutes de conception dans tout ce qui suit !!!
          case($delta_ra<0.5):
            if($encours_2[$pl[$k]][$pl[$h]]['evenement']==true){ //Est-ce que l'evènement entre $pl[$k] et $pl[$h] est en cours ?
              $events['conj'][$pl[$k]][$encours_2[$pl[$k]][$pl[$h]]['ind']]['transition']['dtend']=$pp[$pl[$k]][$i+1]['date'];
            }else{ // l'evènement entre $pl[$k] et $pl[$h] est détecté mais n'a pas déjà commencé
              $event['conj'][$pl[$k]][$co[$pl[$k]]]=array(
                'transition'=>array(
                  'dtstart'=>$data[$pl[$k]][$i-1]['date'],
                  'dtend'=>$data[$pl[$k]][$i+1]['date']
                  ),
                .
                .
                .
                );
              $encours_2[$pl[$k]][$pl[$h]]['ev']=true;// L'évènement est détecté pour la première fois alors je stocke cette info dans cette variable et son indice dans la suivante
              $encours_2[$pl[$k]][$pl[$h]]['ind']=$co[$pl[$k]];
              $co[$pl[$k]]++;//incrémentation de l'indice de $events['conj'][$pl[$k]]
          case($delta_ra>5&&$delta_ra<6):
            if($encours_2[$pl[$k]][$pl[$h]]['evenement']==true){ //Est-ce que l'evènement entre $pl[$k] et $pl[$h] est en cours ?
              $events['opp'][$pl[$k]][$encours_2[$pl[$k]][$pl[$h]]['ind']]['transition']['dtend']=$pp[$pl[$k]][$i+1]['date'];
            }else{ // l'evènement entre $pl[$k] et $pl[$h] est détecté mais n'a pas déjà commencé
              $event['opp'][$pl[$k]][$opp[$pl[$k]]]=array(
                'transition'=>array(
                  'dtstart'=>$data[$pl[$k]][$i-1]['date'],
                  'dtend'=>$data[$pl[$k]][$i+1]['date']
                  ),
                .
                .
                .
                );
              $encours_2[$pl[$k]][$pl[$h]]['ev']=true;// L'évènement est détecté pour la première fois alors je stocke cette info dans cette variable et son indice dans la suivante
              $encours_2[$pl[$k]][$pl[$h]]['ind']=$opp[$pl[$k]];
              $opp[$pl[$k]]++;//incrémentation de l'indice de $events['opp'][$pl[$k]]					
     
            }        
            break;
          .
          .
          .
          default :
              $encours_2[$pl[$k]][$pl[$h]]['ev']=false;
        }
      }
    }
    Est-ce que l'un de vous aurait une piste de conception?
    Merci.

  2. #2
    Membre émérite Avatar de vorace
    Homme Profil pro
    Développeur
    Inscrit en
    Août 2010
    Messages
    573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Août 2010
    Messages : 573
    Par défaut
    wsdl ?! je vois pas de XML dans ton code...pour ma part si tu veux de l'aide dans la conception, j'aimerai bien savoir ce que tu cherches à faire en quelques lignes sans le code...

  3. #3
    Membre averti
    Profil pro
    Bricoleur
    Inscrit en
    Septembre 2011
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Bricoleur

    Informations forums :
    Inscription : Septembre 2011
    Messages : 56
    Par défaut
    Je n'en suis pas encore au traitement xml.
    Je souhaite extraire, d'un tableau de données qui varient dans le temps, la période durant laquelle deux éléments du tableau répondent à certains critères.
    À partir de cela j'aimerais créer un tableau (ou autre) qui regroupe par critère prédéfini les périodes (dateDeDébut, dateDeFin) et les éléments concernés.
    Le traitement xml se faisant ensuite...

  4. #4
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Bonjour,

    Mois aussi je trouve très pratique les tableaux imbriqués mais y a des limites quand même :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $events['conj'][$pl[$k]][$encours_2[$pl[$k]][$pl[$h]]['ind']]['transition']['dtend'] -> ouch !!!
    Dans tous les cas je confirme ton intuition :
    switch(true){ // Là gros doutes de conception dans tout ce qui suit !!!

    Si tu veux un coup de main, il faudrait poster je pense un exemple concret parce que dépieuter ton algo risque d'être très difficile.

  5. #5
    Membre averti
    Profil pro
    Bricoleur
    Inscrit en
    Septembre 2011
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Bricoleur

    Informations forums :
    Inscription : Septembre 2011
    Messages : 56
    Par défaut
    Citation Envoyé par rawsrc Voir le message
    Bonjour,

    Mois aussi je trouve très pratique les tableaux imbriqués mais y a des limites quand même :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $events['conj'][$pl[$k]][$encours_2[$pl[$k]][$pl[$h]]['ind']]['transition']['dtend'] -> ouch !!!
    Dans tous les cas je confirme ton intuition :

    Si tu veux un coup de main, il faudrait poster je pense un exemple concret parce que dépieuter ton algo risque d'être très difficile.
    Ça reflète bien mon soucis d'algorithme
    Concrètement,
    J'ai des objets en mouvement.
    je récupère toutes les positions de ces objets (RA) à un instant t et ce pour une période donnée.
    Quand deux objets ont une différence angulaire comprise entre 2 valeurs alors, cela correspond à un type d'évènement (conj, opp...). Un évènement possède donc une date de début et de fin.
    Et j'arrive pas à formuler l'algo

  6. #6
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Citation Envoyé par CBresso Voir le message
    ÇJ'ai des objets en mouvement.
    je récupère toutes les positions de ces objets (RA) à un instant t et ce pour une période donnée.
    Ok, sous quel format tu récupères tes objets en mouvements d'une part et leurs positions d'autre part.

    Citation Envoyé par CBresso Voir le message
    Quand deux objets ont une différence angulaire comprise entre 2 valeurs alors, cela correspond à un type d'évènement (conj, opp...). Un évènement possède donc une date de début et de fin.
    Ok, comment tu détermines ta différence angulaire ?
    Comment tu gères ton tableau de paliers pour affecter les dates ?

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

Discussions similaires

  1. Système de rang difficulté de conception
    Par DevSpike dans le forum Langage SQL
    Réponses: 2
    Dernier message: 13/05/2015, 11h55
  2. [Débutant] Difficultée dans la conception d'une classe pour service web
    Par Nixeus dans le forum C#
    Réponses: 4
    Dernier message: 21/07/2012, 12h15
  3. Réponses: 1
    Dernier message: 08/03/2010, 18h42
  4. [MCD] Difficulté conception modèle pour la Gestion des Achats
    Par maddev dans le forum Schéma
    Réponses: 13
    Dernier message: 21/02/2009, 18h11
  5. Difficulté à la conception de tables
    Par Ryu007 dans le forum Requêtes
    Réponses: 35
    Dernier message: 17/08/2007, 08h57

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