14.2 円曲線の中間点計算 [もくじへ] [トップページへ] [前ページへ]
===================================================
プログラム例題28
円曲線を設置後の中間点計算をおこなえ。
=========================================================
考え方
主要点が決まれば、これを使って中間点の計算になります。この計算に必要
なデータは、主要点の座標値、半径R、線形の向き(右カーブか左カーブ)、計
算開始点の測点番号(追加距離)などです。
中間点の番号は、100mごとの測点番号(ステーションNo.)で表したり、20m ご
との測点番号(No.)を用いて表します。
たとえば、
ステーションNo. 5 + 20.0000 は 5×100 + 20.0000 = 520.0000
20m ごとの No. 25 + 15.2245 は 25×20 + 15.2245 = 515.2245
を表します。
ここでは、ステーションNo.を用いることにします。
計算順序と計算式を示します。
(1)BPからBCの直線部の中間点の計算
BPからBCへの方向角をα1、BPの測点番号を 5 + 45.2345 とします。
No. 5 + 60 までの区間距離 L
L = (5×100 + 60) - (5×100 + 45.2345)
No. 5 + 60 の座標
X = XBP + Lcosα1
Y = YBP + Lsinα1
(2)曲線部の中間点の計算
円の半径をR、BCの測点番号を 8 + 12.5467 とします。
円の中心MからBCへの方向角αM
右カーブの場合
αM = α1 + 90°
左カーブの場合
αM = α1 - 90°
No. 8 + 20 までの区間距離 L
L = (8×100 + 20) - (8×100 + 12.5467)
No. 8 + 20 の座標
右カーブの場合
X = XM + Rcos(αM + L/R)
Y = YM + Lsin(αM + L/R)
左カーブの場合
X = XM + Rcos(αM - L/R)
Y = YM + Lsin(αM - L/R)
(3)ECからEPの直線部の中間点の計算
ECからEPへの方向角をα2、ECの測点番号を 9 + 23.1121 とします。
No. 9 + 40 までの区間距離 L
L = (9×100 + 40) - (9×100 + 23.1121)
No. 9 + 40 の座標
X = XEC + Lcosα2
Y = YEC + Lsinα2
と計算すればいいのですが、区間距離 L を求めるには、もう少し検討する必
要があります。
計算する点が、BPからBCの直線部か、曲線部か、あるいはECからEPの直線
部かを判断しなければなりません。これには、つぎのような順序で計算すれば
いいでしょう。
BPのステーションNo.より追加距離 LBP を計算する。
BPとBCの距離に LBP を加え、BCの追加距離 LBC を計算する。
曲線長 CL に LBC を加え、ECの追加距離 LEC を計算する。
ECとEPの距離に LEC を加え、EPの追加距離 LEP を計算する。
計算点の追加距離を LS とすると、
LS = LBP + DL
@ LS < LBC のとき
初めてこの条件をはずれた時、BC点を計算
BPからBCの直線部の中間点の計算
LS = LS + DL
@へもどる
A LBC ≦ LS < LEC のとき
初めてこの条件をはずれた時、EC点を計算
LBC = LS のとき LS = LS + DL を求めた後、Aへもどる
曲線部の中間点の計算
LS = LS + DL
Aへもどる
B LEC ≦ LS < LEP のとき
初めてこの条件をはずれた時、EP点を計算
LEC = LS のとき LS = LS + DL を求めた後、Bへもどる
ECからEPの直線部の中間点の計算
LS = LS + DL
Bへもどる
プログラム
<HTML>
<HEAD>
<TITLE>例題28(円曲線の中間点計算)</TITLE>
<SCRIPT LANGUAGE="VBScript">
<!--
' 入力データ
Dim XBP,YBP 'BPの座標
Dim XIP,YIP 'IPの座標
Dim XEP,YEP 'EPの座標
Dim RR 'R
'
Dim SP 'ステーションピッチ
Dim DL '等間隔長
Dim FN 'BP
No.FN + SN
Dim SN '
Dim BPT 'BPの追加距離
Dim BCT 'BCの追加距離
Dim ECT 'ECの追加距離
Dim EPT 'EPの追加距離
Dim n '中間点数
'
XBP = -51274.2779
YBP = -31305.5806
XIP = -51813.3467
YIP = -31423.3201
XEP = -52144.8230
YEP = -31551.5362
RR = 2000
'
SP = 100
DL = 20
FN = 0
SN = 0
'
' 出力データ
Dim XBC,YBC 'BCの座標
Dim XEC,YEC 'ECの座標
Dim XSP,YSP 'SPの座標
Dim XM,YM
'Mの座標
Dim IA 'IA
Dim CL 'CL
Dim AL1,AL2 'α1,α2
Dim L1,L2 'L1,L2
Dim TL 'TL
Dim SL 'SL
'
Dim TK(500) '中間点の追加距離
Dim CX(500) '中間点のX座標
Dim CY(500) '中間点のY座標
Dim SA(500) '中間点の接線方向角
Dim GA(500) '中間点の弦方向角
Dim GL(500) '中間点間の直線距離
'
'
'
'
Dim PI
PI =
3.141592653589793
'
'
Function Dist(xa,
ya, xb, yb)
Dim
ss
'
ss
= Sqr((xb-xa)^2 + (yb - ya)^2)
Dist
= ss
'
End Function
'
'
Function Alph(xa,
ya, xb, yb)
Dim
dx, dy
Dim
Thi 'Atn(dy/dx)
'
dx
= xb - xa
dy
= yb - ya
'
If
dx = 0 Then
If
dy = 0 Then Alph = 0
If
dy > 0 Then Alph = PI/2
If
dy < 0 Then Alph = PI*3/2
End
If
'
If
dx <> 0 Then Thi = Atn(dy/dx)
'
If
dx > 0 Then
Alph
= Thi + 2*PI
End
If
'
If
dx < 0 Then
Alph
= Thi + PI
End
If
'
If
Alph >= 2*PI Then Alph = Alph - 2*PI
'
End Function
'
'
' 角度の変換(秒を度分秒に)
'
Function Byodfb(
x, doo, fun, byo )
IF
x<0 Then x = x + 1296000
doo
= Int(x/3600)
fun
= Int((x - doo*3600)/60)
byo
= x - doo*3600 - fun*60
IF
byo<0 Then byo = 0
End Function
'
'
' 四捨五入
'
Function
Rund(x,y)
Dim
sg
If
x>=0 Then sg = 1 Else sg =-1
Rund
= sg*Int(abs(x)*10^y + 0.5)/10^y
End Function
'
'
' 追加距離をステーションNo.に変換
'
Function
Sta(x,fs,es)
fs
= Int(x/SP)
es
= Rund(x - fs*SP,4)
End Function
'
'
'計算ボタンをクリック
'
Sub CAL_OnClick
Dim
x1,y1,x2,y2 'プロシージャ引数
Dim
i '中間点カウント
'
'α1,
α2, L1, L2
x1
= XBP
y1
= YBP
x2
= XIP
y2
= YIP
AL1
= Alph(x1,y1,x2,y2)
L1
= Dist(x1,y1,x2,y2)
x1
= XIP
y1
= YIP
x2
= XEP
y2
= YEP
AL2
= Alph(x1,y1,x2,y2)
L2
= Dist(x1,y1,x2,y2)
'
'IA
IA
= AL2 - AL1
If
IA<0 Then IA = IA + 2*PI
'
'TL
TL
= Abs(RR)*tan(IA/2)
'
'BC
XBC
= XBP + (L1-TL)*cos(AL1)
YBC
= YBP + (L1-TL)*sin(AL1)
'
'EC
XEC
= XIP + TL*cos(AL2)
YEC
= YIP + TL*sin(AL2)
'
'M
If
RR>0 Then
XM
= XBC + RR*cos(AL1+PI/2)
YM
= YBC + RR*sin(AL1+PI/2)
Else
XM
= XBC + Abs(RR)*cos(AL1-PI/2)
YM
= YBC + Abs(RR)*sin(AL1-PI/2)
End
If
'
'SL
SL
= Abs(RR)/cos(IA/2) - Abs(RR)
'
'SP
If
RR>0 Then
XSP
= XIP + SL*cos(AL1+PI/2+IA/2)
YSP
= YIP + SL*sin(AL1+PI/2+IA/2)
Else
XSP
= XIP + SL*cos(AL1-PI/2-IA/2)
YSP
= YIP + SL*sin(AL1-PI/2-IA/2)
End
If
'
'CL
CL
= Abs(RR)*IA
'
'
'
'
'========================= 中間点計算
=====================================
'
' TK() '中間点の追加距離
' CX() '中間点のX座標
' CY() '中間点のY座標
' SA() '中間点の接線方向角
' GA() '中間点の弦方向角(後ろの点からの)
' GL() '中間点間の直線距離(後ろの点からの)
'
' 追加距離
BPT
= FN*SP + SN
BCT
= BPT + L1 - TL
ECT
= BCT + CL
EPT
= ECT + L2 - TL
'
' BP
Ls
= BPT
i
= 1
TK(i)
= Ls
CX(i)
= XBP
CY(i)
= YBP
SA(i)
= AL1
GA(i)
= 0
GL(i)
= 0
'
' BP<BC
Ls
= Int(Ls/DL)*DL + DL
'
Do
While Ls<BCT
i
= i + 1
TK(i)
= Ls
CX(i)
= XBP + (Ls - BPT)*cos(AL1)
CY(i)
= YBP + (Ls - BPT)*sin(AL1)
SA(i)
= AL1
GA(i)
= AL1
GL(i)
= TK(i)-TK(i-1)
Ls
= Ls + DL
Loop
'
' BC
If
Ls <> BCT Then
i
= i + 1
TK(i)
= BCT
CX(i)
= XBC
CY(i)
= YBC
SA(i)
= AL1
GA(i)
= AL1
GL(i)
= TK(i)-TK(i-1)
End
If
'
' BC<EC (円区間)
Do
While Ls<ECT
i
= i + 1
TK(i)
= Ls
If
RR>0 Then
CX(i)
= XM + RR*cos(AL1 - PI/2 + (Ls - BCT)/RR)
CY(i)
= YM + RR*sin(AL1 - PI/2 + (Ls - BCT)/RR)
Else
CX(i)
= XM + Abs(RR)*cos(AL1 + PI/2 + (Ls - BCT)/RR)
CY(i)
= YM + Abs(RR)*sin(AL1 + PI/2 + (Ls - BCT)/RR)
End
If
SA(i)
= AL1 + (Ls - BCT)/RR
x1
= CX(i-1)
y1
= CY(i-1)
x2
= CX(i)
y2
= CY(i)
GA(i)
= Alph(x1,y1,x2,y2)
GL(i)
= Dist(x1,y1,x2,y2)
Ls
= Ls + DL
Loop
'
' EC
If
Ls<>ECT Then
i
= i + 1
TK(i)
= ECT
CX(i)
= XEC
CY(i)
= YEC
SA(i)
= AL2
x1
= CX(i-1)
y1
= CY(i-1)
x2
= CX(i)
y2
= CY(i)
GA(i)
= Alph(x1,y1,x2,y2)
GL(i)
= Dist(x1,y1,x2,y2)
End
If
'
' EC<EP
Do
While Ls<EPT
i
= i + 1
TK(i)
= Ls
CX(i)
= XEC + (Ls - ECT)*cos(AL2)
CY(i)
= YEC + (Ls - ECT)*sin(AL2)
SA(i)
= AL2
GA(i)
= AL2
GL(i)
= TK(i)-TK(i-1)
Ls
= Ls + DL
Loop
'
' EP
If
Ls<>EPT Then
Ls
= EPT
n
= i + 1
TK(n)
= Ls
CX(n)
= XEP
CY(n)
= YEP
SA(n)
= AL2
GA(n)
= AL2
GL(n)
= TK(i)-TK(i-1)
End
If
'
En
'
End Sub
'
'
'
Sub En
Dim i, r
Dim sta1, sta2
'
'
'=================== 円曲線設置計算結果出力
================================
'
document.write
"<CENTER>","*** 円曲線設置計算 ***","</CENTER><BR>"
'
document.write"<CENTER><TABLE
BORDER='0'>"
document.write"<TR
ALIGN='CENTER'>"
document.write"<TD
ALIGN='right'>"," IA","</TD>"
r =
Byodfb(IA*648000/PI,doo,fun,byo)
byo = Rund(byo,2)
document.write"<TD
ALIGN='right'>",doo & "-" & fun &
"-" & byo,"</TD>"
document.write"<TD
ALIGN='right'>","
R","</TD>"
document.write"<TD
ALIGN='right'>",RR,"</TD></TR>"
'
document.write"<TR
ALIGN='CENTER'>"
document.write"<TD
ALIGN='left'>","曲線の要素","</TD></TR>"
document.write"<TR
ALIGN='CENTER'><TD ALIGN='right'>"," TL","</TD>"
TL = Rund(TL,4)
document.write"<TD
ALIGN='right'>",TL,"</TD>"
document.write"<TD
ALIGN='right'>"," (M)
X","</TD>"
XM = Rund(XM,4)
document.write"<TD
ALIGN='right'>",XM,"</TD></TR>"
'
document.write"<TR
ALIGN='CENTER'><TD ALIGN='right'>"," CL","</TD>"
CL = Rund(CL,4)
document.write"<TD
ALIGN='right'>",CL,"</TD>"
document.write"<TD
ALIGN='right'>"," Y","</TD>"
YM = Rund(YM,4)
document.write"<TD
ALIGN='right'>",YM,"</TD></TR>"
'
document.write"<TR
ALIGN='CENTER'><TD ALIGN='right'>"," CL/2","</TD>"
r = Rund(CL/2,4)
document.write"<TD
ALIGN='right'>",r,"</TD></TR>"
'
document.write"<TR
ALIGN='CENTER'><TD ALIGN='right'>"," SL","</TD>"
SL = Rund(SL,4)
document.write"<TD
ALIGN='right'>",SL,"</TD></TR>"
'
document.write"<TR
ALIGN='CENTER'>"
document.write"<TD
ALIGN='left'>","曲線の主要点座標","</TD></TR>"
'
document.write"<TR
ALIGN='CENTER'><TD ALIGN='right'>"," NAME","</TD>"
document.write"<TD
ALIGN='right'>"," X ","</TD>"
document.write"<TD
ALIGN='right'>"," Y ","</TD></TR>"
'
document.write"<TR
ALIGN='CENTER'><TD ALIGN='right'>"," BC","</TD>"
XBC = Rund(XBC,4)
document.write"<TD
ALIGN='right'>",XBC,"</TD>"
YBC = Rund(YBC,4)
document.write"<TD
ALIGN='right'>",YBC,"</TD></TR>"
'
document.write"<TR
ALIGN='CENTER'><TD ALIGN='right'>"," SP","</TD>"
XSP = Rund(XSP,4)
document.write"<TD
ALIGN='right'>",XSP,"</TD>"
YSP = Rund(YSP,4)
document.write"<TD
ALIGN='right'>",YSP,"</TD></TR>"
'
document.write"<TR
ALIGN='CENTER'><TD ALIGN='right'>"," EC","</TD>"
XEC = Rund(XEC,4)
document.write"<TD
ALIGN='right'>",XEC,"</TD>"
YEC = Rund(YEC,4)
document.write"<TD
ALIGN='right'>",YEC,"</TD></TR>"
'
document.write"<TR
ALIGN='CENTER'><TD ALIGN='right'>"," IP","</TD>"
XIP = Rund(XIP,4)
document.write"<TD
ALIGN='right'>",XIP,"</TD>"
YIP = Rund(YIP,4)
document.write"<TD
ALIGN='right'>",YIP,"</TD></TR>"
'
document.write"<TR
ALIGN='CENTER'><TD ALIGN='right'>"," α1","</TD>"
r =
Byodfb(AL1*648000/PI,doo,fun,byo)
byo = Rund(byo,2)
document.write"<TD
ALIGN='right'>",doo & "-" & fun &
"-" & byo,"</TD></TR>"
document.write"<TR
ALIGN='CENTER'><TD ALIGN='right'>"," α2","</TD>"
r =
Byodfb(AL2*648000/PI,doo,fun,byo)
byo = Rund(byo,2)
document.write"<TD
ALIGN='right'>",doo & "-" & fun &
"-" & byo,"</TD></TR>"
document.write"</TABLE>"
document.write"</TABLE>"
document.write"<BR>"
document.write"<BR>"
'
'
'========================= 中間点計算出力
==================================
'
document.write
"<CENTER>","*** 中間点計算 ***","</CENTER><BR>"
'
document.write"<CENTER><TABLE
BORDER='0'>"
document.write"<TR
ALIGN='CENTER'>"
document.write"<TD
ALIGN='left'>","STA.No.","</TD>"
document.write"<TD
ALIGN='center'>","X","</TD>"
document.write"<TD
ALIGN='center'>","Y","</TD>"
document.write"<TD
ALIGN='right'>","S","</TD>"
document.write"<TD
ALIGN='right'>","弦方向角","</TD>"
document.write"<TD
ALIGN='right'>","接線方向角","</TD>"
document.write"</TR>"
'
For i = 1 to n
document.write"<TR
ALIGN='CENTER'>"
r = Sta(TK(i),sta1,sta2)
document.write"<TD
ALIGN='left'>",sta1 & "+" &
sta2,"</TD>"
CX(i) = Rund(CX(i),4)
CY(i) = Rund(CY(i),4)
document.write"<TD
ALIGN='right'>",CX(i),"</TD>"
document.write"<TD
ALIGN='right'>",CY(i),"</TD>"
GL(i) = Rund(GL(i),4)
document.write"<TD
ALIGN='right'>",GL(i),"</TD>"
r =
Byodfb(GA(i)*648000/PI,doo,fun,byo)
byo = Rund(byo,1)
document.write"<TD
ALIGN='right'>",doo & "-" & fun &
"-" & byo,"</TD>"
r =
Byodfb(SA(i)*648000/PI,doo,fun,byo)
byo = Rund(byo,1)
document.write"<TD
ALIGN='right'>",doo & "-" & fun &
"-" & byo,"</TD></TR>"
Next
document.write"</TABLE>"
End Sub
'
-->
</SCRIPT>
</HEAD>
<BODY>
<FORM NAME="Form1">
*** 円曲線設置計算 ***<BR>
<BR>
<INPUT TYPE="button" NAME="CAL"
VALUE="計 算">
<HR>
</FORM>
</BODY>
</HTML>
入力データと実行結果
入力データ
BPの座標
XBP =
-51274.2779
YBP =
-31305.5806
IPの座標
XIP =
-51813.3467
YIP =
-31423.3201
EPの座標
XEP =
-52144.8230
YEP =
-31551.5362
半径
RR =
2000.0000
ステーションピッチ
SP = 100
等間隔長
DL =
20
計算開始点の追加距離
No. 0
+ 0
※データ入力は、代入文で直接代入しています。
※ボタンをクリックして実行します。
計算結果の一部
プログラムの説明
曲線設置のプログラムに、中間点計算のプログラムを追加する形で作成して
あります。
VBScript では、データファイルが作れないので(クッキーという特別なファイル
は使えます)、設置計算から連続して計算した方が、データ入力の手間がはぶ
けます。
そのため、プログラムがかなり長くなりデバッグ(虫取り)も難しくなるので、な
るべく注釈を多く入れた方がいいでしょう。
Dim
SP 'ステーションピッチ
Dim DL '等間隔長
Dim FN 'BP
No.FN + SN
Dim SN '
Dim BPT 'BPの追加距離
Dim BCT 'BCの追加距離
Dim ECT 'ECの追加距離
Dim EPT 'EPの追加距離
Dim n '中間点数
中間点計算で追加した、グローバル変数です。グローバルにするのは、どの
プロシージャからも使えるようにするためです。変数名はなるべく分かりやす
い名前にした方がいいですが、あまり長すぎるとスペルミスにつながりますの
で注意して下さい。
' 追加距離をステーションNo.に変換
'
Function Sta(x,fs,es)
fs
= Int(x/SP)
es
= Rund(x - fs*SP,4)
End Function
追加距離をステーションNo.に変換するプロシージャです。端数は、小数第4位
に丸めるように、四捨五入のプロシージャを呼び出しています。
このように、プロシージャの中から他のプロシージャも呼び出すこともできるの
です。
'=========================
中間点計算 =====================================
'
' TK() '中間点の追加距離
' CX() '中間点のX座標
' CY() '中間点のY座標
' SA() '中間点の接線方向角
' GA() '中間点の弦方向角(後ろの点からの)
' GL() '中間点間の直線距離(後ろの点からの)
'
' 追加距離
BPT = FN*SP +
SN
BCT
= BPT + L1 - TL
ECT
= BCT + CL
EPT
= ECT + L2 - TL
中間点計算の始めの部分です。プログラムが長くなると、個々の変数名を覚
えておくのは大変なので、注釈を入れます。
追加距離は、主要点の追加距離です。計算中の追加距離と主要点の追加
距離を比較して、直線部か曲線部かを判定するときに、この値が必要になり
ます。
' BP
Ls = BPT
i = 1
TK(i) = Ls
CX(i) = XBP
CY(i) = YBP
SA(i) = AL1
GA(i) = 0
GL(i) = 0
'
' BP<BC
Ls = Int(Ls/DL)*DL + DL
'
Do While Ls<BCT
i = i
+ 1
TK(i)
= Ls
CX(i)
= XBP + (Ls - BPT)*cos(AL1)
CY(i)
= YBP + (Ls - BPT)*sin(AL1)
SA(i)
= AL1
GA(i)
= AL1
GL(i)
= TK(i)-TK(i-1)
Ls =
Ls + DL
Loop
BPからBC部の計算です。弦長と弦方向角は、前点からの値です。そのため、
開始点では、どちらも0にしてあります。
変数 Ls は、計算中の点の追加距離です。結果表示のときにステーションNo.
に変換します。
' BC
If Ls <> BCT Then
i = i
+ 1
TK(i)
= BCT
CX(i) = XBC
CY(i) = YBC
SA(i)
= AL1
GA(i)
= AL1
GL(i)
= TK(i)-TK(i-1)
End If
'
' BC<EC (円区間)
Do While Ls<ECT
i = i
+ 1
TK(i)
= Ls
If
RR>0 Then
CX(i)
= XM + RR*cos(AL1 - PI/2 + (Ls - BCT)/RR)
CY(i)
= YM + RR*sin(AL1 - PI/2 + (Ls - BCT)/RR)
Else
CX(i)
= XM + Abs(RR)*cos(AL1 + PI/2 + (Ls - BCT)/RR)
CY(i)
= YM + Abs(RR)*sin(AL1 + PI/2 + (Ls - BCT)/RR)
End If
SA(i)
= AL1 + (Ls - BCT)/RR
x1 =
CX(i-1)
y1 =
CY(i-1)
x2 =
CX(i)
y2 =
CY(i)
GA(i)
= Alph(x1,y1,x2,y2)
GL(i)
= Dist(x1,y1,x2,y2)
Ls =
Ls + DL
Loop
BCからEC部の計算です。右カーブか左カーブかで、計算式が異なる部分で
す。
接線方向角 SA(i) は、半径 RR の符号を使って1つの式で表せます。
弦方向角 GA(i) と弦長 GL(i) は2点の座標から求めています。
' EC
If Ls<>ECT Then
i = i
+ 1
TK(i)
= ECT
CX(i)
= XEC
CY(i)
= YEC
SA(i)
= AL2
x1 =
CX(i-1)
y1 =
CY(i-1)
x2 =
CX(i)
y2 =
CY(i)
GA(i)
= Alph(x1,y1,x2,y2)
GL(i)
= Dist(x1,y1,x2,y2)
End If
'
' EC<EP
Do While Ls<EPT
i = i
+ 1
TK(i)
= Ls
CX(i)
= XEC + (Ls - ECT)*cos(AL2)
CY(i)
= YEC + (Ls - ECT)*sin(AL2)
SA(i)
= AL2
GA(i)
= AL2
GL(i)
= TK(i)-TK(i-1)
Ls =
Ls + DL
Loop
'
' EP
If Ls<>EPT Then
Ls =
EPT
n = i
+ 1
TK(n)
= Ls
CX(n)
= XEP
CY(n)
= YEP
SA(n)
= AL2
GA(n)
= AL2
GL(n)
= TK(i)-TK(i-1)
End If
ECからEP部までの計算です。変数 n は、計算された中間点の総数です。
計算結果の出力は、設置計算の後に追加しました。
りょうかんのアドバイス
ちょっと難しいでしたね。特に、計算する点が始めの直線部、曲線部、後の直
線部のどの部分に属するのかを判別するのが難しかったと思います。
こういう時、役に立つのがフローチャートです。りょうかんも複雑な計算のとき
には、フローチャートを書きます。今回は、フローチャートを書けば便利なんだ
がと思いながら、結局最後まで書きませんでした。面倒くさいのはやっぱりだ
めです。
しかし、皆さんはいま勉強中です。プログラミングの専門書で、しっかり勉強し
てください。フローチャートはプログラミングの基礎です。
また、このようにプログラムが長くなってくると、プログラムミスを探すのがたい
へんです。プログラムを入力したら、まず保存してから実行します。このとき、
プログラムに文法的なエラーがあると、エラーのある行を知らせてくれますが、
注釈で行番号をところどころに入れておくと便利です。
次回は、『巾杭計算』の予定です。(10月25日ごろ)
この講座に対する、ご意見やご要望はメールでお願いします。
『VBScriptによる測量計算プログラミング入門』
講師 りょうかん