MODULE selectchar0; (*--------------------------------------------------------- File name: selectchar0.pm Author: AG Date: 10/06/05 Problem: Selects characters from a chain of CHAR, then copies the selected characters into another chain. Example of Execution: Before: L2ch : aaaaaaaaaaaaaaa L3ch : bbbbbbbbbbbbbbb After: L2ch : aaaaaaaaaaaaaaa L1bool: 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 L3ch : babbabbabbabbab Cycles: 1 selection + 1 assignment *) (*---------------------------------------------------------- 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: chain OF INTEGER; L2ch, L3ch: chain OF CHAR; N, RightLimit: INTEGER; (*-------------------------------------------------------- MAIN -----------------------------------------------------------*) BEGIN (* initializing data *) L2ch := 'a'; L3ch:= 'b'; N:= 3; RightLimit:= 16; IF ID(chain) MOD N = 2 THEN L1bool := 1; END; (* IF *) IF ID(chain) < RightLimit THEN IF L1bool = 1 THEN L3ch := L2ch; END; (* IF *) (* printing *) WriteString( " L2ch : ");Write( L2ch); WriteLn; WriteString( " L3ch : ");Write( L3ch); WriteLn; WriteString( " L1bool: ");WriteInt( L1bool , 2); WriteLn; END; (* IF *) END selectchar0.