Data update
This commit is contained in:
parent
4bb20c9b71
commit
cbaf4c4b64
12390 changed files with 318560 additions and 27248 deletions
71
Task/Mayan-numerals/Modula-2/mayan-numerals.mod2
Normal file
71
Task/Mayan-numerals/Modula-2/mayan-numerals.mod2
Normal file
|
|
@ -0,0 +1,71 @@
|
|||
MODULE MayanNums;
|
||||
(* Mayan numerals *)
|
||||
|
||||
FROM STextIO IMPORT
|
||||
ReadString, SkipLine, WriteLn, WriteString;
|
||||
FROM SWholeIO IMPORT
|
||||
WriteInt;
|
||||
|
||||
CONST
|
||||
MaxM = 20; (* maximum number of digits *)
|
||||
|
||||
TYPE
|
||||
TMayanDigit = ARRAY [0 .. 4] OF CHAR; (* a single digit *)
|
||||
TLS = ARRAY [0 .. 5] OF TMayanDigit;
|
||||
|
||||
CONST
|
||||
LS = TLS{" "," . "," .. ","... ","....","----"};
|
||||
|
||||
VAR
|
||||
D : ARRAY [1 .. MaxM] OF CARDINAL;
|
||||
InputNumber: ARRAY [1 .. MaxM] OF CHAR;
|
||||
I, J, L, M, S: CARDINAL;
|
||||
N: INTEGER;
|
||||
BEGIN
|
||||
WriteString("Number: ");
|
||||
ReadString(InputNumber);
|
||||
SkipLine;
|
||||
M := LENGTH(InputNumber);
|
||||
IF M > MaxM THEN M := MaxM END;
|
||||
FOR I := 1 TO M DO
|
||||
D[I] := ORD(InputNumber[I]) - ORD("0");
|
||||
END;
|
||||
FOR J := M - 1 TO 1 BY -1 DO
|
||||
FOR I := 1 TO J DO
|
||||
D[I + 1] := D[I + 1] + 10 * (D[I] MOD 2);
|
||||
D[I] := D[I] DIV 2
|
||||
END
|
||||
END;
|
||||
S := 1;
|
||||
WHILE (D[S] = 0) AND (S < M) DO
|
||||
S := S + 1
|
||||
END;
|
||||
FOR I := S TO M DO
|
||||
WriteString("+----")
|
||||
END;
|
||||
WriteString("+");
|
||||
WriteLn;
|
||||
FOR L := 3 TO 0 BY -1 DO
|
||||
FOR I := S TO M DO
|
||||
IF (D[I] = 0) AND (L = 0) THEN
|
||||
WriteString("| @ ")
|
||||
ELSE
|
||||
N := D[I] - 5 * L;
|
||||
IF N > 5 THEN
|
||||
N := 5
|
||||
ELSIF N < 0 THEN
|
||||
N := 0
|
||||
END;
|
||||
WriteString("|");
|
||||
WriteString(LS[N]);
|
||||
END
|
||||
END;
|
||||
WriteString("|");
|
||||
WriteLn
|
||||
END;
|
||||
FOR I := S TO M DO
|
||||
WriteString("+----")
|
||||
END;
|
||||
WriteString("+");
|
||||
WriteLn
|
||||
END MayanNums.
|
||||
Loading…
Add table
Add a link
Reference in a new issue