Algorithme simple

fmiram Messages postés 5 Statut Membre -  
Jodu Messages postés 91 Statut Membre -
Bonjour,

Est-ce que quelqu'un pourrait écrire l'algorithme ce-dessous.

Il s'agit d'un exercice non-fait en cours et vu que j'ai examen aujourd'hui, j'aimerais comparer ma réponse avec la bonne réponse.

Voici l'énoncé:

http://imageshack.com/f/0ealghoritmej

Merci d'avance
Configuration: Windows XP
Firefox 3.0.10

13 réponses

  1. Jodu Messages postés 91 Statut Membre 14
     
    Salut,

    l'algo en général m'a l'air bon, mais pas à 100%.
    J'ai pas encore pris mon café, je peux me tromper.

    Une fois que l'utilisateur a saisi son numéro d'article, admettons il saisit 100. Le numéro est trop petit, donc on l'invite à ressaisir. Cette fois, le numéro est encore trop petit, eh bien la saisie se fait quand même dans le programme car plus de contrôle disponible (vu qu'on ne remonte pas la boucle).
    Donc j'aurais fait une autre boucle disant :
    demander "numero article"
    art <- valeur saisie par l'utilisateur
    si art < 1000 ou art > 9999
       tant que art < 1000 ou art > 9999
          demander "numéro article"
          art <- valeur saisie par l'utilisateur
       fin tant que
    fin si
    


    Pour ta solution, le contrôle du "-1" se faisait au bout de 2 saisies, la première tu saisis -1, trop petit donc on recontrôle, tu ressaisis -1, on enregistre, on regarde la condition de la boucle, les conditions ne sont plus remplies, on quitte la boucle.

    Avec ma solution, aucune échappatoire possible car la valeur doit toujours être comprise entre 1000 et 9999.
    Pour ce contrôle, je propose ceci :
    demander "numero article"
    art <- valeur saisie par l'utilisateur
    si art = -1
      afficher "procédure terminée"
      sortir du tant que
    fin si
    si art < 1000 ou art > 9999
       tant que art < 1000 ou art > 9999
          demander "numéro article"
          art <- valeur saisie par l'utilisateur
       fin tant que
    fin si
    


    Il faut aussi vérifier la valeur de la quantité saisie, ce que tu n'as pas fait. Après mon code, je mettrais la même structure de contrôle "si quantité produit <= 0, alors tant que quantité produit <= 0, faire saisir Q à l'utilisateur".

    C'est pas très sorcier, et je pense que tu peux y arriver seul fmiram mais en aucun cas je te donnerais une solution complète. Avec le code que je t'ai fourni tu devrais y arriver.
    1
  2. Jodu Messages postés 91 Statut Membre 14
     
    De rien Fmiram, bon courage pour ton exam (BTS ? Bac STG ?)

    Brachior : j'aime pas le "tant que ( art != -1 OU ( art >= 1000 ET art <= 9999) )"
    tu dois mettre un ET, car si tu saisis 10, tu rentres dans la boucle.
    Et tu fais de l'anglais (do) et du français (faire), j'aime pas personnellement.

    Je ne sais pas ce que tu voulais faire avec ton "tant que ( art != -1 )" à la fin.

    Et après ta saisie de quantité que fais tu ?

    Plus de précisions si possible :)
    1
  3. Jodu Messages postés 91 Statut Membre 14
     
    Boarf tu sais l'algo, au premier abord ça effraie, on y comprend rien du tout... Mais d'un coup, la logique rentre, et là on se sent... une autre personne =D
    Une fois que la logique est là, je te promet que c'est pas difficile.

    La théorie des composants d'un ordi... C'est pas dur, c'est du par coeur =D
    1
  4. fmiram Messages postés 5 Statut Membre
     
    Voici ma réponse

    art entier
    Q entier

    Begin

    Art<---1000
    Q<-----1

    While Art=/= -1 do

    "demander n° d'article"

    Art<---Valeur entrée par utilisateur.

    "demander quantité"

    Q<-----Valeur entrée par utilisateur.

    If Art<1000 do
    "nombre trop petit"
    "veuillez réintroduire une valeur"
    Art<---valeur entrée par l'utilisateur
    elseif Art>9999 do
    "nombre trop grand"
    "veuillez réintroduire une valeur"
    Art<---valeur entrée par l'utilisateur
    else
    "ok"
    end if
    end if

    end While

    end
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. fmiram Messages postés 5 Statut Membre
     
    Merci beaucoup pour ta réponse très complète.
    J'avais en effet remarqué par après que je n'avais pas contrôle la quantité.
    Ma structure générale n'est pas mauvaise, c'est déjà ça.
    Je vais retraivaillé tout ça merci encore.
    0
  7. Brachior Messages postés 616 Statut Membre 46
     
    Moi j'le vois comme ca :
    faire
    	faire
    		"Entrez un numero d'article (entre 1000 et 9999) : "
    		art <- saisie
    	tant que ( art != -1 OU  ( art >= 1000 ET art <= 9999) ) /* ordre important */
    	si art != -1
    		"Entrez une quantite : "
    		do
    			qte <- saisie
    		tant que ( qte >= 0 )
    	fin si
    tant que ( art != -1 )
    0
  8. Brachior Messages postés 616 Statut Membre 46
     
    le "do" et le "faire" c'est une etourderie (programmation en C donc habitude ^^)
    le "tant que ( art != -1 OU ( art >= 1000 ET art <= 9999) )" est la fin du faire
    c'est un "do while" et non un "while"
    ce qui fait que si tu est egale a -1 tu quitte la boucle
    sinon si tu est compris entre 1000 et 9999 tu quitte la boucle.

    et le "tant que (art != -1)" est aussi un "do while" et non un "while"

    en fait j'ai aucun "while" mais que des "do while" car l'algo demande une saisie avant controle,
    ca evite une saisie puis un test et une boucle de saisie ( ce qui double la saisie inutilement )
    0
  9. Jodu Messages postés 91 Statut Membre 14
     
    D'accord, j'avais pas compris que c'était un do while ton premier.

    Je m'écrase alors =)
    0
  10. Brachior Messages postés 616 Statut Membre 46
     
    y a pas de mal ^^
    c'est plus visible avec des accolades ^^
    0
  11. fmiram Messages postés 5 Statut Membre
     
    première année de bac en science de gestion à l'unnif (Belgique)

    Le cours c'est informatique de gestion 1, c'est la première fois que je faisait ce genre de truc :)

    Verdict à 13h30 :)
    0
  12. Brachior Messages postés 616 Statut Membre 46
     
    et bien j'te souhait une grosse merde alors ;)
    0
  13. Jodu Messages postés 91 Statut Membre 14
     
    D'accord, tu nous diras si c'est tout bon =D

    J'espère tu as bien compris, si c'est un oral tu devras bien expliquer ;)

    Bon courage.

    Edit : grilled de 3 secondes =O
    0
  14. fmiram Messages postés 5 Statut Membre
     
    Heureusement c'est écrit :)

    Ce qui n'empêche que ça va être chaud parce que c'est un des cours le plus dur avec le language machine mais aussi la théorie sur tous les composants de l'ordi, les logiciels,.....

    Merci pour vos encouragement :D
    0