VAR A, C, U, S, Z, R, X, B, Y, J : INTEGER;
K :REAL;
BEGIN
WRITE('Donnez l''ann‚e: ');
READLN(A);
IF A>4199 THEN K:=(S-17)/25
ELSE K:=0;
C:=A mod 19;
U:=A mod 100;
S:=A DIV 100;
Z:=(S - TRUNC(S/4) - TRUNC((S-K)/3)) mod 30;
R:=(19 * C + 15 + Z) mod 30;
IF R=29 THEN X:=28
ELSE IF (R=28) AND (A mod 19>10) THEN X:=27
ELSE X:=R;
B:=(2 - S + TRUNC(S/4)) mod 7;
J:=(A + TRUNC(A/4) + Y + B) mod 7;
IF X-J>3 THEN WRITELN('La date de Pƒques est le ',X-J-3,' avril')
ELSE WRITELN('La date de Pƒques est le ',28+X-J,' mars')
END.
La page de l'algorithme.
Date de Pâques.
L'algorithme suivant d‚termine la date du lundi de Pƒques pour l'ann‚e A.
þ si Aó4199, K=0
si A>4199, K=(S-17)/25
þ assigner … C le reste de la division de A par 19
þ assigner … U le reste de la division de A par 100
þ assigner … S le r‚sultat de la division entiŠre de A par 100
þ assigner … Z le reste de la division de S-[S/4]-[(S-K)/3] par 30
þ assigner … R le reste de la division de 19C+15+Z par 30
þ assigner … X la valeur R dans tous les cas
sauf que ù X=28 si R=29
ù X=27 si R=28 et le reste de la division de A par 19 est >10
þ assigner … B le reste de la division de 2-S+[S/4] par 7
þ assigner … J le reste de la division de A+[A/4]+Y+B par 7
þ afficher la date de Pƒques qui est le (28+X-J) mars si X-Jó3
ou le (X-J-3) avril si X-J>3
Rappel: [x] signifie "partie entiŠre de x"
‚crire "Donnez l'ann‚e: "
lire A
si A>4199 alors K <-- (S - 17)/25
sinon K <-- 0
fsi
C <-- A mod 19
U <-- A mod 100
S <-- A \ 100
Z <-- (S - [S/4] - [(S-K)/3]) mod 30
R <-- (19 * C + 15 + Z) mod 30
si R=29 alors X <-- 28
sinon si (R=28) et (A mod 19>10) alors X <-- 27
sinon X <-- R
fsi
fsi
B <-- (2 - S + [S/4]) mod 7
J <-- (A + [A/4] + Y + B) mod 7
si X-J>3 alors ‚crire "La date de Pƒques est le ",X-J-3," avril"
sinon ‚crire "La date de Pƒques est le ",28+X-J," mars"
fsi
Page d'accueil.
PROGRAM Paques;
VAR X, a, b, c, d, e, f, g, h, i, k, l, m, n, p: INTEGER;
BEGIN
WRITELN('Calcul de la date de Pâques.');
WRITE('Introduisez l''année:');
READLN(X);
a := X MOD 19;
b := X DIV 100;
c := X MOD 100;
d := b DIV 4;
e := b MOD 4;
f := (b+8) DIV 25;
g := (b-f+1) DIV 3;
h := (19*a+b-d-g+15) MOD 30;
i := c DIV 4;
k := c MOD 4;
l := (32+2*e+2*i-h-k) MOD 7;
m := (a+11*h+22*l) DIV 451;
n := (h+l-7*m+114) DIV 31;
p := (h+l-7*m+114) MOD 31;
WRITELN('Le jour de Pâques est le', p+1, '-', n, '-', X);
END.