Bonsoir,
Quand je lance cette macro, j'obtiens un dépassement de capacité.
Sub Absurde()
MsgBox 2003 * 33 * 17 - 6002 * 17 * 17 + 4000 * 17 * 9
End Sub
Il me semble que ça n'a aucun sens ! Qu'en pensez-vous ?
Et pourtant, la formule de feuille de calcul :
03 * 33 * 17 - 6002 * 17 * 17 + 4000 * 17 * 9
me donne le bon résultat : 1 105.
Et tant qu'à y être, est-ce qu'il existe un équivalent VBA de PGCD ?
Merci de vos éventuelles aveuglantes lumières :-)
Serge
Bonsoir,
Quand je lance cette macro, j'obtiens un dépassement de capacité.
Sub Absurde()
MsgBox 2003 * 33 * 17 - 6002 * 17 * 17 + 4000 * 17 * 9
End Sub
Il me semble que ça n'a aucun sens ! Qu'en pensez-vous ?
Et pourtant, la formule de feuille de calcul :
03 * 33 * 17 - 6002 * 17 * 17 + 4000 * 17 * 9
me donne le bon résultat : 1 105.
Et tant qu'à y être, est-ce qu'il existe un équivalent VBA de PGCD ?
Merci de vos éventuelles aveuglantes lumières :-)
Serge
Bonsoir,
Quand je lance cette macro, j'obtiens un dépassement de capacité.
Sub Absurde()
MsgBox 2003 * 33 * 17 - 6002 * 17 * 17 + 4000 * 17 * 9
End Sub
Il me semble que ça n'a aucun sens ! Qu'en pensez-vous ?
Et pourtant, la formule de feuille de calcul :
03 * 33 * 17 - 6002 * 17 * 17 + 4000 * 17 * 9
me donne le bon résultat : 1 105.
Et tant qu'à y être, est-ce qu'il existe un équivalent VBA de PGCD ?
Merci de vos éventuelles aveuglantes lumières :-)
Serge
MsgBox Application.Evaluate("2003 * 33 * 17 - 6002 * 17 * 17 + 4000 * 17 * 9")
"garnote" a écrit dans le message de news:
Bonsoir,
Quand je lance cette macro, j'obtiens un dépassement de capacité.
Sub Absurde()
MsgBox 2003 * 33 * 17 - 6002 * 17 * 17 + 4000 * 17 * 9
End Sub
Il me semble que ça n'a aucun sens ! Qu'en pensez-vous ?
Et pourtant, la formule de feuille de calcul :
03 * 33 * 17 - 6002 * 17 * 17 + 4000 * 17 * 9
me donne le bon résultat : 1 105.
Et tant qu'à y être, est-ce qu'il existe un équivalent VBA de PGCD ?
Merci de vos éventuelles aveuglantes lumières :-)
Serge
MsgBox Application.Evaluate("2003 * 33 * 17 - 6002 * 17 * 17 + 4000 * 17 * 9")
"garnote" <garnote3@ENLEVER.videotron.ca> a écrit dans le message de news:
e6iiZofAIHA.536@TK2MSFTNGP06.phx.gbl...
Bonsoir,
Quand je lance cette macro, j'obtiens un dépassement de capacité.
Sub Absurde()
MsgBox 2003 * 33 * 17 - 6002 * 17 * 17 + 4000 * 17 * 9
End Sub
Il me semble que ça n'a aucun sens ! Qu'en pensez-vous ?
Et pourtant, la formule de feuille de calcul :
03 * 33 * 17 - 6002 * 17 * 17 + 4000 * 17 * 9
me donne le bon résultat : 1 105.
Et tant qu'à y être, est-ce qu'il existe un équivalent VBA de PGCD ?
Merci de vos éventuelles aveuglantes lumières :-)
Serge
MsgBox Application.Evaluate("2003 * 33 * 17 - 6002 * 17 * 17 + 4000 * 17 * 9")
"garnote" a écrit dans le message de news:
Bonsoir,
Quand je lance cette macro, j'obtiens un dépassement de capacité.
Sub Absurde()
MsgBox 2003 * 33 * 17 - 6002 * 17 * 17 + 4000 * 17 * 9
End Sub
Il me semble que ça n'a aucun sens ! Qu'en pensez-vous ?
Et pourtant, la formule de feuille de calcul :
03 * 33 * 17 - 6002 * 17 * 17 + 4000 * 17 * 9
me donne le bon résultat : 1 105.
Et tant qu'à y être, est-ce qu'il existe un équivalent VBA de PGCD ?
Merci de vos éventuelles aveuglantes lumières :-)
Serge
Bonsoir Denis et tous les autres,
Alors, comment adapter le truc de Denis à cette macro ?
Sub Calculs_Avec_Entiers()
Dim n As Byte
Dim h(20) As Long
Dim b(20) As Long
h(0) = 3: b(0) = 2
h(1) = 5: b(1) = 3
Cells(1, 1) = h(0): Cells(2, 1) = b(0)
Cells(3, 1) = h(0) / b(0)
Cells(1, 2) = h(1): Cells(2, 2) = b(1)
Cells(3, 2) = h(1) / b(1)
For n = 2 To 19
h(n) = 2003 * h(n - 1) * h(n - 2) - 6002 * b(n - 1) * h(n - 2) + 4000 * b(n - 1) * b(n - 2)
b(n) = h(n - 1) * h(n - 2)
Cells(1, n + 1) = h(n) / pgcd(h(n), b(n))
Cells(2, n + 1) = b(n) / pgcd(h(n), b(n))
Cells(3, n + 1) = h(n) / b(n)
Next n
End Sub
Function pgcd(a As Long, b As Long)
If a = 0 Then
pgcd = b
Exit Function
Else
If a > b Then
pgcd = pgcd(a Mod b, b)
Else
pgcd = pgcd(b Mod a, a)
End If
End If
End Function
Serge
"MichDenis" a écrit dans le message de news:MsgBox Application.Evaluate("2003 * 33 * 17 - 6002 * 17 * 17 + 4000 * 17 * 9")
"garnote" a écrit dans le message de news:
Bonsoir,
Quand je lance cette macro, j'obtiens un dépassement de capacité.
Sub Absurde()
MsgBox 2003 * 33 * 17 - 6002 * 17 * 17 + 4000 * 17 * 9
End Sub
Il me semble que ça n'a aucun sens ! Qu'en pensez-vous ?
Et pourtant, la formule de feuille de calcul :
03 * 33 * 17 - 6002 * 17 * 17 + 4000 * 17 * 9
me donne le bon résultat : 1 105.
Et tant qu'à y être, est-ce qu'il existe un équivalent VBA de PGCD ?
Merci de vos éventuelles aveuglantes lumières :-)
Serge
Bonsoir Denis et tous les autres,
Alors, comment adapter le truc de Denis à cette macro ?
Sub Calculs_Avec_Entiers()
Dim n As Byte
Dim h(20) As Long
Dim b(20) As Long
h(0) = 3: b(0) = 2
h(1) = 5: b(1) = 3
Cells(1, 1) = h(0): Cells(2, 1) = b(0)
Cells(3, 1) = h(0) / b(0)
Cells(1, 2) = h(1): Cells(2, 2) = b(1)
Cells(3, 2) = h(1) / b(1)
For n = 2 To 19
h(n) = 2003 * h(n - 1) * h(n - 2) - 6002 * b(n - 1) * h(n - 2) + 4000 * b(n - 1) * b(n - 2)
b(n) = h(n - 1) * h(n - 2)
Cells(1, n + 1) = h(n) / pgcd(h(n), b(n))
Cells(2, n + 1) = b(n) / pgcd(h(n), b(n))
Cells(3, n + 1) = h(n) / b(n)
Next n
End Sub
Function pgcd(a As Long, b As Long)
If a = 0 Then
pgcd = b
Exit Function
Else
If a > b Then
pgcd = pgcd(a Mod b, b)
Else
pgcd = pgcd(b Mod a, a)
End If
End If
End Function
Serge
"MichDenis" <michdenis@hotmail.com> a écrit dans le message de news: eJGiQvfAIHA.4444@TK2MSFTNGP03.phx.gbl...
MsgBox Application.Evaluate("2003 * 33 * 17 - 6002 * 17 * 17 + 4000 * 17 * 9")
"garnote" <garnote3@ENLEVER.videotron.ca> a écrit dans le message de news:
e6iiZofAIHA.536@TK2MSFTNGP06.phx.gbl...
Bonsoir,
Quand je lance cette macro, j'obtiens un dépassement de capacité.
Sub Absurde()
MsgBox 2003 * 33 * 17 - 6002 * 17 * 17 + 4000 * 17 * 9
End Sub
Il me semble que ça n'a aucun sens ! Qu'en pensez-vous ?
Et pourtant, la formule de feuille de calcul :
03 * 33 * 17 - 6002 * 17 * 17 + 4000 * 17 * 9
me donne le bon résultat : 1 105.
Et tant qu'à y être, est-ce qu'il existe un équivalent VBA de PGCD ?
Merci de vos éventuelles aveuglantes lumières :-)
Serge
Bonsoir Denis et tous les autres,
Alors, comment adapter le truc de Denis à cette macro ?
Sub Calculs_Avec_Entiers()
Dim n As Byte
Dim h(20) As Long
Dim b(20) As Long
h(0) = 3: b(0) = 2
h(1) = 5: b(1) = 3
Cells(1, 1) = h(0): Cells(2, 1) = b(0)
Cells(3, 1) = h(0) / b(0)
Cells(1, 2) = h(1): Cells(2, 2) = b(1)
Cells(3, 2) = h(1) / b(1)
For n = 2 To 19
h(n) = 2003 * h(n - 1) * h(n - 2) - 6002 * b(n - 1) * h(n - 2) + 4000 * b(n - 1) * b(n - 2)
b(n) = h(n - 1) * h(n - 2)
Cells(1, n + 1) = h(n) / pgcd(h(n), b(n))
Cells(2, n + 1) = b(n) / pgcd(h(n), b(n))
Cells(3, n + 1) = h(n) / b(n)
Next n
End Sub
Function pgcd(a As Long, b As Long)
If a = 0 Then
pgcd = b
Exit Function
Else
If a > b Then
pgcd = pgcd(a Mod b, b)
Else
pgcd = pgcd(b Mod a, a)
End If
End If
End Function
Serge
"MichDenis" a écrit dans le message de news:MsgBox Application.Evaluate("2003 * 33 * 17 - 6002 * 17 * 17 + 4000 * 17 * 9")
"garnote" a écrit dans le message de news:
Bonsoir,
Quand je lance cette macro, j'obtiens un dépassement de capacité.
Sub Absurde()
MsgBox 2003 * 33 * 17 - 6002 * 17 * 17 + 4000 * 17 * 9
End Sub
Il me semble que ça n'a aucun sens ! Qu'en pensez-vous ?
Et pourtant, la formule de feuille de calcul :
03 * 33 * 17 - 6002 * 17 * 17 + 4000 * 17 * 9
me donne le bon résultat : 1 105.
Et tant qu'à y être, est-ce qu'il existe un équivalent VBA de PGCD ?
Merci de vos éventuelles aveuglantes lumières :-)
Serge
Bonsoir Denis et tous les autres,
Alors, comment adapter le truc de Denis à cette macro ?
Sub Calculs_Avec_Entiers()
Dim n As Byte
Dim h(20) As Long
Dim b(20) As Long
h(0) = 3: b(0) = 2
h(1) = 5: b(1) = 3
Cells(1, 1) = h(0): Cells(2, 1) = b(0)
Cells(3, 1) = h(0) / b(0)
Cells(1, 2) = h(1): Cells(2, 2) = b(1)
Cells(3, 2) = h(1) / b(1)
For n = 2 To 19
h(n) = 2003 * h(n - 1) * h(n - 2) - 6002 * b(n - 1) * h(n - 2) + 4000 * b(n - 1) * b(n - 2)
b(n) = h(n - 1) * h(n - 2)
Cells(1, n + 1) = h(n) / pgcd(h(n), b(n))
Cells(2, n + 1) = b(n) / pgcd(h(n), b(n))
Cells(3, n + 1) = h(n) / b(n)
Next n
End Sub
Function pgcd(a As Long, b As Long)
If a = 0 Then
pgcd = b
Exit Function
Else
If a > b Then
pgcd = pgcd(a Mod b, b)
Else
pgcd = pgcd(b Mod a, a)
End If
End If
End Function
Serge
"MichDenis" a écrit dans le message de news:MsgBox Application.Evaluate("2003 * 33 * 17 - 6002 * 17 * 17 + 4000 * 17 * 9")
"garnote" a écrit dans le message de news:
Bonsoir,
Quand je lance cette macro, j'obtiens un dépassement de capacité.
Sub Absurde()
MsgBox 2003 * 33 * 17 - 6002 * 17 * 17 + 4000 * 17 * 9
End Sub
Il me semble que ça n'a aucun sens ! Qu'en pensez-vous ?
Et pourtant, la formule de feuille de calcul :
03 * 33 * 17 - 6002 * 17 * 17 + 4000 * 17 * 9
me donne le bon résultat : 1 105.
Et tant qu'à y être, est-ce qu'il existe un équivalent VBA de PGCD ?
Merci de vos éventuelles aveuglantes lumières :-)
Serge
Bonsoir Denis et tous les autres,
Alors, comment adapter le truc de Denis à cette macro ?
Sub Calculs_Avec_Entiers()
Dim n As Byte
Dim h(20) As Long
Dim b(20) As Long
h(0) = 3: b(0) = 2
h(1) = 5: b(1) = 3
Cells(1, 1) = h(0): Cells(2, 1) = b(0)
Cells(3, 1) = h(0) / b(0)
Cells(1, 2) = h(1): Cells(2, 2) = b(1)
Cells(3, 2) = h(1) / b(1)
For n = 2 To 19
h(n) = 2003 * h(n - 1) * h(n - 2) - 6002 * b(n - 1) * h(n - 2) + 4000 * b(n - 1) * b(n - 2)
b(n) = h(n - 1) * h(n - 2)
Cells(1, n + 1) = h(n) / pgcd(h(n), b(n))
Cells(2, n + 1) = b(n) / pgcd(h(n), b(n))
Cells(3, n + 1) = h(n) / b(n)
Next n
End Sub
Function pgcd(a As Long, b As Long)
If a = 0 Then
pgcd = b
Exit Function
Else
If a > b Then
pgcd = pgcd(a Mod b, b)
Else
pgcd = pgcd(b Mod a, a)
End If
End If
End Function
Serge
"MichDenis" <michdenis@hotmail.com> a écrit dans le message de news: eJGiQvfAIHA.4444@TK2MSFTNGP03.phx.gbl...
MsgBox Application.Evaluate("2003 * 33 * 17 - 6002 * 17 * 17 + 4000 * 17 * 9")
"garnote" <garnote3@ENLEVER.videotron.ca> a écrit dans le message de news:
e6iiZofAIHA.536@TK2MSFTNGP06.phx.gbl...
Bonsoir,
Quand je lance cette macro, j'obtiens un dépassement de capacité.
Sub Absurde()
MsgBox 2003 * 33 * 17 - 6002 * 17 * 17 + 4000 * 17 * 9
End Sub
Il me semble que ça n'a aucun sens ! Qu'en pensez-vous ?
Et pourtant, la formule de feuille de calcul :
03 * 33 * 17 - 6002 * 17 * 17 + 4000 * 17 * 9
me donne le bon résultat : 1 105.
Et tant qu'à y être, est-ce qu'il existe un équivalent VBA de PGCD ?
Merci de vos éventuelles aveuglantes lumières :-)
Serge
Bonsoir Denis et tous les autres,
Alors, comment adapter le truc de Denis à cette macro ?
Sub Calculs_Avec_Entiers()
Dim n As Byte
Dim h(20) As Long
Dim b(20) As Long
h(0) = 3: b(0) = 2
h(1) = 5: b(1) = 3
Cells(1, 1) = h(0): Cells(2, 1) = b(0)
Cells(3, 1) = h(0) / b(0)
Cells(1, 2) = h(1): Cells(2, 2) = b(1)
Cells(3, 2) = h(1) / b(1)
For n = 2 To 19
h(n) = 2003 * h(n - 1) * h(n - 2) - 6002 * b(n - 1) * h(n - 2) + 4000 * b(n - 1) * b(n - 2)
b(n) = h(n - 1) * h(n - 2)
Cells(1, n + 1) = h(n) / pgcd(h(n), b(n))
Cells(2, n + 1) = b(n) / pgcd(h(n), b(n))
Cells(3, n + 1) = h(n) / b(n)
Next n
End Sub
Function pgcd(a As Long, b As Long)
If a = 0 Then
pgcd = b
Exit Function
Else
If a > b Then
pgcd = pgcd(a Mod b, b)
Else
pgcd = pgcd(b Mod a, a)
End If
End If
End Function
Serge
"MichDenis" a écrit dans le message de news:MsgBox Application.Evaluate("2003 * 33 * 17 - 6002 * 17 * 17 + 4000 * 17 * 9")
"garnote" a écrit dans le message de news:
Bonsoir,
Quand je lance cette macro, j'obtiens un dépassement de capacité.
Sub Absurde()
MsgBox 2003 * 33 * 17 - 6002 * 17 * 17 + 4000 * 17 * 9
End Sub
Il me semble que ça n'a aucun sens ! Qu'en pensez-vous ?
Et pourtant, la formule de feuille de calcul :
03 * 33 * 17 - 6002 * 17 * 17 + 4000 * 17 * 9
me donne le bon résultat : 1 105.
Et tant qu'à y être, est-ce qu'il existe un équivalent VBA de PGCD ?
Merci de vos éventuelles aveuglantes lumières :-)
Serge
MsgBox Application.Evaluate("2003 * 33 * 17 - 6002 * 17 * 17 + 4000 * 17 * 9")
"garnote" a écrit dans le message de news:
Bonsoir,
Quand je lance cette macro, j'obtiens un dépassement de capacité.
Sub Absurde()
MsgBox 2003 * 33 * 17 - 6002 * 17 * 17 + 4000 * 17 * 9
End Sub
Il me semble que ça n'a aucun sens ! Qu'en pensez-vous ?
Et pourtant, la formule de feuille de calcul :
03 * 33 * 17 - 6002 * 17 * 17 + 4000 * 17 * 9
me donne le bon résultat : 1 105.
Et tant qu'à y être, est-ce qu'il existe un équivalent VBA de PGCD ?
Merci de vos éventuelles aveuglantes lumières :-)
Serge
MsgBox Application.Evaluate("2003 * 33 * 17 - 6002 * 17 * 17 + 4000 * 17 * 9")
"garnote" <garnote3@ENLEVER.videotron.ca> a écrit dans le message de news:
e6iiZofAIHA.536@TK2MSFTNGP06.phx.gbl...
Bonsoir,
Quand je lance cette macro, j'obtiens un dépassement de capacité.
Sub Absurde()
MsgBox 2003 * 33 * 17 - 6002 * 17 * 17 + 4000 * 17 * 9
End Sub
Il me semble que ça n'a aucun sens ! Qu'en pensez-vous ?
Et pourtant, la formule de feuille de calcul :
03 * 33 * 17 - 6002 * 17 * 17 + 4000 * 17 * 9
me donne le bon résultat : 1 105.
Et tant qu'à y être, est-ce qu'il existe un équivalent VBA de PGCD ?
Merci de vos éventuelles aveuglantes lumières :-)
Serge
MsgBox Application.Evaluate("2003 * 33 * 17 - 6002 * 17 * 17 + 4000 * 17 * 9")
"garnote" a écrit dans le message de news:
Bonsoir,
Quand je lance cette macro, j'obtiens un dépassement de capacité.
Sub Absurde()
MsgBox 2003 * 33 * 17 - 6002 * 17 * 17 + 4000 * 17 * 9
End Sub
Il me semble que ça n'a aucun sens ! Qu'en pensez-vous ?
Et pourtant, la formule de feuille de calcul :
03 * 33 * 17 - 6002 * 17 * 17 + 4000 * 17 * 9
me donne le bon résultat : 1 105.
Et tant qu'à y être, est-ce qu'il existe un équivalent VBA de PGCD ?
Merci de vos éventuelles aveuglantes lumières :-)
Serge
MsgBox Application.Evaluate("2003 * 33 * 17 - 6002 * 17 * 17 + 4000 * 17 * 9")
"garnote" a écrit dans le message de news:
Bonsoir,
Quand je lance cette macro, j'obtiens un dépassement de capacité.
Sub Absurde()
MsgBox 2003 * 33 * 17 - 6002 * 17 * 17 + 4000 * 17 * 9
End Sub
Il me semble que ça n'a aucun sens ! Qu'en pensez-vous ?
Et pourtant, la formule de feuille de calcul :
03 * 33 * 17 - 6002 * 17 * 17 + 4000 * 17 * 9
me donne le bon résultat : 1 105.
Et tant qu'à y être, est-ce qu'il existe un équivalent VBA de PGCD ?
Merci de vos éventuelles aveuglantes lumières :-)
Serge
MsgBox Application.Evaluate("2003 * 33 * 17 - 6002 * 17 * 17 + 4000 * 17 * 9")
"garnote" <garnote3@ENLEVER.videotron.ca> a écrit dans le message de news:
e6iiZofAIHA.536@TK2MSFTNGP06.phx.gbl...
Bonsoir,
Quand je lance cette macro, j'obtiens un dépassement de capacité.
Sub Absurde()
MsgBox 2003 * 33 * 17 - 6002 * 17 * 17 + 4000 * 17 * 9
End Sub
Il me semble que ça n'a aucun sens ! Qu'en pensez-vous ?
Et pourtant, la formule de feuille de calcul :
03 * 33 * 17 - 6002 * 17 * 17 + 4000 * 17 * 9
me donne le bon résultat : 1 105.
Et tant qu'à y être, est-ce qu'il existe un équivalent VBA de PGCD ?
Merci de vos éventuelles aveuglantes lumières :-)
Serge
MsgBox Application.Evaluate("2003 * 33 * 17 - 6002 * 17 * 17 + 4000 * 17 * 9")
"garnote" a écrit dans le message de news:
Bonsoir,
Quand je lance cette macro, j'obtiens un dépassement de capacité.
Sub Absurde()
MsgBox 2003 * 33 * 17 - 6002 * 17 * 17 + 4000 * 17 * 9
End Sub
Il me semble que ça n'a aucun sens ! Qu'en pensez-vous ?
Et pourtant, la formule de feuille de calcul :
03 * 33 * 17 - 6002 * 17 * 17 + 4000 * 17 * 9
me donne le bon résultat : 1 105.
Et tant qu'à y être, est-ce qu'il existe un équivalent VBA de PGCD ?
Merci de vos éventuelles aveuglantes lumières :-)
Serge
Merci à vous deux pour vos intéressants commentaires.
Suite à de multiples tripotages arithmétiques, j'ai constaté que,
connaissant u(0) = h(0) / b(0) = 3/2 et u(1) = h(1) / b(1) = 5/3,
alors u(n) = 2003 - 6002 / u(n - 1) + 4000 / (u(n - 1) * u(n - 2))
est équivalent à u(n) = h(n) / b(n) où :
h(n) = h(n - 1) + 2 ^ n
b(n) = h(n - 1)
Et quelle surprise de constater l'énorme différence entre les
deux résultats. C'est la macro DEUX qui donne le bon résultat
Sub Virgules_Flottantes_Et_Nombres_Entiers()
Sheets.Add
UN
DEUX
End Sub
Sub UN()
Dim u(20)
u(0) = 3 / 2
u(1) = 5 / 3
[A5] = u(0)
[B5] = u(1)
For n = 2 To 19
u(n) = 2003 - 6002 / u(n - 1) + 4000 / (u(n - 1) * u(n - 2))
Cells(5, n + 1) = u(n)
Next n
End Sub
Sub DEUX()
Dim n As Byte
Dim h(20) As Long
Dim b(20) As Long
h(0) = 3: b(0) = 2
h(1) = 5: b(1) = 3
Cells(1, 1) = h(0): Cells(2, 1) = b(0)
Cells(3, 1) = h(0) / b(0)
Cells(1, 2) = h(1): Cells(2, 2) = b(1)
Cells(3, 2) = h(1) / b(1)
For n = 2 To 19
h(n) = h(n - 1) + 2 ^ n
b(n) = h(n - 1)
Cells(1, n + 1) = h(n)
Cells(2, n + 1) = b(n)
Cells(3, n + 1) = h(n) / b(n)
Next n
End Sub
Serge
Merci à vous deux pour vos intéressants commentaires.
Suite à de multiples tripotages arithmétiques, j'ai constaté que,
connaissant u(0) = h(0) / b(0) = 3/2 et u(1) = h(1) / b(1) = 5/3,
alors u(n) = 2003 - 6002 / u(n - 1) + 4000 / (u(n - 1) * u(n - 2))
est équivalent à u(n) = h(n) / b(n) où :
h(n) = h(n - 1) + 2 ^ n
b(n) = h(n - 1)
Et quelle surprise de constater l'énorme différence entre les
deux résultats. C'est la macro DEUX qui donne le bon résultat
Sub Virgules_Flottantes_Et_Nombres_Entiers()
Sheets.Add
UN
DEUX
End Sub
Sub UN()
Dim u(20)
u(0) = 3 / 2
u(1) = 5 / 3
[A5] = u(0)
[B5] = u(1)
For n = 2 To 19
u(n) = 2003 - 6002 / u(n - 1) + 4000 / (u(n - 1) * u(n - 2))
Cells(5, n + 1) = u(n)
Next n
End Sub
Sub DEUX()
Dim n As Byte
Dim h(20) As Long
Dim b(20) As Long
h(0) = 3: b(0) = 2
h(1) = 5: b(1) = 3
Cells(1, 1) = h(0): Cells(2, 1) = b(0)
Cells(3, 1) = h(0) / b(0)
Cells(1, 2) = h(1): Cells(2, 2) = b(1)
Cells(3, 2) = h(1) / b(1)
For n = 2 To 19
h(n) = h(n - 1) + 2 ^ n
b(n) = h(n - 1)
Cells(1, n + 1) = h(n)
Cells(2, n + 1) = b(n)
Cells(3, n + 1) = h(n) / b(n)
Next n
End Sub
Serge
Merci à vous deux pour vos intéressants commentaires.
Suite à de multiples tripotages arithmétiques, j'ai constaté que,
connaissant u(0) = h(0) / b(0) = 3/2 et u(1) = h(1) / b(1) = 5/3,
alors u(n) = 2003 - 6002 / u(n - 1) + 4000 / (u(n - 1) * u(n - 2))
est équivalent à u(n) = h(n) / b(n) où :
h(n) = h(n - 1) + 2 ^ n
b(n) = h(n - 1)
Et quelle surprise de constater l'énorme différence entre les
deux résultats. C'est la macro DEUX qui donne le bon résultat
Sub Virgules_Flottantes_Et_Nombres_Entiers()
Sheets.Add
UN
DEUX
End Sub
Sub UN()
Dim u(20)
u(0) = 3 / 2
u(1) = 5 / 3
[A5] = u(0)
[B5] = u(1)
For n = 2 To 19
u(n) = 2003 - 6002 / u(n - 1) + 4000 / (u(n - 1) * u(n - 2))
Cells(5, n + 1) = u(n)
Next n
End Sub
Sub DEUX()
Dim n As Byte
Dim h(20) As Long
Dim b(20) As Long
h(0) = 3: b(0) = 2
h(1) = 5: b(1) = 3
Cells(1, 1) = h(0): Cells(2, 1) = b(0)
Cells(3, 1) = h(0) / b(0)
Cells(1, 2) = h(1): Cells(2, 2) = b(1)
Cells(3, 2) = h(1) / b(1)
For n = 2 To 19
h(n) = h(n - 1) + 2 ^ n
b(n) = h(n - 1)
Cells(1, n + 1) = h(n)
Cells(2, n + 1) = b(n)
Cells(3, n + 1) = h(n) / b(n)
Next n
End Sub
Serge