Dim totaux(9) As Integer ' 0..9 => 10 cases For i = 1 To 500 totaux(r.Next(0, 10)) += 1 Next ' Recherche de l'indice de la plus grande valeur Dim iMax As Integer = 0 For i = 1 To 9 If totaux(i) > totaux(iMax) Then iMax = i End If Next
Dim x As Integer For x = 1 To 500 ' Next x
'Innitialisation Dim total As Integer Dim i As Integer Dim r As New Random 'La boucle For i = 1 To 500 total = r.Next(1, 10) Next 'Résultat Me.lblResultat.Text = total
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionDim iMax As Integer = totaux(1) For i = 2 To 9 imax = math.max(toto(i-1),totaux(i) Next
je dois afficher le nombre qui est sorti le plus souvent
Dim nb As Long nb = 500 ReDim tablo(nb - 1) For i = 0 To nb - 1 tablo(i) = Int(((10 - 1) * Rnd) + 1) Next ' ====================et maintenant : on travaille Set dico = CreateObject("Scripting.Dictionary") For i = 0 To UBound(tablo) If Not dico.Exists((tablo(i))) Then dico.Add tablo(i), 1 Else dico.Item(tablo(i)) = Val(dico.Item(tablo(i)) + 1) End If Next ' ================== juste pour en faire la preuve a = dico.Keys For i = 0 To dico.Count - 1 MsgBox vbCrLf & a(i) & " est présent " & dico.Item(tablo(i)) & " fois" Next
Dans mes cours, nous devons effectuer une boucle sur 500 nombres au hasard entre les chiffres 1 à 10, incluant ces bornes. Après cette boucle, je dois afficher le nombre qui est sorti le plus souvent entre 1 et 10 et la quantité de fois qu'il a sorti.
Je dois ensuite afficher tous les autres incluant le nombre de fois qu'ils sont sorti et le tout doit être affiché dans un label.
Const nb As Long = 500 Dim i As Long Dim totaux(9) As Long ' 0..9 => 10 cases For i = 1 To nb Dim A As Integer: A = Int((10 * Rnd)) totaux(A) = totaux(A) + 1 Next ' Recherche de l'indice de la plus grande valeur Dim iMax As Integer: iMax = 0 For i = 1 To 9 If totaux(i) > totaux(iMax) Then iMax = i End If Next ' le nombre qui est sorti le plus souvent MsgBox "Le nombre qui est sortie le plus de fois est " & iMax + 1 & " (" & totaux(iMax) & " fois)" ' tous les autres incluant le nombre de fois qu'ils sont sorti For i = 0 To 9 MsgBox i + 1 & " est présent " & totaux(i) & " fois" Next i
HeuMouwis .... c'est vrai, mais pourquoi ???
Niveau performance, bah heu .......
Bon et si nb = 100000000 ?
Const nb As Long = 20 ' je n'en ai mis que 20 (tirages) pour ne pas m'esquinter la vue Dim i As Long Dim totaux(9) As Long ' 0..9 => 10 cases Dim titi As String List1.Clear For i = 1 To nb Dim A As Integer: A = Int((10 * Rnd)) totaux(A) = totaux(A) + 1 titi = titi & " " & A Next ' Recherche de l'indice de la plus grande valeur Dim iMax As Integer: iMax = 0 For i = 1 To 9 If totaux(i) > totaux(iMax) Then iMax = i End If Next msg = "tiré " & titi ' le nombre qui est sorti le plus souvent msg = msg & vbCrLf & "Le nombre qui est sortie le plus de fois est " & iMax + 1 & " (" & totaux(iMax) & " fois)" ' tous les autres incluant le nombre de fois qu'ils sont sorti For i = 0 To 9 msg = msg & vbCrLf & i + 1 & " est présent " & totaux(i) & " fois" Next i MsgBox msg
Const nb As Long = 20 Dim i As Long Dim totaux(9) As Long ' 0..9 => 10 cases Dim titi As String List1.Clear For i = 1 To nb Dim A As Integer: A = Int((10 - 1) * Rnd) + 1 totaux(A - 1) = totaux(A - 1) + 1 titi = titi & " " & A Next ' Recherche de l'indice de la plus grande valeur Dim iMax As Integer: iMax = 0 For i = 1 To 9 If totaux(i) > totaux(iMax) Then iMax = i End If Next msg = "tiré " & titi ' le nombre qui est sorti le plus souvent msg = msg & vbCrLf & "Le nombre qui est sortie le plus de fois est " & iMax + 1 & " (" & totaux(iMax) & " fois)" ' tous les autres incluant le nombre de fois qu'ils sont sorti For i = 0 To 8 msg = msg & vbCrLf & i + 1 & " est présent " & totaux(i) & " fois" Next i MsgBox msg
A dans 10 jours ...Bon voyage ucfoutu
sinon va pas s'arrêter et on va nous prendre pour des fousmais non voyons c'est déjà fait
Pour info, en .NET, il est préférable d'utiliser les listes fortement typées 'List Of' plutôt que les tableaux (beaucoup plus lents).