Bonjour,

J'ai essayer de retranscrire ce pseudo code en pascal.

Ecrire une fonction jourAnnee qui prend une date en paramètre et calcul quel jours de l'année nous sommes (on considère que la date passée en paramètre est valide)

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
 
FONCTION jourAnnee(IN jj, mm, aa : Entier) EST
   ! j_mois contient le nombre de jours de chaque mois de l'année !
   CONST j_mois <- (31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
   VAR nb_jours : Entier;
 
   DEBUT
      nb_jours <- 0;
      SI mm > 1 ALORS
         ! On compte les jours des mois terminés !
         POUR i : 1 .. (mm-1) BOUCLE
            nb_jours <- nb_jours + j_mois[i]
         FINBOUCLE;
         ! Si l'année est bissextile et que février est passé, on ajoute le 29 !
         SI (aa MOD 4) = 0 ET mm > 2  ALORS
            nb_jours <- nb_jours + 1
         FINSI;
      FINSI;
      ! On ajoute le nombre de jours du mois courant !
      jourAnnee <- nb_jours + jj;
   FIN jourAnnee;
Voici le code en pascal.

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
 
FUNCTION jourAnnee (jj, mm, aa : integer) : integer;
 
   Type j_mois = (31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
   VAR nb_jours : integer;
 
   BEGIN
 
      nb_jours := 0;
      IF mm > 1 THEN
         FOR i : 1 ..(mm-1) DO
            nb_jours := nb_jours + j_mois[i];
      IF (aa MOD 4) = 0 AND mm > 2 THEN
            nb_jours := nb_jours + 1;
      jourAnnee := nb_jours + jj;
   end;
Je bloque dans la déclaration de la constante, comment déclarer une liste d'entier ?

Merci