Visual Basic
Bonjour,
alors voilà j'ai un petit problème, je suis débutant en VB et j'ai un sujet à faire, et je ne comprend rien... Je ne demande pas à ce que l'on me le fasse, mais au moins qu'on m'aide dans la démarche
Problème à résoudre :
? Demander à l'utilisateur de saisir un nombre entier N compris entre 100 et 10000.
? Générer par la suite N nombres entiers pseudo-aléatoires compris entre 10 et 20.
? Afficher la liste de nombres générée
? Compter le nombre d'occurrences de chaque nombre de la suite générée et afficher ce nombre
? Trier la liste de nombre en ordre croissant et afficher la liste triée.
? Calculer et afficher la moyenne et l'écart-type des nombres générés
? Sauvegarder dans un fichier texte le nombre de données générées, leur moyenne, leur écart-type, ainsi que les nombres triés.
merci d'avance :)
alors voilà j'ai un petit problème, je suis débutant en VB et j'ai un sujet à faire, et je ne comprend rien... Je ne demande pas à ce que l'on me le fasse, mais au moins qu'on m'aide dans la démarche
Problème à résoudre :
? Demander à l'utilisateur de saisir un nombre entier N compris entre 100 et 10000.
? Générer par la suite N nombres entiers pseudo-aléatoires compris entre 10 et 20.
? Afficher la liste de nombres générée
? Compter le nombre d'occurrences de chaque nombre de la suite générée et afficher ce nombre
? Trier la liste de nombre en ordre croissant et afficher la liste triée.
? Calculer et afficher la moyenne et l'écart-type des nombres générés
? Sauvegarder dans un fichier texte le nombre de données générées, leur moyenne, leur écart-type, ainsi que les nombres triés.
merci d'avance :)
29 réponses
Résumé de la discussion
La discussion porte sur un exercice VB demandant de saisir N entre 100 et 10000, puis de générer et afficher N nombres entiers pseudo-aléatoires compris entre 10 et 20, avec sauvegarde en fichier. Plusieurs réponses soulignent qu’il faut déclarer correctement N et suivre les étapes: affichage, comptage des occurrences, tri, puis calcul de la moyenne et de l’écart-type. Des conseils portent aussi sur la gestion des tableaux (UBound, ReDim Preserve), le rangement des résultats et les aspects pratiques pour rendre le tout lisible et prêt pour une publication Google.
-
juste une dernière question, pourquoi avoir généré 30 ?
-
ContributeurEt bien maintenant tu a un modèle pour remplir un tableau avec des nombre aléatoire.
Un modèle pour trier un tableau.
A toi de combiner les deux.
Il me semble que j'ai assez donné sur ce topic qui ne m'inspire pas du tout.
Il est vrai que tu n'est pas impoli, mais nous somme bénévole et tes réponses ou questions ressemble plutôt à des ordres plutôt qu'a un souhait, même pas un mot de remerciement ou une expression de reconnaissance du service rendu.
Abandon du suivi.
A++
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques. -
oui ..
-
ContributeurTu a besoin du tableau non trier ?
-
le trie par ordre croissant fonctionne mais du coup maintenant j'ai des chiffres en plus :
je génère 155 -->
j'ai et le tri donne
16 11
16 11
16 13
13 13
15 13
17 14
11 14
16 15
13 15
14 16
15 16
15 16 -
Contributeurun essais,
Private Sub MaListeRND() Dim i As Integer, B As Boolean, Buff As Integer Dim TB(30) As Integer Randomize() 'Initialise 31 nombres aléatoires entre 10 et 20 For i = 0 To 30 TB(i) = CInt(Int((20 * Rnd()) + 1)) + 9 Next 'Trie le tableau par ordre croissant 'La méthode "Sorted" d'une listbox ne fonctionne pas sur des nombres 'même si ont les met en String Do B = False For i = 1 To 30 If TB(i) < TB(i - 1) Then B = True Buff = TB(i) : TB(i) = TB(i - 1) : TB(i - 1) = Buff End If Next Loop Until Not B 'Affiche dans la listeBox ListBox1.Items.Clear For i = 0 To 30 ' Add items to the ListBox. ListBox1.Items.Add(TB(i)) Next ListBox1.TopIndex = 0 End Sub
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques. -
oui c'est ce que je cherche a faire en les triant, mais le problème est que le programme ne les trie pas, il affiche seulement la même des nombres que j'ai généré
-
Contributeurtu voudrais pas plutôt dire les mettre par ordre croissant ?
-
je ne veux pas générer des nombres entre 1 et 30, je veux générés des nombres pseudo-aléatoires entre 10 et 20.
je comprends ce que tu veux dire.... il faut que je change de tableau pour les trier ? -
ContributeurA mon avis ..........tu veux rire un bon coup !!!!!!!!!!!!!!!!!!!!!!
Comment veux-tu avoir des différences ??
Si dans letableauinitial tu met des nombres entre 10 et 20
ensuite filtre tout les nombres qui sont entre 10 et 20 dans et les mettre dans letableau
c'est évident qu'il y seront tous et qu'il n'y aura pas de différence.
Vraiment, tu m'épate là.
dans letableauinitial met des nombres entre 1 et 30 et tu verra.
ou bien filtre entre 3 et 6 par exemple -
ce sont les chiffres générés compris entre 10 et 20
-
Contributeury a quoi dans letableauinitial
-
Utilise la fonction Random
-
maintenant, ça m'affiche la même liste où j'ai généré les nombres ^^
-
ContributeurPour ma culture pourrais tu m'expliquer quelques trucs, notamment, à quoi correspond "UBound" et " ReDim Preserve letableau(T) " ?
Dans le code tu sélectionne Ubound (double clic dessus) il se met en bleu et tu tape F1.
Idem pour tout les mots que tu connais pas.
Et remplace la ligneListBoxsorted.Dispose()
parListBoxsorted.Items.Clear()
je me suis trompé.
A+
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques. -
"Tu ne devrais pas répondre de cette façon", j'ai l'impression qu'il y de l'énervement alors que je ne suis pas agressif ....
j'ai testé ce code, mais j'ai un problème, lorsque je clique sur mon bouton "trier", ma listbox "ListBoxsorted" disparait, du coup impossible de savoir si c'est trier ^^
Pour ma culture pourrais tu m'expliquer quelques trucs, notamment, à quoi correspond "UBound" et " ReDim Preserve letableau(T) " ?
cdt -
Contributeurou est ce que je met une condition qui ne sera jamais vrai ? ^^
Tu verras cela à l'usage..et en attendant, d'accord... met des lunettes.
Tu ne devrais pas répondre de cette façon alors que tu n'est pas en mesure de tester ton code vu que.. Exit While ÇA N'EXISTE PAS DANS LA SYNTAXE
Mais comme je suis pas rancunier, essaye ce code,Dim letableau() Sub Transfert() Dim i As Integer, T As Integer = 0 For i = 0 To UBound(letableauinitial) If letableauinitial(i) > 9 And letableauinitial(i) < 21 Then ReDim Preserve letableau(T) letableau(T) = letableauinitial(i) T = T + 1 End If Next ListBoxsorted.Dispose() For i = 0 To UBound(letableau) ListBoxsorted.Items.Add(CStr(letableau(i))) Next i End Sub
Toutes les valeurs de letableauinitial qui sont entre 10 et 20 se retrouve dans le tableau letableau
et dans la listeBox
A+
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques. -
N est un valeur global déclarée au préalable
Alors soit je suis crevé, ou je change de lunette, ou est ce que je met une condition qui ne sera jamais vrai ? ^^
ton idée est la bonne -
ContributeurAller, je vais reprendre malgré que j'avais pensé abandonner ce topic.
1°) N n'est pas déclarer et provient d'où ?
2°) Dans une boucle, si tu met une condition et quel ne serra jamais vraie tu bloque ton programme.
3°) Pourquoi transférer le tableau letableauinitial dans le tableau letableau ?
Explique ce que tu veux réaliser avec ce code sans faire référence au code.
J'ai bien une idée mais je ne sais pas si c'est la bonne, dans le tableau letableau tu veux mettre les valeurs comprises entre 10 et 20
Tu dis.
A+ -
je cherchais également à trier des nombres avec un bout de programme que j'avais déja fait :
Private Sub dosort() 'trier les nombres
Dim i, j As Integer
Dim nMoins1, valeur As Integer
Buttontrier.Enabled = False
For i = 0 To N - 1
letableau(i) = letableauinitial(i)
Next i
nMoins1 = N - 1
For j = 1 To nMoins1
i = j - 1
valeur = letableau(j)
While (i > 9) And (i < 21) And (valeur < letableau(i))
letableau(i + 1) = letableau(i)
i = i - 1
If (i < 0) Then
Exit While
End If
End While
letableau(i + 1) = valeur
Next j
For i = 0 To N - 1
ListBoxsorted.Items.Add(CStr(letableau(i)))
Next i
Buttontrier.Enabled = False
Buttoneffacer.Enabled = True
sauf que dans mon cas je veux trier seulement des nombres entre 10 et 20, comment dois je faire ?
- 1
- 2
Suivant