IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB 6 et antérieur Discussion :

Tableaux, boucles help SvP


Sujet :

VB 6 et antérieur

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 28
    Points : 17
    Points
    17
    Par défaut Tableaux, boucles help SvP
    Bonjour,
    voilà, encore un ptit probleme qui se pose à moi :
    je dois rechercher et afficher le nombre d'occrurrences des valeurs maximales et minimales d'un tableau, j'ai fais tout le reste du code mais je reste bloqué sur l'occurrence
    Par exemple, si on saisit les valeurs suivantes :
    523392499
    Le programme doit afficher :
    Le minimum est 2 (2 occurrences) et le maximum est 9 (3 occurrences)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    Function MinimumTableau(T() As Integer, NbElements As Integer) As Integer
    Dim Minimum As Integer, i As Integer
    Minimum = T(0)
    For i = 1 To NbElements - 1
    If T(i) < Minimum Then Minimum = T(i)
    Next i
    MinimumTableau = Minimum
    End Function
    Function MaximumTableau(T() As Integer, NbElements As Integer) As Integer
    Dim Maximum As Integer, i As Integer
    Maximum = T(0)
    For i = 1 To NbElements - 1
    If T(i) > Maximum Then Maximum = T(i)
    Next i
    MaximumTableau = Maximum
    End Function
    Sub main()
    Dim NbValeurs As Integer, T(99) As Integer
    Dim i As Integer
    NbValeurs = InputBox("Combien de valeurs voulez-vous saisir (<100) ?")
    For i = 0 To NbValeurs - 1
    T(i) = InputBox("Saisissez la valeur n°" & i)
    Next i
    MsgBox "Le minimum est " & MinimumTableau(T, NbValeurs) & "et le maximum est " & MaximumTableau(T, NbValeurs)
    End Sub

  2. #2
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    ben il va falloir faire un effort si tu est arrivé la ... il ne te restee plus grand chose à faire... un compteur pour minimun et un pour le maximun.. compteur que tu initialise à chaque fois que tu change de minimun (ou de maximum..) et que tu incrémente à chaque nouvelle valeur identique au minimun (ou au maximun) trouvé..

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 28
    Points : 17
    Points
    17
    Par défaut
    merci, des efforts jen fait pourtant, la function incremente oui ça je connais, mais je n'ai pas encore vu comment faire un compteur !

  4. #4
    Membre éprouvé Avatar de avigeilpro
    Homme Profil pro
    Ambulancier
    Inscrit en
    Janvier 2004
    Messages
    880
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Creuse (Limousin)

    Informations professionnelles :
    Activité : Ambulancier
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2004
    Messages : 880
    Points : 971
    Points
    971
    Par défaut
    Une autre solution :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Dim Chaine As String
    Dim NbOcc As Integer
     
    Chaine = "523392499"
     
    'Nombre d'occurence du "2" :
    NbOcc = Len(Chaine) - Len(Replace(Chaine, "2", ""))
     
    'fait la différence de longueur de la chaine avec le "2" et
    ' de la chaine sans le "2"
    La connaissance seule ne suffit pas. La vraie compréhension vient de la mise en expérience.
    Règles|FAQ|Tuto

  5. #5
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    inspire toi du code suivant pour modifier le tiens :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    
    (..)
    Dim nbMinimun as integer 
    (..)
    NbMinimun = 0
    Minimum = T(0)
    For i = 1 To NbElements - 1
      If T(i) < Minimum Then 
                Minimum = T(i)
                NbMinimun = 0 'Raz NbMinmun sur changement de mini..
      End if
      if T(i) = Minimum then NbMinimun =  NbMinimun  +1 'Incrément NbMinimun
    Next i
    (...)

  6. #6
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    merci, des efforts jen fait pourtant, la function incremente oui ça je connais, mais je n'ai pas encore vu comment faire un compteur !
    Un compteur c'est une simple variable que tu initialises à une valeur, ensuite dans une boucle tu incrementes ta variable de 1, ou de plus de un, cela dépend ce que tu veut faire. Donc au final si tu incrementes de 1 et que tu as initialisé à zéro avant la boucle, ta variable va contenir le nombre de tour qu'à fait ta boucle. C'est pour ça que l'on appelle ça un compteur, parce que ça compte des actions répétitives.
    Donc un compteur d'une valeur minimal et une variable qui compte le nombre de fois que tu trouves cette valeur minimale.
    Dans le code de bbil, NbMinimun est un compteur.
    Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 28
    Points : 17
    Points
    17
    Par défaut
    ok ok, merci bcp. "Len" je n'ai pas encore vu donc je ne suis pas censé l'utiliser
    Merci pour les explications du compteur, ça m'a bien avancé, mais ça m'énerve, ça ne m'affiche pas les bonnes occurrences, ya un soucis. J'insiste, j'y arriverais !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Boucle infinie help svp.
    Par momoh dans le forum VB.NET
    Réponses: 1
    Dernier message: 17/04/2009, 15h22
  2. [Tableaux] Pb avec des array et des boucles help !
    Par grandpa006 dans le forum Langage
    Réponses: 2
    Dernier message: 13/05/2008, 12h06
  3. [Tableaux] Boucle dans une boucle
    Par spawns dans le forum Langage
    Réponses: 2
    Dernier message: 12/02/2006, 13h11
  4. [Tableaux] boucle for et instruction continue
    Par reg11 dans le forum Langage
    Réponses: 4
    Dernier message: 16/12/2005, 18h00
  5. [Tableaux] Boucle while imbriquer
    Par Le-Cortex dans le forum Langage
    Réponses: 11
    Dernier message: 09/09/2005, 14h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo