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

晴晴晴晴晴晴晴晴雨晴晴晴晴雨雨晴雨晴雨晴晴雨雨晴晴晴晴晴晴晴

晴晴晴雨晴晴晴晴晴晴晴晴晴晴雨雨晴晴晴晴雨雨晴晴晴晴雨晴雨晴

晴晴晴晴晴晴晴晴晴晴晴晴晴雨晴晴晴晴晴晴晴晴雨晴雨晴雨雨雨晴

晴晴晴晴雨雨雨晴晴晴晴晴晴晴晴晴雨晴晴晴晴雨晴晴晴晴晴晴晴雨

晴晴晴晴雨晴雨晴雨晴晴晴晴晴雨晴晴雨雨雨雨晴晴雨雨雨雨晴晴晴

晴晴晴晴晴晴晴晴雨晴晴晴晴晴晴晴晴晴晴晴晴晴晴晴晴晴晴晴晴晴

晴晴晴晴晴晴晴晴晴晴晴晴晴晴晴晴晴晴晴晴晴晴雨晴晴晴晴晴雨晴

晴晴晴晴晴晴晴晴晴晴晴晴晴雨晴晴晴晴晴雨晴晴雨晴晴晴晴晴晴雨

晴晴雨晴雨雨雨晴晴晴雨雨晴晴晴晴晴雨晴雨晴雨晴晴晴晴晴雨晴晴

晴雨雨晴晴雨晴晴晴雨晴晴晴晴晴晴晴晴晴晴晴晴雨晴晴雨晴晴晴晴

晴晴晴晴雨晴晴晴晴晴雨雨雨晴晴晴晴晴晴晴晴晴晴晴晴晴晴晴晴晴

晴雨晴晴晴晴晴雨晴晴晴晴晴雨晴雨雨晴晴雨雨晴晴雨晴晴雨晴晴晴

雨晴晴晴晴