Détermination d'un terme d'une suite donnée

viewtifulife Messages postés 1 Date d'inscription samedi 10 janvier 2009 Statut Membre Dernière intervention 10 janvier 2009 - 10 janv. 2009 à 18:37
marinmarais Messages postés 104 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 16 juillet 2010 - 12 janv. 2009 à 12:24
Bonjour,

j'essaye de créer un programme qui me donnerait le terme n d'une suite.

Par exemple, je m'attache au cas ou:
u0=1
u(n+1)=a*u(n)*(1-u(n)) ou a est un paramètre a fixer par l'utilisateur du programme.

J'ai réalisé la programmation suivante, mais cela ne fonctionne pas:

Textbox1.text = u0
Textbox2.text = a
Textbox3.text = k
Textbox4.text = u(k)

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim i As Integer

        For i = 0 To Val(TextBox3.Text)
            TextBox4.Text = Str(fonction(Val(TextBox3.Text)))
        Next

    End Sub
    Public Function fonction(ByVal n As Integer) As Integer

        Dim a As Integer
        Dim u0 As Integer
   
        a = Val(TextBox2.Text)
        u0 = Val(TextBox1.Text)

        If n = 0 Then
            Return u0
        Else
            Return a * fonction(n) * (1 - fonction(n))
        End If
    End Function

Voyez vous des erreurs ? je pense qu'il s'agit plus d'une erreur de raisonnement !

Merci d'avance !

1 réponse

marinmarais Messages postés 104 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 16 juillet 2010 1
12 janv. 2009 à 12:24
Salut !

Je ferais la correction suivante (voir en rouge) :

    Public Function fonction(ByVal n As Integer) As Integer

        Dim a As Integer
        Dim u0 As Integer
   
        a = Val(TextBox2.Text)
        u0 = Val(TextBox1.Text)

        If n = 0 Then
            Return u0
        Else
            Return a * fonction(n-1) * (1 - fonction(n-1))
        End If
    End Function

Sans cela, la recursivite ne peut pas fonctionner.
Enfin bon, je peux me tromper...

A+,
Tom.

Marin Marais
0
Rejoignez-nous