JIS X 3003:1993 電子計算機プログラム言語Full BASIC | ページ 6

22
X 3003-1993
cost*quantity+overhead (2)
2^(−X) (4)
SQR(X^2+Y^2) (5)
value(X,Y,a$) (6)
minimum(Xvector) (6)
5.3.4 意味 意味は,次による。
(1) 数値式の構成及び評価 (evaluation) は,通常の代数の規則に従う。山記号(^),星印(*),斜線(/),
正号(+)及び負号(−)は,それぞれ,べき乗,乗算,除算,加算及び減算又は符号反転を表す。
括弧がない限り,最初にべき乗を行い,次に乗算及び除算を行い,最後に加算,減算及び符号反転を
行う。括弧のないときには,同順位の演算は左から右に評価する。
例 書き方 解釈
A−B−C (A−B)−C
A^B^C (A^B) ^C
A/B/C (A/B)/C
−A+B (−A)+B
−A^B −(A^B)
(2) 演算子の数学における用法が結合律や交換律を満たすものであれば,処理系は,括弧を用いることで
規制されていない限り,これらの性質を利用して式の評価の順序を変更してもよい。
(3) 数値式を評価する途中で下位けたあふれになると,その演算の結果の値は,ゼロで置き換えられる。
(4) 0^0の値は,1と定義する。
(5) 数値関数引用 (numeric-function-ref) は,あらかじめ定められた算法 (algorithm) を呼び出す記法とす
る。関数定義に仮引き数(parameter,5.4,6.4及び9.1参照)があれば,それは実引き数 (argument) の
値で置き換えられる。数値関数を評価すると,定義されている算法を実行し,一つのスカラ数値が結
果として与えられ,これが数値式の中の数値関数引用の値になる。
5.3.5 例外状態 例外状態は,次による。
(1) 数値式を評価すると,ゼロによる除算になる。(3001,続行不能。)
(2) 数値式を評価すると,あふれになる。(1002,続行不能。)
(3) べき乗の演算を評価すると,負数の非整数乗になる。(3002,続行不能。)
(4) べき乗の演算を評価すると,ゼロの負数乗になる。(3003,続行不能。)
5.3.6 注意 注意は,次による。
(1) 数値式を評価するときの精度は,5.6の制約のもとで,処理系によって異なりうる。
(2) 下位けたあふれは,処理系が例外状態(1502,続行可能。ゼロで置き換えて処理を続ける。)として報
告し,例外処理区による処理を許すことを推奨する。
(3) 処理系は,数値式の中の数値一次子及び演算を,5.3.4の意味規定に合致する任意の順序で評価してよ
い。もちろん,演算子の評価に先立って,その作用対象を評価しなければならない。例えば,数値式
A+B+C+D * Eでは,数値一次子及び加算は,それぞれどんな順序で評価してもよい。しかしここ
で,積D * Eは加算の作用対象である。したがって,この乗算は,3番Eの正号の示す加算に先立っ
て行わなければならない。

5.4 数値組込み関数

――――― [JIS X 3003 pdf 26] ―――――

                                                                                             23
X 3003-1993
5.4.1 概要 一般的に使用される数値関数 (numeric function) の評価に対し,あらかじめ定められた算法
(algorithm) が処理系から提供される。数値以外の機能に関連する関数については,6.4,7.1,7.2,12.1,
13.5及び14.7で規定する。
5.4.2 構文 構文は,次による。
(1) 数値組込み関数名⊃ ABS|ACOS|ANGLE|ASIN|ATN|CEIL|COS|COSH|COT|CSC|
DATE|DEG|EPS|EXP|FP|INT|IP|LOG|LOG10|LOG2|MAX|
MAXNUM|MIN|MOD|PI|RAD|REMAINDER|RND|ROUND|SEC|
SGN|SIN|SINH|SQR|TAN|TANH|TIME|TRUNCATE
(2) andomize文=RANDOMIZE
5.4.3 例 構文の例を次に示す。
RANDOMIZE (2)
5.4.4 意味 意味は,次による。
(1) 数値組込み関数 (numeric-supplied-function) の値及び値実引き数の個数は,表5.1による。各関数の数
値型実引き数は,特に断らない限り,最大の正数から絶対値最大の負数までの範囲の値とする。
角度を返す関数(ANGLE,ASIN及びATN)の値の単位は,ラジアンとする。ただし,option文の
angle選択子でDEGREESが有効な場合(5.6参照)には,度とする。 瀰 円周率 (=3.14159···) の真
値とする。
表5.1 数値関数
x,y : 数値式;n : 指標,すなわち数値式を丸めた整数値
関数 関数値
ABS (x) xの絶対値。
ACOS (x) xの逆余弦(単位は,ラジアン又は度。5.6参照)。関数値の範囲(ラジアンの場合)及びx
の範囲は,次のとおりとする。
0≦ACOS (x)≦ −1≦x≦1
ANGLE (x, y) 原点と座標 (x, y) とを結ぶベクトルが正のx軸となす角(単位は,ラジアン又は度。5.6参
照)。関数値の範囲(ラジアンの場合)は,次のとおりとする。

