(!******************************************************* * Mosel Example Problems * * ====================== * * * * file minmax.mos * * ``````````````` * * Example for the use of the Mosel language * * (Min and max of a set of numbers) * * * * (c) 2008 Fair Isaac Corporation * * author: S. Heipcke, 2001 * *******************************************************!) model Minmax ! Start a new model declarations SNumbers: set of integer ! Set of integer numbers LB=-1000 ! Elements of SNumbers must be between LB UB=1000 ! and UB end-declarations forall(i in 1..50) SNumbers += {round(random*200)-100} writeln("Set: ", SNumbers, " (size: ", SNumbers.size, ")") minval:=UB maxval:=LB forall(p in SNumbers) if pmaxval then maxval:=p end-if writeln("Min: ", minval, ", Max: ", maxval) (! Instead of writing the loop above, it is of course possible to use the corresponding operators provided by Mosel: writeln("Min: ", min(p in SNumbers) p, ", Max: ", max(p in SNumbers) p) !) end-model