Algorithme de Fusion

Fermé
does01 Messages postés 122 Date d'inscription lundi 24 décembre 2007 Statut Membre Dernière intervention 5 avril 2010 - 15 avril 2008 à 22:51
does01 Messages postés 122 Date d'inscription lundi 24 décembre 2007 Statut Membre Dernière intervention 5 avril 2010 - 16 avril 2008 à 10:52
Bonjour,
je demande de l'aide d'un exercice j'ai pas pu trouve sa solution

on a deux tableaux qui sont tries on veux les Fusioné dans un 3eme tabeau
merci de m'aide sur ce algorithme
merci d'avance
A voir également:

3 réponses

cchristian Messages postés 921 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 6 mars 2012 131
16 avril 2008 à 02:34
Bonjour,

Une réflexion sur la fusion de 2 tableaux supposés numériques :

<code>DEBUT PROGRAMME.

Traitements initiaux :
DEFINIR les variables et tableaux
I, J , K, ...........
.................
INITIALISER INDICE I à 0
INITIALISER INDICE J à 0
INITIALISER INDICE K à 0
INITIALISER TAB_C à 0

CONSIDERER 1er élément TAB_A [I] si NULL ou équivalent (vide) TAB_A [I] = 9999999 (valeur maximale*)
CONSIDERER 1er élément TAB_B [J] si NULL ou équivalent (vide) TAB_B [J] = 9999999 (valeur maximale*)

Fusion :
Le nombre d'éléments de chacun des 2 tableaux est supposé connu ou un indicateur de fin existe
(valeur particulière prise par le dernier élément).
J'ai synthétisé les tests par : si fin TAB_x [y] alors TAB_x [y] = 9999999 ............

FAIRE TANT QUE TAB_A [I] NOT = 99999999 ET TAB_B [J] NOT = 9999999
SI TAB_A [I] < TAB_B [J] alors inscrire TAB_A [I] dans TAB_C [K]
Faire progresser (+1) l'INDICE I si fin TAB_A [I] alors TAB
0
cchristian Messages postés 921 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 6 mars 2012 131
16 avril 2008 à 03:25
Bonjour,

Il y a eu comme un loupé dans mon précédent envoi ......................

Une réflexion sur la fusion de 2 tableaux supposés numériques :

DEBUT PROGRAMME.

Traitements initiaux :
DEFINIR les variables et tableaux
I, J , K, ........... 
.................
INITIALISER INDICE  I   à  0
INITIALISER INDICE  J   à  0
INITIALISER INDICE  K  à  0
INITIALISER TAB_C  à 0
Le premier élément de chaque tableau est supposé référencé par la valeur zéro.
CONSIDERER 1er élément TAB_A [I]  si NULL ou équivalent (vide) TAB_A [I] = 
9999999 (valeur maximale*) 
CONSIDERER 1er élément TAB_B [J]  si NULL ou équivalent (vide) TAB_B [J] =
9999999 (valeur maximale*) 

Fusion :

*Le nombre d'éléments de chacun des 2 tableaux est supposé connu ou bien un
indicateur de fin existe (valeur particulière prise par le dernier élément). 
J'ai synthétisé les tests par : si fin TAB_x  [y]  alors TAB_x [y] = 999 .....
 
FAIRE TANT QUE    TAB_A [I]  NOT  =  999....  ET TAB_B [J]  NOT= 999....  
  SI TAB_A [I]  < TAB_B [J] alors inscrire TAB_A [I] dans TAB_C [K]        
    Faire progresser (+1)  l'INDICE I si finTAB_A [I]  alors TAB_A [I] = 999 ....
  SINON
        SI TAB_A [I]  > TAB_B [J] alors inscrire TAB_B [J] dans TAB_C [K]
          Faire progresser (+1)  l'INDICE J si fin TAB_B [J] alors TAB_B [J]=999 ..
        SINON
           Alors inscrire TAB_A [I] dans TAB_C [K] ( Si les doublons sont admis
           faire progresser  (+1)  l'INDICE K        sinon inscrire TAB_A ou TAB_B
           inscrire TAB_B  [J] dans TAB_C [K]    sans faire progresser l'indice K)
           faire progresser ls INDICES I, J  sii fin TAB_A [I] alors TAB_A [I]
                et TAB_B  [J] = 999 .....
       FIN SI                   
 FIN SI                   
     Faire progresser l'indice K
FIN FAIRE TANT QUE

FIN PROGRAMME
0
does01 Messages postés 122 Date d'inscription lundi 24 décembre 2007 Statut Membre Dernière intervention 5 avril 2010 12
16 avril 2008 à 10:52
merci de votre aide
0