Page 1 of 1

[résolu]tri d'une colonne x avec la colonne associée y

Unread postPosted: 28 Feb 2010, 13:59
by gil
J'ai un tableur: colonne 1 = x et colonne 2 = y (les images de x),
avec x:={1, 2, 3, 4, 8, 1,5, 7,6}
et y:={10, 20, 30, 40, 25, 55, 12, 89, 16}.

Comment faire - "simple" ! - pour que, quand j'ordonne x par ordre décroissant (sortD), les valeurs associées puissent venir avec le nouvel ordre décroissant de x
(soit nouvel ordre 8/25, 7/29, 6/16, etc.) ?

J'ai essayé quelque chose du genre
For i = 1 to dim (x)
xy_i:=string(1)"-"string(10)
Next, mais on ne peut effectuer des tris sur des chaînes de caractères !

Re: [résolu]tri d'une colonne x avec la colonne associée y

Unread postPosted: 28 Feb 2010, 19:03
by Bisam
Tu as juste à faire :
Code: Select all
SortD x,y

tri sur une colonne x en laissant associ les val. de y=f(x)

Unread postPosted: 01 Mar 2010, 10:09
by gil
Merci pour la réponse, mais ce que je souhaite n'est pas de trier y, seulement x

x y
1 3
4 1
2 9

et je veux
x_décrois f(x_décrois)
4 1
2 9
1 3

Donc, j'attends toujours une solution !
Merci par avance pour vos pistes !
Gil

Re: [résolu]tri d'une colonne x avec la colonne associée y

Unread postPosted: 01 Mar 2010, 10:26
by Levak
En C :

Code: Select all
void ordonnerTableau(int tableau[], int tailleTableau)
{
int i;
int j;
int memoireTampon=0;
   for (i=0; itailleTableau; i++)
   {
      for (j=0; jtailleTableau; j++)
   {
      if (tableau[i]=tableau[j])
     {
      memoireTampon=tableau[i];
   tableau[i]=tableau[j];
   tableau[j]=memoireTampon;
     }
      
         }//Fin 1er boucle for
         


}//Fin 2eme boucle for
}
de http://www.siteduzero.com/forum-83-4840 ... ise-5.html

Il suffit de considérer une liste de plus sans vérifier ses valeurs

En "Pascal-TI" ça devient :
Code: Select all
Define ordonnerTableau(ListeX, ListeY)=
Prgm
local i, j, memoireTampon

for i,0,dim(ListeX)
 for j,0,dim(ListeX)
  if (ListeX[i]=ListeX[j]) Then
   memoireTampon:=ListeX[i]
   ListeX[i]:=ListeX[j]
   ListeX[j]:=memoireTampon

   memoireTampon:=ListeY[i]
   ListeY[i]:=ListeY[j]
   ListeY[j]:=memoireTampon
   EndIf
 EndFor
EndFor
EndPrgm

Re: [résolu]tri d'une colonne x avec la colonne associée y

Unread postPosted: 01 Mar 2010, 13:11
by Bisam
Tu n'as pas compris, Gil ! (et tu n'as pas dû essayer non plus)
Lorsque l'on tape
Code: Select all
SortD x,y
la première liste est triée en ordre décroissant et la seconde est triée en conséquence en suivant les changements effectués dans la première (et non dans l'ordre décroissant). On peut même le faire avec plusieurs listes triées en fonction de la première.

C'est expliqué dans le Guide de référence à la page 111.

Re: [résolu]tri d'une colonne x avec la colonne associée y

Unread postPosted: 01 Mar 2010, 15:03
by gil
Merci pour vos explications : voilà ce que c'est que d'être "distrait"... ou paresseux !

Entre-temps, j'avais trouvé:
a:={...}
b:={...}
ab:=a+i*b, avec i^2 = -1

puis faire sortD ab, qui marche très bien, mais est bien trop compliqué par rapport à la dernière indication (manuel page 111 oblige)