argh!! evidement, je me plante encore... je ne vérifie pas la réponse...
for (i=1;i<109;i++)
{
res=Math.sqrt(i*i+2009);
if (int(res)==res) trace (res);
}
c'était "trace (i)" pas trace (res)...
Bonjour, je me suis lancée dans VBA et j'ai réussi à écrire une macro qui me donne la bonne réponse, enfin plutôt qui me donne la première bonne valeur de x qui est 16. Est-ce que quelqu'un peut me dire comment j'aurais dû faire s'il y avait eu plusieurs bonnes réponses ?
Je vous mets mon texte
Sub carreleur()
'
' carreleur Macro
' Macro enregistrée le 14/05/06 par vh
'
Line1:
For x = 0 To 12000
a = Sqr(x)
b = Int(a)
c = Sqr(x + 2009)
d = Int(c)
If a = b And c = d Then GoTo Line2
GoTo Line3
Line2:
e = MsgBox("le carreleur prendra x = " & x, vbOKOnly, "You're the best")
GoTo Line4:
Line3:
Next x
Line4:
End Sub
Merci
il suffit de continuer ton incrémentation de x en supprimant "goto line4" apres l'affichage de ton réslultat!
Ainsi, si une autre valeur existe, il continuera l'incrémentation et réaffichera si besoin.
A plus
il suffit d'enlever le "GoTo Line4"
Après avoir affiché la première réponse, le programme continuera ses boucles et raffichera un message lorsqu'il aura trouvé une autre solution, etc.
Sinon, puisque tu travailles sous Excel, tu peux les afficher au fur et à mesure sur ta feuille de travail. En simplifiant un peu ton programme, on obtient :
Sub carreleur()
Dim a, b, c, d, x As Integer
i = 1
For x = 0 To 12000
a = Sqr(x)
b = Int(a)
c = Sqr(x + 2009)
d = Int(c)
If a = b And c = d Then
Cells(i, 1) = "le carreleur prendra x = " & x
i = i + 1
End If
Next x
End Sub
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :