Votre question

exercice algorithme

Tags :
  • chaine
  • Programmation
Dernière réponse : dans Programmation
6 Février 2005 19:09:28

bonjour a tous , jai un petit exo d'algo qui me pose quelque soucis , explication ;

il sagit d'ajouter une valeur dans un tableau trié
pour ceci trois étapes sont nécessaire :
-recherche de la place ou insérer la valeur
-décalage a droite
-insertion de la valeur

Donc en somme rien de trés compliqué , mais je suis assez mauvais en algo donc je fais appel avotre sens de l'entraide pour me sortir de ce mauvais pas ...

mise en situation
Tableau remplis de chaine de charactére
ex: a b c d e f g h i j l m
1 2 3 4 5 6 7 8 9 10 11 12
note a insérer : k
donc en gros pour la premiére étape sa doit donner quelquechose comme sa ;
-----------------------------------------------------
var TAB1[1...12]:tableau de chaine de charactére
i:entier
i=0
répéter
| i=i+1
|
jusqu'a tab1<k et k<tab1
position <-- i+1

donc une fois que jai la position jaimerai decaler toutes les valeurs qui sont aprés la position vers la droite pour pouvoir i déposer ma valeurs k mais le pb c'est que si je décale toutes mes valeurs vers la droite bein je vais perdre ma derniére valeurs a savoir 12
donc jaimerai si il est possible de faire une insertion directement sans perdre de valeurs mais heu comment qu'on fait.... :-o
donc si quelqun peut me résoudre cet exo sa serai bien simpa ou sinon juste m'indiquez une des solution possible ;;
merci d'avance
secten

Autres pages sur : exercice algorithme

6 Février 2005 19:14:03

c'est sûr que si tu ne redimensionnes pas ton tableau, à l'insertion y'a forcément une valeur (la dernière dans ton cas) qui va disparaître...
6 Février 2005 19:38:21

Salut !
D'un part Sylvain a raison tu peux pas mettre N+1 chiffres dans N cases :hum: 
Ensuite je voudrais savoir si c'est bien un tableau de chaines de caracteres ou simplement un tableau de caractere car sinon c'est un peux plus compliqué que ce que tu as ecris.
Arno
Contenus similaires
7 Février 2005 12:36:07

Je ne pense pas que ce soit un problème que son tableau ne soit pas dimensionné à la bonne taille. Après tout, ca n'est que du détail implémentatoire, et y'a pas mal de langages où la taille d'un tableau est quelque chose qu'on ne manipule pas.
Sinon, voilà ce que je propose comme solution

# Je suppose ici que le tableau est assez grand en mémoire
# pour être décalé.
# pos est la position à partir de laquelle on va déplacer
# tous les éléments à droite
# Si je le fais en partant de la fin du tableau, c'est pour
# éviter qu'on remplace tous les éléments par tab[pos]
# C'est une erreur bête mais courante :) 
Procédure déplacer_tableau (tab : Tableau, pos : Entier)
Variables
i : Entier
Début
Pour i = longueur(Tableau) jusqu'à pos en descendant
tab[i + 1] = tab
Fin Pour
Fin Procédure

# Ici je ne me soucie pas du type de elt, on veut
# juste rajouter un élément dans un tableau trié.
# Je présuppose également que le sens de tri
# est croissant.
Procédure insérer_élément (tab : Tableau, elt : Element)
Variables
i : Entier
Début
Tant que elt < tab faire
i = i + 1
fin tant que
déplacer_tableau(tab, i)
tab = elt
Fin Procédure

Voilà pour ma solution.
5 Novembre 2006 20:06:41

tu peut ajouter un notre tableau et tu tu doit tester ou se trouve la position d'element que tu doit affectè et remplire le nouveau tableau de 0a la pos-1 puis t'affecte le nouveau caractaire enfin remplire le nouveau tableau de pos a taille
Anonyme
5 Mai 2009 21:49:04

je ma ppel fat
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS