Mosel Dash und "set of integer"
Allgemein Mosel
Mosel ist nicht nur ein Fluß, sondern auch eine "Programmiersprache"!
Sie erlaubt es, für den Dash Optimizer Modelle zu erstellen.
Falls man dort einmal ein wenig rumkommt, sollte man vor dem Start einmal folgendes versuchen
model ModelName
uses "mmsystem" ! Gain access to system clock
declarations
UNIT : set of integer
SubTime0 : real
TotalTime0 : real
SubTime1 : real
TotalTime1 : real
SubTime2 : real
TotalTime2 : real
U_SET : array(UNIT) of set of integer
u : set of integer
end-declarations
writeln("Begin running model")
TotalTime2 := 0
TotalTime1 := 0
TotalTime0 := 0
l := 10
k := 1
forall( i in 1..10000) do
SubTime0 := gettime
u := k..(k+l)
!k := k + 1
TotalTime0 := TotalTime0 + gettime - SubTime0
SubTime1 := gettime
U_SET(i) := u
TotalTime1 := TotalTime1 + gettime - SubTime1
if i mod 5000 =0 then
writeln("" + i + " : " + TotalTime0 + " : " + TotalTime1 + " : " + TotalTime2)
end-if
end-do
writeln("Subtime1 : " + TotalTime1)
writeln("End running model")
end-model
! == Kommentar
Und jetzt ???
Kategorie Mosel ist nicht nur ein Fluß, sondern auch eine "Programmiersprache"!
Sie erlaubt es, für den Dash Optimizer Modelle zu erstellen.
Falls man dort einmal ein wenig rumkommt, sollte man vor dem Start einmal folgendes versuchen
model ModelName
uses "mmsystem" ! Gain access to system clock
declarations
UNIT : set of integer
SubTime0 : real
TotalTime0 : real
SubTime1 : real
TotalTime1 : real
SubTime2 : real
TotalTime2 : real
U_SET : array(UNIT) of set of integer
u : set of integer
end-declarations
writeln("Begin running model")
TotalTime2 := 0
TotalTime1 := 0
TotalTime0 := 0
l := 10
k := 1
forall( i in 1..10000) do
SubTime0 := gettime
u := k..(k+l)
!k := k + 1
TotalTime0 := TotalTime0 + gettime - SubTime0
SubTime1 := gettime
U_SET(i) := u
TotalTime1 := TotalTime1 + gettime - SubTime1
if i mod 5000 =0 then
writeln("" + i + " : " + TotalTime0 + " : " + TotalTime1 + " : " + TotalTime2)
end-if
end-do
writeln("Subtime1 : " + TotalTime1)
writeln("End running model")
end-model
! == Kommentar
Und jetzt ???
Wenn man den Code so laufen jetzt, dann erhält man folgendes Ergebnis ->
Begin running model
5000 : 0.891 : 0 : 0
10000 : 3.938 : 0 : 0
Subtime1 : 0
End running model
Wenn man den Kommentar entfernt, dann ->
Begin running model
5000 : 0 : 0 : 0
10000 : 0 : 0.015 : 0
Subtime1 : 0.015
End running model
Gruß JJR