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

Turbo Pascal Discussion :

[TP] Tirer 10 dates et afficher la plus petite [Non suivi]


Sujet :

Turbo Pascal

  1. #1
    Candidat au Club
    Inscrit en
    Août 2005
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 2
    Points : 2
    Points
    2
    Par défaut [TP] Tirer 10 dates et afficher la plus petite
    bonjour ;
    je viens de commencer le developpement avec pascal (pascal 7.0)
    EN fait je voudrai une programmation sous pascal qui me permet de donner 10 dates (jour ; mois, annee) et dafficher la plus petite

  2. #2
    Rédacteur/Modérateur
    Avatar de M.Dlb
    Inscrit en
    Avril 2002
    Messages
    2 464
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 464
    Points : 4 308
    Points
    4 308
    Par défaut
    Il suffit de les "convertir" en nombre : année * (30*12) + mois * 30 + jour

    Tu fais des calculs avec ça ensuite
    M.Dlb - Modérateur z/OS - Rédacteur et Modérateur Pascal

  3. #3
    Membre expert
    Avatar de Eric Sigoillot
    Inscrit en
    Mars 2002
    Messages
    1 212
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 212
    Points : 3 369
    Points
    3 369
    Par défaut
    Bonjour,

    Pour tirer les 10 dates, il faudra faire appel aux fonctions Randomize et Random.
    Il faut prendre garde aux intervalles pour les valeurs jour, mois et année. Ainsi, année doit être compris entre deux bornes que tu choisiras, puis mois entre 1 et 12, et enfin jour en fonction du mois. Là intervient le problème des années bissextiles.
    Une année est bissextile quand elle est divisible par 4, mais pas par 100 (par exemple, 2004 est bissextile, car 2004 / 4 = 501 et 2004 / 100 n'est pas entier, mais pas 2000, car 2000 / 4 = 500 et 2000 / 100 = 20). La répartition des jours par mois est alors :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Année non bissextile : 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31
    Année bissextile : 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31
    Ensuite, il faut trier les dates. On peut essayer de faire des multiplications, ou bien encoder les dates avec PackTime.
    Mais on peut aussi tout bêtement commencer par trier les années, puis les mois et enfin les jours.

    @++

    PS: Inutile de te préciser qu'on ne fera pas ce programme à ta place
    Règles du forum
    F.A.Q Pascal

    Pour me joindre (aucune question technique, merci)

  4. #4
    Expert confirmé
    Avatar de Loceka
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    2 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 2 276
    Points : 4 845
    Points
    4 845
    Par défaut
    Erm... désolé de te contredire Hdd34 mais 2000 était une année bissextile (logique d'ailleurs vu que les années bissextiles tombent tous les 4 ans et que 2004 en est une, comme tu l'as dit).

    Ceci dit, comme je ne suis pas très fort question calendrier, j'ai fait une recherche avant et je suis tombé sur ça :
    http://perso.wanadoo.fr/b.villemin/bissexti.html

    Il y est définit la règle suivante à la fin de la page :

    * Les années multiples de 4 seront bissextiles

    * Les années multiples de 100 ne seront pas bissextiles

    * Les années multiples de 400 seront bissextiles


    Donc dans un programme il y aura 3 vérifications à faire (1 seule ou bien 2 en vérité mais bon...)

  5. #5
    Membre expert
    Avatar de Eric Sigoillot
    Inscrit en
    Mars 2002
    Messages
    1 212
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 212
    Points : 3 369
    Points
    3 369
    Par défaut
    Wep, désolé, je suis allé un peu vite. En fait, le bon exemple à prendre, c'est 1900 et pas 2000. Et donc 1900 n'est pas bissextile.

    Au temps pour moi

    @++
    Règles du forum
    F.A.Q Pascal

    Pour me joindre (aucune question technique, merci)

  6. #6
    HRS
    HRS est déconnecté
    Membre confirmé
    Avatar de HRS
    Inscrit en
    Mars 2002
    Messages
    677
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 677
    Points : 638
    Points
    638
    Par défaut
    Un bon algorithme vaut mieux qu'une explication imprécise

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    si annee mod 100 = 0 alors
       si annee mod 400 = 0 alors
          bissextile
       sinon
          pas bissextile
       finsi
    sinon
       si  annee mod 4 = 0 alors
          bissextile
       sinon
          pas bissextile
       finsi
    finsi

Discussions similaires

  1. Afficher n plus petites valeurs
    Par nomade333 dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 12/02/2009, 18h07
  2. Afficher le plus petit de 10 nombres
    Par crazyvirus dans le forum Débuter
    Réponses: 2
    Dernier message: 19/02/2008, 09h25
  3. Afficher le plus petit des nombres
    Par wkm1807 dans le forum Access
    Réponses: 1
    Dernier message: 06/10/2005, 00h46
  4. afficher les plus grand montants
    Par bertrand_declerck dans le forum Langage SQL
    Réponses: 12
    Dernier message: 19/08/2005, 15h31
  5. Format date : y'a forcément plus simple...
    Par ZERS dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 02/12/2004, 16h28

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