Hello,
Here is the program in QB64
CONST Ordre = 3
DIM SHARED mat(1 TO Ordre, 1 TO Ordre) AS INTEGER, n AS INTEGER
CALL ReadN
CALL MakeMat
CALL SeeMat
END
SUB ReadN
SHARED n AS INTEGER
DIM k AS INTEGER
INPUT "0<=n<=511"; k
IF k < 0 OR k > (2 ^ (Ordre * Ordre)) - 1 THEN PRINT "erreur de valeur de n"; n: END
n = k
END SUB
SUB MakeMat
SHARED mat() AS INTEGER, n AS INTEGER
DIM i AS INTEGER, j AS INTEGER, x AS INTEGER
x = n
FOR i = 1 TO Ordre
FOR j = 1 TO Ordre
mat(i, j) = x MOD 2
x = INT(x / 2)
NEXT j
NEXT i
END SUB
SUB SeeMat
SHARED mat() AS INTEGER
DIM i AS INTEGER, j AS INTEGER
FOR i = 1 TO Ordre
FOR j = 1 TO Ordre
IF mat(i, j) = 0 THEN
PRINT "h|";
ELSE
PRINT "t|";
END IF
NEXT j
PRINT " "
NEXT i
END SUB