MODULE intersectionsel; (*--------------------------------------------------------- File name: intersectionsel.pm Author: MM, AG Date: 6/10/05 Problem: This program performs an intersection operation on the selection of two different lines. Example of Execution: (selected is 3) L2 : 3 0 3 1 2 0 3 2 2 1 3 3 2 3 3 L3 : 3 0 3 3 3 0 1 0 2 3 3 3 3 1 1 L1bool: 1 0 1 0 0 0 0 0 0 0 1 1 0 0 0 Cycles: 3 test + 4 assign. Cylces Connex: 1 *) (*---------------------------------------------------------- CONFIGURATION ----------------------------------------------------------*) CONST MAXCELLS=1024; (* MAXCELLS cells in one line *) CONFIGURATION chain[0..(MAXCELLS - 1)]; CONNECTION left: chain [i] -> chain[(i-1) MOD MAXCELLS]; right: chain[i] -> chain[(i+1) MOD MAXCELLS]; (*---------------------------------------------------------- VARIABLES -----------------------------------------------------------*) VAR L1bool, L2, L3: chain OF INTEGER; (*-------------------------------------------------------- MAIN -----------------------------------------------------------*) BEGIN (* initializing data *) L2 := RandomInt(chain) MOD 4; L3 := RandomInt(chain) MOD 4; L1bool := 0; IF ID(chain) < 16 THEN IF L2 = 3 THEN L1bool := 1; END; (* IF *) IF L1bool = 1 THEN; IF L3 = 3 THEN L1bool := 1; ELSE L1bool := 0; END; (* IF *) END; (* IF *) (* printing *) WriteString( " L2 : ");WriteInt( L2 , 2); WriteLn; WriteString( " L3 : ");WriteInt( L3 , 2); WriteLn; WriteString( " L1bool: ");WriteInt( L1bool , 2); WriteLn; END; (* IF *) END intersectionsel.