Bonjour,

J'ai un exercice à résoudre dont l'énoncé est le suivant :

Ecrivez un programme qui :
- demande à l'utilisateur combien de valeurs (de type entier) il veut saisir ;
- saisit ces valeurs en les stockant dans un tableau ;
- recherche et affiche le nombre d'occurrences des valeurs minimales et maximales du tableau

Par exemple, si l'utilisateur saisit les valeurs suivantes :
3 9 5 3 4 6 9 3 7 3

Le programme devra afficher :
"Le minimum est 3 (4 occurrences) et le maximum est 9 (2 occurrences).

J'ai commencé un code mais il y a plusieurs problèmes :
- le programme ne se termine pas quand je tape "-1"
- les chiffres que je rentre ne sont pas pris en compte
- je n'arrive pas à avoir une solution satisfaisante

Est-ce que quelqu'un peut m'aider à ce niveau ?

Merci par avance pour votre aide précieuse !!!!

Voici le code que j'ai réalisé :

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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
Module Module1
 
    Function valeurMinimum(ByVal tab() As Integer, ByVal nbvaleurs As Integer)
        Dim minimum = tab(0), i As Integer
        For i = 1 To nbvaleurs - 1
            If tab(i) < minimum Then minimum = tab(i)
        Next
        valeurMinimum = minimum
    End Function
 
    Function valeurMaximum(ByVal tab() As Integer, ByVal nbvaleurs As Integer)
        Dim maximum = tab(0), i As Integer
        For i = 1 To nbvaleurs - 1
            If tab(i) > maximum Then maximum = tab(i)
        Next
        valeurMaximum = maximum
    End Function
    Function GetNbreOcurMin(ByVal Str As String, ByVal valminimum As String) As Integer
        Dim position, nbreOcurMin As Integer
        Dim tableau(10) As Integer
        nbreOcurMin = 0
        valminimum = valeurMinimum(tableau, 10)
        position = Str.IndexOf(valminimum)
        Do
            nbreOcurMin += 1
            position = Str.IndexOf(valminimum, position + valminimum.Length)
        Loop Until position = -1
        Return nbreOcurMin
    End Function
 
    Function GetNbreOcurMax(ByVal Str As String, ByVal valmaximum As String) As Integer
        Dim position, nbreOcurMax As Integer
        Dim tableau(10) As Integer
        nbreOcurMax = 0
        valmaximum = valeurMaximum(tableau, 10)
        position = Str.IndexOf(valmaximum)
        Do
            nbreOcurMax += 1
            position = Str.IndexOf(valmaximum, position + valmaximum.Length)
        Loop Until position = -1
        Return nbreOcurMax
    End Function
 
 
    Sub Main()
        Dim i, tableau(10) As Integer, minimum As String, maximum As String, nbreOcurMin As String, nbreOcurMax As String
        Dim valeur_saisie, nbvaleurs As Integer
        For i = 0 To 9
            Do
                valeur_saisie = InputBox("Entrer les valeurs du tableau, -1 pour terminer")
                If valeur_saisie <> -1 Then
                    tableau(i) = tableau(i) + valeur_saisie
                    nbvaleurs = nbvaleurs + 1
                End If
            Loop Until valeur_saisie = -1
            System.Console.WriteLine(tableau(i))
        Next
        minimum = valeurMinimum(tableau, 10)
        maximum = valeurMaximum(tableau, 10)
        nbreOcurMin = GetNbreOcurMin(tableau(i), minimum)
        nbreOcurMax = GetNbreOcurMax(tableau(i), maximum)
        System.Console.WriteLine("Le minimum est" & minimum & "(occurrences)" & nbreOcurMin & "et le maximum est" & maximum & "(occurrences)" & nbreOcurMax)
 
    End Sub
End Module