Algorithme pseudo code

Résolu
Bonjour
je débute en programmation et algorithme

Je voudrais savoir si vous voyez une erreur dans mon programme :
Voici l'énoncé :
saisir un n° de 2 chiffres qui doit être compris entre 1 et 99
tant que la saisie ne correspond pas à ce qui est attendu (par exemple: si on saisit un numéro de 3 chiffres ou alors une chaine de caractères telle que "vingt trois" ou autres...), redemandez la saisie (étape précédente)
si le n° saisi est 49, affichez "vous habitez en Maine et Loire"
si le n° saisi est 85, affichez "vous habitez en Vendée"
si le n° saisi est 44, affichez "vous habitez en Loire Atlantique"
si le n° saisi est 53, affichez "vous habitez en Mayenne"
si le n° saisi est 73, affichez "vous habitez en Sarthe"
pour les autres nombres, affichez "vous n'habitez pas dans les Pays de Loire"

ma solution :

VAR
    nombre entier, département

DEBUT
    Afficher "Saisir un numero de 2 chiffres qui doit petre compris entre 1 et 99"
    Saisir nombre 2 chiffres
    
    Afficher "Entrer votre département"
    Saisir dept
    Selon dept
    Si (49)
        Afficher "Vous habitez en Maine et Loire"
    Si (85)    
        Afficher "Vous habitez en Vendée"
    Si (44)
        Afficher "Vous habitez en Loire Atlantique"
    Si (53)
        Afficher "Vous habitez en Mayenne"
    Si (73)
        Afficher "Vous habitez en Sarthe"
        
    Sinon
    
    Afficher "Vous n'habitez pas dans les Pays de la Loire"
    
    Fin selon
    
FIN


Merci de votre aide

