Algorithme simple

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. 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
    1. 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
      1. 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
        1. 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
          1. 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
            1. 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
              1. D'accord, j'avais pas compris que c'était un do while ton premier.

                Je m'écrase alors =)
                0
                1. y a pas de mal ^^
                  c'est plus visible avec des accolades ^^
                  0
                  1. 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
                    1. et bien j'te souhait une grosse merde alors ;)
                      0
                      1. 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
                        1. 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
                          1. 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