Difficulté avec les tableaux visual basic.

Résolu
kingston2 Messages postés 145 Statut Membre -  
pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour, j'ai fait ce programme qui contient un tableau comptant 10 notes d'examens(de 0 à 10) , et qui ensuite indique le nombre d'élèves à eu chaque note.

Module Module1

Sub Main()
'déclaration des variables
Dim tabnotes(15) As Integer
Dim index = 0
Dim intnote As Integer
Dim tabcompteur(10) As Integer

'le remplissage du tableau
For index = 0 To tabnotes.Count - 1
Console.WriteLine("entrez une note:")

intnote = Console.ReadLine()

tabnotes(index) = intnote
Next

'le nombre d'élèves qui ont eu chaque note.
For Each element In tabnotes
tabcompteur(element) = tabcompteur(element) + 1

Next
For index = 0 To tabcompteur.Count - 1
'affichage du résultat
Console.WriteLine("le nombre de chiffre pairs est de " & index & "est :" & tabnotes(index))
Next
Console.ReadKey()
End Sub

End Module


Je dois maintenant faire un programme qui répond à l'énoncé suivant:

Écrire un programme «Visual basic» qui remplit un tableau de 10 éléments, compte et affiche le nombre de chiffres pairs et des chiffres impairs dans ce tableau.

Je ne sais pas comment m'y prendre... Pouvez-vous m'aider s-il vous plait ?

merci

2 réponses

  1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    Bonjour,

    Comment définir un nombre pair en VB?
    Tout simplement grâce à l'opérateur Mod.
    Mod retourne le reste de la division de deux nombres.
    Un nombre pair est un nombre qui, divisé par 2, ne donne pas de reste. Donc, si le reste de la division de ton nombre par 2 est égal à 0, ton nombre est pair. S'il est différent de 0, il est impair.
    En code cela donne :

    Dim monNombre As Integer
    Console.WriteLine("entrez une note:")
    monNombre = Console.ReadLine()
    If monNombre Mod 2 = 0 Then
        Console.WriteLine("Nombre pair")
    Else
        Console.WriteLine("Nombre impair")
    End If
    0
  2. kingston2 Messages postés 145 Statut Membre
     
    ah ok c'est clair maintenant . Mais pour l'intégrer à un tableau , est-ce que je dois ajuster le code ?
    0
    1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      Tu dois :
      - remplir une variable tableau avec 10 valeurs numériques
      - boucler sur cette variable et regarder les nombres pairs et impairs
      - les nombres pairs tu les stocke dans une variable tableau, les nombres impairs dans une autre
      - tu affiches les résultats...

      Pour compter le nombre de valeur, base toi sur UBound...
      0
    2. kingston2 Messages postés 145 Statut Membre
       
      Sub Main()
              'déclaration des variables
              Dim tabvaleurs(9)
              Dim index As Integer = 0
              Dim tabcompteurpair(9) As Integer
      
              'Remplissage du tableau
      
              For index = 0 To tabvaleurs.Count - 1
                  Console.WriteLine("Entrez une valeur:")
                  tabvaleurs(index) = Console.ReadLine()
              Next
      
              'déterminer chiffres pairs/impairs
      
              
              
      
      
          End Sub
      
      


      J'ai fait ça jusqu'à maintenant. Je ne sais pas comment faire pour relier les IF pairs et impairs au valeurs du tableau.
      0
    3. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      Tu ne va pas reboucler sur toutes les valeurs. Profite donc de ta boucle pour faire ton test :
      For index = 0 To tabvaleurs.Count - 1
          Console.WriteLine("Entrez une valeur:")
          tabvaleurs(index) = Console.ReadLine()
          If monNombre Mod 2 = 0 Then
              'ICI tu alimentes une variable tableau Pair()
              'en utilisant l'instruction ReDim et le mot clé Preserve
          Else
              'ICI tu alimentes une variable tableau Impair()
              'en utilisant l'instruction ReDim et le mot clé Preserve
          End If
      Next


      EDIT : erreur de copié-collé... Le bon code serait :
      For index = 0 To tabvaleurs.Count - 1
          Console.WriteLine("Entrez une valeur:")
          tabvaleurs(index) = Console.ReadLine()
          If tabvaleurs(index) Mod 2 = 0 Then 'Erreur ICI Hoouuuu!!!
              'ICI tu alimentes une variable tableau Pair()
              'en utilisant l'instruction ReDim et le mot clé Preserve
          Else
              'ICI tu alimentes une variable tableau Impair()
              'en utilisant l'instruction ReDim et le mot clé Preserve
          End If
      Next
      0
    4. kingston2 Messages postés 145 Statut Membre
       
      je n'ai pas encore appris les termes redim , et preserve
      0
    5. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      Bonjour,

      Alors utilises 2 variables de type String.

      Sub Main()
              'déclaration des variables
              Dim tabvaleurs(9)
              Dim index As Integer = 0 
              Dim NombresPairs As String
              Dim NombresImpairs As String
              Dim CptPair As Integer
              Dim CptImpair As Integer
              'Remplissage du tableau
      
              'La boucle
              For index = 0 To tabvaleurs.Count - 1
      
                  'le remplissage du tableau
                  Console.WriteLine("Entrez une valeur:")
                  tabvaleurs(index) = Console.ReadLine()
      
                   'déterminer chiffres pairs/impairs
                  If tabvaleurs(index) Mod 2 = 0 Then
      
                      'Traitement nombres pairs
                      NombresPairs = NombresPairs & Chr(13) & tabvaleurs(index)
                      CptPair = CptPair + 1
                  Else
                      'Traitement nombres impairs
                      NombresImpairs = NombresImpairs & Chr(13) & tabvaleurs(index)
                      CptImpair = CptImpair + 1
                  End If
      
              Next
              
              'affichage du résultat  
              Console.WriteLine("le nombre de chiffre pairs est de " & CptPair & ". Il s'agit de : " & NombresPairs)
              Console.WriteLine("le nombre de chiffre impairs est de " & CptImpair & ". Il s'agit de : " & NombresImpairs)
      End Sub


      Mais je te recommande vivement de te pencher sur ReDim, Preserve, UBound, LBound. Ce sont vraiment les bases pour travailler avec des variables tableaux.

      Ensuite, dans cette procédure, tu laisses le choix à l'utilisateur de saisir lui même les nombres. Ils pourraient être déterminés aléatoirement par la procédure elle même. Pour cela, regarde du côté de Randomize. Si tu veux un exemple n'hésite pas.
      0