1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
Public Function Rebonds(ByVal HauteurEnMetre As Double, ByVal RayonEnCm As Double)
Const cMaxLargeur As Integer = 75, FacteurReductionRebond As Double = 0.5 '= hauteur divisée par deux
Dim NbRebonds As Long, HauteurEnCm As Double, HauteurInitialeEnCm As Double
If HauteurEnMetre > 0 And RayonEnCm > 0 Then
HauteurInitialeEnCm = HauteurEnMetre * 100
HauteurEnCm = HauteurInitialeEnCm
While HauteurEnCm >= RayonEnCm
Debug.Print "|" & String(Int(HauteurEnCm * cMaxLargeur / HauteurInitialeEnCm), "*") & " " & Format(HauteurEnCm, "0.0## cm")
NbRebonds = NbRebonds + 1
HauteurEnCm = HauteurEnCm * FacteurReductionRebond
Wend
Debug.Print vbCrLf & "-> Nombre de rebonds (h:" & HauteurEnMetre & "m - r:" & RayonEnCm & "cm) = " & NbRebonds
Else
Debug.Print "Données erronées...", "Hauteur = " & HauteurEnMetre, "Rayon = " & RayonEnCm
End If
End Function |