RosettaCodeData/Task/Mayan-numerals/ANSI-BASIC/mayan-numerals.basic
2026-04-30 12:34:36 -04:00

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