MODULE essai; (*sentiers*) FROM SUPINT IMPORT SuperInteger, Create, Delete, Affect, NumBits, ReadSup, WriteSup; FROM SUPARITH IMPORT Multiply, Divide, Add; FROM MYINOUT IMPORT WriteString, WriteLn, WriteCard, ReadCard, ReadLn; VAR i,k,b,d : CARDINAL; A,B,C,Q,R : SuperInteger; BEGIN WriteLn; WriteString ("Grandeur de A et B (SuperInteger) : "); ReadCard (k); ReadLn; Create(A,k); Create(B,k); Create(C,k); Create(Q,k); Create(R,k); WriteString("Entrez la base de travail : "); ReadCard (b); ReadLn; WriteString ("Entrez le nombre maximal de caracteres par ligne : "); ReadCard (d); ReadLn; WriteString ("Entrez le nombre A initial : "); ReadSup (A,b); ReadLn; WriteString ("Entrez le nombre B a additionner: "); ReadSup (B,b); ReadLn; WriteLn; FOR i := 1 TO 20000 DO (*LD: 'TO 500000' avant *) Add (A,B,C); Affect (C,A); IF i MOD 100 = 0 THEN WriteCard (i,5); WriteString (' '); WriteSup (C,b,d); WriteLn; END; END; WriteLn; WriteString ("A: "); WriteSup (A,b,d); WriteLn; WriteString ("B: "); WriteSup (B,b,d); WriteLn; Divide (A,B,Q,R); WriteString ("Divide (A,B,Q,R) ..."); WriteLn; WriteString ("Q: "); WriteSup (Q,b,d); WriteLn; WriteString ("R: "); WriteSup (R,b,d); WriteLn; WriteLn; Delete(B); Create(B,2*k); WriteString ("Test Affect: Entrez le nombre B: "); ReadSup (B,b); ReadLn; WriteLn; WriteString ('Affect(B,A) et affiche la valeur de A ...'); WriteLn; Affect (B,A); WriteSup (A,b,d); WriteLn; WriteLn; Delete(A); Delete(B); Delete(C); Delete(Q); Delete(R); END essai.