mattflyer
Messages postés63Date d'inscriptionsamedi 22 mars 2003StatutMembreDernière intervention29 novembre 2005
-
17 févr. 2005 à 16:23
mattflyer
Messages postés63Date d'inscriptionsamedi 22 mars 2003StatutMembreDernière intervention29 novembre 2005
-
17 févr. 2005 à 22:50
Bonjour à tous, petite question
Voici un code pour trier un tableau. Ce code a été testé et tourne parfaitement. Il est écrit en C;
for (j=1; j<=4; j++)
{
t=tab[j];
i=j;
while ( (i>0) && (tab[i-1] ) )
{
tab[i]=tab[i-1];
tab[i-1]=t;
i=i-1
}
}
tab[j] est un tableau comportement 4 cases . J'ai traduit ce code en language VB, cela donne
for j=1 to 4
t=tabl(j)
i=j
while ( (i>0) and (tabl(i-1) ) )
tabl(i)=tabl(i-1)
tabl(i-1)=t
i=i-1
wend
next j
D'après la traduction est-elle correcte ? Si oui, pourquoi, en C, le code marche et pas en VB ?
merci de vos réponses.. @bientôt
mattflyer
Programmation: Que c'est simple de faire compliquer !!
econs
Messages postés4030Date d'inscriptionmardi 13 mai 2003StatutMembreDernière intervention23 décembre 200824 17 févr. 2005 à 16:48
while ( (i>0) && (tab[i-1] ) )
while ( (i>0) and (tabl(i-1) ) )
Ces deux instructions (en rouge) renvoient-elles un booléen en C et en VB ?
A moins que tu n'aies oublié de placer un élément de comparaison (ce qui me paraît indipensable) du style tab[i-1]>tab[i].
En C, la condition tab[i-1] (drôle de condition, mais s'en est une)
renverra False si elle vaut 0 (0 = FALSE) et True dans les autres cas.
Donc ta boucle tournera.
Précision : tes tableaux ont bien 5 cases. Mais la case d'indice 0 te
sert de 'poubelle' pour éjecter l'élément le plus petit du tableau.
Manu -------------------------------------------
Une question bien posée, c'est une chance de réponse bien adaptée.
22max
Messages postés72Date d'inscriptionvendredi 8 octobre 2004StatutMembreDernière intervention16 mars 2007 17 févr. 2005 à 16:49
dans ta boucle while, tu dis tant que i est superieur a 0 et tant que tableau(i-1) mais tu n'indique pas la condition !
22Max
Le 22 juin 2004, un grand monsieur du monde de l'informatique nous a quitté. L'américain Bob Bemer, qui est l'inventeur du code ASCII créé en 1961 est décédé à l'âge de 84 ans des suites d'un cancer.