olivier318 a écrit :
ca ne marche que si le nombre d'indice est 1 . càd: que si l'utilisateur souhaite supprimé une seul valeur selement !!!
le probléme est dans cette partie (je ne sais pas exactement ou):
Code :
- pour ( j de 1 à ns ) faire
- ecrire ("l'indice de la",j,"eme valeur à supprimé :" );
- lire (s);
- pour ( i de 0 à n-1 ) faire
- si i<s alors v[i]:=t[i];
- sinon si i>s alors v[i-1]:=t[i];
- finpour i
- finpour j
|
|
Normal. en fait, tu dois obtenir en résultat la suppression du dernier élément demandé :
On a un tableau t[0,1,2,3,4], n=5
On veut supprimer 2 valeurs, le 2 puis le 3.
* Premier passage : s=2.
v[0]=t[0]
v[1]=t[1]
v[2]=t[3]
v[3]=t[4]
v=[0,1,3,4]
* Deuxième passage : s=3
v[0]=t[0]
v[1]=t[1]
v[2]=t[2]
v[3]=t[4]
v=[0,1,2,4]
Comme tu utilises 2 tableaux, et que ton tableau de référence (t[]) n'est pas modifié, ton algo te donne ça :
Code :
- pour ( j de 1 à ns ) faire
- lire (s);
- v[] = t[] - t[s]
- finpour j
|
Tu ne cumules pas les suppressions, alors forcément...
-----
[Edit] En utilisant un seul tableau, c'est plus simple : Pour chaque valeur à supprimer, tu prends ton tableau et tu enlèves la valeur à supprimer...
Message édité par macgawel le 14-02-2006 à 15:21:59