IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
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

Pascal Discussion :

Afficher les noms des mois


Sujet :

Pascal

  1. #1
    Candidat au Club
    Femme Profil pro
    Inscrit en
    Décembre 2010
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 34
    Points : 2
    Points
    2
    Par défaut Afficher les noms des mois
    Bonjour a tous!!
    j'ai cet exercice:
    ecrire un programme en pascal qui lit l'ordre de mois et affiche le nom du mois correspondant:
    exemple: le mois 1 cad janvier
    le mois 2 cad fevrier

    mon idée c'est d'utiliser la structure cas of et j'aurais:
    corrigez moi s'il vous plait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    var c:integer;
    case c of
    1:   write("janvier");
    2:   write("fevrier");
    3:   write("mars");
    4:   write("avril");
    5:   write("mai");
    .........

  2. #2
    Membre éprouvé
    Avatar de Dr.Who
    Inscrit en
    Septembre 2009
    Messages
    980
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Septembre 2009
    Messages : 980
    Points : 1 294
    Points
    1 294
    Par défaut
    on peux utiliser un case of ... en effet, mais ça alourdis le code :
    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
    program Month;
     
    uses
      SysUtils;
     
    const
      cMonthNames: array[1..12] of string= (
        'janvier',
        'fevrier',
        'mars',
        'avril',
        'mai',
        'juin',
        'juillet',
        'aout',
        'septembre',
        'octobre',
        'novembre',
        'decembre'
      );
     
     
    function getMonthName(aDate: TDateTime): string;
    var Y,M,D: word;
    begin
      decodeDate(aDate, Y, M, D);
      result := cMonthNames[M];
    end;
     
    begin
      writeLn(getMonthName(now));
      readln;
    end.
    [ Sources et programmes de Dr.Who | FAQ Delphi | FAQ Pascal | Règlement | Contactez l'équipe ]
    Ma messagerie n'est pas la succursale du forum... merci!

  3. #3
    Rédacteur
    Avatar de darrylsite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 299
    Points : 2 501
    Points
    2 501
    Par défaut
    Salut,
    je crois qu'il cherchait seulement un truc du genre
    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
    21
     
    program Month;
     
    const
      cMonthNames: array[1..12] of string= ('janvier', 'fevrier', 'mars',
                                                           'avril', 'mai', 'juin', 'juillet',
                                                           'aout', 'septembre', 'octobre',
                                                           'novembre', 'decembre');
     
    var month;
     
    function getMonthName(byte m): string;
    begin
      getMonthName := cMonthNames[m];
    end;
     
    begin
      readln(month);
      writeLn(getMonthName(month));
      readln;
    end.

  4. #4
    Membre averti
    Avatar de joreveur
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2010
    Messages
    293
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2010
    Messages : 293
    Points : 365
    Points
    365
    Par défaut
    bonjour

    par une boucle :

    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
    program lesmois;
     var mois : array[1..12] of string = (
    	'janvier', 'fevrier', 'mars',
    	'avril', 'mai', 'juin', 'juillet',
    	'aout', 'septembre', 'octobre',
    	'novembre', 'decembre' );
     
     i:integer;  
     
    begin
      for i:=1 to 12 do
      begin
    	writeln(i,' ',mois[i]);
      end;
      readln;
    end.
    ça m'a permis de réinstaller FreePascal sur mon pc ...

  5. #5
    Candidat au Club
    Femme Profil pro
    Inscrit en
    Décembre 2010
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 34
    Points : 2
    Points
    2
    Par défaut re
    Bonjour:
    Corrigez moi SVP:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Program mois;
    Var m:integer;
    Begin 
        readln(m);
        if m=1 then write('janvier');
        if m=2 then write('fevrier');
        if m=3 then write('mars');
       ................................. jusqu'à m=12
    End.

  6. #6
    Membre averti
    Avatar de joreveur
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2010
    Messages
    293
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2010
    Messages : 293
    Points : 365
    Points
    365
    Par défaut
    bonjour,

    voila en reprenant ton code, mais ce n'est pas la meilleure méthode.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Program mois;
    Var m:integer;
    Begin 
        write('num de mois ? ');
        readln(m);
        writeln;
        if m=1 then writeln('janvier');
        if m=2 then writeln('fevrier');
        if m=3 then writeln('mars');
       //................................. jusqu'à m=12
       writeln('programme terminé ');
    End.
    bonne continuation

  7. #7
    Membre du Club
    Homme Profil pro
    au
    Inscrit en
    Mars 2011
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Nouvelle-Zélande

    Informations professionnelles :
    Activité : au
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2011
    Messages : 41
    Points : 52
    Points
    52
    Par défaut
    Citation Envoyé par brunetta24 Voir le message
    Bonjour:
    Corrigez moi SVP:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Program mois;
    Var m:integer;
    Begin 
        readln(m);
        if m=1 then write('janvier');
        if m=2 then write('fevrier');
        if m=3 then write('mars');
       ................................. jusqu'à m=12
    End.

    Il est juste votre programme mais le problème c'est quand vous tapez 1, la machine test la 1er condition elle trouve vraie et elle affiche Janvier, mais elle vas continuer le test jusqu'à m=12.
    pour corriger il faut mettre à partir de m=2 un else if, comme ça dés qu'il trouve le test de la condition vrai elle ignore les autres et vous gagnerez quelque millisecondes, et aussi à la fin faut mettre un else comme ça vous affichera un message d'erreur si il tape une valeur qui n'appartient pas à l'intervalle [1;12].


    Espérant que je vous ai aidé.

  8. #8
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 942
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 942
    Points : 5 654
    Points
    5 654
    Par défaut
    Xoe,

    Tant qu'à vouloir corriger u, code, autant en proposer un plus "propre".

    Dans le cas présent, il faut penser à utiliser un tableau.
    Si les cons volaient, il ferait nuit à midi.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Afficher les noms des colonnes d'une table
    Par witch dans le forum Requêtes
    Réponses: 10
    Dernier message: 07/10/2008, 13h25
  2. Afficher les noms des elements sur des item.
    Par Viscapon dans le forum NetBeans
    Réponses: 1
    Dernier message: 08/05/2008, 11h25
  3. Comment afficher les noms des personnes stockés ds un tableau?
    Par quaresma dans le forum Algorithmes et structures de données
    Réponses: 29
    Dernier message: 26/04/2008, 00h55
  4. Afficher les nom des tables d'une base de donnée
    Par newmar dans le forum Administration
    Réponses: 4
    Dernier message: 02/04/2008, 16h40
  5. [WD10] Afficher les noms des colonnes
    Par devalender dans le forum WinDev
    Réponses: 4
    Dernier message: 24/02/2006, 14h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo