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

C Discussion :

modifier des variables au choix


Sujet :

C

  1. #1
    Membre confirmé
    Inscrit en
    Février 2007
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 100
    Par défaut modifier des variables au choix
    Je suis de retour,

    J'ai fais un programme qui permet de calculer des distance entre des protéines (avec l'aide de pas mal de monde sur ce forum). Maintenant on me demande que l'on puisse obtenir au choix les 100 meilleurs (ou 50 ...) où bien pour une distance inférieur à X Angström, que l'opérateur doit pouvoir choisir. Quelqu'un à une idée ? Jusque là j'ai un tableau statique de 100 résidus (protéines en language vulgaire ) Que j'ai déclaré avec la variable MAX_PAIRES

    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
     
    void construire_paires()
    {
      int k;
      residue_t *r1, *r2;
      float dist;
     
      //cette boucle sert a initialiser le tableau res_pair en lui indiquant des fausses paires avec des distances tres grandes
      for (k = 0; k < MAX_PAIRS; k++) {
        res_pair[k].r1 = NULL;
        res_pair[k].r2 = NULL;
        res_pair[k].dist = 1e10;
      }
      for (r1 = residue_list; r1 != NULL; r1 = r1->suiv) {
        for (r2 = residue_list; r2 != NULL; r2 = r2->suiv) {
          //premier residu dans la chaine A, deuxieme dans la chaine B
          if (r1->chain_id != 'A' || r2->chain_id != 'B')   
    	continue;
          dist = sqrt((r1->x - r2->x)*(r1->x - r2->x)+(r1->y - r2->y)*(r1->y - r2->y)+(r1->z - r2->z)*(r1->z - r2->z)); 
     
          //meilleure que celles qui ont deja ete inserees ?
          if (dist > res_pair[MAX_PAIRS-1].dist)
    	continue;
     
          //alors inserer lq nouvelle paire
          for (k = MAX_PAIRS-1 ; k > 0 ; k--) { 
    	if (res_pair[k-1].dist < dist)
    	  break;
    	res_pair[k].r1 = res_pair[k-1].r1;
    	res_pair[k].r2 = res_pair[k-1].r2;
    	res_pair[k].dist = res_pair[k-1].dist;
          }
          res_pair[k].r1 = r1;
          res_pair[k].r2 = r2;
          res_pair[k].dist = dist;	  
        }
      }
    }
    Je pensais l'insérer dans cette partie du code mais je trouve que mon code est déjà trop long.
    Alors je code sous Unix mais c'est pour servir sur Windows. et avec le moins possible d'intervention du genre "Que selectionnez vous ?", pour des questions de sécurité.

    P.S.
    Pour ceux qui m'ont aidés sur les pointeurs, je pense que je me suis améliorée non

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 349
    Par défaut
    Pour retrouver les meilleures valeurs, tu peux les trier par qsort, disponible aussi bien sous Unix que sous Windows.

Discussions similaires

  1. [Bash] Modifier des variables extérieure à la fonction
    Par Quetzalcoatl dans le forum Autres langages pour le Web
    Réponses: 0
    Dernier message: 07/12/2007, 14h27
  2. Choix des variables de session
    Par webasso dans le forum Langage
    Réponses: 7
    Dernier message: 21/09/2007, 20h05
  3. modifier une valeur dans des variables
    Par bombjack91 dans le forum VB.NET
    Réponses: 3
    Dernier message: 29/06/2007, 08h14
  4. Réponses: 15
    Dernier message: 31/01/2007, 22h03
  5. [Javascript] modifier des variables a la fermeture du navigateur
    Par kespy13 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 03/05/2006, 14h35

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