apx.2432. 天候シミュレーションプログラムと結果例 目次(第5章)へ
Sub MKV_Weather_DO1()
'
Dim CC!, RC!, NY%, NZ%, J1%, J2%, J3%, J4%, J5%, JJ%
DATA_Text$ = ""
RESULT_TEXT$ = ""
NY = 1 ' 年数
OB$ = frmGRAPH2.txtGRAPH21.Text ' 年数または日数
NY = Val(OB$)
If NY > 50 Then NZ = NY Else NZ = NY * 365 ' 日数換算処理
OB$ = frmGRAPH2.txtGRAPH22.Text
CC = Val(OB$)
If CC = 0 Then CC = 0.83 'CC = 晴晴率
OB$ = frmGRAPH2.txtGRAPH23.Text
RC = Val(OB$)
If RC = 0 Then RC = 0.67 'RC = 雨晴率
K = 1 ' 初日は晴れ
OA$ = "晴"
OB$ = "雨"
'
J1 = 0 ' 1日連続雨回数
J2 = 0 ' 2日連続雨回数
J3 = 0 ' 3日連続雨回数
J4 = 0 ' 4日連続雨回数
J5 = 0 ' 5日以上連続雨回数
N = 0 ' 晴の日数
M = 0 ' 雨の日数
L = 0 ' 日数のカウンター
JJ = 0 ' 連日雨日数のカウンター
'-----------------------------------------------------------------------
For L = 1 To NZ
'
Z = Rnd(5) '一様乱数
'
If K = 0 Then '***** 前日が雨のとき *****
If Z > RC Then '雨
DATA_Text$ = DATA_Text$ & OB$
JJ = JJ + 1 '連続雨日数
M = M+ 1 '雨の日数
K = 0
Else '晴
DATA_Text$ = DATA_Text$ & OA$
N = N + 1 '晴の日数
K = 1
'
If JJ = 1 Then J1 = J1 + 1 ' 1日連続雨回数
If JJ = 2 Then J2 = J2 + 1 ' 2日連続雨回数
If JJ = 3 Then J3 = J3 + 1 ' 3日連続雨回数
If JJ = 4 Then J4 = J4 + 1 ' 4日連続雨回数
If JJ >= 5 Then J5 = J5 + 1 ' 5日以上連続雨回数
JJ = 0
End If
'
Else '***** 前日が晴のとき *****
If Z > CC Then '雨
DATA_Text$ = DATA_Text$ & OB$
JJ = 1 '連続雨
M = M + 1 '雨の日数
K = 0
Else'晴
DATA_Text$ = DATA_Text$ & OA$
N = N + 1 '晴の日数
K = 1
End If
End If
'
If L Mod 30 = 0 Then DATA_Text$ = DATA_Text$ & NL$
Next L
'--------------------------------------------------------------------------------------------
If JJ = 1 Then J1 = J1 + 1 ' 1日連続雨回数
If JJ = 2 Then J2 = J2 + 1 ' 2日連続雨回数
If JJ = 3 Then J3 = J3 + 1 ' 3日連続雨回数
If JJ = 4 Then J4 = J4 + 1 ' 4日連続雨回数
If JJ >= 5 Then J5 = J5 + 1 ' 5日以上連続雨回数
'
RESULT_TEXT$ = NL$ & RESULT_TEXT$ & "***** 天候のシミュレーション結果 *****" & NL$ & NL$
OC$ ="このプログラムは,その日の天候を晴と雨に二分して,ある日の天候を予測するものである."
OD$ = " 前日が晴のときは晴晴率(CC)で,前日が雨のときは雨晴率(RC)を用いた." & NL$
OF$ = " シミュレーション年数は," & Str$(NY) & "年間あるいは" & Str$(NZ) &"日間である."
RESULT_TEXT$ = RESULT_TEXT$ & OC$ & OD$ & OF$ & NL$ & NL$
Y = N / L
Y = Y * 100
OX$ = Str$(NY) & "年間あるいは " & Str$(NZ) & "日間の全晴日数は, " & Str$(N)
RESULT_TEXT$ = RESULT_TEXT$ & OX$ & NL$
OX$ = "晴天率は " & Format$(Y, "#0.0#") & " %"
RESULT_TEXT$ = RESULT_TEXT$ & OX$ & NL$
OE$ = "1日連続雨日数は " & Format$(J1, "#0") & " 回 " & Format$(J1, "#0") & " 日" & NL$
OA$ = "2日連続雨日数は " & Format$(J2, "#0") & " 回 " & Format$(J2 * 2, "#0") & " 日" & NL$
OB$ = "3日連続雨日数は " & Format$(J3, "#0") & " 回 " & Format$(J3 * 3, "#0") & " 日" & NL$
OC$ = "4日連続雨日数は " & Format$(J4, "#0") & " 回" & Format$(J4 * 4, "#0") & " 日" & NL$
OD$ = "5日以上連続雨日数は " & Format$(J5, "#0") & " 回 " & Format$(J5 * 5, "#0") & " 日" & NL$
RESULT_TEXT$ = RESULT_TEXT$ & OE$ & OA$ & OB$ & OC$ & OD$ & NL$
OX$ = "1234567890"
frmSEtext1.ASEText1.Text = RESULT_TEXT$ & OX$ & OX$ & OX$ & NL$ & DATA_Text$
frmSEtext1.Show
End Sub
-------------------------------------------------------------------------------------------------------------------------------
●ソフトウェア mc_wethj.exe
********** 天候のシミュレーション結果 **********
このプログラムは,その日の天候を晴と雨に二分して,ある日の天候を予測するもである. 前日が晴のときは晴晴率 (CC)で,前日が雨のときは雨晴率 (RC)を用いた.
シミュレーション年数は, 1年間あるいは 365日間である.
1年間あるいは 365日間の全晴日数は, 290
晴天率は 79.23 %
1日連続雨日数は 39 回 39 日
2日連続雨日数は 8 回 16 日
3日連続雨日数は 4 回 12 日
4日連続雨日数は 2 回 8 日
5日以上連続雨日数は 0 回 0 日
123456789012345678901234567890
晴晴晴晴晴晴晴晴雨晴晴晴晴雨雨晴雨晴雨晴晴雨雨晴晴晴晴晴晴晴
晴晴晴雨晴晴晴晴晴晴晴晴晴晴雨雨晴晴晴晴雨雨晴晴晴晴雨晴雨晴
晴晴晴晴晴晴晴晴晴晴晴晴晴雨晴晴晴晴晴晴晴晴雨晴雨晴雨雨雨晴
晴晴晴晴雨雨雨晴晴晴晴晴晴晴晴晴雨晴晴晴晴雨晴晴晴晴晴晴晴雨
晴晴晴晴雨晴雨晴雨晴晴晴晴晴雨晴晴雨雨雨雨晴晴雨雨雨雨晴晴晴
晴晴晴晴晴晴晴晴雨晴晴晴晴晴晴晴晴晴晴晴晴晴晴晴晴晴晴晴晴晴
晴晴晴晴晴晴晴晴晴晴晴晴晴晴晴晴晴晴晴晴晴晴雨晴晴晴晴晴雨晴
晴晴晴晴晴晴晴晴晴晴晴晴晴雨晴晴晴晴晴雨晴晴雨晴晴晴晴晴晴雨
晴晴雨晴雨雨雨晴晴晴雨雨晴晴晴晴晴雨晴雨晴雨晴晴晴晴晴雨晴晴
晴雨雨晴晴雨晴晴晴雨晴晴晴晴晴晴晴晴晴晴晴晴雨晴晴雨晴晴晴晴
晴晴晴晴雨晴晴晴晴晴雨雨雨晴晴晴晴晴晴晴晴晴晴晴晴晴晴晴晴晴
晴雨晴晴晴晴晴雨晴晴晴晴晴雨晴雨雨晴晴雨雨晴晴雨晴晴雨晴晴晴
雨晴晴晴晴