test de primalité : erreur dans le code - VB/VBA/VBS - Programmation
Marsh Posté le 13-01-2003 à 21:58:51
avec les outils tu dessines un bouton ...
et comme code tu marques :
End
c tout ...
Marsh Posté le 13-01-2003 à 22:02:46
Ha, Math spé, comme c'est loin...
Sous QBasic/Win2000, 15 n'est pas premier avec ce test.
Peut-être essayer avec un type forcé en mettant des % au bout des variables, ou en les définissant en integer au début (le variant est "spécial", jamais utilisé)
dim d as integer, a as integer, r as integer (ou des long)
Le test d * d >= n, c'est pas d% * d% < a% ?
Marsh Posté le 13-01-2003 à 22:02:57
On fait du VB en MathSpe maintenant ? Quelle dechéance. A mon époque c'était du Caml !
Code :
|
n n'est pas defini que je sache. Ce serait pas plustot (d*d < a) ?
Edit : Voici une version qui marche et calquée sur ton modèle. Mais c'est du Python car j'ai pas VB
Code :
|
Marsh Posté le 13-01-2003 à 22:52:31
Citation : On fait du VB en MathSpe maintenant ? Quelle dechéance. A mon époque c'était du Caml ! |
en fait c'est plutôt spé math que maths spé
Citation :
|
oups...
Code :
|
euh... oui c sympa, mais je maitrise pas vraiment alors est ce que quelqu'un pourrait me convertir ça en VB ?
Merci tt le monde
Marsh Posté le 13-01-2003 à 23:26:32
Je ne connais pas Python (quand j'étais en Spé, l'informatique n'"existait" pas, on jonglait avec la règle à calcul et la table de Log)
Ca doit être qq chose comme
Private Sub TextBox2_Change()
a% = TextBox1.Value
d% = 1
r% = 1
Do
d% = d% + 1
r% = a% Mod d%
Loop While ((r% <> 0) And (d% * d% < a%))
If r% <> 0 Then
TextBox2.Value = "a est Premier "
Else
TextBox2.Value = "a n'est pas Premier "
end if
End Sub
sauf erreur.
Marsh Posté le 13-01-2003 à 21:37:33
Voilà en maths spé on doit faire un truc pour vérifier la primalité (s'ils sont premiers ou pas) de nombres.
J'ai essayé ave le code suivant, mais il y a une erreur :
15 est premier (c qui n'est pas le cas en réalité)
Private Sub TextBox2_Change()
a = TextBox1.Value
d = 1
r = 1
Do
d = d + 1
r = a Mod d
Loop While (r <> 0 And d * d >= n)
If r <> 0 Then TextBox2.Value = " a est Premier " Else TextBox2.Value = " a n'est pas Premier "
End Sub
j'ai l'impression qu'il aime pas le modulo
Sinon, question con, comment faire un bouton 'Fermer' ??