aboutsummaryrefslogtreecommitdiff
path: root/challenge-338/deadmarshal/modula-3/Ch1/src
diff options
context:
space:
mode:
authorAli <adeadmarshal@gmail.com>2025-09-08 13:29:18 +0330
committerAli <adeadmarshal@gmail.com>2025-09-08 13:29:18 +0330
commit3a70cd055cbc8181533ff9188d6753bafaab2c60 (patch)
treed4e44d65dc5a05f5a129edfe0d77c4d45fd5e315 /challenge-338/deadmarshal/modula-3/Ch1/src
parent1d073851f64d0b9edfb3966c3bf788528e72bbf4 (diff)
downloadperlweeklychallenge-club-3a70cd055cbc8181533ff9188d6753bafaab2c60.tar.gz
perlweeklychallenge-club-3a70cd055cbc8181533ff9188d6753bafaab2c60.tar.bz2
perlweeklychallenge-club-3a70cd055cbc8181533ff9188d6753bafaab2c60.zip
TWC338
Diffstat (limited to 'challenge-338/deadmarshal/modula-3/Ch1/src')
-rw-r--r--challenge-338/deadmarshal/modula-3/Ch1/src/Ch1.m353
-rw-r--r--challenge-338/deadmarshal/modula-3/Ch1/src/m3makefile4
2 files changed, 57 insertions, 0 deletions
diff --git a/challenge-338/deadmarshal/modula-3/Ch1/src/Ch1.m3 b/challenge-338/deadmarshal/modula-3/Ch1/src/Ch1.m3
new file mode 100644
index 0000000000..0873efdae8
--- /dev/null
+++ b/challenge-338/deadmarshal/modula-3/Ch1/src/Ch1.m3
@@ -0,0 +1,53 @@
+MODULE Ch1 EXPORTS Main;
+
+IMPORT SIO;
+
+VAR
+ A1 := ARRAY[0..2],[0..3] OF INTEGER{
+ ARRAY[0..3] OF INTEGER{4,4,4,4},
+ ARRAY[0..3] OF INTEGER{10,0,0,0},
+ ARRAY[0..3] OF INTEGER{2,2,2,9}};
+
+ A2 := ARRAY[0..2],[0..1] OF INTEGER{
+ ARRAY[0..1] OF INTEGER{1,5},
+ ARRAY[0..1] OF INTEGER{7,3},
+ ARRAY[0..1] OF INTEGER{3,5}};
+
+ A3 := ARRAY[0..1],[0..2] OF INTEGER{
+ ARRAY[0..2] OF INTEGER{1,2,3},
+ ARRAY[0..2] OF INTEGER{3,2,1}};
+
+ A4 := ARRAY[0..2],[0..2] OF INTEGER{
+ ARRAY[0..2] OF INTEGER{2,8,7},
+ ARRAY[0..2] OF INTEGER{7,1,3},
+ ARRAY[0..2] OF INTEGER{1,9,5}};
+
+ A5 := ARRAY[0..3],[0..2] OF INTEGER{
+ ARRAY[0..2] OF INTEGER{10,20,30},
+ ARRAY[0..2] OF INTEGER{5,5,5},
+ ARRAY[0..2] OF INTEGER{0,100,0},
+ ARRAY[0..2] OF INTEGER{25,25,25}};
+
+PROCEDURE HighestRow(VAR A:ARRAY OF ARRAY OF INTEGER):INTEGER =
+ VAR
+ Max := FIRST(INTEGER);
+ Sum:INTEGER;
+ BEGIN
+ FOR I := FIRST(A) TO LAST(A) DO
+ Sum := 0;
+ FOR J := FIRST(A[I]) TO LAST(A[I]) DO
+ INC(Sum,A[I,J])
+ END;
+ IF Sum > Max THEN Max := Sum END;
+ END;
+ RETURN Max
+ END HighestRow;
+
+BEGIN
+ SIO.PutInt(HighestRow(A1)); SIO.Nl();
+ SIO.PutInt(HighestRow(A2)); SIO.Nl();
+ SIO.PutInt(HighestRow(A3)); SIO.Nl();
+ SIO.PutInt(HighestRow(A4)); SIO.Nl();
+ SIO.PutInt(HighestRow(A5)); SIO.Nl()
+END Ch1.
+
diff --git a/challenge-338/deadmarshal/modula-3/Ch1/src/m3makefile b/challenge-338/deadmarshal/modula-3/Ch1/src/m3makefile
new file mode 100644
index 0000000000..643b33d043
--- /dev/null
+++ b/challenge-338/deadmarshal/modula-3/Ch1/src/m3makefile
@@ -0,0 +1,4 @@
+import("libm3")
+import("libsio")
+implementation("Ch1")
+program("Ch1")