Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
946 connectés 

  FORUM HardWare.fr
  Programmation
  Algo

  aide !!!!!!!!!

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

aide !!!!!!!!!

n°1304375
olivier318
tout les langage...!!!
Posté le 13-02-2006 à 14:42:16  profilanswer
 

Code :
  1. var t[100],i,n,ns,s,j,v[100];           /* n est le nombre de valeur à saisire dans le tab */
  2. début
  3. /*le remplissage du tableau*/
  4. ecrire ("donnez le nbr de valeur à supp" );            lire(ns);
  5. pour ( j de 1 à ns ) faire
  6.    ecrire ("l'indice de la",j,"eme valeur à supprimé :" );     lire (s);
  7.    pour ( i de 0 à n-1 ) faire
  8.       si  i<s   alors        v[i]:=t[i];
  9.       sinon si  i>s     alors        v[i-1]:=t[i];
  10.    finpour i
  11. finpour j
  12. pour     i  de  0  à  (n-1-ns)        faire
  13. ecrire (v[i]);
  14. finpour
  15. FIN


 
 
 
 
cette algo doit permetre à l'utilisateur de supprimé des valeur de ce tab , en introduisant leurs indise (position) .
mais ca ne marche pas _POURQUOI???_
 
 :jap:  :jap:  :jap:  

mood
Publicité
Posté le 13-02-2006 à 14:42:16  profilanswer
 

n°1304431
macgawel
Posté le 13-02-2006 à 15:35:54  profilanswer
 

olivier318 a écrit :


cette algo doit permetre à l'utilisateur de supprimé des valeur de ce tab , en introduisant leurs indise (position) .
mais ca ne marche pas _POURQUOI???_
 
 :jap:  :jap:  :jap:


L'algo ne marche pas parce qu'il n'a pas de jambes  :pt1cable:  
 
Plus sérieusement :
1. Change le titre pour le rendre plus explicite.
2. Explique un peu ce qui ne "marche pas"
 :hello:

n°1304480
olivier318
tout les langage...!!!
Posté le 13-02-2006 à 16:10:35  profilanswer
 

:lol:  :lol:  :lol:  belle blague .
 
cette algo doit permetre à l'utilisateur de supprimé des valeur de ce tab ,l'utilisateur dois donnez tout dabord combien de val il souhéte supprimer de ce tab , ensuite il doit introduire leurs indice (position).
 
 

n°1304497
olivier318
tout les langage...!!!
Posté le 13-02-2006 à 16:18:53  profilanswer
 

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 :
  1. pour ( j de 1 à ns ) faire
  2. ecrire ("l'indice de la",j,"eme valeur à supprimé :" );   
  3. lire (s);   
  4.    pour ( i de 0 à n-1 ) faire     
  5.        si  i<s   alors        v[i]:=t[i];     
  6.        sinon si  i>s     alors        v[i-1]:=t[i];   
  7.    finpour i
  8. finpour j


n°1304500
skeye
Posté le 13-02-2006 à 16:22:49  profilanswer
 

Parce-que tu as supprimé une valeur dans ton tableau et que tu recopies les valeurs d'un autre qui lui n'a pas bougé? [:moule_bite]


---------------
Can't buy what I want because it's free -
n°1304507
olivier318
tout les langage...!!!
Posté le 13-02-2006 à 16:26:56  profilanswer
 

je n'ai pas bien compri ce que tu veut dire !!!!   :heink:

n°1304513
skeye
Posté le 13-02-2006 à 16:28:06  profilanswer
 

Tu remplis V à-partir de T. Si tu supprimes une valeur dans V, V devient différent de T, donc à la valeur supprimée suivante les indices sont foireux.:o


---------------
Can't buy what I want because it's free -
n°1304515
skeye
Posté le 13-02-2006 à 16:28:42  profilanswer
 

Bref, tu es censé le faire avec un seul tableau, à mon humble avis.;)


---------------
Can't buy what I want because it's free -
n°1304518
olivier318
tout les langage...!!!
Posté le 13-02-2006 à 16:30:27  profilanswer
 

j'ai essayer avec cette algo :

