Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Algorithmes et structures de données Discussion :

[exercice] déroulement d'un programme


Sujet :

Algorithmes et structures de données

  1. #1
    Futur Membre du Club
    [exercice] déroulement d'un programme
    bonsoir

    cet exercice me hante a chaque fois que je passe mon examen je voudrais de l'aide pour le résoudre

    exercice :

    décrire le déroulement de l'algorithme suivant pour la donné a=7
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    debut
        a,b,c : entier
        lire(a)
        c <--- a
        ecrire c
     
        tant que c>1 faire
            si c mod 2 alors
                c <---- c/2
                ecrire ' '
            sinon
                c<--- 3*c+1
                ecrire '/n'
            fsi
            ecrire c
        ftque
        ecrire '/n'
        b<-- c
    fin


    X mod Y est le reste de la division entiére de x par y
    l'instruction ecrire '/n' designe un passage a la ligne suivante

    question :
    1- donnez les valeurs successive que prend les variables pendant le déroulement de l'algorithme ainsi que le résultat final
    2- donnez ce qui est affiché par l'algorithme

    veuillez m'aider a comprendre parce que je vous cache pas ça fait presque 10 ans que je ne l'ai pas étudié

  2. #2
    Membre expert
    Bonjour,

    Qu'est-ce que vous ne comprenez pas ? (sous-entendu, je ne crois pas qu'il y ait grand-monde ici pour donner directement la solution d'un exercice dont on poste l'énoncé, mais je peux me tromper)

  3. #3
    Membre confirmé
    Ben si : voilà une solution.

    Prendre une feuille à carreaux.
    Recopier le code dans la première colonne.
    Dans la colonne 2, mettre les valeurs des variables pour la première itération.
    Dans la colonne 3, mettre les valeurs des variables pour la seconde itération.
    Continuer sur les colonnes suivantes tant qu'on ne sort pas de la boucle.

    ... il faut 18 colonnes ?

  4. #4
    Modérateur

    Bonjour,

    Il suffit de lire l'algorithme, et de se comporter comme un ordinateur, sauf que tu as un papier et un crayon (ou un clavier et un editeur) :

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    lire a (tu sais qu'il vaut 7)
    c <--- a  (tu mets la valeur de a dans c, donc c vaut 7)
    ecrire c (tu ecris la valeur de c, soit 7)
     
    ......


    Quel est ton soucis ?
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

  5. #5
    Futur Membre du Club
    merci

    je voudrais simplement savoir qu'est ce qu'un algorithme fait quand il passe a la ligne suivante ?
    aidez moi a comprendre avec l'exercice

  6. #6
    Membre expert
    Citation Envoyé par Fawez Voir le message

    je voudrais simplement savoir qu'est ce qu'un algorithme fait quand il passe a la ligne suivante ?
    L'algorithme ne "fait" rien (c'est la machine qui le fera, ou toi ici en l'occurrence), l'algorithme c'est une description abstraite de ton programme (ici sous forme de pseudo-code).
    Les instructions sont exécutées dans l'ordre dans lequel elles apparaissent (sauf dans le cas de structures de contrôles : "si" et "tant que" par exemple).

    Par exemple, si l'on veut dérouler le bout de code suivant :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    a <-- 1
    b <-- 5
    a <-- b + 1


    On va simplement garder trace de la valeur de chacune des variables à chaque étape :
    1. À la ligne 1, a = 1 et b n'est pas défini ;
    2. À la ligne 2, a = 1 et b = 5 ;
    3. À la ligne 3, a = 6 et b = 5...

    Ici, une étape correspond à une ligne de code, mais lorsqu'il y a des conditions (si) ou des boucles (tant que), toutes les lignes ne sont pas forcément exécutées, ou certains groupes de lignes sont exécutées plusieurs fois d'affilée.