aboutsummaryrefslogtreecommitdiff
path: root/challenge-215/deadmarshal/modula-3/ch2/src/Ch2.m3
blob: fc2c17ad7b387cd0ea3d40b972b2431774611bd4 (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
26
MODULE Ch2 EXPORTS Main;

IMPORT SIO;

VAR
  A1:ARRAY[0..4] OF INTEGER := ARRAY OF INTEGER{1,0,0,0,1};
  A2:ARRAY[0..4] OF INTEGER := ARRAY OF INTEGER{1,0,0,0,1};
  A3:ARRAY[0..8] OF INTEGER := ARRAY OF INTEGER{1,0,0,0,0,0,0,0,1};

PROCEDURE NumberPlacement(READONLY A:ARRAY OF INTEGER;
                          READONLY Count:INTEGER):BOOLEAN =
  VAR
    C:INTEGER := 0;
  BEGIN
    FOR I := 1 TO LAST(A)-1 DO
      IF (A[I-1] = 0) AND (A[I+1] = 0) THEN INC(C) END
    END;
    RETURN C >= Count
  END NumberPlacement;

BEGIN
  SIO.PutBool(NumberPlacement(A1,1)); SIO.Nl();
  SIO.PutBool(NumberPlacement(A2,2)); SIO.Nl();
  SIO.PutBool(NumberPlacement(A3,3)); SIO.Nl();
END Ch2.