36 lines
994 B
Plaintext
36 lines
994 B
Plaintext
10 DEFINT A-Z: S=5: DIM M(S,S)
|
|
20 PRINT "Lower-triangular matrix:": GOSUB 200: GOSUB 100
|
|
30 PRINT "Upper-triangular matrix:": GOSUB 300: GOSUB 100
|
|
40 PRINT "Symmetric matrix:": GOSUB 400: GOSUB 100
|
|
50 END
|
|
100 REM *** Print the matrix M ***
|
|
110 FOR Y=1 TO S
|
|
120 FOR X=1 TO S
|
|
130 PRINT USING " ##";M(X,Y);
|
|
140 NEXT X
|
|
150 PRINT
|
|
160 NEXT Y
|
|
170 PRINT
|
|
180 RETURN
|
|
200 REM *** Generate the lower-triangular matrix ***
|
|
210 FOR X=1 TO S: FOR Y=1 TO S
|
|
220 ON -(X>Y)-2*(X=Y OR X=1) GOTO 240,250
|
|
230 M(X,Y)=M(X-1,Y-1)+M(X,Y-1): GOTO 260
|
|
240 M(X,Y)=0: GOTO 260
|
|
250 M(X,Y)=1: GOTO 260
|
|
260 NEXT Y,X
|
|
270 RETURN
|
|
300 REM *** Generate the upper-triangular matrix ***
|
|
310 FOR X=1 TO S: FOR Y=1 TO S
|
|
320 ON -(X<Y)-2*(X=Y OR Y=1) GOTO 340,350
|
|
330 M(X,Y)=M(X-1,Y-1)+M(X-1,Y): GOTO 360
|
|
340 M(X,Y)=0: GOTO 360
|
|
350 M(X,Y)=1: GOTO 360
|
|
360 NEXT Y,X
|
|
370 RETURN
|
|
400 REM *** Generate the symmetric matrix ***
|
|
410 FOR X=1 TO S: FOR Y=1 TO S
|
|
420 IF X=1 OR Y=1 THEN M(X,Y)=1 ELSE M(X,Y)=M(X-1,Y)+M(X,Y-1)
|
|
430 NEXT Y,X
|
|
440 RETURN
|