(tableau) déterminer case ayant la plus haute valeur

Résolu
kingston2 Messages postés 145 Statut Membre -  
kingston2 Messages postés 145 Statut Membre -
Bonjour, Je dois faire un tableau de 10 valeurs, montrer quelle est la plus grande valeur notée , et montrer à quelle position du tableau se trouve la plus grande valeur. J'ai un problème avec cette deuxième étape...

Voici mon code:

Module Module1

    Sub Main()
        Dim tabvaleurs(9) As Integer
        Dim intplusgrande As Integer = 0
        Dim index As Integer
        Dim element As Integer

        'remplissage du tableau
        For index = 0 To tabvaleurs.Count - 1
            Console.WriteLine("Entrez une valeur:")
            tabvaleurs(index) = Console.ReadLine()
        Next

        For Each element In tabvaleurs
            If element > intplusgrande Then
                intplusgrande = element
            End If
        Next
        Console.WriteLine("La plus grande valeur est de :" & intplusgrande)
        Console.WriteLine("Elle se trouve à la position numéro:" & 

        Console.ReadKey()


    End Sub

End Module


Je ne sais pas comment afficher la position du plus grand nombre , pouvez-vous m'aider , s-il vous-plaît ?

Merci

1 réponse

  1. Yoda
     
    Bonjour,

    Essayes avec ce code

            Dim ipos as Integer
    index=0 : intplusgrande=0
    For Each element In tabvaleurs
    If element > intplusgrande Then
    intplusgrande = element
    ipos=index
    End If
    index=index+1
    Next
    Console.WriteLine("La plus grande valeur est de :" & intplusgrande)
    Console.WriteLine("Elle se trouve à la position numéro:" & ipos)


    sinon celui-ci marche bien

     
    intplusgrande=0
    For index=0 to 9
    element=tabvaleur(index)
    If element > intplusgrande Then
    intplusgrande = element
    Exit For
    End If
    Next
    Console.WriteLine("La plus grande valeur est de :" & intplusgrande)
    Console.WriteLine("Elle se trouve à la position numéro:" & index)


    A+
    0
    1. kingston2 Messages postés 145 Statut Membre
       
      ça n'a pas marché , je ne comprends pas pourquoi
      0
    2. Yoda
       
      Fais voir ce que tu as ecrit...
      0
    3. kingston2 Messages postés 145 Statut Membre
       
      Module Module1
      
          Sub Main()
              Dim tabvaleurs(9) As Integer
              Dim intplusgrande As Integer = 0
              Dim index As Integer = 0
              Dim intposition As Integer
      
      
              'remplissage du tableau
              For index = 0 To tabvaleurs.Count - 1
                  Console.WriteLine("Entrez une valeur:")
                  tabvaleurs(index) = Console.ReadLine()
      
              Next
      
              For Each element In tabvaleurs
                  If element > intplusgrande Then
                      intplusgrande = element
                      intposition = index
                  End If
                  index = index + 1
              Next
      
      
      
      
      
      
      
      
              Console.WriteLine("La plus grande valeur est de :" & intplusgrande)
              Console.WriteLine("Elle se trouve à la position numéro:" & intposition)
      
              Console.ReadKey()
      
      
          End Sub
      
      End Module
      0
    4. Yoda
       
      Tu dois initialiser index et intplusgrande avant d'entrer dans la boucle For

      index=0 : intplusgrande=0
      For Each element In tabvaleurs
      ...

      A+
      0
    5. kingston2 Messages postés 145 Statut Membre
       
      j'ai corrigé , mais il y a un décalage de 1 entre la position donnée par le programme et celle qui est visible avant d'appuyer entrer.

      Par exemble j'ai mis 1000 à la position 3 , et 1 à toutes les autres, mais au lieu de me sortir la position 3 dans le writeline, elle sort 2
      0