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 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
| PROGRAM XXXX;
USES Crt, E_Texte;
CONST N_Mot = 4; Nm1 = N_mot - 1;
TYPE Tab_Str = ARRAY[0..N_Mot - 1] OF String[7];
Tab_E = ARRAY[0..N_Mot - 1] OF Word;
CONST ListeM: Tab_Str = (' Maman', ' va', ' au', ' marché');
ListeE: Tab_E = (4, 3, 2, 1);
VAR Total: Word; ListeS: Tab_E;
PROCEDURE Enumeration(Ls: Tab_E);
VAR j, k, x, y: Byte; n, Smax: Word; Touche: Char;
BEGIN
RandSeed:= 1666555999; y:= 7;
REPEAT
Touche:= ReadKey; Inc(y);
FOR j:= 1 TO 6 DO
BEGIN
x:= 13 * j; Dec(x,10); GotoXY(x, y);
n:= Random(Total); k:= N_Mot;
WHILE (n<Ls[k]) DO Dec(k);
E(0010); Write(n:2);
E(0012); Write(k:3);
E(0015); Write(ListeM[k])
END
UNTIL (Touche=#27)
END;
PROCEDURE Init_S(VAR L_: Tab_E; VAR T_: Word);
CONST C1 = 3; L1 = 4; o = 9;
VAR k, s: Word;
BEGIN
E(1011); Wt(C1, L1 - 1, 'Valeurs des coefficients: ');
E(0012); FOR k:= 0 TO Nm1 DO Write(ListeE[k]:9);
E(0011); Wt(C1, L1 + 1, 'Valeurs des sommes successives: ');
E(0014); s:= 0; L_[0]:= s; Write(ListeS[0]:o);
FOR k:= 1 TO Nm1 DO BEGIN
Inc(s, ListeE[k - 1]); L_[k]:= s;
Write(ListeS[k]:o)
END;
Inc(s, ListeE[k]); T_:= s;
E(0010); Write(Total:o)
END;
BEGIN
Init_S(ListeS, Total); Enumeration(ListeS)
END. |
Partager