Inscription / Connexion Nouveau Sujet
Niveau algorithmique
Partager :

Inverser éléments tableau

Posté par
numero10
23-11-11 à 20:04

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.
          

Posté par
pgeod
re : Inverser éléments tableau 23-11-11 à 20:46

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

...

Posté par
numero10
re : Inverser éléments tableau 23-11-11 à 21:54

Merci,

Oui je connais cette solution aussi mais jvoulais savoir si celle que je proposais marchait.

Posté par
Bachstelze
re : Inverser éléments tableau 23-11-11 à 22:22

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.

Posté par
Bachstelze
re : Inverser éléments tableau 23-11-11 à 22:22

Si la taille est 4*

Posté par
numero10
re : Inverser éléments tableau 23-11-11 à 22:30

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?

Posté par
Bachstelze
re : Inverser éléments tableau 23-11-11 à 22:35

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.

Posté par
numero10
re : Inverser éléments tableau 23-11-11 à 22:39

Ok, merci .

Cette proposition était-elle juste:

Sinon il faut que je change t(taille-i) par t(taille+1-i) à chaque fois?

Posté par
Bachstelze
re : Inverser éléments tableau 23-11-11 à 22:42

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.

Posté par
numero10
re : Inverser éléments tableau 23-11-11 à 22:47

Il me semble que le problème est le même si je prends taille=5

taille-1=4

je change la 4ième case avec la première.



Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !