var c:byte; Procedure a(b:boolean); begin if b then writeln('TRUE') else writeln('FALSE'); end; function Test_a(b:boolean) : string; begin if b then Test_a:='TRUE' else Test_a:='FALSE'; end; begin {main program} a(true); {works} if Test_a(true)<>'TRUE' then halt(1); a(false); {works} if Test_a(false)<>'FALSE' then halt(1); c:=0; a(c>0); {doesn't work} if Test_a(c>0)<>'FALSE' then halt(1); a(c<0); {doesn't work} if Test_a(c<0)<>'FALSE' then halt(1); a(c=0); if Test_a(c=0)<>'TRUE' then halt(1); end.