aboutsummaryrefslogtreecommitdiff
path: root/challenge-269/deadmarshal/modula-3/ch1/src/Ch1.m3
blob: 9127acdeb9729f82a0cd2597924511979a6d341b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
MODULE Ch1 EXPORTS Main;

IMPORT SIO;

VAR 
  A1:ARRAY[0..4] OF CARDINAL := ARRAY OF CARDINAL{1,2,3,4,5};
  A2:ARRAY[0..3] OF CARDINAL := ARRAY OF CARDINAL{2,3,8,16};
  A3:ARRAY[0..4] OF CARDINAL := ARRAY OF CARDINAL{1,2,5,7,9};

PROCEDURE BitwiseOr(VAR A:ARRAY OF CARDINAL):BOOLEAN =
  VAR Count:CARDINAL;
  BEGIN
    FOR I := FIRST(A) TO LAST(A) DO
      IF A[I] MOD 2 = 0 THEN INC(Count) END;
      IF Count > 1 THEN RETURN TRUE END
    END;
    RETURN FALSE
  END BitwiseOr;

BEGIN
  SIO.PutBool(BitwiseOr(A1)); SIO.Nl();
  SIO.PutBool(BitwiseOr(A2)); SIO.Nl();
  SIO.PutBool(BitwiseOr(A3)); SIO.Nl()
END Ch1.