洪水発生時刻をif文で判定しているので、今後while文等に変更する必要があると思われる。
Scifuncブロック中に以下が書いてある。
//----------------------------------------
y1=0
i=1
S=[3, 10, 11, 12, 19, 20, 30, 45, 66, 80]
V=[2, 8, 9, 8, 9, 11, 12, 9, 11, 8]
for i=1 : 10;
if Time >S(i) then y1=V(i);
if Time > S(i)+0.9 then y1=0;
end;
end;
end;
//----------------------------------------
(1)毎時間、現在の時間が洪水発生時刻かどうか、全ての配列データ//----------------------------------------
(数百あると思われる)と比較しながら計算を進めるのはよくない
と考えられる。
if文をWhile文で置き換えることが考えられるが、複数の判定をしながら
計算を進めることにならないかどうか。
(2) 次の洪水発生時刻を超えたかどうか、それだけを判定しながら計算を進
めるのであれば、より時間が少なくてすむと思われた。
この場合、下のようなフローチャートが考えられた。
----------------------------------------------------
現在が、次(i番目)洪水発生を超えたか?
→NO ・・・ いつもどおり (状態1)
→YES ・・・ フラグ(旗)が立つ (状態2に変わる)
現在が、洪水終了を超えたか?
→NO ・・・ (状態2のまま)
→YES ・・・ フラグ(旗)が降りる(状態1に戻る)
i=i+1
----------------------------------------------------
これを行うために下記のようなプログラム(Scifunc中の記述)を考えたが、現時点ではうまく動いていない。
//----------------------------------------
Time=u1
y1=0
i=1
S=[3, 10, 11, 12, 19, 20, 30, 45, 66, 80]
V=[2, 8, 9, 8, 9, 11, 12, 9, 11, 8]
if Time >S(i) then y1=V(i);
if Time > S(i)+0.9 then y1=0; i=i+1;
end;
end;
0 件のコメント:
コメントを投稿