5.3■ 式
5.3.1■ 式の値と演算子
5.4■ 関数
5.4.01■ Air_Distance 関数
5.4.02■ Ctof 関数
5.4.03■ Degrees 関数
5.4.04■ Fix_To_Fix_Distance 関数
5.4.05■ Frac 関数
5.4.06■ Ftoc 関数
5.4.07■ Ftom 関数
5.4.08■ Glide_Slope 関数
5.4.09■ Ground_Distance 関数
5.4.10■ InHgToMb 関数
5.4.11■ InRange 関数
5.4.12■ InRange360 関数
5.4.13■ Int 関数
5.4.14■ KmToNm 関数
5.4.15■ MbToInHg 関数
5.4.16■ Minutes 関数
5.4.17■ Mtof 関数
5.4.18■ NmToKm 関数
5.4.19■ NmToSm 関数
5.4.20■ Radial 関数
5.4.21■ Seconds 関数
5.4.22■ SmToNm 関数

5.3.1■ 式の値と演算子
数値が期待されている場所では、どこでも式を使用することができます。式は変数、明示的
な数、演算子、通常の使用ルールに基づく括弧からできています。全ての変数、数値、数式
の結果は内部的に倍精度浮動小数点数として表現されています。
APLでは、オペランドの値として、しばしば、論理値やブール値が使われます。これらの値
にはIfコマンドの独立変数やAnd演算子のオペランドやNOT()関数の独立変数が含まれます。
ブール値は真(True)か偽(False)の値を取る数字として扱われます。浮動小数点数は最初に
整数に変換されます。その結果が0になった場合は偽(False)として扱われます。もし、
値が0以外の時には真(True)であると扱われます。APLがブール値を生成する時は真(True)
の値として1.0が偽(False)の値として0.0が作られます。
APLは以下の各々の演算子を使用します。
演算子 説明
- 数値マイナス.
NOT 論理マイナス オペランドが0の時、結果は1となり、それ以外
では0となる。
二進数の演算子は通常の演算ルールに基づく左側の式と右側の式からできています。論理演
算子(=やAND等)は真を1に偽を0として計算し結果を出します。APLは二進数の演算子として
以下のものを使用します。
演算子 説明
+ 加算
- 減算
* 積算
/ 浮動小数点数除算
IDIV 整数除算
IREM, % 整数の余り
& ビットAND
| ビットOR
XOR, ^ ビット排他OR
= イコール
!= 非イコール
< 未満
<= 以下
> 超
>= 以上
AND, && 論理積(両オペランドが真の時、真)
OR, || 論理和(両オペランドのいずれかが真の時に真)
5.4.0■ 関数
5.4.01■ Air_Distance 関数
ユーザーの飛行機から指定された緯度経度上の位置までの空間距離を海里で算出します。
空間距離はユーザーの飛行機から特定の緯度経度上の位置までの最短距離です。
Note: 距離が増加すると、この関数は不正確となります。
構文
Air_Distance (lat, lon)
引数
latitude 緯度を指定します。
longitude 経度を指定します。
使用例
DECLARE AD2_Meigs
AD2_Meigs = AIR_DISTANCE(41:51:13.3942, 087:36:27.2470)
5.4.02■ Ctof 関数
摂氏の温度を華氏に変換します。 数式は((temp * 1.8) + 32)になります。
構文
Ctof (temp)
引数tempは摂氏の温度です。
使用例
'This should print approximately 59.
DECLARE Temp_F
Temp_F = CTOF(15)
PRINT "Temperature Fahrenheit for 15 Celsius = ", Temp_F
5.4.03■ Degrees 関数
角度を度、分、秒に変換し、その中から度の整数部分を抜き出します。int(abs(angle))
関数と同じ結果になります。
構文
Degrees (angle)
引数 angleは度、分、秒単位の角度です。
使用例
PRINT "Degrees 44:30:10.5678 = ", DEGREES(44:30:10.5678)
結果: Degrees 44:30:10.5678 = 44.0000
5.4.04■ Fix_To_Fix_Distance 関数
二つの地点間の距離を海里で算出します。
Note: 距離が増加すると、この関数は不正確になります。
構文
Fix_To_Fix_Distance (lat1, lon1, lat2, lon2)
引数
lat1 最初の地点の緯度を指定します。
lon1 最初の地点の経度を指定します。
lat2 二つ目の地点の緯度を指定します。
lon2 二つ目の地点の経度を指定します。
使用例
DECLARE D_ORD_CMI
'Returns distance from ORD VOR to CMI VOR.
D_ORD_LAX = FIX_TO_FIX_DISTANCE(41:59:15.60, 087:54:17.60, 40:02:06.0000,
088:16:36.0000)
5.4.05■ Frac 関数
指定された値の小数点以下を求めます。
構文
Frac (value)
引数 valueは小数点以下を求めたい元の数字です。
使用例
DECLARE Frac_Part
Frac_Part = FRAC(1.2345)
結果: Frac_Part = 0.2345
5.4.06■ Ftoc 関数
華氏で表示された温度を摂氏に変換します。算式は ((temp - 32) / 1.8)です。
構文
Ftoc (temp)
引数 tempは華氏の温度です。
使用例
'This should print approximately 15.
DECLARE Temp_C
Temp_C = FTOC(59)
PRINT "Temperature Celsius for 59 Fahrenheit = ", Temp_C
5.4.07■ Ftom 関数
指定されたフィート単位の値をメートル単位に変換します。
算式は(feet / 3.28084)です。
構文
Ftom (feet)
引数 feetはフィート単位の示された長さです。
使用例
DECLARE Meters
Meters = FTOM(33)
5.4.08■ Glide_Slope 関数
特定の地点へのグライドスロープを角度で算出します。
Note: ユーザーの飛行機と地面との角度は90度を超える事はできません。
構文
Glide_Slope (lat, lon)
引数
lat 指定する地点の緯度を指定します。
lon 指定する地点の経度を指定します。
使用例
DECLARE GS2_Meigs
GS2_Meigs = GLIDE_SLOPE(41:51:13.3942, 087:36:27.2470)
5.4.09■ Ground_Distance 関数
ユーザーの飛行機から特定地点までの地表面距離を海里で算出します。
Note: 距離が増加すると、この関数は不正確になります。
構文
Ground_Distance (lat, lon)
引数
lat 指定する地点の緯度を指定します。
lon 指定する地点の経度を指定します。
使用例
DECLARE GD2_Meigs
GD2_Meigs = GROUND_DISTANCE(41:51:13.3942, 087:36:27.2470)
5.4.10■ InHgToMb 関数
気圧を水銀柱換算のインチ単位の値からミリバールへ変換します。
算式は (pressure * 33.86363636)です。
構文
InHgToMb (pressure)
引数 pressureは水銀柱換算のインチ単位の値です。
使用例
DECLARE P_MB
P_MB = INHGTOMB(29.92)
5.4.11■ InRange 関数
value値がlow以上high以下の場合に真(True:1)を返します。
構文
InRange (value, low, high)
参考
InRange (value, high, low)を指定して、その結果InRange内にない場合でもエラーメッ
セージはでません。InRange (value, low, high)はvalue値がLow以上でHigh以下かを
チェックするだけです。もし、lowとhighの値を逆にすると、この場合、
常に偽(False)が返されます。
使用例
IF INRANGE(PLANE_ALT, 0, 2000) THEN
PRINT "Altitude is less than 2,001 feet."
ENDIF
5.4.12■ InRange360 関数
InRange関数ににていますが、導引数が0度〜360度に限定されています。
構文
InRange360 (value, left, right)
使用例
'Handles headings that cross north.
IF INRANGE360(PLANE_HEADING, 355, 005)
PRINT "You are heading north."
ENDIF
'Handles radials that cross north.
IF INRANGE360(VOR_1_RADIAL, 315, 045)
PRINT "You are north of the VOR."
ENDIF
5.4.13■ Int 関数
ある値の整数部分を返します。
構文
Int (value)
引数 valueは整数部分を算出したい特定の値です。
使用例
'This should print the number 1.
PRINT "The integer portion of 1.2345 is: ", INT(1.2345)
5.4.14■ KmToNm 関数
キロメートルから海里に変換します。算式は(distance / 1.852)です。
構文
KmToNm (dist)
引数 distはキロメートル単位の距離です。
使用例
DECLARE D_NM
D_NM = KMTONM(185.2)
5.4.15■ MbToInHg 関数
気圧をミリバールから水銀柱換算のインチ単位の値へ変換します。
算式は(pressure / 33.86363636)です。
構文
MbToInHg(pressure)
引数 pressureはミリバール単位の気圧です。
使用例
DECLARE P_InHG
P_InHG = MBTOINHG(1013.5)
5.4.16■ Minutes 関数
角度を度、分、秒に変換し、その中から整数の分の部分を取り出します。
int(60*frac(abs(angle)))と同じになります。
構文
Minutes (angle)
引数 angleは変換したい角度です。
使用例
PRINT "Minutes 44:30:10.5678 = ", MINUTES(44:30:10.5678)
結果: Minutes 44:30:10.5678 = 30.0000
5.4.17■ Mtof 関数
メートル単位の長さをフィート単位に変換します。算式は(meters * 3.28084)です。
構文
Mtof (meters)
引数 metersは変換するメートル単位の長さです。
使用例
DECLARE D_FEET
D_FEET = MTOF(100)
5.4.18■ NmToKm 関数
海里で示された距離をキロメートル単位に変換します。算式は(distance * 1.852)です。
構文
NmToKm (dist)
引数 disは海里単位の距離です。
使用例
DECLARE D_KM
D_KM = NMTOKM(100)
5.4.19■ NmToSm 関数
海里で示された距離を法定マイルに変換します。算式は(distance * 1.1508)です。
構文
NmToSm (dist)
引数 distは海里単位の距離です。
使用例
DECLARE D_SM
D_SM = NMTOSM(100)
5.4.20■ Radial 関数
ある地点から飛行機までの水平角度を磁気方位の角度で返します。
構文
Radial (lat, lon)
引数
lat 指定する地点の緯度を指定します。
lon 指定する地点の経度を指定します。
使用例
WHILE RADIAL(47:00.0, 118:00.0) < 090
WAIT 1
END WHILE
5.4.21■ Seconds 関数
角度を度、分、秒に変換し、その中から秒の部分を取り出します。
60*frac(60*frac(abs(angle)))と同じ結果になります。
構文
Seconds (angle)
引数 angleは秒の部分を取り出す角度です。
使用例
PRINT "Seconds 44:30:10.5678 = ", SECONDS(44:30:10.5678)
結果: Seconds 44:30:10.5678 = 10.5678
5.4.22■ SmToNm 関数
法定マイルで示された距離を海里に変換します。算式は(distance / 1.1508)です。
構文
SmToNm (dist)
引数 distは法定マイル単位の距離です。
使用例
DECLARE D_NM
D_NM = SMTONM(115.08)
Last Update 1999/1/8