algorithme avec algobox


  • M

    Voici l'exercice que mon professeur nous a donné pour demain :
    Ecrire un programme Algobox qui, lorsqu'on entre au clavier le nombre entier n, supérieur ou égal à un, calcul et affiche le terme Un de rang n de la suite (Un) avec n appartenant à N définie par :
    U0=7
    Un= U(n-1)+5 si n impair
    Un=U(n-1)-3 si n pair
    Imprimer cet algorithme ainsi que le résultat obtenu pour le calcul de U20 et de U21.

    J'ai commencé à rédiger mais je pense qu'il manque la condition concernant n
    VARIABLES
    U est du type nombre
    n est du type nombre
    i est du type nombre
    DEBUT ALGORITHME
    U prend la valeur 7
    n prend la valeur 1
    DEBUT POUR
    Si floor(n/2)==n/2 ALORS
    DEBUT_SI
    u[i] prend la valeur u[i-1]-3
    FIN-SI
    SINON
    u[i] prend la valeur u[i-1]+5
    FIN SINON
    AFFICHER "u["
    AFFICHER i
    AFFICHER "]="
    AFFICHER u[i]


  • mtschoon

    BONJOUR ! (un peu de convivialité ne nuit pas...)

    Il y a plusieurs erreurs dans ton algorithme

    Tu as déclaré U en nombre et ensuite tu l'utilises enListe.

    Il y a des confusions entre n et i

    i doit varier entre 1 et n pour calculer les termes successifs ,et ce n'est pas présent...il n'y a pas la boucle "pour i allant de 1 à n".

    En bref, tout est à revoir de près.

    Je t'indique un algorithme où U est déclaré en nombre.
    Tu peux le comprendre, le taper, le tester et le modifier si tu veux que U soit déclaré en Liste.

    fichier math

    Remarque : pour i pair, je préfère prendre "i%2==0" que "floor...", mais c'est une question de goût...


  • M

    Bonjour !
    Je tiens à vous remercier pour votre aide.
    Je ne comprends pas la différence entre U est du type nombre, U est du type liste et ce que je dois donc modifier.


  • mtschoon

    Si tu déclares U de type nombre, tu utilises la démarche que je t'ai donnée, en utilisant U tout le temps.

    Si tu préfères, tu peux déclarer U en type liste et tu utilises les termes de la forme U[i] tout le temps.

    Tu as le choix.


  • M

    Merci pour votre réponse.
    Par contre, dans l'énoncé, il est spécifié que n doit être supérieur ou égal à 1.
    Or je dois le mentionner dans l'écriture de l'algorithme.
    Mais quand ?


  • mtschoon

    Le plus simple, si tu n'es pas expert en algorithme:
    Au tout début de l'algorithme , juste avant "Lire n", insère une ligne pour indiquer à l'utilisateur du programme de choisir pour n une valeur de N*.

    Plus compliqué:
    Tu peux tester, après que l'utilisateur ait rentré la valeur de n, si cette valeur est bien une valeur de N*.
    Si oui, le programme se poursuit, sinon, le programme saute à la fin où tu fais dire "donner une valeur de n de N*"


Se connecter pour répondre