Private Sub Command1_Click()
Dim year As Single
Dim byear As Single
Dim age As Single
Dim mde(0 To 100, 0 To 99) As Single
Dim mdeby(1900 To 2100, 0 To 99) As Single
Dim fde(0 To 100, 0 To 99) As Single
Dim fdeby(1900 To 2100, 0 To 99) As Single
Dim md(0 To 120, 1 To 11) As Single
Dim fd(0 To 120, 1 To 11) As Single
Dim h As Single
Open "c:/eli/data/男性生命表.txt " For Input As #4
Do Until EOF(4)
Input #4, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12
age = a1
md(age, 1) = a2
md(age, 2) = a3
md(age, 3) = a4
md(age, 4) = a5
md(age, 5) = a6
md(age, 6) = a7
md(age, 7) = a8
md(age, 8) = a9
md(age, 9) = a10
md(age, 10) = a11
md(age, 11) = a12
Loop
Close #4
Open "c:/eli/data/女性生命表.txt " For Input As #5
Do Until EOF(5)
Input #5, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12
age = a1
fd(age, 1) = a2
fd(age, 2) = a3
fd(age, 3) = a4
fd(age, 4) = a5
fd(age, 5) = a6
fd(age, 6) = a7
fd(age, 7) = a8
fd(age, 8) = a9
fd(age, 9) = a10
fd(age, 10) = a11
fd(age, 11) = a12
Loop
Close #5
For year = 5 To 99
For age = 0 To 99
n1 = year / 5
n2 = Int(n1)
If n2 > 11 Then n2 = 11
n3 = n2 + 1
If n3 > 11 Then n3 = 11
mde(year, age) = md(age, n2) + (n1 - n2) * (md(age, n3) - md(age, n2))
fde(year, age) = fd(age, n2) + (n1 - n2) * (fd(age, n3) - fd(age, n2))
Next
Next
For byear = 1900 To 2100
For age = 0 To 99
year = byear + age - 2000
h = 0
If year < 0 Then h = h + 1
If year > 100 Then h = h + 1
If h = 2 Then mdeby(byear, age) = mde(year, age)
If h = 2 Then fdeby(byear, age) = fde(year, age)
Next
Next
Open "c:/eli/gdata/変形生命表.txt" For Output As #11
For byear = 1900 To 2100
For age = 0 To 99
Write #11, byear, age, mdeby(byear, age), fdeby(byear, age)
Next
Next
Close #11
End Sub
最終更新:2010年03月27日 22:13