ANGLE (x, y)≦
x=y=0であってはならない。逆時計回りを正とする。
例 ANGLE (1, 1)=45度
ASIN (x) xの逆正弦(単位は,ラジアン又は度。5.6参照)。関数値の範囲(ラジアンの場合)及びx
の範囲は,次のとおりとする。
− 一 一 x)≦ 一 −1≦x≦1
ATN (x) xの逆正接(単位は,ラジアン又は度。5.6参照)。関数値の範囲(ラジアンの場合)は,
次のとおりとする。
− 一 一
ATN (x)<
CEIL (x) x以上の最小の整数。
COS (x) x(単位は,ラジアン又は度。5.6参照)の余弦。
COSH (x) xの双曲線余弦。
COT (x) x(単位は,ラジアン又は度。5.6参照)の余接。
CSC (x) x(単位は,ラジアン又は度。5.6参照)の余割。
DATE 10進数表示の今日の日付yyddd。ここで,yyは西暦年数の下2けたを,dddは年の中の通
日を表す。
例 1977年5月9日のDATEの値は,77129である。
日付機能がない場合のDATEの値は,−1とする。
DEG (x) x(単位はラジアン)を,度を単位として表した値。
EPS (x) x−x',x"−x及び 湧Y 。ここで,x'及びx"は,それぞれxの直前の値及び直後

――――― [JIS X 3003 pdf 27] ―――――

24
X 3003-1993
関数 関数値
の値とする。 表現可能な最小の正数とする。xに直前の値がない場合には,x'=x,x
に直後の値がない場合には,x"=xとする。EPS (0) は,処理系によって表現可能な最小の
正数とし,値は,処理系定義とする。option文のarithmetic選択子で,異なった指定を書
いた場合には,関数EPSの値は異なりうる(5.6参照)。
EXP (x) 指数関数,すなわち,自然対数の底e (=2.71828···) のx乗。関数値が機械最小値より小さ
いときには,ゼロで置き換えられる。
FP (x) xの小数部,すなわち,x−IP (x)。
INT (x) を超えない最大の整数。
例 INT (1.3)=1
INT (−1.3)=−2
IP (x) xの整数部,すなわち,SGN (x) * INT (ABS (x))。
LOG (x) xの自然対数。xは正でなければならない。
LOG10 (x) xの常用対数。xは正でなければならない。
LOG2 (x) 2を底とするxの対数。xは正でなければならない。
MAX (x, y) xとyの代数的に大きいほうの値。
MAXNUM 処理系が表現及び操作できる有限の最大の正数。値は,処理系定義とする。option文の
arithmetic選択子で,異なった指定を書いた場合には,関数MAXNUMの値は異なりうる
(5.6参照)。
MIN (x, y) xと,yの代数的に小さいほうの値。
MOD (x, y) yを法とするxの値,すなわち,x−y * INT (x/y)。yは,ゼロであってはならない。
PI 円周率 =3.14159···)。
RAD (x) x(単位は度)を,ラジアンを単位として表した値。
REMAINDER (x, y) xをyで割った余り,すなわち,x−y * IP (x/y)。yは,ゼロであってはならない。
RND 処理系定義の擬似乱数列における次の擬似乱数。これは,0≦RND<1の一様擬似乱数とす
る。
ROUND (x, n) xの値を小数点以下10進nけたに丸めた値。nが負ならば,小数点の左側−nけたに丸め
る。すなわち,INT (x * 10^n+.5) /10^n。
SEC (x) x(単位は,ラジアン又は度。5.6参照)の正割。
SGN (x) xの符号。これは,
xが負であれば −1
xがゼロであれば 0
xが正であれば +1
とする。
SIN (x) x(単位は,ラジアン又は度。5.6参照)の正弦。
SINH (x) xの双曲線正弦。
SQR (x) xの非負の平方根。xは,負であってはならない。
TAN (x) x(単位は,ラジアン又は度。5.6参照)の正接。
TANH (x) xの双曲線正接。
TIME その日の午前0時からの経過秒数。
例 午前11時15分のTIMEの値は,40500である。
時計機能がない場合のTIMEの値は,−1とする。午前0時の関数TIMEの値は,
0とする。86400ではない。
TRUNCATE (x, n) xの値の小数点以下10進nけたより後を切り捨てた値。nが負ならば,小数点の左側−n
けたより後を切り捨てる。すなわち,IP (x*10^n) /10^n。
(2) 表5.1の関数値の欄における“ラジアン又は度”の説明は,option文のangle選択子でDEGREESが有
効な場合,度の意味とする。RADIANSが有効な場合,ラジアンの意味とする。
(3) 周期的な三角関数SIN,COS,TAN,SEC,CSC及びCOTに対する10進m+1けたの正確度の要求(5.6.4
参照)は,実引き数が−2 瀰 瀰 囲にあるときだけ適用する。実引き数がこの範囲の外にあ
り,関数値を計算するために実引き数の値の範囲を調整する必要があるとき,関数値の正確度の損失

――――― [JIS X 3003 pdf 28] ―――――

                                                                                             25
X 3003-1993
は,この調整の際の精度落ちによるものだけが許される。
例 処理系は,SIN (x) を,SIN (MOD (x, 2 ‰地 問 してもよい。ほかの関数も同様である。
(4) andomize文 (randomize-statement) を実行してないとき,関数RNDの引用は,プログラムの実行のた
びごとに同じ擬似乱数列を生成する。randomize文を実行すると,この処理系定義の擬似乱数列が無
効になり,擬似乱数列の中から新たに予測できない出発点が選ばれ,以後の関数RNDで使われる。
擬似乱数列は,プログラム全体に広域的とし,個々のプログラム単位に局所的ではない。
5.4.5 例外状態 例外状態は,次による。
(1) 関数LOG,LOG10又はLOG2の実引き数の値が,ゼロ又は負である。(3004,続行不能。)
(2) 関数SQRの実引き数の値が,負である。(3005,続行不能。)
(3) 数値組込み関数の値の絶対値が,MAXNUMよりも大きい,又は数学的に無限大になる。(1003,続行
不能。)
(4) 関数MOD又はREMAINDERの第2実引き数の値が,ゼロである。(3006,続行不能。)
(5) 関数ACOS又はASINの実引き数の値が,−1より小さい又は1より大きい。(3007,続行不能。)
(6) NGLE (0, 0) を評価しようとした。(3008,続行不能。)
5.4.6 注意 注意は,次による。
(1) 処理系は,実時間時計機能 (real-time clock) のような乱数発生の手掛かりになる機構をもたない場合
に,利用者との対話などの方法によってrandomize文を処理してもよい。
(2) この規格は,数値組込み関数を評価した結果の最終的な値に対してだけ,処理系があふれを報告する
ことを要求する。すなわち,関数の値を評価する過程で起こる例外状態を報告する必要はない。しか
し,その場合でも関数の最終的な値の正確度を保証するために,処理系は,適切な処置をとらなけれ
ばならない。数値組込み関数の最終的な値に対してあふれを報告する場合には,あふれを起こした関
数の名前も報告することを推奨する。
(3) 数値組込み関数の値がゼロでなく,かつ絶対値が機械最小値よりも小さい場合,処理系が下位けたあ
ふれの例外状態(1503,続行可能。ゼロで置き換えて処理を続ける。)として報告し,例外処理区によ
る処理を許すことを推奨する。
(4) 関数DATE及びTIMEで用いる基準時間帯 (time zone) は,処理系定義とする。
(5) 関数DATEでは,西暦年数を4けたで表すことはできない。それが必要な場合には,文字列関数
DATE$を利用する。

5.5 数値let文

5.5.1  概要 let文 (let-statement) は,数値式の値を計算し,数値変数の並びに対して同時的に代入する。
5.5.2 構文 構文は,次による。
(1) et文⊃数値let文
(2) 数値let文=LET 数値変数名並び 等号 数値式
(3) 数値変数名並び=数値変数名{コンマ 数値変数名}*
5.5.3 例 構文の例を次に示す。
LET P=3.14159 (2)
LET A(X,3)=SIN(X)* Y+1 (2)
LET A,Y(I),Z=I+1 (2)
LET T(I,J),I,J=I+J (2)

――――― [JIS X 3003 pdf 29] ―――――

26
X 3003-1993
5.5.4 意味 数値変数名並びの変数名に添字がある場合,それは左から右に順に評価される。次いで,右
辺の数値式(5.3参照)が評価される。最後に,数値式の値が,必要ならば変数の保持できる最も近い近似
値に丸められた上で,数値変数名並びの各数値変数に左から右に順に代入される。
5.5.5 例外状態 なし。
5.5.6 注意 次の2文,
LET A=1
LET A,B(A)=2
を実行することは,次の3文,
LET A=1
LET A=2
LET B(A)=2
を実行することと等価ではない。

5.6 数値の扱い及び角度

5.6.1  概要 特に指定しない限り,すべての数値変数の値は,論理的に浮動小数点10進数として扱われ,
10進10けた以上の処理系定義の精度 (precision) をもつ。option文 (option-statement) で指定することによ
って,精度は下がるかもしれないがより効率のよい数値表現を選ぶことができる。
特に指定しない限り,三角関数(5.4参照)及び図形変形関数(13.5参照)の引き数及び値の単位は,ラ
ジアン (radian) とする。option文で指定することによって,これらの関数の角度の単位を度 (degree) に変
えることができる。
5.6.2 構文 構文は,次による。
(1) ption文=OPTION 選択子並び
(2) 選択子並び=選択子{コンマ 選択子}*
(3) 選択子⊃ARITHMETIC [{DECIMAL|NATIVE|ANGLE[{DEGREES|RADIANS}]
(4) eclare文=DECLARE 宣言指定
(5) 宣言指定⊃numeric宣言
(6) umeric宣言⊃NUMERIC 数値宣言{コンマ 数値宣言}*
(7) 数値宣言⊃数値単純変数名
(8) rithmetic選択子のあるoption文を書く場合には,同じプログラム単位中のどの数値式よりも早い位
置,かつ数値配列名又は数値変数名を指定した,どのdim文及びdeclare文よりも早い位置に書かな
ければならない。
参考 ANSI X3.113では,“数値配列名又は固定小数点宣言”とあるが,誤りと考えられるので訂正し
た。
(9) rithmetic選択子は,一つのプログラム単位中では,たかだか1回だけ書くことができる。
(10) ngle選択子のあるoption文を書く場合には,同じプログラム単位中の,数値組込み関数名及び変形
関数名に対するどの引用よりも早い位置に書かなければならない。
(11) ngle選択子は,一つのプログラム単位中では,たかだか1回だけ書くことができる。
(12) eclare文を書く場合には,そこで宣言される変数名に対するどの参照よりも早い位置に書かなければ
ならない。
5.6.3 例 構文の例を次に示す。
OPTION ARITHMETIC DECIMAL,ANGLE DEGREES (1)

――――― [JIS X 3003 pdf 30] ―――――

次のページ PDF 31

JIS X 3003:1993の引用国際規格 ISO 一覧

  • ISO/IEC 10279:1991(IDT)

JIS X 3003:1993の国際規格 ICS 分類一覧

JIS X 3003:1993の関連規格と引用規格一覧