Bonjour,
C'est un algo simple que j'essaye de faire. Etant débutant j'aimerais que l'on me corrige.
Il s'agit d'inverser les éléments de place d'un tableau , les premiers deviennent les derniers.
Procedure InverserTableau(ES tableau t(i):entier,taille:entier):entier
s:entier
Si taille MOD 2 =0
alors
Pour tout i allant de 1 à taille/2
Faire
s<-- t(taille-i)
t(taille-i) <-- t(i)
t(i) <-- s
Fin Pour
Sinon
Pour tout j allant de 1 à (taille-1)/2
Faire
s<-- t(taille-j)
t(taille-j) <-- t(j)
t(j) <-- s
Fin Pour
Fin si
Fin procedure
Merci d'avance.
pourquoi ne pas regrouper les 2
i = 1
while (i <= n/2)
s = t(i)
t(i) = t(n+1-i)
t(n+1-i) = s
i = i + 1
fin while
...
Bonjour
Dans le cas où n est pair, tu échanges l'élément 1 avec l'élément n-1. Si la taille est ', tu échanges l'élément 1 avec l'élément 3. Ce n'est pas bon.
ok , effectivement et si je commence mon pour par i de 0 à taille ça devient correct?
Il me semble qu'il y a des système de programmation qui commencent leur tableau au rang 0 (le C je crois par exemple)
Sinon il faut que je change t(taille-i) par t(taille+1-i) à chaque fois.
Cela suffit?
Là c'est encore pire. Si ton tableau va de 0 à n-1, quand tu vas essayer de changer l'élément 0 avec l'élément n, ton programme va au mieux crasher, au pire te mettre un élément inconnu en position 0.
Il faut de toute façon ajouter ou retrancher 1.
Ok, merci .
Cette proposition était-elle juste:
Sinon il faut que je change t(taille-i) par t(taille+1-i) à chaque fois?
Oui là c'est bon. Vérifie maintenant que tu n'as pas le même problème si la taille est impaire. Fais comme j'ai fait au-dessus, prends un tableau de taille faible et regarde si tu échanges bien les bons éléments.
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :