Les tableaux 2D (exercice)

kingston2 Messages postés 126 Date d'inscription   Statut Membre Dernière intervention   -  
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   -
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

A voir également:

3 réponses

kingston2 Messages postés 126 Date d'inscription   Statut Membre Dernière intervention  
 
est-ce que je me suis planté dans l'affichage de mon tableau ?
0
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761
 
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...
0
kingston2 Messages postés 126 Date d'inscription   Statut Membre Dernière intervention  
 
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
0
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761
 
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;..
0