12.度分秒の変換計算 (F-BASIC)
lprint type"dc"
'-----------度分秒計算-------------
defdbl A-H,L,P-Y:defstr N,K:defint I,J,C
PI=3.141592653589793#:EE=0.0000000001#
RA=206264.8062471#:RAA=180#/PI:RRA=PI/180#
def fnRRA(T)=(T*10000#-40#*(fix(T*100#)+60#*fix(T)))/RA
def fnRAA(T)=(fix(T)+fix*1*100#)/60#+(T*100#-fix(T*100#))/36#)/RAA:'---度分秒からラジアンへ
def fnDEG(T)=fix(T)+fix(((T)-fix(T))*100#)/60#+*2/36#:'-----度分秒から度へ------
def fnDMS(T)=fix(T)+fix*3*60#)/100#+*4*60#-fix*5*60#))*0.006#:'-----度から度分秒へ------
def fnASI(T)=atn(T/(sqr(-T*T+1#)))*RAA
def fnACO(T)=(-atn(T/sqr(-T*T+1#))+PI/2#)*RAA
AN1$=" ------------------------------"
'-----------------
*SENTAKU1
cls:locate 20,7:print"計算の項目を選択して下さい。"
locate 25,10:print"角度の変換計算 ・・・・・・1"
locate 25,12:print"ア-クサインの計算・・・・・2"
locate 25,14:print"ア-クコサインの計算・・・・3"
locate 25,16:print"作 業 終 了・・・・・・・4"
locate 30,19:input"番号を選択して下さい。 ";JO
if JO<1 or JO>4 then *SENTAKU1
on JO goto *KAKUDO,*ASIN,*ACOS,*ENDD1
'
goto *SENTAKU1
'
*KAKUDO:'----------角度の変換計算
cls:locate 20,2:print "-----------デ-タの入力-----------"
locate 20,10:input " 方向角 T = ";TT3
'
TR=fnRAA(TT3):TE=fnDEG(TT3):TM=fnDMS(TE):TTA=TR*RAA:T3=fnDMS(TTA):TT=fnRRA(TT3)
TQ=3600#*RAA
'
cls:lprint:lprint:lprint:lprint:lprint
lprint " 度、分、秒とラジアンの変換計算":lprint:lprint:lprint
AN=Tt3:gosub *DOFUNBYO1
lprint using " 方向角 T =#### ## ##.## ";V1,V2,V3:lprint
lprint using " ラジアン T = ###.##########";TR:lprint
lprint using " DEG T =#######.######";TE:lprint
AN=TM:gosub *DOFUNBYO1
lprint using " DMS T =#### ## ##.## ";V1,V2,V3:lprint
lprint using " ラジ->度 T =#######.######";TTA:lprint
AN=T3:gosub *DOFUNBYO1
lprint using " ラジ->DMS T =#### ## ##.## ";V1,V2,V3:lprint
lprint using " ラジアン T = ###.##########";TT:lprint
lprint using " ラジアン秒 T =#######.##########";TQ:lprint
lprint chr$(12);
'
goto *SENTAKU1
'
*ASIN
'
cls:locate 20,2:print "-----------デ-タの入力-----------"
locate 20,10:input " ア-クサイン T = ";T3
'
TA=fnASI(T3):TM=fnDMS(TA):TR=fnRAA(TM)
'
cls:lprint:lprint:lprint:lprint:lprint
lprint " ア-クサイン T から度、分、秒とラジアンの変換計算":lprint:lprint:lprint
lprint using " ア-クサイン T =####.######## ";T3:lprint
lprint using " 度 DEG T =####.######## ";TA:lprint
AN=TM:gosub *DOFUNBYO1
lprint using " 度、分、秒 T =#### ## ##.## ";V1,V2,V3:lprint
lprint using " ラジアン T =####.#########";TR:lprint
lprint chr$(12);
'
goto *SENTAKU1
'
*ACOS
cls:locate 20,2:print "-----------デ-タの入力-----------"
locate 20,10:input " ア-クサイン T = ";T3
'
TA=fnACO(T3):TM=fnDMS(TA):TR=fnRAA(TM)
'
cls:lprint:lprint:lprint:lprint:lprint
lprint " ア-クコサイン T から度、分、秒とラジアンの変換計算":lprint:lprint:lprint
lprint using " ア-クコサインT =####.######## ";T3:lprint
lprint using " 度 DEG T =####.######## ";TA:lprint
AN=TM:gosub *DOFUNBYO1
lprint using " 度、分、秒 T =#### ## ##.## ";V1,V2,V3:lprint
lprint using " ラジアン T =####.#########";TR:lprint
lprint chr$(12);
'
goto *SENTAKU1
'
*DOFUNBYO1:'-----度.分秒の分離-----
VV=abs(AN):V1=fix(VV):V2=fix*6*100#):V3=(VV*100#-fix(VV*100#))*100#
if AN<0 then V1=(V1+0.1)*sgn(AN)
return
'
*ENDD1
'
end
'-----------度分秒計算-------------
defdbl A-H,L,P-Y:defstr N,K:defint I,J,C
PI=3.141592653589793#:EE=0.0000000001#
RA=206264.8062471#:RAA=180#/PI:RRA=PI/180#
def fnRRA(T)=(T*10000#-40#*(fix(T*100#)+60#*fix(T)))/RA
def fnRAA(T)=(fix(T)+fix*1*100#)/60#+(T*100#-fix(T*100#))/36#)/RAA:'---度分秒からラジアンへ
def fnDEG(T)=fix(T)+fix(((T)-fix(T))*100#)/60#+*2/36#:'-----度分秒から度へ------
def fnDMS(T)=fix(T)+fix*3*60#)/100#+*4*60#-fix*5*60#))*0.006#:'-----度から度分秒へ------
def fnASI(T)=atn(T/(sqr(-T*T+1#)))*RAA
def fnACO(T)=(-atn(T/sqr(-T*T+1#))+PI/2#)*RAA
AN1$=" ------------------------------"
'-----------------
*SENTAKU1
cls:locate 20,7:print"計算の項目を選択して下さい。"
locate 25,10:print"角度の変換計算 ・・・・・・1"
locate 25,12:print"ア-クサインの計算・・・・・2"
locate 25,14:print"ア-クコサインの計算・・・・3"
locate 25,16:print"作 業 終 了・・・・・・・4"
locate 30,19:input"番号を選択して下さい。 ";JO
if JO<1 or JO>4 then *SENTAKU1
on JO goto *KAKUDO,*ASIN,*ACOS,*ENDD1
'
goto *SENTAKU1
'
*KAKUDO:'----------角度の変換計算
cls:locate 20,2:print "-----------デ-タの入力-----------"
locate 20,10:input " 方向角 T = ";TT3
'
TR=fnRAA(TT3):TE=fnDEG(TT3):TM=fnDMS(TE):TTA=TR*RAA:T3=fnDMS(TTA):TT=fnRRA(TT3)
TQ=3600#*RAA
'
cls:lprint:lprint:lprint:lprint:lprint
lprint " 度、分、秒とラジアンの変換計算":lprint:lprint:lprint
AN=Tt3:gosub *DOFUNBYO1
lprint using " 方向角 T =#### ## ##.## ";V1,V2,V3:lprint
lprint using " ラジアン T = ###.##########";TR:lprint
lprint using " DEG T =#######.######";TE:lprint
AN=TM:gosub *DOFUNBYO1
lprint using " DMS T =#### ## ##.## ";V1,V2,V3:lprint
lprint using " ラジ->度 T =#######.######";TTA:lprint
AN=T3:gosub *DOFUNBYO1
lprint using " ラジ->DMS T =#### ## ##.## ";V1,V2,V3:lprint
lprint using " ラジアン T = ###.##########";TT:lprint
lprint using " ラジアン秒 T =#######.##########";TQ:lprint
lprint chr$(12);
'
goto *SENTAKU1
'
*ASIN
'
cls:locate 20,2:print "-----------デ-タの入力-----------"
locate 20,10:input " ア-クサイン T = ";T3
'
TA=fnASI(T3):TM=fnDMS(TA):TR=fnRAA(TM)
'
cls:lprint:lprint:lprint:lprint:lprint
lprint " ア-クサイン T から度、分、秒とラジアンの変換計算":lprint:lprint:lprint
lprint using " ア-クサイン T =####.######## ";T3:lprint
lprint using " 度 DEG T =####.######## ";TA:lprint
AN=TM:gosub *DOFUNBYO1
lprint using " 度、分、秒 T =#### ## ##.## ";V1,V2,V3:lprint
lprint using " ラジアン T =####.#########";TR:lprint
lprint chr$(12);
'
goto *SENTAKU1
'
*ACOS
cls:locate 20,2:print "-----------デ-タの入力-----------"
locate 20,10:input " ア-クサイン T = ";T3
'
TA=fnACO(T3):TM=fnDMS(TA):TR=fnRAA(TM)
'
cls:lprint:lprint:lprint:lprint:lprint
lprint " ア-クコサイン T から度、分、秒とラジアンの変換計算":lprint:lprint:lprint
lprint using " ア-クコサインT =####.######## ";T3:lprint
lprint using " 度 DEG T =####.######## ";TA:lprint
AN=TM:gosub *DOFUNBYO1
lprint using " 度、分、秒 T =#### ## ##.## ";V1,V2,V3:lprint
lprint using " ラジアン T =####.#########";TR:lprint
lprint chr$(12);
'
goto *SENTAKU1
'
*DOFUNBYO1:'-----度.分秒の分離-----
VV=abs(AN):V1=fix(VV):V2=fix*6*100#):V3=(VV*100#-fix(VV*100#))*100#
if AN<0 then V1=(V1+0.1)*sgn(AN)
return
'
*ENDD1
'
end