Inversé les elements d' un tableau (VB)

Résolu
brija Messages postés 18 Date d'inscription   Statut Membre Dernière intervention   -  
BoneroPross Messages postés 27 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour, je veux un programme qui permet d 'inversé les elements d' un tableau
plzzzzzzzzzzzzzzzzzzzzzzzz
c urgent
A voir également:

2 réponses

tarek_dotzero Messages postés 817 Date d'inscription   Statut Membre Dernière intervention   122
 
En vb:

n = 5 'taille du tableau
centre = CInt(n / 2)

if(n mod 2 = 1) then centre = centre + 1
 
for i = 1 to centre
      echange = tableau(i)
      tableau(i) = tableau(n - i + 1)
      tableau(n - i + 1) = echange
next







J'ai testé un fichier .vbs


dim tableau(5)

tableau(1) = 1
tableau(2) = 2
tableau(3) = 3
tableau(4) = 4
tableau(5) = 5

n = 5 'taille du tableau
centre = CInt(n / 2)

if(n mod 2 = 1) then centre = centre + 1

i = 0
 
for i = 1 to centre
      echange = tableau(i)
      tableau(i) = tableau(n - i + 1)
      tableau(n - i + 1) = echange
next

for i = 1 to n 
      MsgBox tableau(i)
next

3
BoneroPross Messages postés 27 Date d'inscription   Statut Membre Dernière intervention   1
 
bonjour tarek_dotzero,

jai vraiment aimé la maniere dont tu as geré la question de savoir si on est en presence d'un nombre Pair ou Impair.
jai developpé une algo tres similaire (à la tienne ) à laquelle je te demanderais gentillement de jeter un coup d'oeil.
Ma question est de savoir si il n'y a pas moyen de trouver un truc plus efficace pour inverser les elements d 'un tableau VBA. sTP ne mets pas un truc trop compliqué que je ne pourrais pas comprendre car je suis DEBUTANT en VBA.

voici mon code:
Sub InverserElementTableauVBA()
'permet d'inverser les elements de mon Tableau VBA.
'STP aidez moi à avoir un truc plus et plus efficient.


Dim x() As Double 'tableau VBA dynamique dont les dimensions seront preciseés plus tard.
Dim i As Integer, Tempo As Double

Dim NumElt As Integer 'dimensions du tableau.
NumElt = 4
ReDim x(1 To NumElt)

'le remplissage du tableauVB
For i = 1 To NumElt
x(i) = Rnd
Debug.Print x(i) 'juste pour visualiser
Next i

Dim PointArret As Integer 'nbre auquel doit s'arreter ma boucle.


If UBound(x) Mod 2 = 0 Then 'si nbre pair:
PointArret = (UBound(x) / 2) 'si par exemple 5 la loop s'arrete à 3.
Else 'si nombre impair ie UBound(x) Mod 2 = 1
PointArret = (UBound(x) + 1) / 2 'si par exemple 4, la loop s'arrete à 2.
End If

Debug.Print NumElt, UBound(x), PointArret

For i = 1 To PointArret
Tempo = x(i) 'juste une variable qui permet ela permutation.
x(i) = x(NumElt - i + 1)
x(NumElt - i + 1) = Tempo
Next i

'visualiser le resulat.
For i = 1 To NumElt
Debug.Print x(i) 'pour visualiser 'CInt
Next i

End Sub
0
brija Messages postés 18 Date d'inscription   Statut Membre Dernière intervention   9
 
merci bcp mr à tarek_dotzero
1