Valentin03 a écrit:Bonjour messeigneurs,
Le gueux numérique sollicite de votre bienveillant manoir, un code qui permettrait d'éliminer les doublons dans un tableau.
Le problème c'est qu'il faudrait que ce code soit en langage FCF (français de Clermont Ferrand)
Ou à défaut, snif ! en pseudo code.
L'ajout de moult commentaires serait fort apprécié.
Que le ciel m'accorde grâce, avant l'arrivée des dragons itératifs.
La main de ma fille (72ans) sera la récompense.
trier tableau 1->n
pour i =1 to n-1
si tab[i] = tab[i+1]
recopier tab [i+2 - >n] en tab [i+1 -> n-1] // on recule le reste du tableau d'une case
i = i-1 // on repartira de tab[i] au prochain tour
n= n-1 // le tableau est plus petit
fin si
fin pour
pour i de 2 à N faire
t tab[i] faire
t i alors
tab[j+1] <- tab[i]
fin si
j <- j+1
fin si
fin pour
tableauAvecDoublon=[];
tableauSansDoublon=[];
pour chaque elem e de tableauAvecDoublon
si e est PAS dans tableauSansDoublon
ajouter e dans tableauSansDoublon
finsi
finpour
LeJeu a écrit:
- Code: Tout sélectionner
trier tableau 1->n
pour i =1 to n-1
si tab[i] = tab[i+1]
// on recule le reste du tableau d'une case
recopier tab [i+2 - >n] en tab [i+1 -> n-1]
i = i-1 // on repartira de tab[i] au prochain tour
n= n-1 // le tableau est plus petit
fin si
fin pour
gauche tab[droite]
gauche droite
tab[gauche] <- tab[droite]
fin si
finsi
droite <-droite +1
fin tant que
fatal_error a écrit:..........ans tableauSansDoublon est trivial..
LE JEU a écrit:.....à vérifier que l'algo ci dessus est correct (ou non),
joel76 a écrit:Il avait compris les nécessités de formalisation pour écrire un code correct.
fatal_error a écrit:
- Code: Tout sélectionner
tableauAvecDoublon=[];
tableauSansDoublon=[];
pour chaque elem e de tableauAvecDoublon
si e est PAS dans tableauSansDoublon
ajouter e dans tableauSansDoublon
finsi
finpour
Valentin03 a écrit:Mais hélas, ce qui est trivial pour l'un, ne l'est pas forcément pour l'autre.
.
pour chaque elem elt de tableauAvecDoublon
t tableauSansDoublon [t] faire
t =1) && ( (cmp = tab_i-tab[j]) =j; k--)
tab[k+1] = tab[k];
tab[j] =tab_i;
}
nbok++; // on a un élémnt de plus
}
}
// le tableau est nettoyé - nouvelle taille : nbok
return nbok;
}
Valentin03 a écrit:Bon ben j'ai pu qu'à me mettre au C. Ce dernier code a l'air plus charnu.
Celui de LE JEU ( je peux me f...tre dedans) mais j'ai l'impression qu'il ne tue que les doublons consécutifs.
Si quelqu'un a un lien, qui ne soit pas le BA ba,
Mais où je trouverais rapidement une bonne grosse liste des significations de ces trucs:
La syntaxe quoi.
ça-->++ et ça-->&& et--> != et--> _ (ça:_ en python c'est dans les noms de variables.)
Et merci d'avoir pris la peine d'essayer de vous (me) faire comprendre.
for $i in @tab {
if !$elem_deja_vu{$i}++ {
push $i, @$tab_sans_doublon;
}
}
Benjamin a écrit:La technique ici est de tester un élément qui lui même va s'incrémenter lors du test. Au départ, tout le monde vaut 0, donc le if est positif, mais dès que le test est fait sur un élément, ça incrémente la valeur du hachage pour cet élément là, et le test suivant sera alors nécessaire négatif.
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité
Tu pars déja ?
Identification
Pas encore inscrit ?
Ou identifiez-vous :