Les tableaux 2D (exercice)

Bonjour, J'ai un exercice à finir , mais je suis bloqué.... Voici l'exercice en question:

Une entreprise commerciale décide de récompenser ses clients potentiels à la fin de chaque année. À cet effet, les gestionnaires ont créé un système de ristourne selon le montant d'achat mensuel de chaque client. Ce dernier se calcule selon le tableau suivant :

Montant d'achat mensuel Le taux de la ristourne
Montant <= 500 0 %
500<Montant <= 1000 5 %
Montant > 1000 10 %

Écrivez le programme Visual Basic qui calcule et affiche le montant total du ristourne pour chacun des 10 clients de l'établissement.

Voici mon travail jusqu'à maintenant:
Module Module1



    Sub Main()
        Dim tabvaleurs(10, 3)
        Dim intmontant As Integer
        Dim inttaux As Integer
        'remplissage du tableau
        For ligne = 0 To 10
            For colonne = 0 To 3
                tabvaleurs(ligne, colonne) = InputBox("Entrez votre montant d'achat:")


            Next
        Next
        'affichage du tableau
        For ligne = 0 To 10
            For colonne = 0 To 3
                Console.Write(tabvaleurs(ligne, colonne) & vbTab)

            Next

            'attribution des ristournes
            For Each valeur In tabvaleurs
                If valeur >= 1000 Then
                    inttaux = 0.1

                ElseIf valeur >= 500 Then
                    inttaux = 0.05

                Else
                    inttaux = 0
                End If
                Console.WriteLine("le montant de ristourne est de:" & intmontant * inttaux)
            Next





        Next
    End Sub

End Module


Pouvez-vous m'aider à finir ce problème ? Merci

3 réponses

  • Votes
  • Date
  • Date décroissante
  1. est-ce que je me suis planté dans l'affichage de mon tableau ?
    1. Modérateur
      Salut,

      A première vue, je vois plusieurs "erreurs".

      1- On parle de chaque année, avec une remise mensuelle. Il te faut donc les montants de chacun des 10 clients pour chaque mois...
      Donc, remplace :
      Dim tabvaleurs(10, 3)

      par :
      Dim tabvaleurs(10, 12)


      2- Tu dois trouver le montant total de la remise. Il te faut donc additionner les remises mensuelles. Dans ton code, je ne vois pas du tout d'addition...

      3- Je t'ai déjà parlé de Randomize qui te permet de trouver des nombres aléatoirement plutôt que de les saisir. Utilise le car sinon tu va avoir 120 saisies à réaliser en début de code...
      Exemple : pour obtenir un nombre compris entre 1 et 1500 :
      Dim maval As Integer
      Randomize
      maval = Int(Rnd * 1500) + 1


      Fais déjà cela, et reviens avec ton code...
      1. Voici ce que j'ai :

        Module Module1
        
        
        
            Sub Main()
                Dim tabvaleurs(10, 12)
                Dim intmontant As Integer
                Dim inttaux As Integer
                Dim intmontanttotal As Integer
                Dim maval As Integer
                'remplissage du tableau
                For ligne = 0 To 10
                    For colonne = 0 To 12
        
                        Randomize()
                        maval = Int(Rnd() * 15000) + 1
        
                    Next
                Next
                'affichage du tableau
                For ligne = 0 To 10
                    For colonne = 0 To 3
                        Console.Write(tabvaleurs(ligne, colonne) & vbTab)
        
                    Next
        
                    'attribution des ristournes
                    For Each valeur In tabvaleurs
                        If valeur >= 1000 Then
                            inttaux = 0.1
        
                        ElseIf valeur >= 500 Then
                            inttaux = 0.05
        
                        Else
                            inttaux = 0
                        End If
                        Console.WriteLine("le montant de ristourne est de:" & intmontant * inttaux)
                    Next
        
        
                    'montant totale de la remise
                    intmontanttotal = intmontant + (intmontant * inttaux)
                    Console.WriteLine("le montant totale de la remise est de:" & intmontanttotal)
        
        
                Next
            End Sub
        
        End Module
        1. Modérateur
          Bonjour,

          Je ne suis pas sur que tu fasses tous les efforts nécessaires à la réalisation de ce code. J'ai le sentiment que tu attends la réponse...
          J'en veut pour preuve que tu n'as même pas fait l'effort de remplacer tous les 3 par des 12 :
           'affichage du tableau
          For ligne = 0 To 10
          For colonne = 0 To 3

          De plus, dans le remplissage du tableau,... tu ne remplis même pas ta variable tableau :
                  'remplissage du tableau
          For ligne = 0 To 10
          For colonne = 0 To 12

          Randomize()
          maval = Int(Rnd() * 15000) + 1

          Next
          Next

          Pour ma part, si tu ne fais pas plus d'effort, j'arrête le suivi de tes discussions;..