Inversé les elements d' un tableau (VB)

Résolu
Bonjour, je veux un programme qui permet d 'inversé les elements d' un tableau
plzzzzzzzzzzzzzzzzzzzzzzzz
c urgent
Configuration: Windows XP Internet Explorer 6.0

2 réponses

  1. 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
    
    
    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