Algorithme pseudo code

Résolu
moon136 Messages postés 80 Statut Membre -  
 Utilisateur anonyme -
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. Grandasse_ Messages postés 973 Date d'inscription   Statut Membre Dernière intervention   613
     
    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
  2. Utilisateur anonyme
     
    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
  3. moon136 Messages postés 80 Statut Membre
     
    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. Utilisateur anonyme
       
      De rien
      0
  4. moon136 Messages postés 80 Statut Membre
     
    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. Utilisateur anonyme
       
      Oui mais non
      N’est pas numérique => Ok
      Inférieur à zéro => Ok
      Dépasse 2 caractères => tu fais comment?
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. moon136 Messages postés 80 Statut Membre
     
    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. Utilisateur anonyme
       
      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
  7. moon136 Messages postés 80 Statut Membre
     
    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. Utilisateur anonyme
       
      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
  8. baladur13 Messages postés 47339 Date d'inscription   Statut Modérateur Dernière intervention   14 395
     
    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. Utilisateur anonyme
       
      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
      1. baladur13 Messages postés 47339 Date d'inscription   Statut Modérateur Dernière intervention   14 395 > Utilisateur anonyme
         
        C'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
  9. moon136 Messages postés 80 Statut Membre
     
    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. Utilisateur anonyme
       
      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
  10. moon136 Messages postés 80 Statut Membre
     
    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. Utilisateur anonyme
       
      Voila
      0
    2. moon136 Messages postés 80 Statut Membre
       
      ok merci bcp pour ton aide et t conseils ;)
      0
  11. alphaamadoudiallo275 Messages postés 2 Statut Membre
     
    tu pouvais aussi utiliser (cas de variable)
    0
    1. Utilisateur anonyme
       
      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