MODULE select1; (*--------------------------------------------------------- File name: select1.pm Author: Alejandro Giacometti Date: 6/09/05 Problem: This program prints the boolean selection vector associated with a chain(line): 1 if selected cell, 0 if not. Then it modifies another chain(line) using the current selection. Example of Execution: (selected is 3) L2 : 0 2 2 1 3 2 0 0 2 2 1 3 4 2 0 L1bool: 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 L3 : 3 4 4 3 7 4 0 2 0 1 2 7 4 0 2 Cycles: 2 test + 3 assign. Cycles in 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 5; L3 := RandomInt(chain) MOD 5; L1bool := 0; IF ID(chain) < 16 THEN IF L2 = 3 THEN L1bool := 1; END; (* IF *) IF L1bool = 1 THEN; L3 := 7; END; (* IF *) (* printing *) WriteString( " L2 : ");WriteInt( L2 , 2); WriteLn; WriteString( " L1bool: ");WriteInt( L1bool , 2); WriteLn; WriteString( " L3 : ");WriteInt( L3 , 2); WriteLn; END; (* IF *) END select1.