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

  1. #1
    Membre du Club
    selectionner une suite de chiffres dans une routine de tri (FireMonkey)
    Bonsoir,

    Soit la routine de tri suivante :

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    int nombre[13], nombresup[13]; 
    int i, j;
     
    for (i = 1; i <14 ; ++i)
       {
    	   int elem = nombre[i];
     
    	   for (j = i; j > 0 && nombre[j-1] > elem; j--)
     
    		   nombre[j] = nombre[j-1];
     
    	   nombre[j] = elem;
       }


    Admettons que le résultat soit 2,5,8,10, 15, 16 17, 20,25 ....

    Est-il possible de sélectionner uniquement les chiffres (15,16,17) qui se suivent et de les enregistrer dans une variable ?

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    for (int i = 1; i <14 ; ++i)
     
       if (chiffres == 15,16,17)
     
          { nombresup[i] = chiffres;
              ListBox1->Items->add(IntToStr(nombresup[i]));}



    Merci d'avance

    Cordialement

  2. #2
    Membre du Club
    Je me suis planté.

    Bonsoir,

    Soit la routine de tri 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
     
     int nombre[13]; 
        int i, j;
     
        for (i = 1; i <14 ; ++i)
           {
        	   int elem = nombre[i];
     
        	   for (j = i; j > 0 && nombre[j-1] > elem; j--)
     
        		   nombre[j] = nombre[j-1];
     
        	   nombre[j] = elem;
           }


    Admettons que le résultat soit 2,5,8,10, 15, 16 17, 20, 26 ,27 ,28, 31,45 ....

    Est-il possible de sélectionner uniquement les séries de chiffres qui se suivent (ex : 15,16,17 et 26,27,28) et d'enregistrer chaque série dans une variable différente ?

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    int variable1[13];
    int variable2[13];
     
      for (int i = 1; i <14 ; ++i)
       if (nombre[i] = 15,16,17)
         {
          variable1[0] =15;
          variable1[1] =16;
          variable1[2] =17;
        }


    idem pour variable2

    Je sais que ma question peut paraître étrange, mais j'aurais besoin de cette routine pour une petite appli

    Merci d'avance

    Cordialement

  3. #3
    Membre éprouvé
    En gros tu cherches à récupérer les suite de nombres qui se suivent.
    Une solution simple consiste à partir du premier nombre de ton tableau. Puis à parcourir ton tableau jusqu'à ce que l'écart entre deux nombre du tableau est supérieur à 1.
    Si le nombre de consécutif est supérieur à 1 tu retiens les nombres et tu reprends la procédure en partant du dernier nombre testé.
    Si je reprends ton exemple [2,5,8,10, 15, 16 17, 20, 26 ,27 ,28, 31,45] voici ce que ça donne:

    valeur1=2
    tableau_provisoire=[2]
    valeur2=5
    différence>1
    tableau_provisoire ne contient qu'un seul élément on ne le retient pas

    valeur1=5
    tableau_provisoire=[5]
    valeur2=8
    différence>1
    tableau_provisoire ne contient qu'un seul élément on ne le retient pas
    .
    .
    .
    valeur1=15
    tableau_provisoire=[15]
    valeur2=16
    différence=1 on retient 16
    tableau_provisoire=[15,16]
    valeur1=16
    valeur2=17
    différence=1 on retient 17
    tableau_provisoire=[15,16,17]
    valeur1=17
    valeur2=20
    différence>1
    tableau_provisoire=[15,16,17] contient trois élément on le garde
    ainsi de suite jusqu'à atteindre la fin du tableau trié.

    Je te laisse programmer tout ça
    Il y a des jours où j'éprouve une haine profonde envers microsoft
    Venez vous défouler ici ou c'est amusant
    Mon modeste site et mes modestes oeuvres sont
    Rémi

  4. #4
    Membre du Club
    Merci Gouyon pour ta solution.
    J'ai pensé aussi à une boucle qui stockera les éléments tant que les éléments sont à une valeur d'écart


###raw>template_hook.ano_emploi###