Code :
  1. #include<stdio.h>
  2. main() {
  3. int t[20],i,n,ns,s,j,v[20],h=-1;
  4. printf("combien de val dans le tab " );  scanf("%d",&n);
  5. for(i=0;i<=n-1;i++)
  6. {printf("donnez la valeur du rang %d   ",i);  scanf("%d",&t[i]);}
  7. printf("combien de valeur à supprimé " );  scanf("%d",&ns);
  8. for(j=1;j<=ns;j++)
  9. {
  10. printf("l'indice de la %deme valeur à suprimé : ",j);  scanf("%d",&s);
  11. for(i=0;i<=n-1;i++)
  12. if(t[i]!=t[s])  { h++;  v[h]=t[i]; }
  13. }
  14. printf("le nouveau tablau est :\n" );
  15. for(i=0;i<=h;i++)   printf(" %d ",v[i]);
  16. }


 
mes c'est toujours le même problemme     :pfff:  
 
aidez mois svp :jap:  :jap:  :jap:

n°1304524
skeye
Posté le 13-02-2006 à 16:33:34  profilanswer
 

ça c'est pas un algo, c'est du code C.
Et j'ai franchement la flemme d'essayer de comprendre ce que tu essaies d'y faire, ou pourquoi tu y utilises deux tableaux.


---------------
Can't buy what I want because it's free -
mood
Publicité
Posté le 13-02-2006 à 16:33:34  profilanswer
 

n°1304559
olivier318
tout les langage...!!!
Posté le 13-02-2006 à 17:04:21  profilanswer
 

je n'ai trouvé aucune sollution en utilisant 1 seul tab ,  
coment je doit procéder ?   :love:

n°1304564
skeye
Posté le 13-02-2006 à 17:06:32  profilanswer
 

euh, t'as essayé? :??:
C'est la solution la plus "naturelle", à priori...


---------------
Can't buy what I want because it's free -
n°1305290
macgawel
Posté le 14-02-2006 à 15:18:50  profilanswer
 

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 :
  1. pour ( j de 1 à ns ) faire
  2. ecrire ("l'indice de la",j,"eme valeur à supprimé :" );   
  3. lire (s);   
  4.    pour ( i de 0 à n-1 ) faire     
  5.        si  i<s   alors        v[i]:=t[i];     
  6.        sinon si  i>s     alors        v[i-1]:=t[i];   
  7.    finpour i
  8. 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 :
  1. pour ( j de 1 à ns ) faire
  2.    lire (s);
  3.    v[] = t[] - t[s]
  4. 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
n°1305292
skeye
Posté le 14-02-2006 à 15:19:35  profilanswer
 

Merci de venir confirmer ce que je disais hier.[:dawa]


---------------
Can't buy what I want because it's free -
n°1305504
olivier318
tout les langage...!!!
Posté le 14-02-2006 à 17:46:34  profilanswer
 

OK merci je vais reesayer avec ca  :ange:

n°1310824
nargy
Posté le 21-02-2006 à 16:38:27  profilanswer
 

PS: si tu codes ton algo en C,  pense à utiliser la fonction memmove().
 
En travaillant sur le même tableau, tu peux bouger la fin du tableau en écrasant le milieu, genre:

Code :
  1. déplacer longueur_tab-(indice_suppr+longeur_suppr) entiers de indice_suppr+longeur_suppr vers indice_suppr


 
En travaillant sur une copie du tableau, tu peut utiliser de la même façon deux fois la fonction memcpy(): tu copie le début jusqua indice_suppr-1, puis la fin de indice_suppr+longueur_suppr à longueur_tab.
La taille du tableau résultat est longueur_tab-longueur_suppr.
 
L avantage de ces fonctions est que les micro processeurs possèdent des instructions spéciales de déplacement/copie de blocs mémoire qui sont plus rapides qu une boucle ordinaire.
 

n°1310834
nargy
Posté le 21-02-2006 à 16:47:27  profilanswer
 

Aussi:
Si tu connais par avance les indices à supprimer par ordre croissant, tu peux optimiser ton algo en changeant longueur_suppr lorsque deux indices sont cote à cote, et en ne déplaçant/copiant que des blocs mémoires intermédiares entre les indices à supprimer.
 
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Algo

  aide !!!!!!!!!

 

Sujets relatifs
Texte d'aidebesoin d'aide pour périphérique
Aide SVP !! Affichage d'un nombre au hasardaide pour formulaire
Aide pour créer un jeu à gratter SVP !!!!Un peu d'aide pour mon script? (script de listage de fichiers)
Aide pour petit projet en CDe l'aide sur NS SVP!!!!
[Sql] Besoin d'aide pour une requête ( simple pourtant ... ) [résolu][UML] Diagramme de classe (aide) ?
Plus de sujets relatifs à : aide !!!!!!!!!


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR