{Fonction de mapping dans LHM} uses dos, crt; Const Max = 100; d = 2; var M : array[0..Max, 0..Max] of integer; ll : integer; { Nombre de séquences } L : integer ; { Nombre de séquences } r : integer; {ll = L.d + r} k, indx, indy : integer; function puis2 ( a : integer) : integer; var res : integer; i : integer; begin res := 1 ; for i:=1 to a do res := res * 2; puis2 := res; end; procedure imprimer(a, b: integer); var i, j : integer; begin for j:=0 to b do begin for i:= 0 to a do Write( M[i, j], ' ') ; writeln; end; end; procedure remplir (k: integer; i, j : integer); var L, r : integer; x, y : integer; begin writeln(' k=',k, ' i=', i, ' j=', j); L := (k-1) Div d; r := (k-1) Mod d; writeln('L =', L, 'r=', r); for y:=0 to j do for x:= 0 to i do begin if r=0 then M[x+Puis2(L), y] := M[x, y] + Puis2(k-1) else M[x, y+Puis2(L)] := M[x, y] + Puis2(k-1) ; end; end; Begin clrscr; M[0, 0] := 0; indx:= 0; indy :=0; For k:=1 to 4 do begin remplir(k, indx, indy); L := (k-1) Div d; r := (k-1) Mod d; writeln('$$$ L =', L, 'r=', r); case r of 0 : indx := indx + puis2(L) else indy := indy + puis2(L); end; imprimer(indx, indy); end; readln; end.