(!******************************************************
Mosel User Guide Example Problems
=================================
file minmax.mos
```````````````
The 'if-then-elif-then' selection statement.
(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
! Generate a set of 50 randomly chosen numbers
forall(i in 1..50)
SNumbers += {round(random*200)-100}
writeln("Set: ", SNumbers, " (size: ", getsize(SNumbers), ")")
minval:=UB
maxval:=LB
forall(p in SNumbers)
if p<minval then
minval:=p
elif p>maxval 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
|