49 lines
1.1 KiB
Text
49 lines
1.1 KiB
Text
100 REM Mayan numerals
|
|
110 DIM D(6)
|
|
120 LET MaxM = UBOUND(D)! maximum number of digits
|
|
130 DIM L$(0 TO 5)
|
|
140 FOR I = 0 TO 5
|
|
150 READ L$(I)
|
|
160 NEXT I
|
|
170 LINE INPUT PROMPT "Number: ": I$
|
|
180 LET M = LEN(I$)
|
|
190 IF M > MaxM THEN LET M = MaxM
|
|
200 FOR I = 1 TO M
|
|
210 LET D(I) = VAL(MID$(I$, I, 1))
|
|
220 NEXT I
|
|
230 FOR J = M - 1 TO 1 STEP -1
|
|
240 FOR I = 1 TO J
|
|
250 LET D(I + 1) = D(I + 1) + 10 * (MOD(D(I), 2))
|
|
260 LET D(I) = INT(D(I) / 2)
|
|
270 NEXT I
|
|
280 NEXT J
|
|
290 LET S = 1
|
|
300 DO WHILE D(S) = 0 AND S < M
|
|
310 LET S = S + 1
|
|
320 LOOP
|
|
330 FOR I = S TO M
|
|
340 PRINT "+----";
|
|
350 NEXT I
|
|
360 PRINT "+"
|
|
370 FOR L = 3 TO 0 STEP -1
|
|
380 FOR I = S TO M
|
|
390 IF D(I) = 0 AND L = 0 THEN
|
|
400 PRINT "| @ ";
|
|
410 ELSE
|
|
420 LET N = D(I) - 5 * L
|
|
430 IF N > 5 THEN
|
|
440 LET N = 5
|
|
450 ELSEIF N < 0 THEN
|
|
460 LET N = 0
|
|
470 END IF
|
|
480 PRINT "|"; L$(N);
|
|
490 END IF
|
|
500 NEXT I
|
|
510 PRINT "|"
|
|
520 NEXT L
|
|
530 FOR I = S TO M
|
|
540 PRINT "+----";
|
|
550 NEXT I
|
|
560 PRINT "+"
|
|
570 DATA " "," . "," .. ","... ","....","----"
|
|
580 END
|