Inversé les elements d' un tableau (VB)

Résolu
brija Messages postés 22 Date d'inscription   Statut Membre -  
BoneroPross Messages postés 39 Statut Membre -
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. tarek_dotzero Messages postés 834 Statut Membre 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
    1. BoneroPross Messages postés 39 Statut Membre 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
  2. brija Messages postés 22 Date d'inscription   Statut Membre 9
     
    merci bcp mr à tarek_dotzero
    1