10 réponses

  1. Bonjour,
    Je ne vois pas d'erreur de logique, à part que "dept" et "département" on l'air d'être la même chose.
    0
    1. Bonjour, si on pouvait parler syntaxe en pseudo-code, il y a un petit truc, avec le selon: on ne sais pas où il s'arrête. Et en plus ton indentation n'aide pas à s'y retrouver

      Tel que c'est écrit on peut très bien comprendre qu'il ne fait qu'une ligne, exemple avec 85

          Selon dept 'ne fait rien, puisqu'il ne fait qu'une ligne
          Si (49)'non
              Afficher "Vous habitez en Maine et Loire" 
          Si (85) 'oui, on affiche
              Afficher "Vous habitez en Vendée"
          Si (44)'non
              Afficher "Vous habitez en Loire Atlantique"
          Si (53)'non
              Afficher "Vous habitez en Mayenne"
          Si (73)'non, c'est pas 73, mais comme y'a un sinon, on va afficher l'autre phrase
              Afficher "Vous habitez en Sarthe"
              
          Sinon
      
         Afficher "Vous n'habitez pas dans les Pays de la Loire"
      


      Avec une Fin Selon et une indentation cohérente, ça ne porte plus à confusion
          Selon dept
            Si (49)
                Afficher "Vous habitez en Maine et Loire"
            Si (85)    
                Afficher "Vous habitez en Vendée"
            Si (44)
                Afficher "Vous habitez en Loire Atlantique"
            Si (53)
                Afficher "Vous habitez en Mayenne"
            Si (73)
                Afficher "Vous habitez en Sarthe"   
            Sinon
                Afficher "Vous n'habitez pas dans les Pays de la Loire"
         Fin selon
      

      Quand j'étais petit, la mer Morte n'était que malade.
      George Burns
      0
      1. bonjour merci pour vos réponse,

        ok whismeril jai repris t remarques pour mieux indenter :

        VAR
            nombre entier, département
        
        DEBUT
            Afficher "Saisir un numero de 2 chiffres qui doit etre compris entre 1 et 99"
            Saisir nombre 2 chiffres
            
            Afficher "Entrer votre département"
            Saisir département
        
            Selon département
               Si (49)
                    Afficher "Vous habitez en Maine et Loire"
               Si (85)    
                    Afficher "Vous habitez en Vendée"
               Si (44)
                    Afficher "Vous habitez en Loire Atlantique"
               Si (53)
                    Afficher "Vous habitez en Mayenne"
               Si (73)
                    Afficher "Vous habitez en Sarthe"   
              Sinon
                   Afficher "Vous n'habitez pas dans les Pays de la Loire"
           Fin selon
            
        FIN
        


        merci
        cdlt
        0
        1. De rien
          0
      2. C'est encore moi, j'ai oublié une partie qui est demandé dans l’énoncé : tant que la saisie ne correspond pas à ce qui est attendu (par exemple: si on saisit un numéro de 3 chiffres ou alors une chaine de caractères telle que "vingt trois" ou autres...), redemandez la saisie (étape précédente)

        voici ma dernière version avec la partie manquante

        VAR
            nombre entier, département
        
        DEBUT
            Afficher "Saisir un numero de 2 chiffres qui doit etre compris entre 1 et 99"
            Saisir nombre 2 chiffres
            
            Tant que la saisie du département n'est pas de type numérique, ou dépasse les 2 caractères, ou est inférieur ou égal à 0 => il y a erreur faire
            Afficher " Saisie erronée : recommencer.  "
            Fin tant que
            
            Afficher « Entrer votre département» 
            Saisir département 
            
            selon département 
              Si (49)
                  Afficher "Vous habitez en Maine et Loire"
              Si (85)    
                  Afficher "Vous habitez en Vendée"
              Si (44)
                  Afficher "Vous habitez en Loire Atlantique"
              Si (53)
                  Afficher "Vous habitez en Mayenne"
              Si (73)
                  Afficher "Vous habitez en Sarthe"   
              Sinon
                  Afficher "Vous n'habitez pas dans les Pays de la Loire"
           Fin selon
           
            
        FIN


        voila est ce correct?

        merci
        0
        1. Oui mais non
          N’est pas numérique => Ok
          Inférieur à zéro => Ok
          Dépasse 2 caractères => tu fais comment?
          0
      3. salut

        oui tu as raison c'est pas complet j'ai corrigé de nouveau

        VAR
        nombre entier, département

        DEBUT
        Afficher "Saisir un numero de 2 chiffres qui doit etre compris entre 1 et 99"
        Saisir nombre 2 chiffres

        Tant que la saisie du département n'est pas de type numérique, ou est inférieur ou égal à 0 => il y a erreur faire
        Afficher " Saisie erronée : recommencer.  "
        Tant que la saisie dépasse 2 caractères si on saisit un numéro de 3 chiffres ou alors une chaine de caractères telle que "vingt trois" ou autres faire
        Afficher " Saisie erronée : recommencer.  "
        Fin tant que

        Afficher « Entrer votre département»
        Saisir département

        selon département
        Si (49)
        Afficher "Vous habitez en Maine et Loire"
        Si (85)
        Afficher "Vous habitez en Vendée"
        Si (44)
        Afficher "Vous habitez en Loire Atlantique"
        Si (53)
        Afficher "Vous habitez en Mayenne"
        Si (73)
        Afficher "Vous habitez en Sarthe"
        Sinon
        Afficher "Vous n'habitez pas dans les Pays de la Loire"
        Fin selon
        Fin si

        FIN


        est ce que tu vois des erreurs? je sais pas si c'est correct de mettre 2 fois Tant que..

        Merci
        0
        1. Pour le coup là c'est moins bien.

          une chaine de caractères telle que "vingt trois"
          ça n'est pas "formel"
          d'autant que tu as précédemment tester si la chaine est numérique.
          ou autres faire
          là c'est la porte ouverte à toutes les fenêtres ;).

          Ton algorithme précédent était presque parfait, il fallait juste dire comment tu comptes tester qu'il s'agit d'un nombre de moins de 3 chiffres.
          0
      4. salut

        ah oui j'ai bousillé un peu le programme la

        alors j'ai rectifié

        VAR
        nombre entier, département

        DEBUT
        Afficher "Saisir un numero de 2 chiffres qui doit etre compris entre 1 et 99"
        Saisir nombre 2 chiffres

        Tant que la saisie du département n'est pas de type numérique, ou est inférieur ou égal à 0 => il y a erreur faire
        Afficher " Saisie erronée : recommencer. "
        Tant que la saisie dépasse 2 caractères si on saisit un numéro de 3 chiffres faire
        Afficher " Saisie erronée : recommencer. "
        Fin tant que

        Afficher « Entrer votre département»
        Saisir département

        selon département
        Si (49)
        Afficher "Vous habitez en Maine et Loire"
        Si (85)
        Afficher "Vous habitez en Vendée"
        Si (44)
        Afficher "Vous habitez en Loire Atlantique"
        Si (53)
        Afficher "Vous habitez en Mayenne"
        Si (73)
        Afficher "Vous habitez en Sarthe"
        Sinon
        Afficher "Vous n'habitez pas dans les Pays de la Loire"
        Fin selon
        Fin si

        FIN[/code]


        merci whishemeril pour ton aide, j'espere que mon programme est ok ;)
        0
        1. Oui, mais y a un tout peu petit peu plus simple

          Tant que la saisie du département n'est pas de type numérique,  ou est inférieur ou égal à 0  ou est supérieur à 99=> il y a erreur faire
          Afficher " Saisie erronée : recommencer. "
          Fin tant que
          0
      5. Modérateur
        Bonjour,
        Je pinaille... mais :
        - Quid des départements d'outre mer
        971 : Guadeloupe - 972 : Martinique - 973 : Guyane - 974 : La Réunion et 976 : Mayotte
        Et le cas de la Corse... qui n'est pas 20, mais
        2A : Corse-du-Sud - 2B : Haute-Corse
        et depuis peu le cas du Rhône où l'INSSE a introduit 69D : Rhône
        69M : Métropole de Lyon
        https://fr.wikipedia.org/wiki/D%C3%A9partement_fran%C3%A7ais

         Très difficile d'attraper un chat noir dans une pièce sombre.
                                      Surtout quand il n'y est pas...
        0
        1. Salut Ed, dans la vraie vie tu aurais parfaitement raison, mais là il s’agit d’un exercice dont l’énoncé stipule clairement que le numéro de département doit être formaté avec 2 chiffres.
          0
        2. Modérateur
          @Utilisateur anonymeC'est bien pour cela que je me déclare "pinailleur".
          Les cas d'école sont malheureusement, trop souvent, éloignés de la réalité du terrain.
          0
      6. ah oui en effet whismeril c'est encore mieux.

        et voici la version finale :

        VAR
        nombre entier, département

        DEBUT
        Afficher "Saisir un numero de 2 chiffres qui doit etre compris entre 1 et 99"
        Saisir nombre 2 chiffres

        Tant que la saisie du département n'est pas de type numérique, ou est inférieur ou égal à 0 ou est supérieur à 99=> il y a erreur faire
        Afficher " Saisie erronée : recommencer. "
        Tant que la saisie dépasse 2 caractères si on saisit un numéro de 3 chiffres faire
        Afficher " Saisie erronée : recommencer.  "
        Fin tant que

        Afficher « Entrer votre département»
        Saisir département

        selon département
        Si (49)
        Afficher "Vous habitez en Maine et Loire"
        Si (85)
        Afficher "Vous habitez en Vendée"
        Si (44)
        Afficher "Vous habitez en Loire Atlantique"
        Si (53)
        Afficher "Vous habitez en Mayenne"
        Si (73)
        Afficher "Vous habitez en Sarthe"
        Sinon
        Afficher "Vous n'habitez pas dans les Pays de la Loire"
        Fin selon
        Fin si

        FIN


        merci bcp pr ton aide
        0
        1. Mais non,
          Si tu vérifies que la saisie est numerique, n’est pas inférieure à 1 et n’est pas supérieure à 99, il n’y a pas besoin d’autres tests.

          « Vingt trois » n’est pas numérique et 101 est supérieur à 99, donc pas besoin de compter les caractères
          0
      7. ok whismeril, si je comprend bien je supprime : Tant que la saisie dépasse 2 caractères si on saisit un numéro de 3 chiffres faire
        Afficher " Saisie erronée : recommencer. " ?
        tu as raison je trouve ca logique en plus,

        merci
        0
        1. Voila
          0
        2. ok merci bcp pour ton aide et t conseils ;)
          0
      8. tu pouvais aussi utiliser (cas de variable)
        0
        1. BONJOUR si si quand on débarque dans une discussion close depuis 2 mois, un peu de politesse est la bienvenue.

          En pseudo code il n'y a pas de syntaxe universelle. Par conséquent, ce que lui appelle "selon" est probablement ce que toi tu appelles "cas de variable".
          0